ПЕРЕКРЕСТНАЯ ССЫЛКА
[0001] Отсутствует.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящая технология относится к системе и способу выполнения обработки данных. Конкретнее, настоящая технология относится к системе и способу безопасной обработки части данных в среде для безопасного исполнения компьютерных программ (песочнице).
УРОВЕНЬ ТЕХНИКИ
[0003] Среда песочницы, также называемая «приложения песочницы», представляет собой тестовую среду, которая изолирует непроверенные изменения в коде, эксперименты или потенциально нестабильные запросы на обработку от остальной рабочей среды вычислительной системы. Песочница защищает различные аспекты вычислительной системы, которые могут быть подвержены риску от непроверенного или нестабильного кода, включая аппаратное обеспечение, активные серверы и их данные, а также другие коллекции кода, данных и/или содержимого. Непроверенный или нестабильный код может привести к опасным изменениям (случайным или намеренным) в ключевых системах или вызвать изменения, которые будет сложно обратить. В этом случае может применяться среда песочницы как приложение, которое выполняет потенциально опасный код или запрос на обработку. В общем случае, песочницы реплицируют по меньшей мере минимальную функциональность, которая необходима для правильного тестирования программ или запросов на обработку.
[0004] Управляемая процессором системная память обычно разделяется на две отдельных «области»: пространство ядра и пространство пользователя. Пространство ядра - это область, в которой работает ядро операционной системы, и в которой процессор выполняет процессы, такие как ввод/вывод контроллеров устройств (для работы периферийных устройств, например, клавиатуры или монитора). Пространство пользователя - это набор областей памяти, в которых выполняются пользовательские процессы, такие как приложения и программы. Связь между пространством пользователя и пространством ядра происходит с помощью системных ячеек.
[0005] Для того, чтобы запустить среду песочницы в исполняемой на компьютере системе, необходимо создать или загрузить с внешнего источника программное приложение или аналогичный набор команд. Для каждой среды песочницы исполняемой на компьютере системе также требуется инициировать процесс среды песочницы. Открытие новой среды песочницы требует использования системных ресурсов и мощностей еще до выполнения в среде песочницы какой-либо обработки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0006] Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0007] Одним объектом настоящей технологии является исполняемая на компьютере система обработки запроса пользовательского устройства на обработку части пользовательских данных, исполняемая на компьютере система включает в себя сервер, содержащий процессор, процессор обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, при получении запроса пользовательского устройства, осуществлять считывание части пользовательских данных из базы данных на сервере, выделение пространства на процессоре для определения среды песочницы, среда песочницы определяет набор команд пространства ядра для выполнения обработки части пользовательских данных, изолирование процессора в среде песочницы от пространства пользователя для того, чтобы изолированно выполнить запрос пользовательского устройства с помощью набора команд пространства ядра, обработку части пользовательских данных процессором в среде песочницы, деизолирование среды песочницы из пространства пользователя путем вывода указания на обработанную часть пользовательских данных и запись указания на обработанную часть пользовательских данных в пространство пользователя процессора.
[0008] В некоторых вариантах осуществления технологии, изолирование процессора включает в себя проверку запроса пользовательского устройства на обработку части пользовательских данных, запрос пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством ядра, и добавление выполнения по меньшей мере одной команды из запроса пользовательского устройства на очередь на выполнение в пространстве ядра.
[0009] В некоторых вариантах осуществления технологии, указание на обработанную часть пользовательских данных является обработанной частью пользовательских данных.
[0010] В некоторых вариантах осуществления технологии, указание на обработанную часть пользовательских данных является сообщением пользовательском устройству о том, что часть пользовательских данных не была обработана корректно.
[0011] В некоторых вариантах осуществления технологии процессор представляет собой первый процессор и второй процессор, запрос пользовательского устройства представляет собой первый запрос пользовательского устройства обработать первую часть пользовательских данных и второй запрос пользовательского устройства обработать вторую часть пользовательских данных, первый процессор выполнен с возможностью выполнять обработку первого запроса пользовательского устройства для того, чтобы обработать первую часть пользовательских данных, а второй процессор выполнен с возможностью выполнять обработку второго запроса пользовательского устройства для того, чтобы обработать вторую часть пользовательских данных.
[0012] В некоторых вариантах осуществления технологии первый процессор и второй процессор выполнены с возможностью выполнять упомянутую обработку одновременно.
[0013] В некоторых вариантах осуществления технологии, упомянутое получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства включает в себя получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс компиляции, выполняемый пользовательским устройством.
[0014] В некоторых вариантах осуществления технологии, упомянутое получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства включает в себя получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс командной строки, выполняемый клиентским устройством.
[0015] В некоторых вариантах осуществления технологии, запрос пользовательского устройства на обработку части пользовательских данных составляется из команд, выбранных из набора команд пространства ядра.
[0016] В некоторых вариантах осуществления технологии, запрос пользовательского устройства на обработку части пользовательских данных включает в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем процессор дополнительно выполнен с возможностью выполнять, при получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, определение того, что запрос пользовательского устройства включает в себя по меньшей мере одну нестандартную команду, передачу запроса временному пространству процессора, модификацию во временном пространстве процессора запроса пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра, передачу модифицированного запроса пользовательского устройства в пространство ядра процессора и продолжение упомянутого считывания части пользовательских данных из базы данных сервера.
[0017] Другим объектом настоящей технологии является исполняемый на компьютере способ обработки запроса пользовательского устройства на обработку части пользовательских данных, исполняемый на компьютере способ, который выполняется в системе, которая включает в себя сервер, содержащий процессор, процессор обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять способ, включающий в себя получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, при получении запроса пользовательского устройства, осуществлять считывание части пользовательских данных из базы данных на сервере, выделение пространства для определения среды песочницы, среда песочницы определяет набор команд пространства ядра для выполнения обработки части пользовательских данных, изолирование процессора в среде песочницы от пространства пользователя для того, чтобы изолированно выполнить запрос пользовательского устройства с помощью набора команд пространства ядра, обработку части пользовательских данных процессором в среде песочницы, деизолирование среды песочницы из пространства пользователя путем вывода указания на обработанную часть пользовательских данных и запись указания на обработанную часть пользовательских данных в пространство пользователя процессора.
[0018] В некоторых вариантах осуществления технологии, изолирование процессора включает в себя проверку запроса пользовательского устройства на обработку части пользовательских данных, запрос пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством ядра, и добавление выполнения по меньшей мере одной команды из запроса пользовательского устройства на выполнение строки пространства ядра.
[0019] В некоторых вариантах осуществления технологии, указание на обработанную часть пользовательских данных является обработанной частью пользовательских данных.
[0020] В некоторых вариантах осуществления технологии, указание на обработанную часть пользовательских данных является сообщением пользователю о том, что часть пользовательских данных не была обработана корректно.
[0021] В некоторых вариантах осуществления технологии процессор представляет собой первый процессор и второй процессор, запрос пользовательского устройства представляет собой первый запрос пользовательского устройства обработать первую часть пользовательских данных и второй запрос пользовательского устройства обработать вторую часть пользовательских данных, и причем первый процессор выполнен с возможностью выполнять обработку первого запроса пользовательского устройства для того, чтобы обработать первую часть пользовательских данных, а второй процессор выполнен с возможностью выполнять обработку второго запроса пользовательского устройства для того, чтобы обработать вторую часть пользовательских данных.
[0022] В некоторых вариантах осуществления технологии первый процессор и второй процессор выполнены с возможностью выполнять исполняемый на компьютере способ одновременно.
[0023] В некоторых вариантах осуществления технологии, упомянутое получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства включает в себя получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс компиляции, выполняемый пользовательским устройством.
[0024] В некоторых вариантах осуществления технологии, упомянутое получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства включает в себя получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс командной строки, выполняемый пользовательским устройством.
[0025] В некоторых вариантах осуществления технологии, запрос пользовательского устройства составляется из команд, выбранных из набора команд пространства ядра.
[0026] В некоторых вариантах осуществления технологии, запрос пользовательского устройства данных включает в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем исполняемый на компьютере способ включает в себя, при получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, определение того, что запрос пользовательского устройства включает в себя по меньшей мере одну нестандартную команду, передачу запроса временному пространству процессора, модификацию во временном пространстве процессора запроса пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра, передачу модифицированного запроса пользовательского устройства в пространство ядра процессора и продолжение упомянутого считывания части пользовательских данных из базы данных сервера.
[0027] В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от пользовательских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами.
[0028] В контексте настоящего описания, если явно не указано иное, "процессор" или "графический процессор", могут быть представлены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. В некоторых вариантах осуществления настоящей технологии процессор может являться универсальным процессором, например, центральным процессором (CPU) или специализированным для конкретной цели процессором, например, графическим процессором (GPU). Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[0029] Важно иметь в виду, что словосочетания типа «пространство пользователя» и «пространство ядра» не обязательно относятся к физическим пространствам. Пространства в общем случае будут относиться к виртуальным пространствам, включая память, связанную с конкретными вычислительными задачами в исполняемой на компьютере системе.
[0030] В контексте настоящего описания, если конкретно не указано иное, «пользовательское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как пользовательское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «пользовательское устройство» не исключает возможности использования множества пользовательских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.
[0031] В контексте настоящего описания, если четко не указано иное, «указание» на элемент данных может представлять собой сам элемент данных или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен элемент данных. Например, указание на документ может включать в себя сам документ (т.е. его содержимое), или же оно может являться уникальным дескриптором документа, идентифицирующим файл по отношению к конкретной файловой системе, или каким-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу.
[0032] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в части пользовательских данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0033] В контексте настоящего описания, если конкретно не указано иное, термин «данные» включает в себя любые пользовательские данные любого типа, включая информацию или данные любого типа, которые можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0034] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной передачи данных между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" процессор и "второй" процессор могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0035] Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
[0036] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0037] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0038] На Фиг. 1 изображена принципиальная схема неограничивающего варианта осуществления исполняемой на компьютере системы, выполненного в соответствии с настоящей технологией.
[0039] На Фиг. 2 изображена принципиальная схема другого неограничивающего варианта осуществления исполняемой на компьютере системы, выполненного в соответствии с настоящей технологией.
[0040] На Фиг. 3 представлена принципиальная схема пространства процессора, соответствующего настоящей технологии.
[0041] На Фиг. 4 представлена блок-схема, показывающая вариант осуществления исполняемого на компьютере способа в соответствии с настоящей технологией.
[0042] На Фиг. 5 представлена блок-схема неограничивающего варианта осуществления исполняемого на компьютере способа, показанного на Фиг. 4, демонстрирующая использование пространства процессора в исполняемом на компьютере способе; и
[0043] На Фиг. 6 изображена принципиальная схема другого неограничивающего варианта осуществления исполняемой на компьютере системы, выполненного в соответствии с настоящей технологией.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0044] Настоящее подробное описание представлено только как описание иллюстративных примеров настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. В некоторых случаях, полезные примеры модификаций настоящей технологии также могут быть охвачены нижеследующим описанием с целью помощи в понимании технологии, а не с целью установления границ настоящей технологии. Эти модификации не являются исчерпывающим списком, и возможны также и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого конкретного аспекта настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что настоящее подробное описание представляет собой в некоторых конкретных аспектах достаточно простой вариант осуществления настоящей технологии, и в подобных случаях представлено в подобном виде только с целью облегчения понимания технологии. Различные варианты осуществления настоящей технологии могут обладать гораздо большей сложностью.
[0045] На Фиг. 1 представлена упрощенная версия исполняемой на компьютере системы 100, выполненной в соответствии с настоящей технологией. Система 100 включает в себя сеть 150, которая позволяет связываться различным компонентам системы. В других неограничивающих вариантах осуществления технологии, сеть 150 может быть реализована как сеть 150 Интернет. В других вариантах осуществления настоящей технологии, сеть 150 может быть реализована иначе - в виде глобальной сети 150 передачи данных, локальной сети 150 передачи данных и т.п.
[0046] Также в систему 100 входит пользовательское устройство 110, которое используется пользователем системы 100. Также в систему 100 входит сервер 120, соединенный с сетью 150, сервер 120 обладает процессором. Система 100 также включает в себя базу 140 данных, соединенную с другими частями системы 100 через сеть 150.
[0047] Различные типы пользовательских устройств 110 могут быть использованы в контексте настоящей технологии. Например, пользовательское устройство 110 может представлять собой смартфон, планшет, ноутбук, компьютер, телевизор, игровую консоль или любой другой тип пользовательского устройства 110, с которым возможно осуществлять связь по сети 150. Пользовательское устройство 110 может быть связано с сетью 150 напрямую или через экстранет-сервер, Wi-Fi точку, поставщика интернет услуг, поставщика мобильной связи и так далее.
[0048] Для упрощения настоящего описания, система 100 представлена только с тремя категориями узлов, а именно - пользовательское устройство 110, сервер 120 и база 140 данных, связанная через сеть 150. Тем не менее, специалистам в данной области техники будет понятно, что система 100 может включать в себя большее число категорий узлов, и в рамках каждой категории узлов может быть использовано множество типов оборудования. Каждая категория узлов может связываться с другими категориями узлов в соответствии с установленными протоколами и стандартами. Дополнительно, номер каждого узла может отличаться в различных вариантах осуществления технологии, где пользователь может использовать одно или несколько пользовательских устройств 110 для передачи запроса 115 пользовательского устройства на обработку пользовательских данных, например, через сеть 150 процессору 130.
[0049] Как представлено на Фиг. 2, исполняемая на компьютере система 200 может являться одной из интегрированных компьютерных систем, где различные компоненты интегрированы в систему 200. Примеры неограничивающих вариантов осуществления системы 200 включают в себя, без установления ограничений: ноутбук, настольный компьютер, сервер и компьютерный кластер. В этом случае пользовательское устройство 110 в общем случае содержит все компоненты системы 200, включая сервер 120 и базу 140 данных. Сеть 150 (не показана) просто является внутренней сетью передачи данных между различными компонентами. В некоторых неограничивающих вариантах осуществления технологии, пользовательское устройство 110 представляет собой конечное устройство 110 доступа в большой закрытой компьютерной системе 200. В других вариантах осуществления технологии, пользовательское устройство 110 может представлять собой сервер 120, который передает запросы на обработку, как будет описано далее, процессору 130.
[0050] В некоторых вариантах осуществления технологии, исполняемая на компьютере система может представлять собой комбинацию систем 100 и 200, представленных на Фиг. 1 и 2 соответственно. Например, в некоторых вариантах осуществления технологии, сервер 120 и пользовательское устройство 110 может быть соединено с внутренней сетью (не показано) в закрытой системе, со связью с базой 140 данных через сеть 150 интернет.
[0051] Во всех исполняемых на компьютере системах, описанных ранее, процессор 130 сервера 120 обладает пространством 135 пользователя и пространством 137 ядра, оба из которых будут более подробно описаны далее. Процессор 130 может представлять собой любой процессор, способный выполнять способ в соответствии с настоящей технологией. Предполагается, что, среди прочего, в этом участвует: один выделенный процессор 130, один общий процессор 130, графический процессор (GPU) и центральный процессор (CPU). Также предполагается, что способ может выполняться множество раз параллельно на множестве индивидуальных процессоров 130 или на многоядерном процессоре 130, как будет описано далее.
[0052] В соответствии с настоящей технологией, процессор 130 и его соответствующая память разделяются на пространство 135 пользователя и пространство 137 ядра, как показано на Фиг. 3. В обычном случае пространство 135 пользователя отвечает на выполнение программных приложений, таких как первое приложение 302 или второе приложение 304. Пространство 135 пользователя включает в себя любой процесс, который может быть недостаточно стабильным или надежным, чтобы обладать доступом к аппаратному обеспечению системы или операционной системе. Приложения 302 получают доступ к драйверам системы и памяти с помощью вызовов системы, которые передают запросы пространства пользователя процессам ядра.
[0053] Пространство 137 ядра отвечает за работу ядра 322 операционной системы, драйверов 320 устройств, диспетчера 310 процессов и диспетчера 308 устройств ввода/вывода (I/O). Ядро 322 операционной системы представляет собой компьютерную программу, которая управляет запросами ввода и вывода, поступающими от программных приложений в пространстве пользователя, например, приложений 302 и 304, и переводит их в инструкции для обработки данных, предназначенные для процессора 130. Диспетчер процессов 310 выделяет ресурсы для процессов и обеспечивает защиту от вмешательства процессов в работу друг друга. Драйверы 320 устройств и диспетчер 308 устройств ввода/вывода запускают, контролируют и отслеживают работу устройств, например, компьютерного монитора и компьютерной клавиатуры, которые соединены с сервером 120 системы 100. В целях безопасности системы, пространство 137 ядра использует известный набор команд пространства ядра - стабильные команды, которые обычно не угрожают нормальной работе исполняемой на компьютере системы 100.
[0054] Важно иметь в виду, что варианты реализации пользовательского устройства 110, сети 150, сервера 120 и базы140 данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 110, сети 150, сервера 120, базы 140 данных и процессора 130. Таким образом, представленные здесь примеры не ограничивают объем настоящей технологии.
[0055] Вариант осуществления способа 400 в соответствии с настоящей технологией представлен на Фиг. 4 и 5. Линейная блок-схема этапов, которая содержится в способе 400 по меньшей мере одного варианта осуществления настоящей технологии, представлена на Фиг. 4. Блок-схема, иллюстрирующая способ 400 и его этапы, показана на Фиг. 5 с учетом соответствующих пространств процессора.
[0056] Исполняемый на компьютере способ 400 обработки запроса 115 пользовательского устройства на обработку части пользовательских данных изображен схематично и выполняется на исполняемой на компьютере системе, например, системе 100, которая показана на Фиг. 1, или системе 200, которая показана на Фиг. 2. Способ 400 далее будет описан со ссылкой на Фиг. 1 только для простоты и может аналогично выполняться для системы 200, показанной на Фиг. 2.
[0057] Как показано на Фиг. 1, система 100 включает в себя сервер 120, обладающий процессором 130, который обладает пространством 135 пользователя и пространством 137 ядра, процессор выполнен с возможностью выполнять способ 400.
[0058] Способ 400 начинается на этапе получения 410 запроса 115 пользовательского устройства на обработку части пользовательских данных от пользовательского устройства 110 через сеть 150, как показано на Фиг. 1. Предполагается, что запрос 115 пользовательского устройства может быть передан от пользовательского устройства 110 как часть большего процесса, например, пользовательское устройство 110 создает запрос без инициирования пользователем. Также предполагается, что запрос 115 пользовательского устройства может быть напрямую инициирован пользователем, который использует устройство 110 пользователя, например инициирования запроса 115 пользовательского устройства на конечном или с помощью персонального компьютера. Предполагается, что пользователь может создавать запрос 115 пользовательского устройства различными способами. В некоторых вариантах осуществления технологии, пользователь может создавать и подтверждать ввод запроса 115 пользовательского устройства с помощью интерфейса командной строки на пользовательском устройстве 110. В некоторых других вариантах осуществления технологии, пользователь может создавать и подтверждать ввод запроса 115 пользовательского устройства с помощью интерфейса компиляции, включая, без установления ограничений, графический интерфейс пользователя, на пользовательском устройстве 110.
[0059] Запрос 115 пользовательского устройства представляет собой команду, поступающую от пользовательского устройства 110, на обработку части пользовательских данных. Запрос 115 пользовательского устройства включает в себя часть пользовательских данных или указание на часть пользовательских данных. Указание на часть пользовательских данных может представлять собой ссылку или указатель на часть пользовательских данных, сохраненную в базе 140 данных, или их аналог. Предполагается, что запрос 115 пользовательского устройства также может включать в себя, без установления ограничений, инструкции того, как осуществлять обработку части пользовательских данных, а также функции и/или команды, которые выполняются при обработке. Запрос 115 пользовательского устройства может представлять собой часть кода, состоящую из одного из любого числа языков программирования, которые способны работать в пространстве 137 ядра, или включать в своих наборах команд язык системного вызова. К таким языкам, без установления ограничений, относятся C++, Python, GO, php, Lua и Java.
[0060] В некоторых вариантах осуществления технологии, запрос 115 пользовательского устройства на обработку части пользовательских данных включает в себя код, который использует команды, выбранные из набора команд пространства ядра. В этом случае запрос 115 пользовательского устройства принимает форму, которая может быть напрямую обработана в пространстве 137 ядра, поскольку код, который используется при запросе 115 пользовательского устройства, использует только те команды, которые уже известны пространству 137 ядра.
[0061] В некоторых вариантах осуществления технологии, запрос 115 пользовательского устройства на обработку части пользовательских данных составляется из команд, включающих в себя по меньшей мере одну нестандартную команду. При включении в себя нестандартной команды, особенно команды, которая не принадлежит к набору команд пространства ядра, необходимо выполнять дальнейшие этапы способа после этапа получения 410.
[0062] В этом случае, процессор 130 дополнительно выполнен с возможностью определять, что запрос 115 пользовательского устройства содержит одну или несколько нестандартных команд. Процессор 130 далее передает запрос временному пространству процессора. Во временном пространстве процессора, запрос 115 пользовательского устройства может быть подготовлен для обработки пространством 137 ядра. После перехода во временное пространство процессора, способ 400 продолжается на этапе модификации запроса 115 пользовательского устройства. Запрос 115 пользовательского устройства модифицируется путем по меньшей мере перевода одной или нескольких нестандартных команд в команды пространства ядра, выбранные из набора команд пространства ядра. Каждая нестандартная команда может быть переведена в одну команду пространства ядра, в несколько команд пространства ядра, или одна команда пространства 137 ядра может быть способна занимать место множества нестандартных команд. Наконец, модифицированный запрос 115 пользовательского устройства переводится в пространство 137 ядра процессора 130 для того, чтобы продолжить способ 400, и запрос 115 пользовательского устройства находится в форме, состоящей из команд пространства ядра, которые могут быть обработаны пространством 137 ядра. Далее, способ 400 продолжается после получения запроса 115 пользовательского устройства на этапе считывания части пользовательских данных из базы 140 данных на сервере 120. В некоторых вариантах осуществления технологии, запрос 115 пользовательского устройства будет включать в себя указание на часть пользовательских данных, которая хранится в базе 140 данных.
[0063] Способ 400 продолжается на этапе выделения 430 пространства на процессоре 130 для определения среды песочницы. Среда песочницы определяется пространством или памятью, зарезервированной в пространстве 138 ядра, а также набором команд пространства ядра для выполнения обработки части пользовательских данных. Путем выделения пространства для выполнения обработки с помощью набора команд пространства ядра и изолирования пространства 137 ядра, что будет описано далее, способ 400 предоставляет пространство для безопасного выполнения запрошенной обработки. Пространство 137 ядра построено системой 100 таким образом, чтобы оно представляло собой стабильную рабочую среду и выполняло только команды из набора команд пространства ядра, это создает стабильную, изолированную рабочую среду, в которой осуществляется безопасная обработка. По этим причинам способ 400 использует пространство 137 ядра для предоставления среды песочницы. Следует отметить тем не менее, что среда песочницы не зависит от приложения, которое выполняется для предоставления безопасной обработки. Вне запроса 115 пользовательского устройства не инициируются никакие новые приложения или процессы создания среды песочницы.
[0064] Далее, способ 400 изолирует 440 процессор 130 в среде песочницы от пространства 135 пользователя для того чтобы изолированно выполнять запрос 115 пользовательского устройства с помощью набора команд пространства ядра. Например, способ 440 изолирует драйверы ядра операционной системы от пространства 135 пользователя. Драйверы ядра отвечают за работу драйверов операционной системы. Общие драйверы, такие как драйверы 320 устройств, и самой операционной системы по умолчанию не являются изолированными от не-ядерных (общих) драйверов и самой операционной системы. Например, если драйвер ядра случайно записывает неправильные адреса, то данные операционной системы или другого драйвера могут оказаться под угрозой. Если в работе одного из драйверов ядра возникает сбой, это негативно влияет на всю систему 100. Изолированные драйверы ядра, следовательно, не получают команды от изолированного пространства 137 ядра. Набор команд пространства ядра создан из стабильных стандартных вычислительных команд, которые доступны в пространстве 137 ядра, и включает в себя, без установления ограничений, следующие: socket, accept, bind, select, close, listen, read, send, batch and batch exec. (сокет, принятие, связь, выбор, закрытие, прослушивание, считывание, передача, создание пакетов и выполнение пакетов).
[0065] Часть процессора 130, которая выполняет способ 400, следовательно, может выполнять безопасную обработку путем использования только набора команд пространства ядра. Поскольку команды пространства ядра являются функциями, которые безопасно работают в пространстве 137 ядра, часть пользовательских данных обрабатывается безопасно и стабильно.
[0066] В соответствии с некоторыми неограничивающим вариантами осуществления настоящей технологии, изолирование 440 процессора 130 в среде песочницы может принимать форму первой проверки запроса 115 пользовательского устройства на обработку части пользовательских данных. Проверка запроса 115 пользовательского устройства обеспечивает то, что команды в запросе 115 пользовательского устройства либо выбираются из набора команд пространства ядра, либо того, что запрос 115 пользовательского устройства будет модифицирован в соответствии с тем, что было описано выше. Далее, после проверки команд запроса 115 пользовательского устройства на совместимость с работой в пространстве 137 пространства ядра, обработка добавляется в очередь задач на выполнение в пространстве 137 ядра.
[0067] Этап проверки также может включать в себя получение набора команд запроса 115 пользовательского устройства. Набор команд запроса далее сверяется со списком разрешенных команд, которые могут быть переданы в пространство 137 ядра. Запрос 115 пользовательского устройства также может быть проверен с помощью приложения, которое получает код запроса пользовательского устройства с помощью конкретного кода. Конкретный код отвечает за проверку кода запроса пользовательского устройства на наличие слабых мест (является ли сам код запроса пользовательского устройства потенциально нестабильным или опасным) и на наличие вредоносного кода или другого «плохого кода», который может нарушить пространство 137 ядра или работу процессора 130.
[0068] Далее, способ 400 продолжается на этапе обработки 450 части пользовательских данных в среде песочницы. Обработка 450 в среде песочницы выполняется процессором 130 с помощью команд, включенных в запрос 115 пользовательского устройства, и/или связанных с ним команд из набора команд пространства ядра.
[0069] Следующий этап способа 400 - деизолирование 460 среды песочницы из пространства 135 пользователя путем вывода указания на обработанную часть пользовательских данных. Способ 400 деизолирует драйверы ядра операционной системы из пространства 135 пользователя, снимает изолирование, которое была описано выше, и возвращает драйверы ядра в их обычное рабочее состояние. Обработанная часть пользовательских данных является конечным результатом обработки части пользовательских данных в песочнице. Указание на обработанную часть пользовательских данных может включать в себя, без установления ограничений: саму обработанную часть пользовательских данных, указание или ссылку на обработанную часть пользовательских данных, которая была сохранена в базе данных или аналогичном хранилище, сообщение об ошибке обработки, сообщение о невозможности обработки части пользовательских данных.
[0070] Наконец, способ 400 заканчивается на этапе записи указания на обработанную часть пользовательских данных в пространстве 135 пользователя процессора 130. В зависимости от системы 100, реализующей способ 400, и типа указания на обработанную часть пользовательских данных, как было описано выше, вывод способа может приобретать различные формы.
[0071] В другом неограничивающем варианте использования системы 600 в соответствии с настоящей технологией, множество процессоров 130 может быть использовано для предоставления различных одновременных сред песочницы без дополнительной нагрузки от работы множества приложений среды песочницы, как показано на Фиг. 6. Система 600 опять же включает в себя сеть 150, соединяющую узлы системы 600 друг с другом. В этом варианте осуществления сервер 620 включает в себя множество процессоров 130a-N. Каждый процессор 130a-N обладает пространством 135a-N пользователя и пространством 137a-N ядра, как и в процессоре 130, который был описан выше. Множество процессоров 130N может быть реализовано как двухядерный процессор (N=2), мультиядерный процессор 130 или просто как группа из N процессоров 130.
[0072] Используя систему 600, каждое пространство 137N ядра процессоров 130N может служить как отдельная среда песочницы. Несколько запросов 115 пользовательского устройства может быть получено и выполнено одновременно или в одно время. Например, в другом неограничивающем варианте осуществления технологии, способ 400 может обеспечивать безопасную обработку в песочнице двух запросов 115 пользовательского устройства. Вместо одного процессора 130, способ 400 использует первый процессор 130а и второй процессор 130b, как показано на Фиг. 6, где в системе 600 есть N процессоров, включая два процессора 130а и 130b.
[0073] В этом варианте осуществления технологии, способ 400 начинается на этапе получения 410 первого запроса 115 пользовательского устройства на обработку первой части пользовательских данных от пользовательского устройства 110 и второго запроса 115 пользовательского устройства на обработку второй части пользовательских данных от пользовательского устройства 110. Далее, способ 400 продолжается, как было описано выше на этапе считывания 420 первой части пользовательских данных и второй части пользовательских данных из базы 140 данных.
[0074] Способ 400 продолжается на этапе выделения 430 пространства на первом и втором процессорах 130а и 13 0b для определения первой среды песочницы и второй среды песочницы. Способ 400 далее продолжается, как было описано выше для каждого из процессоров 130а, 130b. При одновременном предоставлении двух сред песочницы могут безопасно обрабатываться две части пользовательских данных (1) одновременно и (2) без дополнительной вычислительной нагрузки от установки и выполнения дополнительного приложения среды песочницы для каждого нового экземпляра запроса 115 пользовательского устройства на обработку части пользовательских данных.
[0075] После завершения этапов изолирования, обработки и деизолирования, способ 400 завершается на этапе записи 470 первого указания на обработанную часть пользовательских данных, соответствующую первому запросу 115 пользовательского устройства, в пространстве 135а процессора 130а, и второго указания на обработанную часть пользовательских данных, соответствующую второму запросу 115 пользовательского устройства, в пространстве 135b процессора 130b.
[0076] Предполагается, что в некоторых неограничивающих вариантах осуществления способа 400, обработка первой и второй среды песочницы выполняется на первом и втором процессорах 130а и 130b одновременно. Также предполагается, что в некоторых других неограничивающих вариантах осуществления способа 400 обработка первой и второй среды песочницы выполняется на первом и втором процессорах 130а и 130b в пересекающиеся моменты времени, но при этом необязательно, что способ 400 начинается или кончается на каждом процессоре одновременно.
[0077] Далее предполагается, что первый запрос 115 пользовательского устройства и второй запрос 115 пользовательского устройства могут быть получены с различных пользовательских устройств. Также предполагается, что части пользовательских данных также могут быть сохранены на различных базах 140 данных.
[0078] С учетом вышеописанных вариантов осуществления технологии, которые были описаны и показаны со ссылкой на конкретные этапы, выполненные в определенном порядке, следует иметь в виду, что эти этапы могут быть совмещены, разделены, обладать другим порядком выполнения - все это не выходит за границы настоящей технологии. Соответственно, порядок и группировка этапов не является ограничением для настоящей технологии.
[0079] Важно иметь в виду, что не все упомянутые здесь технические результаты могут проявляться в каждом из вариантов осуществления настоящей технологии. Например, варианты осуществления настоящей технологии могут быть выполнены без проявления некоторых технических результатов, другие могут быть выполнены с проявлением других технических результатов или вовсе без них.
[0080] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, опто-волоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[0081] Таким образом, способы и системы, реализованные в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии, могут быть представлены следующим образом, представленными в пронумерованных пунктах.
[0082] ПУНКТ 1. Исполняемая на компьютере система (100) для обработки запроса (115) пользовательского устройства на обработку части пользовательских данных, исполняемая на компьютере система (100) включает в себя сервер (120, 620), содержащий процессор (130, 130а, 130b), процессор (130, 130а, 130b) обладает пространством (135) пользователя и пространством (137) ядра, процессор (130, 130а, 130b) выполнен с возможностью осуществлять:
(a) получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110),
(b) при получении запроса (115) пользовательского устройства, осуществлять считывание части пользовательских данных из базы (140) данных на сервере (120, 620),
(c) выделение на процессоре (130, 130а, 130b) пространства для определения среды песочницы, среда песочницы определяет набор команд пространства ядра процессора (130, 130а, 130b) для выполнения обработки части пользовательских данных,
(d) изолирование процессора (130, 130а, 130b) в среде песочницы от пространства (135) пользователя для того, чтобы изолированно выполнить запрос (115) пользовательского устройства с помощью набора команд пространства ядра,
(e) обработку части пользовательских данных процессором (130, 130а, 130b) в среде песочницы,
(f) деизолирование среды песочницы из пространства (135) пользователя путем вывода указания на обработанную часть пользовательских данных,
(g) запись указания на обработанную часть пользовательских данных в пространство (135) пользователя процессора (130, 130а, 130b).
[0083] ПУНКТ 2. Исполняемая на компьютере система по п. 1, в которой изолирование процессора (130, 130а, 130b) включает в себя:
(a) проверку запроса (115) пользовательского устройства на обработку части пользовательских данных, запрос (115) пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством (137) ядра; и
(b) добавление выполнения по меньшей мере одной команды из запроса (115) пользовательского устройства на выполнение строки пространства (137) ядра.
[0084] ПУНКТ 3. Исполняемая на компьютере система по одному из пп. 1 и 2, в которой указание на обработанную часть пользовательских данных является обработанной частью пользовательских данных.
[0085] ПУНКТ 4. Исполняемая на компьютере система по одному из пп. 1 и 2, в которой указание на обработанную часть пользовательских данных является сообщением пользовательскому устройству (110) о том, что часть пользовательских данных не была обработана корректно.
[0086] ПУНКТ 5. Исполняемая на компьютере система по одному из пп. 1-4, в которой:
(a) процессор (130, 130а, 130b) представляет собой первый процессор (130, 130а, 130b) и второй процессор (130, 130а, 130b);
(b) запрос (115) пользовательского устройства представляет собой первый запрос (115) пользовательского устройства обработать первую часть пользовательских данных и второй запрос (115) пользовательского устройства обработать вторую часть пользовательских данных;
(c) первый процессор (130, 130а, 130b) выполнен с возможностью выполнять обработку первого запроса (115) пользовательского устройства обработать первую часть пользовательских данных; и
(d) второй процессор (130, 130а, 130b) выполнен с возможностью выполнять обработку второго запроса (115) пользовательского устройства обработать вторую часть пользовательских данных.
[0087] ПУНКТ 6. Исполняемая на компьютере система по п. 5, в которой первый процессор (130, 130а, 130b) и второй процессор (130, 130а, 130b) выполнен с возможностью осуществлять упомянутую обработку одновременно.
[0088] ПУНКТ 7. Исполняемая на компьютере система по любому из пп. 1-6, в которой упомянутое получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) включает в себя получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) через интерфейс компиляции, выполняемый пользовательским устройством (110).
[0089] ПУНКТ 8. Исполняемая на компьютере система по любому из пп. 1-6, в которой упомянутое получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) включает в себя получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) с помощью интерфейса командной строки, интерфейс командной строки выполняется на пользовательском устройстве.
[0090] ПУНКТ 9. Исполняемая на компьютере система по любому из пп. 1-6, в которой запрос (115) пользовательского устройства на обработку части пользовательских данных составлен из команд, выбранных из набора команд пространства ядра.
[0091] ПУНКТ 10. Исполняемая на компьютере система по любому из пп. 1-6, в которой запрос (115) пользовательского устройства на обработку части пользовательских данных включает в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем процессор (130, 130а, 130b) дополнительно выполнен с возможностью выполнять:
(a) при получении запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110), определение того, что запрос (115) пользовательского устройства включает в себя по меньшей мере одну нестандартную команду;
(b) передачу запроса временному пространству процессора;
(c) модификацию во временном пространстве процессора запроса (115) пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра;
(d) передачу модифицированного запроса (115) пользовательского устройства в пространство (137) ядра процессора (130, 130а, 130b); и
(e) продолжение упомянутого считывания части пользовательских данных из базы (140) данных сервера (120, 620).
[0092] ПУНКТ 11. Способ (400) для обработки запроса (115) пользовательского устройства на обработку части пользовательских данных, исполняемый на компьютере способ (100) выполняется на исполняемой на компьютере системе, которая включает в себя сервер (120, 620), содержащий процессор (130, 130а, 130b), процессор (130, 130а, 130b) обладает пространством (135) пользователя и пространством (137) ядра, процессор (130, 130а, 130b) выполнен с возможностью осуществлять способ, который включает в себя:
(a) получение (410) запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110);
(b) при получении запроса (115) пользовательского устройства, осуществлять считывание (420) части пользовательских данных из базы (140) данных на сервере (120, 620);
(c) выделение (430) на процессоре (130, 130а, 130b) пространства для определения среды песочницы, среда песочницы определяет набор команд пространства ядра процессора (130, 130а, 130b) для выполнения обработки части пользовательских данных;
(d) изолирование (440) процессора (130, 130а, 130b) в среде песочницы от пространства (135) пользователя для того, чтобы изолированно выполнить запрос (115) пользовательского устройства с помощью набора команд пространства ядра;
(e) обработку (450) части пользовательских данных в среде песочницы;
(f) деизолирование (460) среды песочницы из пространства (135) пользователя путем вывода указания на обработанную часть пользовательских данных; и
(g) запись (470) указания на обработанную часть пользовательских данных в пространство (135) пользователя процессора (130, 130а, 130b).
[0093] ПУНКТ 12. Исполняемый на компьютере способ по п. 11, в котором изолирование (440) процессора (130, 130а, 130b) включает в себя:
(a) проверку запроса (115) пользовательского устройства на обработку части пользовательских данных, запрос (115) пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством (137) ядра; и
(b) добавление выполнения по меньшей мере одной команды из запроса (115) пользовательского устройства на выполнение строки пространства (137) ядра.
[0094] ПУНКТ 13. Исполняемая на компьютере способ по одному из пп. 11 и 12, в котором указание на обработанную часть пользовательских данных является обработанной частью пользовательских данных.
[0095] ПУНКТ 14. Исполняемый на компьютере способ по одному из пп. 11 и 12, в котором указание на обработанную часть пользовательских данных является сообщением пользователю о том, что часть пользовательских данных не была обработана корректно.
[0096] ПУНКТ 15. Исполняемый на компьютере способ по одному из пп. 11-4, в котором:
(a) процессор (130, 130а, 130b) представляет собой первый процессор (130, 130а, 130b) и второй процессор (130, 130а, 130b);
(b) запрос (115) пользовательского устройства представляет собой первый запрос (115) пользовательского устройства обработать первую часть пользовательских данных и второй запрос (115) пользовательского устройства обработать вторую часть пользовательских данных; и в котором:
(c) первый процессор (130, 130а, 130b) выполнен с возможностью выполнять обработку первого запроса (115) пользовательского устройства обработать первую часть пользовательских данных, и
(d) второй процессор (130, 130а, 130b) выполнен с возможностью выполнять обработку второго запроса (115) пользовательского устройства обработать вторую часть пользовательских данных.
[0097] ПУНКТ 16. Исполняемый на компьютере способ по п.15, в котором первый процессор (130, 130а, 130b) и второй процессор (130, 130а, 130b) выполнены с возможностью осуществлять исполняемый на компьютере способ одновременно.
[0098] ПУНКТ 17. Исполняемый на компьютере способ по любому из пп. 11-16, в котором упомянутое получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) включает в себя получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) через интерфейс компиляции, выполняемый пользовательским устройством (110).
[0099] ПУНКТ 18. Исполняемый на компьютере способ по любому из пп. 11-16, в котором упомянутое получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) включает в себя получение запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110) через интерфейс командной строки, выполняемый пользовательским устройством (110).
[00100] ПУНКТ 19. Исполняемый на компьютере способ по любому из пп. 11-18, в котором запрос (115) пользовательского устройства составлен из команд, выбранных из набора команд пространства ядра.
[00101] ПУНКТ 20. Исполняемый на компьютере способ по любому из пп. 11-18, в котором запрос (115) пользовательского устройства включает в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем исполняемый на компьютере способ дополнительно включает в себя:
(a) при получении запроса (115) пользовательского устройства на обработку части пользовательских данных от пользовательского устройства (110), определение того, что запрос (115) пользовательского устройства включает в себя по меньшей мере одну нестандартную команду;
(b) передачу запроса временному пространству процессора;
(c) модификацию во временном пространстве процессора запроса (115) пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра;
(d) передачу модифицированного запроса (115) пользовательского устройства в пространство (137) ядра процессора (130, 130а, 130b); и
(e) продолжение упомянутого считывания части пользовательских данных из базы (140) данных сервера (120, 620).
[00102] Настоящая технология предоставляет некоторые преимущества по сравнению с известным уровнем техники. Предлагаемые способ и система обработки данных в исполняемой на компьютере системе с помощью среды песочницы в пространстве ядра, безопасная обработка данных может достигаться при уменьшении временных и энергетических затрат. Предлагаемый способ предоставления среды песочницы не требует дополнительных программных приложений, а время обработки и энергетические затраты снижаются. При одновременном предоставлении двух или более сред песочницы могут безопасно обрабатываться две части пользовательских данных (1) одновременно и (2) без дополнительной вычислительной нагрузки от установки и выполнения дополнительного приложения среды песочницы для каждого нового экземпляра запроса (115) пользовательского устройства на обработку части пользовательских данных.
[00103] Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к области безопасной обработки части данных в среде для безопасного исполнения компьютерных программ. Технический результат заключается в повышении безопасности при обработке части данных. Технический результат достигается за счет сервера, содержащего процессор, который обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, при получении запроса пользовательского устройства осуществлять считывание части пользовательских данных из базы данных на сервере, выделение пространства на процессоре для определения среды песочницы, которая определяет набор команд пространства ядра для выполнения обработки части пользовательских данных, изолирование процессора в среде песочницы для того, чтобы изолированно выполнить запрос с помощью набора команд пространства ядра, обработку части пользовательских данных в среде песочницы, деизолирование среды песочницы из пространства пользователя путем вывода указания на обработанную часть пользовательских данных и запись указания в пространство пользователя процессора. 2 н. и 18 з.п. ф-лы, 6 ил.
1. Исполняемая на компьютере система для обработки запроса пользовательского устройства на обработку части пользовательских данных, включающая в себя:
сервер, содержащий процессор, который обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять:
получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства;
при получении запроса пользовательского устройства осуществлять считывание части пользовательских данных из базы данных на сервере;
выделение на процессоре пространства для определения среды «песочницы», среда «песочницы» определяется набором команд пространства ядра процессора для выполнения обработки части пользовательских данных;
изолирование процессора в среде «песочницы» от пространства пользователя для того, чтобы изолированно выполнить запрос пользовательского устройства с помощью набора команд пространства ядра;
обработку части пользовательских данных процессором в среде «песочницы»;
деизолирование среды «песочницы» из пространства пользователя путем вывода указания на обработанную часть пользовательских данных; и
запись указания на обработанную часть пользовательских данных в пространство пользователя процессора.
2. Исполняемая на компьютере система по п. 1, в которой процессор выполнен с возможностью осуществлять при изолировании процессора:
проверку запроса пользовательского устройства на обработку части пользовательских данных, запрос пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством ядра; и
добавление выполнения по меньшей мере одной команды из запроса пользовательского устройства на выполнение строки пространства ядра.
3. Исполняемая на компьютере система по п. 1, в которой процессор выполнен с возможностью осуществлять запись указания на обработанную часть пользовательских данных, являющегося обработанной частью пользовательских данных.
4. Исполняемая на компьютере система по п. 1, в которой процессор выполнен с возможностью осуществлять запись указания на обработанную часть пользовательских данных, являющуюся сообщением пользовательскому устройству о том, что часть пользовательских данных не была обработана корректно.
5. Исполняемая на компьютере система по п. 1, в которой:
процессор представляет собой первый процессор и второй процессор;
запрос пользовательского устройства представляет собой первый запрос пользовательского устройства обработать первую часть пользовательских данных и второй запрос пользовательского устройства обработать вторую часть пользовательских данных;
первый процессор выполнен с возможностью выполнять обработку первого запроса пользовательского устройства для того, чтобы обработать первую часть пользовательских данных;
второй процессор выполнен с возможностью выполнять обработку второго запроса пользовательского устройства для того, чтобы обработать вторую часть пользовательских данных.
6. Исполняемая на компьютере система по п. 5, в которой первый процессор и второй процессор выполнены с возможностью осуществлять упомянутую обработку одновременно.
7. Исполняемая на компьютере система по п. 1, в которой при упомянутом получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс компиляции, выполняемый пользовательским устройством.
8. Исполняемая на компьютере система по п. 1, в которой при упомянутом получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс командной строки, выполняемый клиентским устройством.
9. Исполняемая на компьютере система по п. 1, в которой процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных, составленного из команд, выбранных из набора команд пространства ядра.
10. Исполняемая на компьютере система по п. 1, в которой процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных, включающего в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем процессор дополнительно выполнен с возможностью выполнять:
при получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства определение того, что запрос пользовательского устройства включает в себя по меньшей мере одну нестандартную команду;
передачу запроса пользовательского устройства временному пространству процессора;
модификацию во временном пространстве процессора запроса пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра;
передачу модифицированного запроса пользовательского устройства в пространство ядра процессора; и
продолжение упомянутого считывания части пользовательских данных из базы данных на сервере.
11. Исполняемый на компьютере способ обработки запроса пользовательского устройства на обработку части пользовательских данных выполняется на исполняемой на компьютере системе, которая включает в себя сервер, содержащий процессор, процессор обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять способ, который включает в себя:
получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства;
при получении запроса пользовательского устройства осуществлять считывание части пользовательских данных из базы данных на сервере;
выделение на процессоре пространства для определения среды «песочницы», среда «песочницы» определяется набором команд пространства ядра процессора для выполнения обработки части пользовательских данных;
изолирование процессора в среде «песочницы» от пространства пользователя для того, чтобы изолированно выполнить запрос пользовательского устройства с помощью набора команд пространства ядра;
обработку части пользовательских данных в среде «песочницы»;
деизолирование среды «песочницы» из пространства пользователя путем вывода указания на обработанную часть пользовательских данных; и
запись указания на обработанную часть пользовательских данных в пространство пользователя процессора.
12. Исполняемый на компьютере способ по п. 11, в котором при изолировании процессора выполняют:
проверку запроса пользовательского устройства на обработку части пользовательских данных, запрос пользовательского устройства включает в себя указание на часть пользовательских данных и по меньшей мере одну команду, которая будет выполнена для обработки части пользовательских данных пространством ядра; и
добавление выполнения по меньшей мере одной команды из запроса пользовательского устройства на выполнение строки пространства ядра.
13. Исполняемый на компьютере способ по п. 11, в котором указание на обработанную часть пользовательских данных является обработанной частью пользовательских данных.
14. Исполняемый на компьютере способ по п. 11, в котором указание на обработанную часть пользовательских данных является сообщением пользователю о том, что часть пользовательских данных не была обработана корректно.
15. Исполняемый на компьютере способ по п. 11, в котором:
процессор представляет собой первый процессор и второй процессор;
запрос пользовательского устройства представляет собой первый запрос пользовательского устройства обработать первую часть пользовательских данных и второй запрос пользовательского устройства обработать вторую часть пользовательских данных; и в котором:
посредством первого процессора выполняют обработку первого запроса пользовательского устройства для того, чтобы обработать первую часть пользовательских данных, и
посредством второго процессора выполняют обработку второго запроса пользовательского устройства для того, чтобы обработать вторую часть пользовательских данных.
16. Исполняемый на компьютере способ по п. 15, в котором посредством первого процессора и второго процессора осуществляют исполняемый на компьютере способ одновременно.
17. Исполняемый на компьютере способ по п. 11, в котором при упомянутом получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства выполняют получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс компиляции, выполняемый пользовательским устройством.
18. Исполняемый на компьютере способ по п. 11, в котором при упомянутом получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства выполняют получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства через интерфейс командной строки, выполняемый пользовательским устройством.
19. Исполняемый на компьютере способ по п. 11, в котором запрос пользовательского устройства составлен из команд, выбранных из набора команд пространства ядра.
20. Исполняемый на компьютере способ по п. 11, в котором запрос пользовательского устройства включает в себя по меньшей мере одну нестандартную команду, и по меньшей мере одна нестандартная команда не входит в набор команд пространства ядра, и причем в исполняемом на компьютере способе дополнительно выполняют:
при получении запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства определение того, что запрос пользовательского устройства включает в себя по меньшей мере одну нестандартную команду;
передачу запроса пользовательского устройства временному пространству процессора;
модификацию во временном пространстве процессора запроса пользовательского устройства на обработку части пользовательских данных, упомянутая модификация включает в себя перевод по меньшей мере одной нестандартной команды по меньшей мере в одну команду пространства ядра из набора команд пространства ядра;
передачу модифицированного запроса пользовательского устройства в пространство ядра процессора; и
продолжение упомянутого считывания части пользовательских данных из базы данных на сервере.
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПУТЕМ СОЗДАНИЯ ИЗОЛИРОВАННОЙ СРЕДЫ | 2012 |
|
RU2535175C2 |
СИСТЕМА И СПОСОБ ЗАЩИТЫ КОМПЬЮТЕРНЫХ ПРИЛОЖЕНИЙ | 2011 |
|
RU2460133C1 |
Авторы
Даты
2017-01-10—Публикация
2015-09-28—Подача