Система и способ обработки данных в исполняемой на компьютере системе

Иллюстрации

Показать все

Изобретение относится к области безопасной обработки части данных в среде для безопасного исполнения компьютерных программ. Технический результат заключается в повышении безопасности при обработке части данных. Технический результат достигается за счет сервера, содержащего процессор, который обладает пространством пользователя и пространством ядра, процессор выполнен с возможностью осуществлять получение запроса пользовательского устройства на обработку части пользовательских данных от пользовательского устройства, при получении запроса пользовательского устройства осуществлять считывание части пользовательских данных из базы данных на сервере, выделение пространства на процессоре для определения среды песочницы, которая определяет набор команд пространства ядра для выполнения обработки части пользовательских данных, изолирование процессора в среде песочницы для того, чтобы изолированно выполнить запрос с помощью набора команд пространства ядра, обработку части пользовательских данных в среде песочницы, деизолирование среды песочницы из пространства пользователя путем вывода указания на обработанную часть пользовательских данных и запись указания в пространство пользователя процессора. 2 н. и 18 з.п. ф-лы, 6 ил.

Реферат

ПЕРЕКРЕСТНАЯ ССЫЛКА

[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. В некоторых вариантах осуществления технолог