[go: up one dir, main page]

RU2626350C1 - Method of functioning computer device operating system of software and hardware complex - Google Patents

Method of functioning computer device operating system of software and hardware complex Download PDF

Info

Publication number
RU2626350C1
RU2626350C1 RU2016113545A RU2016113545A RU2626350C1 RU 2626350 C1 RU2626350 C1 RU 2626350C1 RU 2016113545 A RU2016113545 A RU 2016113545A RU 2016113545 A RU2016113545 A RU 2016113545A RU 2626350 C1 RU2626350 C1 RU 2626350C1
Authority
RU
Russia
Prior art keywords
operating system
level
state
software
execution
Prior art date
Application number
RU2016113545A
Other languages
Russian (ru)
Inventor
Андрей Сергеевич Моляков
Original Assignee
Андрей Сергеевич Моляков
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Андрей Сергеевич Моляков filed Critical Андрей Сергеевич Моляков
Priority to RU2016113545A priority Critical patent/RU2626350C1/en
Application granted granted Critical
Publication of RU2626350C1 publication Critical patent/RU2626350C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: physics.
SUBSTANCE: sequentially, one by one, initialization of the components of the hypervisor is carried out, which has an 8-level hierarchical structure for executing commands, load of the controlling microkernel operating system on the nodes of the multiprocessor computer system with a parallel multitran architecture, each process-thread of which has two statuses - manager or subordinate, a compiler, a microassembler and an autonomous subsystem of fault tolerance. The proxy module of client requests, guest operating systems is loaded, the lists of requests for resource allocation is received, then the stage of preparing the task for execution is carried out.
EFFECT: increasing the effectiveness of malicious software detection and the level of protection of the computing device operating system.
3 cl, 1 dwg, 5 tbl

Description

Изобретение относится к вычислительной технике, а именно к операционным системам многопроцессорных электронно-вычислительных машин, являющихся частью программно-аппаратных комплексов и может быть использовано в таких областях техники как квантовая информатика, метеорология, геологическая разведка, а также при выполнении задач, связанных с интенсивным нерегулярным обращением к памяти вычислительного устройства (DIS-задачи), высокоскоростной обработкой сигналов и изображений и работой с хранилищами разнородной информации большого размера (RDF - базы данных).The invention relates to computer technology, and in particular to operating systems of multiprocessor electronic computers that are part of hardware and software systems and can be used in such fields of technology as quantum informatics, meteorology, geological exploration, and also when performing tasks associated with intensive irregular memory access to the computing device (DIS-tasks), high-speed processing of signals and images, and work with storages of heterogeneous information of large size measure (RDF - database).

Известны мультитредовые устройства процессоров электронно-вычислительных машин, выполняющих различные вычислительные задачи, имеющие в своем составе, в том числе, системы отказоустойчивости (см., RU, 133952 U1, кл. G06F 11/07, опублик. 27.10.2013; US, 2014351565 A1, кл. G06F 9/308, опублик. 27.11.2014; US, 9256496 B1, кл. G06F 11/00, опублик. 09.02.2016).Known multi-threading devices of processors of electronic computers that perform various computing tasks, including, among other things, fault tolerance systems (see, RU, 133952 U1, class G06F 11/07, published. 10.27.2013; US, 2014351565 A1, CL G06F 9/308, published 11/27/2014; US, 9256496 B1, CL G06F 11/00, published 09/02/2016).

Недостатками известных технических решений являются отсутствие встроенной защиты данных, команд и тредовых устройств, отсутствие поддержки глобально-адресуемой памяти и эмуляции разных типов процессов-тредов (сверхлегких ядер графических процессоров, средних ядер RISC-микропроцессоров типа MIPS, легких ядер векторных процессоров с поддержкой SIMD-режима).The disadvantages of the known technical solutions are the lack of built-in protection of data, commands and threading devices, the lack of support for globally addressable memory and emulation of various types of thread processes (ultralight cores of GPUs, medium cores of RISC microprocessors like MIPS, light cores of vector processors with SIMD support mode).

Известен способ организации виртуальной архитектуры неоднородной для виртуальных машин памяти в многопроцессорной ЭВМ на основе создания экземпляра виртуальной машины с присущими ей конкретными рабочими характеристиками, выбора топологии виртуальных узлов, регулирующих нагрузку на память, дополнительно многопроцессорная ЭВМ содержит вычислительную систему и считываемый компьютерный носитель, по способу функционирования и совокупности существенных признаков, принятый за ближайший аналог (прототип) изобретения (см. RU, 2569805 C2, кл. G06F 12/02, опублик. 27.11.2015).A known method of organizing a virtual architecture of heterogeneous memory for virtual machines in a multiprocessor computer based on creating an instance of a virtual machine with specific operational characteristics inherent in it, choosing the topology of virtual nodes that regulate the memory load, additionally, the multiprocessor computer contains a computing system and readable computer medium, according to the way of functioning and the set of essential features adopted for the closest analogue (prototype) of the invention (see RU, 2569805 C2, class G06F 1 2/02, published. 11.27.2015).

Недостатками известного технического решения являются отсутствие реализованных механизмов для работы через единое адресное пространство с объемом памяти не менее нескольких десятков петабайт, отсутствие контроля контекстно-зависимых переходов при обработке запросов пользователей операционной системы (ОС) на выделение ресурсов, отсутствие процедуры верификации и блокирования выполнения недопустимых команд еще на этапе подготовки задачи, перед передачей опкода инструкции на выполнение аппаратным ядрам микропроцессора или контроллеру периферийного оборудования, а также классический FIFO стэк с ограничениями на размер передаваемых данных в несколько сотен байт.The disadvantages of the known technical solution are the lack of implemented mechanisms for working through a single address space with a memory capacity of at least several dozen petabytes, the lack of control of context-sensitive transitions when processing requests from users of the operating system (OS) for allocation of resources, the lack of verification procedures and blocking the execution of invalid commands even at the stage of preparing the task, before transmitting the opcode instructions for the execution of the microprocessor hardware cores or control Yeru peripheral equipment, as well as classic FIFO stack with restrictions on the size of the transmitted data of several hundred bytes.

Задачей, на решение которой направлено заявляемое изобретение, является повышение эффективности обнаружения вредоносного программного обеспечения (ПО) в компонентах гипервизоров, гостевых операционных систем (ОС) пользователей в реальном времени множества интенсивных потоков данных, а также повышение отказоустойчивости операционной системы, управляющей работой вычислительного устройства.The task to which the claimed invention is directed is to increase the efficiency of detecting malicious software (software) in the components of hypervisors, guest operating systems (OS) of users in real time of a lot of intensive data streams, as well as to increase the fault tolerance of the operating system that controls the operation of the computing device.

Достигаемый при этом технический результат, заключающийся в повышении эффективности обнаружения вредоносного программного обеспечения и уровня защищенности операционной системы вычислительного устройства, обеспечивается за счет того, что в способе функционирования операционной системы вычислительного устройства программно-аппаратного комплекса, согласно изобретению, последовательно один за другим осуществляют инициализацию компонентов гипервизора, имеющего 8-ми уровневую иерархическую структуру выполнения команд, загрузку на узлах многопроцессорной вычислительной системы управляющей микроядерной операционной системы с параллельной мультредовой архитектурой, каждый процесс-тред которой имеет два статуса - управляющий или подчиненный, снабженной компиллятором, микроассемблером и автономной подсистемой отказоустойчивости, загрузку проксирующего модуля клиентских запросов, формирующего набор таблиц безопасных операций и обменивающегося данными с модулем верификации команд, загрузку гостевых операционных систем и получение списков запросов на выделение ресурсов, затем осуществляют этап подготовки задачи к выполнению, во время которого модуль верификации команд с помощью конвейера обработки семантических запросов посредством маркерного сканирования осуществляет проверку набора кортежей логических переменных генеративных таблиц, а именно опкода команд Opcode, идентификатора домена Dom_id, признака системности S, признака иерархии Ord, метки доступа к памяти Context_type, идентификации транзакции пользователя на выделение ресурсов Context_id, метки поля для контроля результатов выполнения запроса tcu с оценкой допустимости выполнения операций в виде разрешенных и запрещенных значений функции состояния, параметры поступивших запросов анализируют с помощью цикла на основе значения функции оценки состояния, в случае, если значением функции состояния является параметр «Да», процесс добавляют в список разрешенных к выполнению, в случае, если значением функции состояния является параметр «Нет», процесс блокируют, формируют список запрещенных процессов и создают обновляемую базу данных вредоносного программного обеспечения с оповещением администратора безопасности, затем с помощью признака иерархии Ord определяют является ли запущенный процесс-поток базовым с максимальным уровнем полномочий, которому присваивают значение «0», либо порожденным, которому присваивают значение «1» с уровнем полномочий в виде приложения, информацию обо всех процессах-потоках обрабатываемых операционной системой получают путем анализа значений идентификаторов транзакции пользователя на выделение ресурсов Context_id, механизм обращения к функциям операционной системы осуществляют посредством модели взаимодействия «клиент-сервер», в которой роль транспортных средств выполняет микроядро операционной системы, контроль активности сетевых приложений и входящих/исходящих пакетов данных осуществляют на основе таблиц безопасных операций, создаваемых проксирующим модулем клиентских запросов.The technical result achieved in this case, which consists in increasing the efficiency of detecting malicious software and the level of security of the operating system of the computing device, is ensured by the fact that in the method of operating the operating system of the computing device of the software and hardware complex, according to the invention, the components are initialized sequentially one after the other a hypervisor having an 8-level hierarchical structure of command execution, loading onto the halls of a multiprocessor computing system of a controlling microkernel operating system with a parallel multredited architecture, each process thread of which has two statuses - manager or subordinate, equipped with a compiler, microassembler and autonomous fault tolerance subsystem, loading the proxy module of client requests, forming a set of tables of safe operations and exchanging data with command verification module, loading guest operating systems and receiving lists of requests for allocation resources, then they carry out the stage of preparing the task for execution, during which the command verification module using the semantic query processing pipeline uses marker scanning to check the set of tuples of logical variables of generative tables, namely the Opcode command opcode, Dom_id domain identifier, system attribute S, hierarchy attribute Ord, Context_type memory access tags, user transaction identification for allocating Context_id resources, field labels for monitoring tcu query results with by assessing the admissibility of operations in the form of allowed and forbidden values of the state function, the parameters of the received requests are analyzed using a cycle based on the value of the state assessment function, if the value of the state function is “Yes”, the process is added to the list of allowed for execution, if if the value of the status function is “No”, the process is blocked, a list of prohibited processes is created and an updated database of malicious software is created with an alert m of the security administrator, then, using the attribute of the Ord hierarchy, they determine whether the running process thread is basic with the maximum level of authority, which is assigned the value “0”, or generated, which is assigned the value “1” with the level of authority in the form of an application, information about all processes - streams processed by the operating system are obtained by analyzing the values of user transaction identifiers for allocating Context_id resources, the mechanism for accessing the operating system functions is performed by m model of interaction "client-server", in which the role of the vehicle performs microkernel operating system, control the activity of network applications and incoming / outgoing data packets is carried out on the basis of safe operations tables created module proxies client requests.

Кроме того, генеративные таблицы представляют собой семантическую часть кодирования цепочек клиентских запросов, формирующихся на этапе подготовки задачи, при этом, проверку всего набора переменных генеративных таблиц осуществляют перед запуском каждого процесса-треда.In addition, generative tables represent the semantic part of coding chains of client requests that are formed at the stage of task preparation, and the entire set of variables of generative tables is checked before starting each process thread.

Кроме того, полное динамическое состояние запущенных процесс-потоков операционной системы характеризуют следующими параметрами, а именно, «Рабочее состояние» с режимами «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание», «Состояние блокировки рабочего состояния» и «Состояние переходного процесса», переходящее либо в «Рабочее состояние», либо в «Состояние блокировки» в зависимости от наличия в операционной системе уже выданных на выполнение, но еще незавершенных команд.In addition, the full dynamic state of running process flows of the operating system is characterized by the following parameters, namely, “Operating state” with the modes “Free”, “Reserved”, “Passive”, “Active”, “Delayed” and “Waiting”, “ Blocking status of the operating state ”and“ Transitional state ”, which goes either to“ Operational state ”or“ Blocking state ”, depending on the presence in the operating system of already issued but still incomplete commands.

Осуществление предложенного способа функционирования операционной системы вычислительного устройства в программно-аппаратных комплексах имеет следующий ряд преимуществ:Implementation of the proposed method for the operation of the operating system of a computing device in hardware and software systems has the following advantages:

- во-первых, в заявляемом способе функционирования операционной системы реализована мультидоменная защита, то есть используется 4 кольца защиты, в то время как в традиционных операционных системах, например, класса Unix и Windows NT, используются только 2 кольца защиты;- firstly, in the claimed method of operating the operating system, multi-domain protection is implemented, that is, 4 protection rings are used, while in traditional operating systems, for example, the Unix and Windows NT classes, only 2 protection rings are used;

- во-вторых, введена поддержка восьми уровней привилегий выполнения команд, что позволяет реализовать многоуровневую («усиленную») ролевую политику безопасности. При этом каждый процесс-тред может иметь два статуса - базовый (управляющий) или дочерний (подчиненный);- secondly, support for eight levels of privileges for executing commands has been introduced, which allows implementing a multi-level ("enhanced") role-based security policy. In addition, each process thread can have two statuses - basic (manager) or child (subordinate);

- в-третьих, вместо классического FIFO стэка реализован конвейер обработки семантических запросов;- thirdly, instead of the classic FIFO stack, a pipeline for processing semantic queries is implemented;

- в-четвертых, нет ограничений на размер передаваемых данных, поскольку при обработке списков запросов вместо использования программных косвенных ссылок языка Си/Си++, как это сделано в классических операционных системах, контроль переходов осуществляется с помощью инициализированных модулем верификации команд маркеров, что позволяет операционной системе обрабатывать огромные потоки информации (блоки размером в несколько десятков Пбайт);- fourthly, there is no restriction on the size of the transmitted data, since when processing request lists instead of using indirect C / C ++ indirect links, as is done in classical operating systems, transition control is performed using marker commands initialized by the verification module, which allows the operating system to process huge streams of information (blocks several tens of bytes in size);

- в-пятых, введен контроль выполнения операций микропроцессором на уровне модуля аппаратной виртуализации (S8): перед запуском каждого процесса-треда сначала идет проверка всего набора переменных генеративных таблиц для каждого запускаемого процесса-треда вместо классического сигнатурного распознавания, используемого в традиционных операционных системах. Если операция нарушает требования политики безопасности, то опкод операции не передается на выполнение аппаратным ядрам микропроцессорного устройства;fifthly, a microprocessor control has been introduced at the level of the hardware virtualization module (S8): before starting each thread process, the whole set of variable generative tables for each launched thread process is checked first instead of the classic signature recognition used in traditional operating systems. If the operation violates the requirements of the security policy, then the opcode of the operation is not transferred to the microprocessor device's hardware cores;

- в-шестых, реализована эмуляция разных типов процессов-тредов (сверхлегких ядер графических процессоров, легких ядер векторных процессоров с поддержкой SIMD-режима, средних ядер RISC-микропроцессоров типа MIPS и тяжелых ядер суперскалярных микропроцессоров с архитектурой х86);- sixth, emulation of various types of thread processes (ultralight cores of graphic processors, light cores of vector processors with SIMD support, medium cores of RISC microprocessors like MIPS and heavy cores of superscalar microprocessors with x86 architecture) has been implemented;

- в-седьмых, реализована поддержка всех типов гипервизоров (XEN, KVM, VMWare ESX, Microsoft Hyper-V и т.п.);- seventh, support for all types of hypervisors (XEN, KVM, VMWare ESX, Microsoft Hyper-V, etc.) is implemented;

- в-восьмых, встроена поддержка глобально-адресуемой памяти размером в несколько десятков Пбайт (32 Пбайт);- eighth, built-in support for globally addressable memory of a few tens of Pbytes (32 Pbytes) in size;

- в-девятых, для работы операционной системы вычислительного устройства разработаны собственный компиллятор, выполняющий статический межпроцедурный анализ для оптимизации размещения тестов переполнения и микроассемблер, изготовленные с использованием отечественной элементной базы,- ninth, for the operation of the operating system of the computing device, a proprietary compiler has been developed that performs static interprocedural analysis to optimize the placement of overflow tests and microassembler manufactured using the domestic element base,

- в-десятых, для более эффективной работы операционной системы вычислительного устройства разработан прозрачный контроль контекстно-зависимых переходов при выполнении команд посредством набора специальных регистровых полей W - «рабочее состояние», В - «состояние блокировки рабочего состояния», Т - «признак переходного процесса либо в рабочее, либо заблокированное состояние»;- tenth, for more efficient operation of the operating system of the computing device, transparent control of context-sensitive transitions is developed when executing commands by means of a set of special register fields W - “working state”, B - “state lock of the working state”, T - “sign of the transition process either in working or locked state ”;

- в-одиннадцатых, в управляющей операционной системе реализованы механизмы корректной блокировки недопустимых операций на всех уровнях иерархии выполнения команд, встроена подсистема отказоустойчивости в виде «горячего» резервирования. Дополнительно, использование 4-х колец защиты позволяет изолировать наиболее критичный код операционной системы от клиентских приложений и диспетчера работы с оборудованием;- eleventh, the control operating system implements mechanisms for correctly blocking invalid operations at all levels of the command execution hierarchy; a fault tolerance subsystem in the form of “hot” redundancy is built in. Additionally, the use of 4 protection rings allows isolating the most critical operating system code from client applications and the dispatcher of work with equipment;

- в двенадцатых, в операционной системе вычислительного устройства реализована возможность получения информации обо всех запущенных процессах-потоках, что делает используемую операционную систему гибкой и «прозрачной» для программистов и вирусных аналитиков, а, следовательно, не остается тех состояний неопределенности, которые были бы не разрешимы во всем диапазоне состояний процесс-потоков, также отсутствуют неявные операций по изменению контекстно-зависимых переходов, которые не были формализованы и не контролировались.- in the twelfth, in the operating system of the computing device, it is possible to obtain information about all running processes-threads, which makes the operating system used flexible and transparent for programmers and virus analysts, and therefore there are no states of uncertainty that would not be they are solvable in the entire range of states of process flows; there are also no implicit operations for changing context-dependent transitions that were not formalized and not controlled.

Таким образом, отличия заявляемого способа функционирования операционной системы вычислительного устройства программно-аппаратного комплекса от функционирования классических операционных систем следующие:Thus, the differences between the proposed method of functioning of the operating system of a computing device of a hardware-software complex from the functioning of classical operating systems are as follows:

- реализована мультидоменная защита;- implemented multi-domain protection;

- введена поддержка 8-ми уровней привилегий выполнения команд. Количество таких процессов с учетом 8 уровней иерархии выполнения команд равно 16. Число доменов защиты также равно 16. Таким образом, существует устойчивая связь запускаемых процессов-тредов с аппаратными доменами защиты;- introduced support for 8 levels of privileges for command execution. The number of such processes, taking into account the 8 levels of the command execution hierarchy, is 16. The number of protection domains is also 16. Thus, there is a stable connection between the launched process threads and the hardware protection domains;

- реализован конвейер обработки семантических запросов. Данные клиентских запросов и их опкоды команд представлены в виде набора кортежей переменных генеративных таблиц. Для формирования запросов используется непроцедурные языки типа AMBIT и Рефал. Работа осуществляется с виртуальным единым адресным пространством в несколько Петабайт;- Implemented a pipeline for processing semantic queries. The data of client requests and their opcodes of commands are presented as a set of tuples of variable generative tables. Non-procedural languages such as AMBIT and Refal are used to form queries. Work is carried out with a virtual single address space of several Petabytes;

- отсутствуют ограничения на размер передаваемых данных (например, в процессорах семейства х86 размер стэка 256 байт, формат данных не более 64347 байт, при превышении указанного резерва возникает отказ в обслуживании). Если, на этапе подготовки задачи, не инициализированы все поля записи генеративных таблиц (в результате попытки сформировать запрос в виде некорректной операции, нарушения сегментов адресации, переполнения буфера обрабатываемых данных и т.д.), то данный запрос блокируется и не отправляется на выполнение аппаратному устройству;- there are no restrictions on the size of the transmitted data (for example, in processors of the x86 family, the stack size is 256 bytes, the data format is not more than 64347 bytes, and when the specified reserve is exceeded, a denial of service occurs). If, at the stage of preparation of the task, all the fields for writing the generative tables are not initialized (as a result of an attempt to generate a request in the form of an incorrect operation, violation of address segments, buffer overflow of the processed data, etc.), then this request is blocked and is not sent to the hardware device

- реализована эмуляция разных типов процессов-тредов. При этом все запросы к аппаратным устройствам (контроллеру кэш-памяти и DMA-устройствам, сетевому сопроцессору и т.д.) представлены в виде семантических запросов с оценкой допустимости выполнения операций в виде разрешенных и запрещенный значений функции Fi;- Implemented emulation of different types of thread processes. Moreover, all requests to hardware devices (cache controller and DMA devices, network coprocessor, etc.) are presented in the form of semantic queries with an assessment of the admissibility of operations in the form of allowed and forbidden values of the Fi function;

- операционная система имеет параллельную мультитредовую архитектуру и представляет собой распределенную микроядерную систему с встроенной подсистемой отказоустойчивости;- the operating system has a parallel multi-thread architecture and is a distributed microkernel system with a built-in fault tolerance subsystem;

- в состав операционной системы введены два новых модуля: проксирующий модуль, перехватывающий обращения к обработчику прерываний и менеджеру памяти и осуществляющий контроль операций ввода-вывода при работе с эмуляторами устройств, а также модуль верификации, контролирующий выполнение команд на уровне исполнительного региона процессора;- two new modules were introduced into the operating system: a proxy module that intercepts calls to the interrupt handler and memory manager and monitors I / O operations when working with device emulators, as well as a verification module that controls the execution of commands at the level of the processor's executive region;

- в операционной системе внедрена встроенная защита данных, команд и тредовых устройств посредством реализации маркерного сканирования, что позволяет создать изолированную программно-аппаратную среду для выполнения задач и обнаруживать вредоносное программное обеспечение на всех восьми уровнях иерархии выполнения команд.- the operating system has integrated protection for data, commands and threading devices through the implementation of marker scanning, which allows you to create an isolated software and hardware environment for tasks and detect malicious software at all eight levels of the command execution hierarchy.

Заявляемое изобретение иллюстрируется изображением блок-схемы, наиболее полно иллюстрирующей алгоритм функционирования операционной системы вычислительного устройства программно-аппаратного комплекса.The claimed invention is illustrated by the image of a flowchart that most fully illustrates the algorithm of functioning of the operating system of a computing device of a hardware-software complex.

На блок-схеме наглядно иллюстрируется способ функционирования операционной системы программно-аппаратного комплекса, который позволяет обнаружить вредоносное программное обеспечение в компонентах гипервизора, гостевых операционных системах, когда в качестве входных параметров используются списки запросов от гостевых операционных систем, пользователей виртуальных машин, которые представляются определенным набором операций.The flowchart illustrates the way the operating system of the software and hardware complex functions, which allows you to detect malicious software in the components of the hypervisor, guest operating systems, when as input parameters lists of requests from guest operating systems, users of virtual machines, which are represented by a certain set, are used operations.

В заявляемом способе функционирования операционной системы вычислительного устройства программно-аппаратного комплекса заявителем предлагается процессы взаимодействия в гипервизоре декомпозировать на 8-уровневую иерархическую структуру, где: S1 - уровень приложений; S2 - уровень ядра гостевой операционной системы; S3 - уровень обработчиков прерываний; S4 - уровень менеджера памяти гипервизора; S5 - уровень подсистемы-ввода вывода гипервизора; S6 - уровень планировщика задач гипервизора; S7 - диспетчер работы с оборудованием гипервизора; S8 - уровень исполнительного процессора. При этом на уровнях S1-S5 функционируют традиционные средства защиты, которые используют наборы правил контроля доступа, отвечающих требованиям политики безопасности.In the inventive method of operating the operating system of a computing device of a hardware-software complex, the applicant proposes to decompose the interaction processes in the hypervisor into an 8-level hierarchical structure, where: S1 - application level; S2 - kernel level of the guest operating system; S3 - level of interrupt handlers; S4 - hypervisor memory manager level; S5 is the level of the input-output subsystem of the hypervisor; S6 - hypervisor task scheduler level; S7 - dispatcher working with hypervisor equipment; S8 - executive processor level. At the same time, traditional security features operate at levels S1-S5, which use sets of access control rules that meet the requirements of a security policy.

Предложенный способ учитывает особенности функционирования программных эмуляторов устройств, которые обрабатывают системные вызовы гостевых операционных систем, планировщика задач (уровень S6), диспетчера оборудования (уровень S7) и модуля аппаратной виртуализации (уровень S8).The proposed method takes into account the features of the functioning of software device emulators that handle system calls of guest operating systems, task scheduler (level S6), equipment manager (level S7) and hardware virtualization module (level S8).

Стрелкой 1 условно показана инициализация гипервизора, подготовка загрузки управляющей операционной системы на узлах многопроцессорной вычислительной системы, загрузка модуля верификации команд и проксирующего модуля клиентских запросов.Arrow 1 conventionally shows the initialization of the hypervisor, preparing the loading of the controlling operating system on the nodes of the multiprocessor computing system, loading the command verification module and the proxy client request module.

Стрелками 2 и 3 обозначен процесс загрузки гостевых операционных систем и получение списков запросов на выделение ресурсов.Arrows 2 and 3 indicate the process of loading guest operating systems and receiving lists of requests for allocation of resources.

Стрелкой 4 условно показана процедура инициализация и проверка набора кортежа переменных генеративных таблиц модулем верификации команд на этапе подготовки задачи к выполнению.Arrow 4 conditionally shows the initialization procedure and checking the set of a tuple of variable generative tables by the command verification module at the stage of preparing the task for execution.

Требования правил безопасности, заданные в табличной форме, используются для контроля запросов от гостевых операционных систем. Проксирующий модуль формирует набор таблиц безопасных операций и обменивается данными с модулем верификации команд (стрелка 5).The requirements of the security rules specified in the table form are used to control requests from guest operating systems. The proxy module forms a set of tables of safe operations and communicates with the command verification module (arrow 5).

Процедура поиска разных классов вредоносного программного обеспечения представляет собой цикл (стрелки 6, 7 и 10), в котором анализируются списки запросов, на основе значения функции оценки состояния Fi: если Fi = «Да», процесс добавляется в список разрешенных, если Fi = «Нет», формируется список запрещенных процессов.The search procedure for different classes of malware is a cycle (arrows 6, 7, and 10), in which query lists are analyzed based on the value of the function of evaluating the state of Fi: if Fi = “Yes”, the process is added to the list of allowed, if Fi = “ No ”, a list of prohibited processes is being generated.

Функция оценки состояния Fi (см. таблицу 1) описывается набором параметровThe function of assessing the state of Fi (see table 1) is described by a set of parameters

(x1 х2 х3 х4 х5 х6 х7), где: x1 = Opcode; х2 = Dom_id; х3 = s; х4 = Ord; х5 = Context_type; х6 = Context_id; х7 = tcu. Обозначение «X» означает, что логическая переменная может принимать значения «1» или «0».(x1 x2 x3 x4 x5 x6 x7), where: x1 = Opcode; x2 = Dom_id; x3 = s; x4 = Ord; x5 = Context_type; x6 = Context_id; x7 = tcu. The designation “X” means that a logical variable can take the values “1” or “0”.

Figure 00000001
Figure 00000001

Figure 00000002
Figure 00000002

В результате работы алгоритма создается база данных вредоносного программного обеспечения (стрелка 8), которая периодически обновляется. На основе таблиц безопасных операций контролируется активность сетевых приложений и отслеживаются входящие и исходящие пакеты данных.As a result of the algorithm, a database of malicious software is created (arrow 8), which is periodically updated. Based on the secure operation tables, network application activity is monitored and incoming and outgoing data packets are monitored.

В случае обнаружения подозрительных действий, происходит оповещение администратора безопасности (стрелка 9).In case of detection of suspicious actions, the security administrator is notified (arrow 9).

При разработке операционной системы использовался аппарат теории графов, теории алгоритмов, декомпозиции иерархических структур для формализации процессов информационного взаимодействия с учетом архитектуры гипервизоров и особенностей современных технологий виртуализации аппаратных ресурсов.When developing the operating system, we used the apparatus of graph theory, algorithm theory, decomposition of hierarchical structures to formalize the processes of information interaction, taking into account the architecture of hypervisors and the features of modern technologies for virtualizing hardware resources.

В качестве средств разработки операционной системы использовались GNU ассемблер, Refal и отладчик Total View.GNU assembler, Refal and the Total View debugger were used as tools for developing the operating system.

При проведении экспериментальных исследований возможностей модификации гостевых операционных систем и гипервизора использовались различные вредоносные программы: Seven Pandora, Нох, HackerDefender, Storm, Croax, Legend, BluePill, VICE Toolkit, DRM, IceBrute, Rustock, Dragon и другие.In carrying out experimental studies of the modification capabilities of guest operating systems and the hypervisor, various malicious programs were used: Seven Pandora, Noh, HackerDefender, Storm, Croax, Legend, BluePill, VICE Toolkit, DRM, IceBrute, Rustock, Dragon and others.

Эффективность разработанной системы защиты оценивалась на основе применения разных средств защиты и анализа числа успешных распознаваний и ошибок вредоносного программного обеспечения.The effectiveness of the developed protection system was evaluated based on the use of various protection tools and analysis of the number of successful recognition and errors of malicious software.

На основе проведенных заявителем-автором экспериментальных исследований, было обнаружено, что заявляемый способ функционирования операционной системы вычислительного устройства, позволяет повысить эффективность обнаружения разных классов вредоносного программного обеспечения на 87% по сравнению с известными аналогами.Based on the experimental studies carried out by the applicant-author, it was found that the claimed method of functioning of the operating system of a computing device allows to increase the detection efficiency of various classes of malicious software by 87% compared to known analogues.

Большая часть программного обеспечения является машинно-независимой и переносимой между различными аппаратными архитектурами.Most software is machine independent and portable between different hardware architectures.

Машинно-зависимые аспекты ядра отделены от основного кода. В частности, ни в одной части машинно-независимого кода не содержится кода, зависимого от конкретной архитектуры. Когда требуется произвести действия, зависимые от архитектуры, машинно-независимый код вызывает функцию, зависимую от архитектуры машины, которая находится в машинно-зависимой части кода (см. таблицу 2).Machine-dependent aspects of the kernel are separate from the main code. In particular, no part of machine-independent code contains code that is architecture-specific. When it is necessary to perform actions that are architecture dependent, machine-independent code calls a function that depends on the architecture of the machine, which is located in the machine-dependent part of the code (see table 2).

Figure 00000003
Figure 00000003

Лишь малая часть ядра отвечает за инициализацию системы. Этот код используется при начальной загрузке системы для перехода в рабочий режим и отвечает за настройку аппаратного и программного окружения ядра. Некоторые операционные системы (особенно те, что ограничены объемом физической памяти) выполняют действия по выгрузке или перекрытию программного кода, выполняющего эти функции, после окончания его работы. Ядро не работает повторно с памятью, использованной начальным кодом, потому что этот объем памяти составляет менее 0.5 процентов ресурсов ядра, используемых на типичной машине. Также начальный код не находится только в одном месте ядра - он рассредоточен везде, и обычно появляется там, где логически связан с объектом инициализации.Only a small part of the kernel is responsible for initializing the system. This code is used during the initial boot of the system to enter the operating mode and is responsible for setting up the hardware and software environment of the kernel. Some operating systems (especially those that are limited by the amount of physical memory) perform actions to unload or overlap the program code that performs these functions after it is finished. The kernel does not work repeatedly with the memory used by the source code, because this amount of memory is less than 0.5 percent of the kernel resources used on a typical machine. Also, the initial code is not located only in one place of the kernel - it is dispersed everywhere, and usually appears where it is logically connected with the initialization object.

Термин «маркер» означает набор определенных признаков, представленных в виде кортежа трех параметров (s, Ord, Context_type).The term “marker” means a set of specific features represented as a tuple of three parameters (s, Ord, Context_type).

Вместо классического сигнатурного распознавания используются генеративные таблицы.Instead of classical signature recognition, generative tables are used.

Под понятием «генеративные таблицы» подразумевается массив данных, в котором каждая строка представляет собой следующее выражение:The term “generative tables" means an array of data in which each row represents the following expression:

Figure 00000004
Figure 00000004

Где:Where:

1 - позволяет идентифицировать транзакцию пользователя на выделение ресурсов;1 - allows you to identify the user's transaction for the allocation of resources;

2- метка доступа к памяти;2- memory access label;

3 - признак иерархии;3 - sign of hierarchy;

4 - признак системности;4 - a sign of systemicity;

5 - идентификатор домена.5 - domain identifier.

Ядро любой операционной системы - это привилегированный компонент системы, управляющий доступом к аппаратным ресурсам, выделяющий и освобождающий память, создающий потоки и управляющий ими, осуществляющий внутрипроцессную синхронизацию потоков и управляющий вводом-выводом.The core of any operating system is a privileged component of the system that controls access to hardware resources, allocates and frees memory, creates and manages threads, performs in-process thread synchronization and controls I / O.

Операционная система использует связанные (составные) стеки для уменьшения количества памяти, используемой потоком.The operating system uses linked (composite) stacks to reduce the amount of memory used by the thread.

В любой операционной системе при сопряжении кода ядра с оборудованием на физическом уровне возникают запрещенные состояния - нулевой кортеж данных, к которым процессор запрещает обращаться даже программам в нулевом кольце защиты.In any operating system, when the kernel code is paired with hardware at the physical level, forbidden states arise - a zero tuple of data that the processor forbids even programs in the zero protection ring to access.

Более того, переключение контекста активных задач в защищенном режиме может выполнять только процессорный модуль, поскольку при теневом копировании данных исполняемого кода программист не может получить прямой доступ к информации.Moreover, switching the context of active tasks in protected mode can only be performed by the processor module, since when shadow copying the data of the executable code, the programmer cannot get direct access to the information.

Выявленные проблемы могут быть разрешены с помощью используемого в заявленном способе функционирования операционной системы метода маркерного сканирования. В качестве параметров указываются параметры (s, Ord, Context_type). Вместо классического сигнатурного распознавания кода используются генеративные таблицы. Параметр Ord - это поле, которое инициализирует статус потока ядра.Identified problems can be resolved using the marker scanning method used in the claimed method of operating the operating system. Parameters are specified as parameters (s, Ord, Context_type). Instead of the classic signature recognition of code, generative tables are used. The Ord parameter is a field that initializes the status of the kernel thread.

Поле Ord определяет, будет ли запущенный процесс-поток базовым или порожденным (значение бита подчинения сегментов кода).The Ord field determines whether the running process thread will be basic or generated (the value of the bit of subordination of code segments).

Если полю Ord присваивается значение «0», то конструктор объекта описывает базовый (родительский) поток, если значение «1», то в системе запускаются дочерние (порожденные) потоки. Бит s не просто идентифицирует специальные дескрипторы ОС, но и определяет контекст процессов-потоков операционных систем класса Windows NT и Unix, ОС семейства JX, Cedar, RMox, VINO на уровне процессорного модуля. Каждому процессу-потоку сопоставляется идентификатор Context_id.If the Ord field is assigned the value “0”, then the constructor of the object describes the base (parent) thread, if the value is “1”, then the child (child) threads are launched in the system. Bit s not only identifies special OS descriptors, but also defines the context of the process flows of Windows NT and Unix class operating systems, JX, Cedar, RMox, VINO family of OSs at the processor module level. Each process thread is assigned a Context_id identifier.

Если бит s=«0», то процесс получает статус System («Система»), маркер описывает системный объект с делегированием максимального уровня полномочий (возможность выполнять привилегированные команды процессора и изменять контекст функциональных вызовов), если бит s=«1», то Context_id (идентификатору процесса) приписывается статус Application («Приложение»).If bit s = "0", then the process receives the status System, the marker describes a system object with delegation of the maximum level of authority (the ability to execute privileged processor commands and change the context of function calls), if bit s = "1", then Context_id (process identifier) is assigned the status of Application ("Application").

Помимо кодирования адресного разделения колец защиты памяти, в ОС разных классов реализован строго типизированный интерфейс сопряжения с аппаратным ядром процессора и управления контекстом исполнения бинарного кода с учетом профиля компиляции и сборки - использование маркеров системных объектов.In addition to encoding the address separation of memory protection rings, the OS of different classes implements a strictly typed interface for interfacing with the hardware core of the processor and controlling the execution context of binary code, taking into account the compilation and assembly profile — using system object markers.

Массив данных кортежа {s, Ord} передается в исполнительный регион процессора загрузчиком бинарного кода и инкапсулируется в виде расширенного кортежа <s, Ord, Context_type>. Параметр Context_type однозначно определяет локальное пространство исполнительного слоя ядра (Context_type ≥0) или адреса верхнего регистра системной памяти, выделенной для критически важных устройств ОС (Context_type <0).The data array of the tuple {s, Ord} is transferred to the processor execution region by the binary code loader and encapsulated as an extended tuple <s, Ord, Context_type>. The Context_type parameter uniquely determines the local space of the kernel's executive layer (Context_type ≥0) or the address of the upper register of the system memory allocated for critical OS devices (Context_type <0).

В «теневом» регистре содержатся «снимки» активных процессов-потоков ядра. Просматривая значения идентификаторов Context_id, можно получить информации обо всех процессах-потоках, что делает ОС гибкой и «прозрачной» для программистов и вирусных аналитиков.The “shadow” register contains “snapshots” of active kernel thread processes. By looking at the values of the Context_id identifiers, you can get information about all processes-threads, which makes the OS flexible and “transparent” for programmers and virus analysts.

Ключевым элементом архитектуры современных вычислительных комплексов является гипервизор. Получив контроль над гипервизором, злоумышленник имеет практически неограниченные возможности.A key element of the architecture of modern computing systems is the hypervisor. Having gained control of the hypervisor, the attacker has virtually unlimited possibilities.

При описании принципа работы гипервизора, особенное внимание уделяют такому понятию как «кольца защиты», реализующие аппаратное разделение системного и пользовательского уровней.When describing the principle of operation of the hypervisor, special attention is paid to such a concept as "protection rings" that implement hardware separation of the system and user levels.

Дополнительные режимы (4 уровня привилегий) появились благодаря разработке компаниями Intel и AMD технологии аппаратной виртуализации.Additional modes (4 privilege levels) appeared due to the development of hardware virtualization technology by Intel and AMD.

Режим IPL указывает на то, что у большинства гипервизоров больше привилегий, чем у ядра операционной системы, обычно работающего в нулевом кольце защиты.IPL mode indicates that most hypervisors have more privileges than the kernel of the operating system, which usually runs in the zero ring of protection.

Гипервизор осуществляет координацию использования имеющихся аппаратных ресурсов несколькими операционными системами аналогично тому, как сами операционные системы осуществляют распределение ресурсов между несколькими задачами.The hypervisor coordinates the use of available hardware resources by several operating systems in the same way that the operating systems themselves distribute resources between several tasks.

System Management Mode (SMM) - это самый привилегированный режим выполнения. Данный код записывается в специально отведенную область памяти System Management Memory, недоступную для операционной системы и прикладных программ.System Management Mode (SMM) is the most preferred execution mode. This code is written to a specially designated area of the System Management Memory, inaccessible to the operating system and application programs.

Для обслуживания событий, связанных с этим режимом, предусмотрено прерывание System Management Interrupt, которое не зависит от остальных прерываний и имеет наивысший приоритет.To service events associated with this mode, a System Management Interrupt is provided, which is independent of the other interrupts and has the highest priority.

Для хранения адреса процедуры этого прерывания не используется ни один из векторов стандартной таблицы, адрес хранится в специальных регистрах процессора.None of the vectors of the standard table are used to store the address of the procedure for this interrupt; the address is stored in special processor registers.

Модуль может функционировать на уровне IPL в режиме хост-контроллер (SMM - один управляющий Bare Metal гипервизор на уровне IPL), «гнездовой» контроллер (nested virtualization host, запуск одного гипервизора под управлением другого, то есть несколько управляющих гипервизоров на уровне IPL), виртуальный вычислительный узел многосокетной платы в реальном режиме (Direct IO computing node, один экземпляр гипервизора на уровне 0 кольца защиты для группы виртуальных машин вычислительного кластера) или в режиме эмуляции с поддержкой запуска на одном сервере виртуализации нескольких экземпляров гипервизоров (VT computing node, несколько гипервизоров на уровне 0 кольца защиты). Таким образом, с учетом 4 колец защиты максимальное число возможных уровней привилегий возрастает до 8.The module can operate at the IPL level in host controller mode (SMM is one managing Bare Metal hypervisor at the IPL level), a “nested” controller (nested virtualization host, starting one hypervisor under the control of another, that is, several controlling hypervisors at the IPL level), real-time virtual computing node of a multisocket board (Direct IO computing node, one instance of a hypervisor at level 0 of the protection ring for a group of virtual machines of a computing cluster) or in emulation mode with support for running on a single virtualization server FIR hypervisor copies (VT computing node, multiple hypervisors at 0 protect ring). Thus, taking into account 4 rings of protection, the maximum number of possible privilege levels increases to 8.

Таким образом, множество всех возможных состояний представляет собой конечное и замкнутое множество компонентов среды виртуализации. Каждому режиму функционирования однозначно соответствует набор переменных Dom_id, s.Thus, the set of all possible states is a finite and closed set of components of the virtualization environment. Each operating mode uniquely corresponds to a set of variables Dom_id, s.

При изменении контекста выполнения запроса (см. таблицу 3), происходит переключения между разными режимами, что отражается в наборе кортежа данных генеративных таблиц в виде семи переменных x1 х2 х3 х4 х5 х6 х7, которые задают функции оценки безопасности состояния современной вычислительной системы как не противоречащие требованиям политики безопасности.When changing the context of the query execution (see table 3), switching between different modes occurs, which is reflected in the data tuple of the generative tables in the form of seven variables x1 x2 x3 x4 x5 x6 x7, which set the safety assessment functions of the state of the modern computing system as not contradicting security policy requirements.

F=(Opcode, Dom_id, s, Ord, Context_type, Context_id, tcu) (1), где:F = (Opcode, Dom_id, s, Ord, Context_type, Context_id, tcu) (1), where:

tcu - поле для контроля результатов выполнения запроса;tcu - field for controlling the results of query execution;

Context_id - уникальный идентификатор запроса;Context_id - unique identifier of the request;

Поле tcu принимает следующие значения:The tcu field takes the following values:

Х01Х10 - приостановка выполнения родительского приложения с блокировкой на неопределенный срок и перехват управления сторонним программным обеспечением с повышением уровня приоритета выполнения до максимума;X01X10 - suspension of the execution of the parent application with lock for an indefinite period and interception of third-party software control with increasing the priority level of execution to the maximum;

011X01 - ожидание завершения с запуском дочерних потоков (попытка снять блокировку доступа к ресурсам и запустить вредоносное программное обеспечение, пока штатный родительский процесс находится в режиме TIME_WAIT);011X01 - waiting for completion with the launch of child threads (attempt to remove the blocking of access to resources and launch malicious software while the regular parent process is in TIME_WAIT mode);

111X10 - принудительное завершение всех «спящих» процессов;111X10 - forced termination of all "sleeping" processes;

010101 - ресурс занят приложением - штатный режим запуска задачи - синхронный режим доступа к ресурсам;010101 - the resource is occupied by the application - the regular task launch mode - the synchronous mode of access to resources;

010010 - ресурс занят приложением - штатный режим запуска задачи - асинхронный режим доступа к ресурсам;010010 - the resource is occupied by the application - the regular task launch mode - asynchronous mode of access to resources;

0X1X10 - штатное завершение активной задачи.0X1X10 - regular completion of the active task.

Opcode либо равен пустой команде (NOP), либо содержит последовательность команд (!=NOP), L - базовое множество метаопераций, Opcode ∈L.Opcode is either equal to an empty command (NOP) or it contains a sequence of commands (! = NOP), L is the basic set of meta-operations, Opcode ∈L.

Context_id либо равен нулю (статус System Idle - «простой», нет активных задач в списке), либо нет (в системе зарегистрирован новый запрос пользователя на выделение ресурсов).Context_id is either equal to zero (the System Idle status is “simple”, there are no active tasks in the list) or not (a new user request for resource allocation has been registered in the system).

Figure 00000005
Figure 00000005

Figure 00000006
Figure 00000006

Разработанный подход основан на том, что набор меток {m} для «раскрашивания» мультиграфа транзакций представляется кортежем значений переменных формулы (1). Неоднозначность переходов между узлами мультиграфа транзакций объясняется существованием неконтролируемых состояний гипервизора. Алгоритм предикативной идентификации скрытых угроз информационной безопасности может быть представлен следующей последовательностью шагов:The developed approach is based on the fact that the set of labels {m} for “coloring” a transaction multigraph is represented by a tuple of values of variables of formula (1). The ambiguity of transitions between the nodes of the multigraph of transactions is explained by the existence of uncontrolled states of the hypervisor. The predictive identification algorithm for hidden threats to information security can be represented by the following sequence of steps:

Шаг 1. Построить мультиграф транзакций.Step 1. Build a multigraph of transactions.

Шаг 2. Представить контекст выполнения запроса в виде набора меток {m}.Step 2. Present the context of the query as a set of labels {m}.

Шаг 3. Провести анализ корректности завершения команд с точки зрения требований информационной безопасности.Step 3. Conduct an analysis of the correctness of the completion of commands in terms of information security requirements.

Требования политики безопасности формулируются в терминах, которые задают последовательность обработки операций и ограничений на их выполнение (см. таблицу 4). При этом на каждом уровне модели операций S1-S8 ведется протоколирование событий и результатов, включая параметры Т - время и Res - результат выполнения операций, а мультиграф транзакций «раскрашивается» с помощью набора меток (маркеров).The requirements of the security policy are formulated in terms that specify the sequence of processing operations and restrictions on their execution (see table 4). Moreover, at each level of the operation model S1-S8, events and results are recorded, including parameters T - time and Res - the result of operations, and the transaction multigraph is “colored” using a set of labels (markers).

Ограничение на повышение привилегий и контроль переходов при изменении контекста операций задаются значениями логической функции оценки допустимости состояний F.The restriction on privilege escalation and transition control when changing the context of operations are set by the values of the logical function for assessing the admissibility of states F.

Figure 00000007
Figure 00000007

Figure 00000008
Figure 00000008

Figure 00000009
Figure 00000009

Figure 00000010
Figure 00000010

Внутренний цикл работы процессора на аппаратном уровне определяется временными интервалами (Т - периоды синхронизации). При выполнении одной инструкции, другие запросы блокируются на время выполнения задачи ядра. Мультиплексирование каналов связи с внешним оборудованием позволяет создавать очередь параллельной обработки (конвейер). На уровне декодирования идет преобразование в последовательную выборку разрядов, тогда время выполнения команды (Т0-Т5) занимает максимально 3-4 такта, 1 такт на контроль выполнения и 1 такт для подачи сигнала стробирования, чтобы открыть доступ к кристаллу памяти процессора.The internal cycle of the processor at the hardware level is determined by time intervals (T - synchronization periods). When executing one instruction, other requests are blocked for the duration of the kernel task. Multiplexing communication channels with external equipment allows you to create a parallel processing queue (conveyor). At the decoding level, there is a conversion to a sequential selection of bits, then the command execution time (T0-T5) takes a maximum of 3-4 clock cycles, 1 clock cycle to control the execution and 1 clock cycle to supply a gating signal to open access to the processor memory chip.

Всего 7 тактов выборки команд для обработки команд на каждой уровне (S1-S7) иерархии запросов. Схематично механизм обращения к функциям операционной системы, оформленным в виде серверов, выглядит следующим образом. Клиент, которым может быть либо прикладная программа, либо другой компонент операционной системы, запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему сообщение.A total of 7 clock cycles for selecting instructions for processing instructions at each level (S1-S7) of the query hierarchy. Schematically, the mechanism for accessing the functions of the operating system, designed as servers, is as follows. A client, which can be either an application program or another component of the operating system, requests the execution of a function from the corresponding server, sending it a message.

Непосредственная передача сообщений между приложениями невозможна, так как их адресные пространства изолированы друг от друга.Direct messaging between applications is not possible because their address spaces are isolated from each other.

Микроядро, выполняющееся в привилегированном режиме, имеет доступ к адресным пространствам каждого из этих приложений и поэтому может работать в качестве посредника. Микроядро сначала передает сообщение, содержащее имя и параметры вызываемой процедуры нужному серверу, затем сервер выполняет запрошенную операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения.The microkernel, running in privileged mode, has access to the address spaces of each of these applications and therefore can work as an intermediary. The microkernel first sends a message containing the name and parameters of the called procedure to the desired server, then the server performs the requested operation, after which the kernel returns the results to the client using another message.

Таким образом, работа микроядерной операционной системы соответствует известной модели клиент-сервер, в которой роль транспортных средств выполняет микроядро. Набором портов является минимальный набор файлов, который указывает вашей системе, как корректно откомпилировать и установить программу с учетом расширения специфической исполняемой среды с поддержкой среды.Thus, the operation of the micronuclear operating system corresponds to the well-known client-server model, in which the micronucleus plays the role of vehicles. A set of ports is a minimal set of files that tells your system how to correctly compile and install the program, taking into account the expansion of a specific executable environment with support for the environment.

Набор для интеграции с решении с промышленными гипервизорами включает:The kit for integration with a solution with industrial hypervisors includes:

- Файл smw-test.cfg- File smw-test.cfg

Подсистема отказоустойчивости является автономной функциональной структурой и имеет собственный контур управления (осуществляется системным оператором или сервисным инженером). Все параметры по разворачиванию и настройке сети сохраняются в конфигурационном файле smw-test.cfg;The fault tolerance subsystem is an autonomous functional structure and has its own control loop (carried out by a system operator or service engineer). All parameters for deploying and configuring the network are saved in the smw-test.cfg configuration file;

- Файл OS-param. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе, и их контрольные суммы, для проверки того, что файлы в процессе загрузки не были повреждены, настройки операционной системы - режим загрузки, настройки параметров памяти на разных интерфейсных уровнях привилегий, путь к исполняемому образу операционной системы (Single Image Distributive). В файле существует 4 секции для настройки модулей на уровнях IPL_LEVEL, KERNEL_LEVEL, SUPERVISOR_LEVEL, USER_LEVEL, которые соответствуют Dom_id=00, Dom_id=01, Dom_id=10, Dom_id=11;- OS-param file. This file contains information about the files that must exist on your system and their checksums, to verify that the files were not damaged during the download, operating system settings - boot mode, memory settings at different interface privilege levels, path to executable image of the operating system (Single Image Distributive). There are 4 sections in the file for configuring modules at the IPL_LEVEL, KERNEL_LEVEL, SUPERVISOR_LEVEL, USER_LEVEL levels, which correspond to Dom_id = 00, Dom_id = 01, Dom_id = 10, Dom_id = 11;

- Загружаемый образ ОС (Single Image Distributive) - серверная операционная система представляет собой Unix - подобную систему с поддержкой XEN или KVM, VMWare ESXi или Windows Server с поддержкой Hyper-V. Под управлением указанных гипервизоров запускаются гостевые ОС виртуальных машин пользователей;- Bootable OS image (Single Image Distributive) - the server operating system is Unix - a similar system with support for XEN or KVM, VMWare ESXi or Windows Server with support for Hyper-V. Under the control of these hypervisors, guest OSs of user virtual machines are launched;

- Каталог OS-files. Этот дополнительный каталог (базовый дистрибутив со всеми папками входит в состав загрузочного образа) содержит самые «свежие» патчи, использование которых необходимо для обновления версии операционной системы. Патчи - это программные модули обновлений, в которых содержатся изменения, которые нужно внести в операционную систему с целью корректного функционирования и разрешения предшествующих ошибок в программном коде;- OS-files directory. This additional directory (the basic distribution with all folders included in the boot image) contains the most recent patches, the use of which is necessary to update the version of the operating system. Patches are software update modules that contain changes that need to be made to the operating system in order to function correctly and resolve previous errors in the program code;

- Файл OS-plist. Это список всех файлов, которые будут загружены. В нем также содержатся указания системе портов на удаление определенных файлов во время реконфигурирования операционной системы. Данный файл используется в целях протоколирования и аудита безопасности.- OS-plist file. This is a list of all files that will be downloaded. It also instructs the port system to delete certain files during reconfiguration of the operating system. This file is used for security logging and auditing purposes.

Программа загрузки выполняется в каждом ядре, выполнение осуществляет тредовое устройство с нулевым физическим адресом. При этом тредовое устройство работает в особом режиме привилегий - IPL_LEVEL. В этом режиме используется физическая адресация при доступе к памяти команд и памяти данных.The boot program is executed in each core, the thread device executes with a zero physical address. At the same time, the thread device operates in a special privilege mode - IPL_LEVEL. In this mode, physical addressing is used when accessing command memory and data memory.

На данном уровне функционирует только модуль доверенной загрузки и защиты. Затем загружаются диспетчер работы с виртуальной инфраструктурой и хостовые операционные системы с поддержкой гипервизоров (уровни KERNEL_LEVEL, SUPERVISOR_LEVEL). На заключительном этапе осуществляется запуск гостевых ОС на уровне USER_LEVEL.At this level, only the trusted boot and protection module functions. Then, the virtual infrastructure manager and host operating systems with support for hypervisors (KERNEL_LEVEL, SUPERVISOR_LEVEL levels) are loaded. At the final stage, guest OSs are launched at the USER_LEVEL level.

Систему можно разделить на несколько подсистем, каждая из которых выполняет управление определенным видом ресурсов (памятью, задачами, файлами, средствами коммуникаций).The system can be divided into several subsystems, each of which manages a certain type of resources (memory, tasks, files, communications).

Подсистема состоит из нескольких Менеджеров, каждый их которых обеспечивает более высокий уровень абстракции ресурсов. Менеджеры более высокого уровня используют средства Менеджеров низкого уровня своей подсистемы, а также и других подсистем. Микроядерная распределенная архитектура является альтернативой классическому способу построения операционной системы.The subsystem consists of several Managers, each of which provides a higher level of resource abstraction. Higher-level managers use the tools of the lower-level managers of their subsystem, as well as other subsystems. Microkernel distributed architecture is an alternative to the classical way of building an operating system.

Уровень, позволяющий управлять защищенным режимом процессора, осуществлять загрузку и контролировать работу системы на уровне инструкций процессора называется IPL (Instruction Processor Level, IPL). Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра (KERNEL_LEVEL).The level that allows you to manage the protected mode of the processor, boot and control the system at the processor instruction level is called IPL (Instruction Processor Level, IPL). The set of functions of the micronucleus usually corresponds to the functions of the layer of the basic mechanisms of the regular kernel (KERNEL_LEVEL).

Такие функции операционной системы трудно, если не невозможно, выполнить в пространстве пользователя. Все остальные более высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме (USER_LEVEL).Such operating system functions are difficult, if not impossible, to execute in user space. All other higher-level kernel functions are executed in the form of applications operating in user mode (USER_LEVEL).

Менеджеры ресурсов, являющиеся неотъемлемыми частями обычного ядра - файловая система, подсистемы управления виртуальной памятью и процессами, менеджер безопасности, - становятся «периферийными» модулями, работающими в режиме супервизора (SUPERVISOR_LEVEL).Resource managers, which are integral parts of the regular kernel — the file system, virtual memory and process management subsystems, and the security manager — become “peripheral” modules operating in supervisor mode (SUPERVISOR_LEVEL).

Модуль доверенной загрузки и защиты загружается с уровнем привилегий IPL и осуществляет монопольный контроль выделения вычислительных ресурсов сервера, просматривая данные из t_reg. Используется 4 кольца защиты процессора: Dom_id=00, Dom_id=01, Dom_id=10, Dom_id=11. С учетом поддержки аппаратной виртуализации «склейка» параметров Dom_id и s (строки записываются в стек в обратном порядке) позволяет задать тот интерфейсный уровень, на котором обрабатывается транзакция по схеме «клиент-серверное взаимодействие».The trusted boot and protection module boots with the IPL privilege level and exercises exclusive control over the allocation of server computing resources by viewing data from t_reg. 4 processor protection rings are used: Dom_id = 00, Dom_id = 01, Dom_id = 10, Dom_id = 11. Taking into account the support of hardware virtualization, “gluing together” the Dom_id and s parameters (the lines are written onto the stack in the reverse order) allows you to set the interface level at which the transaction is processed according to the “client-server interaction” scheme.

Полное динамическое состояние процесса-потока определяется тройкой признаков его поведения <W, В, Т>, где:The full dynamic state of the process-stream is determined by the three signs of its behavior <W, B, T>, where:

- W - Work State, рабочее состояние TU, может иметь значения «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание».- W - Work State, the operating state of TU, can have the values “Free”, “Reserved”, “Passive”, “Active”, “Delayed” and “Waiting”.

- В - Block State, состояние блокировки рабочего состояния- B - Block State, blocking state of the operating state

- Т - Transition State, признак переходного процесса в указанное рабочее состояние или состояние блокировки, связанное с наличием выполняемых в данный момент, но еще незавершенных команд процесса-потока.- Т - Transition State, a sign of a transition process to the specified operating state or a blocking state associated with the presence of currently executing, but still incomplete commands of the process-stream.

Признаки состояния процесса-потока отображаются в одноименных полях регистра t_reg. При этом явно инициализированы все возможные состояния процесов-тредов с учетом динамического характера процесса выделения вычислительных ресурсов (см. таблицу 5).Signs of the state of the process flow are displayed in the fields of the same register t_reg. In this case, all possible states of thread processes are explicitly initialized, taking into account the dynamic nature of the process of allocating computing resources (see table 5).

Figure 00000011
Figure 00000011

Более подробно процесс-потоки характеризуются следующими состояниями:In more detail, process flows are characterized by the following states:

- «Свободен» - тредовое устройство не зарезервирован для использования ни одном домене защиты.- “Free” - the thread device is not reserved for use by any protection domain.

- «Зарезервировано» для использования в некотором домене защиты, но это контролирует привязывание готовящегося к исполнению процесса-потока к некоторому домену защиты, когда инициализация еще не прошла (состояние ожидания формирования генеративных таблиц).- “Reserved” for use in a certain protection domain, but this controls the binding of the process flow being prepared for execution to a certain protection domain when initialization has not yet passed (waiting state for generating generative tables).

- «Пассивен» - процесс-поток содержит программу для выполнения, однако считывание команд этого процесса-потока блокировано до прихода команды активации этого процесса-потока. Такой процесс-поток не имеет запущенных, но еще незавершенных команд. Процесс-поток программы может быть снят с такого процесса-потока операционной системой и потом загружен.- “Passive” - the process thread contains a program for execution, however, the reading of the instructions of this process thread is blocked until the activation command for this process thread is received. Such a process thread does not have running, but not yet completed commands. A process thread of a program can be removed from such a process thread by the operating system and then loaded.

- «Активен» - процесс-поток содержит программу и готов выдавать команды для выполнения, считывание команд для выполнения однако происходит в соответствии с алгоритмом работы TCU-блока соответствующего мультипроцесс-потокового ядра, а их прием на непосредственное выполнение в функциональных устройствах - от готовности по данным этих команд.- “Active” - the process thread contains the program and is ready to issue commands for execution, however, the instructions for reading are executed in accordance with the operation algorithm of the TCU block of the corresponding multi-process stream kernel, and their acceptance for direct execution in functional devices comes from readiness for data from these teams.

- «Задержан» - процесс-поток содержит выполняемую программу, но не готов выдавать команды для выполнения до тех пор, пока не станет равным нулю значение таймера этого процесса-потока. Ранее выданные команды этого процесса-потока могут еще выполняться. Если такие команды есть, то старший бит в регистре ненулевой.- “Delayed" - the process thread contains the executable program, but is not ready to issue commands for execution until the timer value of this process thread becomes zero. Previously issued commands from this process thread can still be executed. If there are such commands, then the most significant bit in the register is nonzero.

- «Ожидание» - процесс-поток содержит программу, но не готов выдавать команды для выполнения, до тех пор, пока не произойдет некоторое событие, что связано с приходом в процесс-поток некоторого сигнала. Такой процесс-поток может содержать запущенные, но еще незавершенные команды.- “Waiting” - the process thread contains the program, but is not ready to issue commands for execution until some event occurs, which is associated with the arrival of a signal in the process thread. Such a process thread may contain running, but not yet completed commands.

- «Приостановлен» - процесс-поток содержит программу для выполнения, и находится в каком-либо из рабочих состояний «Пассивен», «Активен», «Задержан» или «Ожидание», но блокирован для выдачи команд и выполнения операций над этим процесс-потоком. Это особое статическое состояние процесса-потока, когда, в привилегированном режиме можно выполнять с ним действия, а потом - снять его блокировку по запросу пользователя (100), либо без снятия блокировки законсервировать на неопределенный срок (110), либо вообще уничтожить (111). Процесс-поток в таком состоянии не содержит запущенных, но еще незавершенных команд.- “Suspended” - the process thread contains the program for execution, and is in any of the operating states “Passive”, “Active”, “Delayed” or “Waiting”, but is blocked for issuing commands and performing operations on this process- flow. This is a special static state of a process-thread, when, in privileged mode, you can perform actions with it, and then release its lock at the request of the user (100), or preserve it for an indefinite period of time (110) without removing the lock, or completely destroy it (111) . A process thread in this state does not contain running, but not yet completed commands.

В результате проведенного патентно-информационного поиска, не было найдено ни одного источника информации, содержащего всю совокупность существенных признаков заявленного изобретения, что позволяет сделать вывод о его соответствии критериям патентоспособности «новизна», «изобретательский уровень» и «промышленная применимость».As a result of the patent information search, not a single source of information was found containing the entire set of essential features of the claimed invention, which allows us to conclude that it meets the patentability criteria of “novelty”, “inventive step” and “industrial applicability”.

Claims (3)

1. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса, отличающийся тем, что последовательно один за другим осуществляют инициализацию компонентов гипервизора, имеющего 8-ми уровневую иерархическую структуру выполнения команд, загрузку на узлах многопроцессорной вычислительной системы управляющей микроядерной операционной системы с параллельной мультредовой архитектурой, каждый процесс-тред которой имеет два статуса - управляющий или подчиненный, снабженной компилятором, микроассемблером и автономной подсистемой отказоустойчивости, загрузку проксирующего модуля клиентских запросов, формирующего набор таблиц безопасных операций и обменивающегося данными с модулем верификации команд, загрузку гостевых операционных систем и получение списков запросов на выделение ресурсов, затем осуществляют этап подготовки задачи к выполнению, во время которого модуль верификации команд с помощью конвейера обработки семантических запросов посредством маркерного сканирования осуществляет проверку набора кортежей логических переменных генеративных таблиц, а именно опкода команд Opcode, идентификатора домена Dom_id, признака системности S, признака иерархии Ord, метки доступа к памяти Context_type, идентификации транзакции пользователя на выделение ресурсов Context_id, метки поля для контроля результатов выполнения запроса tcu с оценкой допустимости выполнения операций в виде разрешенных и запрещенных значений функции состояния, параметры поступивших запросов анализируют с помощью цикла на основе значения функции оценки состояния, в случае если значением функции состояния является параметр «Да», процесс добавляют в список разрешенных к выполнению, в случае если значением функции состояния является параметр «Нет», процесс блокируют, формируют список запрещенных процессов и создают обновляемую базу данных вредоносного программного обеспечения с оповещением администратора безопасности, затем с помощью признака иерархии Ord определяют, является ли запущенный процесс-поток базовым с максимальным уровнем полномочий, которому присваивают значение «0», либо порожденным, которому присваивают значение «1» с уровнем полномочий в виде приложения, информацию обо всех процессах-потоках обрабатываемых операционной системой получают путем анализа значений идентификаторов транзакции пользователя на выделение ресурсов Context_id, механизм обращения к функциям операционной системы осуществляют посредством модели взаимодействия «клиент - сервер», в которой роль транспортных средств выполняет микроядро операционной системы, контроль активности сетевых приложений и входящих/исходящих пакетов данных осуществляют на основе таблиц безопасных операций, создаваемых проксирующим модулем клиентских запросов.1. The method of functioning of the operating system of a computing device of a hardware-software complex, characterized in that the components of a hypervisor having an 8-level hierarchical structure for executing commands are sequentially initialized one after another, loading a micronuclear operating system with a parallel multi-architecture architecture on the nodes of a multiprocessor computing system , each process thread which has two statuses - manager or subordinate, equipped with a compiler, mik an assembler and an autonomous fault tolerance subsystem, loading a proxy client request module, generating a set of safe operations tables and exchanging data with a command verification module, loading guest operating systems and receiving resource allocation request lists, then the stage of preparing the task for execution is performed, during which the verification module commands using the semantic query processing pipeline through marker scanning checks the set of log tuples variables of the generation tables, namely the opcode of the Opcode commands, the Dom_id domain identifier, the S attribute of the system, the Ord hierarchy attribute, the Memory access tag Context_type, the identification of the user’s transaction for allocating Context_id resources, the field label for monitoring the results of the tcu request with an assessment of the admissibility of the operation in the form of allowed and forbidden values of the state function, the parameters of the received requests are analyzed using a cycle based on the value of the state evaluation function, if the value of the function is Yes, the process is added to the list of allowed for execution if the status function value is No, the process is blocked, a list of prohibited processes is created and an updated database of malicious software is generated with a notification to the security administrator, then using attributes of the Ord hierarchy determine whether the running process thread is basic with a maximum level of authority that is assigned a value of "0" or a child that is assigned a value of "1" with the level of authority in the form of an application, information about all the process flows processed by the operating system is obtained by analyzing the values of user transaction identifiers for allocating Context_id resources, the mechanism for accessing the operating system functions is implemented through the client-server interaction model, in which the role of vehicles is played by the microkernel of the operating system, monitoring the activity of network applications and incoming / outgoing data packets is carried out on the basis of safe opera tables s generated proxies module client requests. 2. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса по п. 1, отличающийся тем, что генеративные таблицы представляют собой семантическую часть кодирования цепочек клиентских запросов, формирующихся на этапе подготовки задачи, при этом проверку всего набора переменных генеративных таблиц осуществляют перед запуском каждого процесса-треда.2. The method of functioning of the operating system of the computing device of the software and hardware complex according to claim 1, characterized in that the generative tables are the semantic part of the coding of the chains of client requests that are formed at the stage of preparing the task, while the entire set of variables of the generative tables is checked before each process thread. 3. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса по п. 1, отличающийся тем, что полное динамическое состояние запущенных процессов-потоков операционной системы характеризуют следующими параметрами, а именно «Рабочее состояние» с режимами: «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание», «Состояние блокировки рабочего состояния» и «Состояние переходного процесса», переходящее либо в «Рабочее состояние», либо в «Состояние блокировки» в зависимости от наличия в операционной системе уже выданных на выполнение, но еще незавершенных команд.3. The method of functioning of the operating system of the computing device of the software and hardware complex according to claim 1, characterized in that the full dynamic state of the running processes-threads of the operating system is characterized by the following parameters, namely, "Operating state" with the modes: "Free", "Reserved" , “Passive”, “Active”, “Delayed” and “Pending”, “Operational state lock state” and “Transient state”, which goes either to “Operational state” or “Blocking state” depending on on the availability of the operating system already issued for the execution, but still incomplete teams.
RU2016113545A 2016-04-11 2016-04-11 Method of functioning computer device operating system of software and hardware complex RU2626350C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016113545A RU2626350C1 (en) 2016-04-11 2016-04-11 Method of functioning computer device operating system of software and hardware complex

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016113545A RU2626350C1 (en) 2016-04-11 2016-04-11 Method of functioning computer device operating system of software and hardware complex

Publications (1)

Publication Number Publication Date
RU2626350C1 true RU2626350C1 (en) 2017-07-26

Family

ID=59495916

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016113545A RU2626350C1 (en) 2016-04-11 2016-04-11 Method of functioning computer device operating system of software and hardware complex

Country Status (1)

Country Link
RU (1) RU2626350C1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2720553C1 (en) * 2019-10-18 2020-05-12 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Method of organizing a system network in the form of a fail-safe non-blocking three-dimensional sparse p-ary hypercube
CN114492821A (en) * 2022-02-15 2022-05-13 深圳量旋科技有限公司 Quantum computer operating system based on microkernel architecture and quantum computer
CN116702180A (en) * 2023-08-02 2023-09-05 北京智芯微电子科技有限公司 Microkernel operating system, access control method, chip, device and medium thereof

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080015808A1 (en) * 2006-05-02 2008-01-17 The Johns Hopkins University Methods and system for program execution integrity measurement
WO2009120272A1 (en) * 2008-03-26 2009-10-01 Fuhu, Inc. Hypervisor and virtual machine ware
RU2397537C2 (en) * 2004-12-21 2010-08-20 Майкрософт Корпорейшн Computer security control, for instance in virtual machine or real operating system
US20120084570A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Remote Resources Single Sign On
US20120096271A1 (en) * 2010-10-15 2012-04-19 Microsoft Corporation Remote Access to Hosted Virtual Machines By Enterprise Users
RU2458385C2 (en) * 2005-09-15 2012-08-10 Майкрософт Корпорейшн Transaction isolated data storage system
RU2468418C2 (en) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Security agents and privileged modes
US20130254829A1 (en) * 2012-03-22 2013-09-26 Microsoft Corporation Securing A Computing Environment Against Malicious Entities
RU2568282C2 (en) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" System and method for ensuring fault tolerance of antivirus protection realised in virtual environment
EP2955634A1 (en) * 2014-06-10 2015-12-16 Deutsche Telekom AG Paravirtualization-based interface for memory management in virtual machines

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2397537C2 (en) * 2004-12-21 2010-08-20 Майкрософт Корпорейшн Computer security control, for instance in virtual machine or real operating system
RU2458385C2 (en) * 2005-09-15 2012-08-10 Майкрософт Корпорейшн Transaction isolated data storage system
US20080015808A1 (en) * 2006-05-02 2008-01-17 The Johns Hopkins University Methods and system for program execution integrity measurement
RU2468418C2 (en) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Security agents and privileged modes
WO2009120272A1 (en) * 2008-03-26 2009-10-01 Fuhu, Inc. Hypervisor and virtual machine ware
US20120084570A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Remote Resources Single Sign On
US20120096271A1 (en) * 2010-10-15 2012-04-19 Microsoft Corporation Remote Access to Hosted Virtual Machines By Enterprise Users
US20130254829A1 (en) * 2012-03-22 2013-09-26 Microsoft Corporation Securing A Computing Environment Against Malicious Entities
RU2568282C2 (en) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" System and method for ensuring fault tolerance of antivirus protection realised in virtual environment
EP2955634A1 (en) * 2014-06-10 2015-12-16 Deutsche Telekom AG Paravirtualization-based interface for memory management in virtual machines

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2720553C1 (en) * 2019-10-18 2020-05-12 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Method of organizing a system network in the form of a fail-safe non-blocking three-dimensional sparse p-ary hypercube
CN114492821A (en) * 2022-02-15 2022-05-13 深圳量旋科技有限公司 Quantum computer operating system based on microkernel architecture and quantum computer
CN116702180A (en) * 2023-08-02 2023-09-05 北京智芯微电子科技有限公司 Microkernel operating system, access control method, chip, device and medium thereof
CN116702180B (en) * 2023-08-02 2024-04-05 北京智芯微电子科技有限公司 Microkernel operating system, access control method, chip, device and medium thereof

Similar Documents

Publication Publication Date Title
Tsai et al. Cooperation and security isolation of library OSes for multi-process applications
Randal The ideal versus the real: Revisiting the history of virtual machines and containers
KR102255767B1 (en) Systems and methods for virtual machine auditing
US9529614B2 (en) Automatically bridging the semantic gap in machine introspection
Zhou et al. Dancing with giants: Wimpy kernels for on-demand isolated i/o
Gu et al. {CertiKOS}: An extensible architecture for building certified concurrent {OS} kernels
Williams et al. Unikernels as processes
Fu et al. Space traveling across vm: Automatically bridging the semantic gap in virtual machine introspection via online kernel data redirection
US10235515B2 (en) Method and apparatus for on-demand isolated I/O channels for secure applications
Gu et al. Building certified concurrent OS kernels
Cheng et al. vscale: Automatic and efficient processor scaling for smp virtual machines
Raza et al. Unikernel linux (ukl)
Jain Linux Containers and Virtualization
Klingensmith et al. Hermes: A real time hypervisor for mobile and iot systems
Vilanova et al. Direct Inter-Process Communication (dIPC) Repurposing the CODOMs Architecture to Accelerate IPC
Fingler et al. Towards a machine learning-assisted kernel with lake
Scordino et al. Real-time virtualization for industrial automation
Li et al. Iso-UniK: lightweight multi-process unikernel through memory protection keys
RU2626350C1 (en) Method of functioning computer device operating system of software and hardware complex
Szefer Architectures for secure cloud computing servers
Dai et al. Design and verification of a lightweight reliable virtual machine monitor for a many-core architecture
Molyakov Token scanning as a new scientific approach in the creation of protected systems: A new generation OS MICROTEK
Saeki et al. Bash on Ubuntu on macOS
Lange et al. Low overhead security isolation using lightweight kernels and tees
You et al. AlloyStack: A Library Operating System for Serverless Workflow Applications