RU2259582C2 - Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой - Google Patents
Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой Download PDFInfo
- Publication number
- RU2259582C2 RU2259582C2 RU2003123112/09A RU2003123112A RU2259582C2 RU 2259582 C2 RU2259582 C2 RU 2259582C2 RU 2003123112/09 A RU2003123112/09 A RU 2003123112/09A RU 2003123112 A RU2003123112 A RU 2003123112A RU 2259582 C2 RU2259582 C2 RU 2259582C2
- Authority
- RU
- Russia
- Prior art keywords
- vmm
- address space
- operating system
- guest operating
- guest
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
Изобретение относится к виртуальным машинам. Его использование позволяет разрешать конфликты по адресному пространству между монитором виртуальной машины и гостевой операционной системой. Для обеспечения этого технического результата способ содержит этапы, на которых: обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ. 3 н. и 15 з.п. ф-лы, 7 ил.
Description
ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение относится в общем случае к виртуальным машинам, а более конкретно - к разрешению конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Общеизвестный монитор виртуальных машин (МВМ, VMM) обычно выполняется на компьютере и представляет другому программному обеспечению абстракцию одной или более виртуальных машин. Каждая виртуальная машина может функционировать, как автономная платформа, выполняющая свою собственную «гостевую операционную систему» (т.е. операционную систему, управляемую МВМ). Ожидается, что гостевая операционная система будет работать так, как будто она выполняется на выделенном компьютере, а не на виртуальной машине. Т.е. ожидается, что гостевая операционная система будет управлять различными компьютерными операциями и иметь неограниченный доступ к физической памяти компьютера и устройствам ввода-вывода с предварительно распределенной памятью во время этих операций. Однако в среде виртуальной машины МВМ должен быть способен обладать максимальным контролем над ресурсами компьютера для обеспечения защиты от других виртуальных машин и между ними. Чтобы этого достичь, МВМ обычно перехватывает и принимает решения по всем обращениям к компьютерным ресурсам, выполняемым гостевой операционной системой.
При существующих процессорах (например, микропроцессорах IA-32) МВМ может быть не способен перехватить обращение гостевой операционной системы к аппаратным ресурсам, если часть кода и/или структур данных МВМ не расположена в том же самом виртуальном адресном пространстве, в котором расположена гостевая операционная система. Однако гостевая операционная система не ожидает, что код и/или структуры данных МВМ постоянно находятся в адресном пространстве гостевой операционной системы, и она может пытаться обращаться к области, занятой МВМ в этом адресном пространстве, вызывая конфликт по адресному пространству между гостевой операционной системой и МВМ. Этот конфликт может привести к аварийному завершению операций, выполняемых МВМ или гостевой операционной системой.
Таким образом, необходим механизм, который обнаружит и разрешит конфликты по адресному пространству между МВМ и гостевой операционной системой.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Настоящее изобретение иллюстрировано для примера, а не в качестве ограничения, фигурами сопроводительных чертежей, на которых одинаковые номера позиций относятся к подобным элементам, и на которых:
фиг.1 - один из вариантов осуществления среды виртуальной машины;
фиг.2 - блок-схема системы, предназначенной для разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой согласно одному из вариантов осуществления настоящего изобретения;
фиг.3 - последовательность операций способа разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой согласно одному из вариантов осуществления настоящего изобретения;
фиг.4 - последовательность операций способа перемещения ядра виртуальной машины в пределах адресного пространства виртуальной машины согласно одному из вариантов осуществления настоящего изобретения;
фиг.5 иллюстрирует работу ядра виртуальной машины, которое поддерживает снижение уровня привилегий гостя согласно одному из вариантов осуществления настоящего изобретения;
фиг.6 - последовательность операций способа обработки системного прерывания виртуализации, сгенерированного гостевой операционной системой, согласно одному из вариантов осуществления настоящего изобретения; и
фиг.7 - структурная схема одного из вариантов осуществления системы обработки.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Описаны способ и устройство, предназначенные для разрешения конфликтов по адресному пространству. В последующем описании сформулированы многочисленные подробности, такие как расстояния между компонентами, типы формы и т.д. Однако специалисту в данной области техники будет очевидно, что настоящее изобретение может быть реализовано на практике и без этих конкретных подробностей. В других случаях широко известные структуры и устройства показаны в форме блок-схем, а не подробно, для того, чтобы не затенять настоящее изобретение.
В последующем описании, в целях пояснения, многочисленные конкретные подробности сформулированы для того, чтобы обеспечить полное понимание настоящего изобретения. Однако специалисту в данной области техники будет очевидно, что настоящее изобретение может быть реализовано на практике и без этих конкретных подробностей.
Некоторые части подробного описания, которое приведено далее, представлены в терминах алгоритмов и символических представлений операций над битами данных в компьютерной памяти. Эти алгоритмические описания и представления являются средствами, которые используются специалистами в области обработки данных для наиболее эффективной передачи сущности своей работы другим специалистам. В данном случае, и в общем случае, считается, что алгоритм является самосогласованной последовательностью этапов, которые приводят к желаемому результату. Этапом является то, что требует физических манипуляций над физическими величинами. Обычно, хотя не обязательно, эти величины имеют форму электрических или магнитных сигналов, которые можно сохранять, переносить, объединять, сравнивать, также ими можно манипулировать и иным способом. Доказано, что временами удобно, преимущественно по причинам общего использования, именовать эти сигналы как биты, значения, элементы, символы, знаки, термы, числа или другим подобным образом. Следует иметь в виду, однако, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами, и что они являются просто удобными метками, применяемыми к этим величинам. Следует признать, что если конкретно не указано или не очевидно из последующего обсуждения, то везде по настоящему изобретению используемые в описании термины, такие как «обработка», или «расчет», или «вычисление», или «определение», или «отображение», или подобные им могут относиться к действиям и процессам в компьютерной системе, или в подобном электронном вычислительном устройстве, которое манипулирует данными, представленными как физические (электронные) величины в регистрах компьютерной системы и запоминающих устройствах, и преобразовывает их в другие данные, точно так же представленные как физические величины в запоминающих устройствах компьютерной системы или в регистрах или в других подобных устройствах хранения, передачи или отображения информации.
Настоящее изобретение также относится к устройству, предназначенному для выполнения описываемых здесь операций. Это устройство может быть специально сконструировано для требуемых целей, или оно может содержать компьютер общего назначения, выборочно активируемый или переконфигурируемый компьютерной программой, хранящейся в компьютере. Такая компьютерная программа может храниться на считываемом компьютером носителе данных, таком как любой тип диска, что включает в себя гибкие диски, оптические диски, компакт-диски (CD-ROM) и магнитно-оптические диски, постоянное запоминающее устройство (ПЗУ, ROM), оперативное запоминающее устройство (ОЗУ, RAM), стираемое программируемое постоянное запоминающее устройство (СППЗУ, EPROM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ, EEPROM), магнитные или оптические карты, или на любом типе носителей, подходящих для хранения электронных команд, и каждый из которых соединен с компьютерной системной шиной, при этом упомянутый носитель данных не ограничен перечисленным. Команды выполняются, используя одно или более устройств обработки (например, процессоры, блоки центрального процессора и т.д.).
Представленные здесь алгоритмы и изображения по сути не относятся к какому-нибудь конкретному компьютеру или другому устройству. Различные вычислительные машины общего назначения могут использоваться программами согласно раскрытому здесь замыслу, или может оказаться удобным конструирование более специализированного устройства для выполнения требуемых этапов способа. Требуемая структура для многих таких вычислительных машин будет ясна из приведенного ниже описания. Кроме того, настоящее изобретение описано без ссылки на какой-либо конкретный язык программирования. Следует признать, что различные языки программирования могут использоваться для реализации замысла описанного изобретения.
В последующем подробном описании вариантов осуществления делается ссылка на сопроводительные чертежи, которые показывают, посредством примера, конкретные варианты осуществления, в которых данное изобретение может быть реализовано на практике. На данных чертежах одинаковые номера позиций, по существу, описывают подобные компоненты на нескольких изображениях. Эти варианты осуществления описаны достаточно подробно, чтобы предоставить возможность специалистам в данной области техники реализовать данное изобретение на практике. Могут использоваться другие варианты осуществления, и могут быть сделаны структурные, логические и электрические изменения, не отступая от объема настоящего изобретения. Кроме того, следует понимать, что различные варианты осуществления изобретения, хотя и отличаются, не обязательно являются взаимно исключающими. Например, определенный отличительный признак, структуру или характеристику, описанную в одном из вариантов осуществления, могут включать в себя другие варианты осуществления. Поэтому последующее подробное описание не должно рассматриваться в смысле ограничения, и объем настоящего изобретения определяется только прилагаемой формулой изобретения наряду с полным объемом эквивалентов, охватываемым данной формулой изобретения.
Способ и устройство настоящего изобретения предоставляют механизм для разрешения конфликтов по адресному пространству между гостевой операционной системой и монитором виртуальных машин (МВМ). Фиг.1 иллюстрирует один из вариантов осуществления среды 100 виртуальных машин, в которой настоящее изобретение может работать. В данном варианте осуществления «голые» (без программного обеспечения) аппаратные средства 116 платформы содержат вычислительную платформу, на которой может, например, выполняться стандартная операционная система (ОС) или монитор виртуальных машин (МВМ), такой как МВМ 112. МВМ, хотя обычно и реализуется в программном обеспечении, может экспортировать интерфейс «голой» машины, например, посредством эмуляции, для программного обеспечения более высокого уровня. Такое программное обеспечение более высокого уровня может содержать стандартную ОС или ОС, выполняющуюся в реальном масштабе времени, хотя объем изобретения не ограничен в данном отношении и, в качестве альтернативы, МВМ может выполняться, например, в другом МВМ или поверх него. Мониторы МВМ и их типичные отличительные признаки и функциональные возможности широко известны специалистам в данной области техники и могут быть реализованы, например, в программном обеспечении, программно-аппаратных средствах или с помощью комбинации различных способов.
Как описано выше, МВМ представляет другому программному обеспечению (т.е. «гостевому» программному обеспечению) абстракцию одной или более виртуальных машин (ВМ, VM). Фиг.1 показывает две ВМ, 102 и 114. Каждая ВМ включает в себя гостевую ОС, такую как гостевая ОС 104 или 106, и различные приложения 108-110 гостевого программного обеспечения. Ожидается, что каждая из гостевых ОС 104 и 106 будет управлять доступом к физическим ресурсам (например, памяти и устройствам ввода-вывода с предварительно распределенной памятью) в пределах аппаратной платформы, на которой выполняется гостевая ОС 104 или 106, и выполнять другие функции. Однако в среде виртуальной машины МВМ 112 должен быть способен обладать максимальным контролем над физическими ресурсами для обеспечения защиты ВМ 102 и 114 друг от друга. МВМ 112 достигает этой цели, перехватывая все обращения гостевых ОС 104 и 106 к физическим ресурсам компьютера. Например, может использоваться способ снижения уровня привилегий гостя, чтобы дать возможность МВМ 112 перехватить вышеупомянутое обращение. Снижение уровня привилегий гостя вынуждает все гостевое программное обеспечение выполняться на аппаратном уровне привилегий, который не позволяет этому программному обеспечению обращаться к некоторым аппаратным ресурсам. В результате, всякий раз, когда гостевая ОС 104 или 106 пытается обратиться к любому из этих аппаратных ресурсов, она «выдает системное прерывание» МВМ 112, т.е. МВМ 112 получает контроль над операцией, инициированной гостевой операционной системой, если в этой операции существует обращение к таким аппаратным ресурсам. Следует отметить, что любой другой способ, известный из предшествующего уровня техники, может использоваться для передачи контроля над подобной операцией от гостевой ОС 104 или 106 к МВМ 112.
При использовании способа снижения уровня привилегий гостя или других способов, предоставляющих возможность МВМ 112 перехватить обращения гостевой ОС 104 и 106 к физическим ресурсам компьютера, часть кода и/или структур данных МВМ может по требованиям архитектуры быть должна постоянно находиться в том же самом виртуальном адресном пространстве, в котором находится каждая из гостевых ОС 104 и 106. Однако, поскольку гостевые ОС 104 и 106 не знают о присутствии МВМ, они могут пытаться обращаться к области, занятой кодом и/или структурами данных МВМ в виртуальном адресном пространстве, связанном с гостевой ОС 104 или 106. Такая попытка может привести к конфликту между кодом и структурами данных гостевой ОС и кодом и структурами данных МВМ в виртуальном адресном пространстве, вызывая аварийное завершение операции, выполняемой гостевой ОС 104 или 106, или МВМ 112. Настоящее изобретение предоставляет механизм для разрешения таких конфликтов по адресному пространству.
Фиг.2 - блок-схема системы 200, предназначенной для разрешения конфликтов по адресному пространству между МВМ и гостевой ОС согласно одному из вариантов осуществления настоящего изобретения. Система 200 включает в себя «голые» аппаратные средства 214 платформы, которые включают в себя вычислительную платформу, на которой могут выполняться гостевая ОС (например, гостевая ОС 104 или 106), МВМ (например, МВМ 112) и т.д. Два отдельных адресных пространства 204 и 202 выделены для гостевого программного обеспечения и МВМ. Т.е. адресное пространство 204 ВМ выделено таким образом, чтобы оно содержало код и структуры данных гостевой ОС и другое гостевое программное обеспечение, а адресное пространство 202 МВМ выделено для кода и структур данных МВМ.
Как описано выше, некоторые компоненты кода и/или структур данных МВМ могут по требованиям архитектуры быть обязаны постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС, чтобы дать возможность МВМ перехватывать обращения гостевой ОС к аппаратным ресурсам. Например, для архитектуры системы команд (АСК, ISA) IA-32, когда используется снижение уровня привилегий гостя для предоставления МВМ контроля над обращениями гостевой ОС к аппаратным ресурсам, таблица дескрипторов прерываний (ТДП, IDT), которая включает в себя указатели на процедуры обработки системных прерываний, по требованиям архитектуры должна постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС. Один из вариантов осуществления настоящего изобретения, который поддерживает снижение уровня привилегий гостя, будет описан более подробно ниже вместе с фиг.5 и 6. Для других архитектур АСК различные другие части кода и/или структур данных МВМ могут по требованиям архитектуры быть должны постоянно находиться в том же самом пространстве адресов, в котором находится гостевая ОС, чтобы предоставить возможность МВМ управлять обращениями, осуществляемыми гостевой ОС к аппаратным ресурсам.
В одном из вариантов осуществления код и структуры данных МВМ разделены на две части. Первая часть МВМ включает в себя набор кода и/или структур данных, которые обязаны постоянно находиться в адресном пространстве гостевой ОС, т.е. в адресном пространстве 204 ВМ. Вторая часть МВМ включает в себя оставшуюся часть кода и структур данных МВМ. В одном из вариантов осуществления программа (называемая ядром 210 виртуальной машины) собирает минимальный набор кода и/или структур данных МВМ, которые должны располагаться в том же самом адресном пространстве, в котором располагается гостевая ОС. Оставшаяся часть кода и структур данных МВМ компилируется как отдельная программа и располагается в адресном пространстве 202 МВМ. Ядро 210 виртуальной машины (ЯВМ, VМK) затем отображает себя и в адресное пространство 204 ВМ, и в адресное пространство 202 МВМ.
Впоследствии, когда гостевая ОС пытается обращаться к области, занятой кодом и/или структурами данных МВМ в адресном пространстве 204 ВМ, ЯВМ 210 обнаруживает эту попытку гостевой ОС. В одном из вариантов осуществления ЯВМ 210 получает контроль над событием, инициированным гостевой ОС, если это событие может потенциально вызвать конфликт по адресному пространству между гостевой ОС и МВМ. Снижение уровня привилегий гостя или любые другие аппаратные или программные механизмы, известные из предшествующего уровня техники, могут использоваться для передачи контроля над таким событием от гостевой ОС к коду и/или структурам данных МВМ, постоянно находящимся в адресном пространстве 204 ВМ.
Затем ЯВМ 210 оценивает это событие для определения его причины. При обнаружении, что событие было вызвано попыткой гостевой ОС обратиться к области, занятой кодом и/или структурами данных МВМ, ЯВМ 210 переотображает себя в другую область в пределах адресного пространства 204 ВМ для того, чтобы разрешить гостевой ОС доступ к области, ранее используемой ЯВМ 210. Один из вариантов осуществления способа перемещения ЯВМ 210 в пределах адресного пространства 204 ВМ описан более подробно ниже вместе с фиг.4.
Фиг.3 - последовательность операций одного из вариантов осуществления способа 300 разрешения конфликтов по адресному пространству между МВМ и гостевой ОС согласно одному из вариантов осуществления настоящего изобретения. Способ 300 начинается с деления МВМ на первую часть и вторую часть (обрабатывающий блок 304). Как описано выше, первая часть включает в себя набор кода и/или структур данных МВМ, которые по требованию архитектуры должны постоянно находиться в том же самом адресном пространстве, где находится гостевая ОС. Вторая часть МВМ включает в себя оставшуюся часть кода и структур данных МВМ. В одном из вариантов осуществления (описанном более подробно ниже) первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП, IDT). В альтернативных вариантах осуществления первая часть включает в себя другие различные структуры данных и код МВМ, которые должны постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС.
Затем создается первое адресное пространство (т.е. адресное пространство 204 ВМ), которое содержит код и структуры данных гостевой ОС и другое гостевое программное обеспечение (обрабатывающий блок 306), и второе адресное пространство (т.е. адресное пространство 202 МВМ) создается для кода и структур данных МВМ (обрабатывающий блок 308). В одном из вариантов осуществления эти адресные пространства создаются во время процесса загрузки.
Помимо этого, первая часть МВМ отображается и в адресное пространство ВМ, и в адресное пространство МВМ (обрабатывающий блок 310), а вторая часть МВМ загружается в адресное пространство МВМ (обрабатывающий блок 312).
В обрабатывающем блоке 314 обнаруживается попытка гостевой ОС обратиться к области, занятой первой частью МВМ. В одном из вариантов осуществления такая попытка обнаруживается посредством передачи контроля над событием, инициированным гостевой ОС, первой части МВМ, если это событие может потенциально вызвать конфликт по адресному пространству между гостевой операционной системой и МВМ. Один из вариантов осуществления обнаружения потенциального конфликта по адресному пространству описан более подробно ниже в связи с фиг.5 и 6.
Впоследствии в обрабатывающем блоке 316 первая часть МВМ перемещается в другую область в пределах адресного пространства ВМ, чтобы разрешить доступ гостевой ОС к области, ранее занятой первой частью МВМ. Любая последующая попытка обращения к новой области, занятой первой частью МВМ, снова приводит к ее перемещению в пределах адресного пространства ВМ. Один из вариантов осуществления способа перемещения ЯВМ, которое содержит первую часть МВМ, показан на фиг.4.
Согласно фиг.4, при обнаружении конфликта по адресному пространству между гостевой ОС и МВМ (обрабатывающий блок 404) в адресном пространстве ВМ выполняется поиск неиспользуемой области (обрабатывающий блок 406). В решающем блоке 408 происходит определение того, существует ли неиспользуемая область в адресном пространстве ВМ. При положительном результате определения ЯВМ, содержащее первую часть кода и структур данных МВМ, переотображается в эту неиспользуемую область, и контроль передается обратно гостевой ОС, которая может теперь обращаться к области, ранее используемой ЯВМ.
В качестве альтернативы, если неиспользуемой области не существует в адресном пространстве ВМ, т.е. гостевая ОС использует все адресное пространство ВМ, то случайная область выбирается в пределах адресного пространства ВМ (обрабатывающий блок 412), содержимое памяти, расположенной в выбранной области, копируется в буфер в адресном пространстве МВМ (обрабатывающий блок 414), и ЯВМ переотображается в выбранную область в адресном пространстве ВМ (обрабатывающий блок 416). Последующие обращения к этой выбранной области памяти (т.е. к новой области ЯВМ) обслуживаются через эмулирование доступа к памяти из буфера в адресном пространстве МВМ, который содержит первоначальное содержимое новой области ЯВМ. В одном из вариантов осуществления частота таких обращений к эмулируемой памяти может быть уменьшена посредством периодического перемещения ЯВМ в случайные области в пределах адресного пространства ВМ, пока не будет найдена область, которая редко используется.
Фиг.5 иллюстрирует работу ЯВМ, которое поддерживает снижение уровня привилегий гостя, согласно одному из вариантов осуществления настоящего изобретения. Как описано выше, снижение уровня привилегий гостя заставляет гостевую ОС выполняться на менее привилегированном уровне так, чтобы гостевая ОС «вызывала системное прерывание» МВМ всякий раз, когда она пытается выдать привилегированные команды, которые оперируют системным состоянием процессора. В одном из вариантов осуществления МВМ, поддерживающий снижение уровня привилегий гостя, размещает указатели на процедуры обработки системных прерываний (т.е. обработчики 552 системных прерываний) в таблице 514 дескрипторов прерываний (ТДП). Некоторые архитектуры АСК (например, архитектура системы команд IA-32) требуют, чтобы ТДП 514 постоянно находилась в активном в настоящее время виртуальном адресном пространстве (т.е. в адресном пространстве 504 ВМ). В одном из вариантов осуществления элементы ТДП 514 являются шлюзами задач, которые обеспечивают переключение адресного пространства. Т.е., когда системное прерывание сгенерировано, ТДП 514 ищет указатель на процедуру обработки системных прерываний. Если этот указатель является шлюзом задачи, то он даст возможность выполнить прямое переключение к адресному пространству МВМ, которое содержит процедуру обработки системных прерываний для сгенерированного системного прерывания. Соответственно, обработчик системных прерываний, соответствующий шлюзу задачи, не должен постоянно находиться в адресном пространстве ВМ, хотя сам шлюз задачи должен постоянно находиться в адресном пространстве ВМ. В другом варианте осуществления элементы ТДП 514 являются шлюзами системных прерываний или шлюзами внешних прерываний, которые не обеспечивают переключение адресного пространства. Следовательно, обработчики системных прерываний, связанные с такими элементами ТДП, должны постоянно находиться в адресном пространстве ВМ. Кроме того, МВМ может размещать теневые версии других структур данных (например, глобальную таблицу дескрипторов) в адресном пространстве ВМ.
В одном из вариантов осуществления ЯВМ 510 собирает вместе минимальный набор обработчиков системных прерываний и/или структур данных (например, ТДП 514), который должен быть расположен в адресном пространстве ВМ, отображает их и в адресное пространство 504 ВМ, и в адресное пространство 502 МВМ, и устанавливает права доступа к страницам, содержащим ЯВМ 510, на самый привилегированный уровень (например, на уровень привилегий «супервизора» с 0-ым кольцом защиты (ring=0) для микропроцессоров IA-32). Как описано выше, гостевая ОС выполняется в непривилегированном режиме (например, в режиме «пользователя» с 3-им кольцом защиты (ring=3) для микропроцессоров IA-32). В результате, в одном из вариантов осуществления гостевая ОС генерирует системные прерывания виртуализации всякий раз, когда она пытается обращаться к привилегированным машинным ресурсам, включая страницы, содержащие ЯВМ 510, которые защищены с помощью самых привилегированных прав доступа.
В одном из вариантов осуществления, когда системное прерывание виртуализации сгенерировано, в ТДП 514 выполняют поиск соответствующего указателя на обработчик системных прерываний. В одном из вариантов осуществления системное прерывание, возможно, должно обрабатываться обработчиком системных прерываний, постоянно находящимся в МВМ. В этом варианте осуществления ЯВМ выполняет два переключения адресного пространства - одно переключение для того, чтобы доставить системное прерывание обработчику системных прерываний в адресном пространстве 502 МВМ, и второе переключение для перехода обратно к адресному пространству 504 ВМ после того, как системное прерывание было обслужено обработчиком системных прерываний, постоянно находящимся в МВМ.
В качестве альтернативы системное прерывание может обрабатываться в обработчике, постоянно находящемся в ЯВМ. Например, системное прерывание может быть вызвано командой гостевой ОС сбросить флаг в регистре процессора. Такое системное прерывание может обрабатываться полностью в обработчике 552 системных прерываний, не передавая управление МВМ в адресном пространстве МВМ 502, и такая реализация привела бы к лучшей производительности. Одним из типов системных прерываний виртуализации является ошибка вследствие конфликта, которая генерируется, когда гостевая ОС пытается обратиться к области адресного пространства 504 ВМ, которая используется в настоящее время ЯВМ 510. ЯВМ 510 обрабатывает эти ошибки вследствие конфликта посредством переотображения себя в новую область в пределах адресного пространства 504 ВМ, как описано более подробно выше в связи с фиг.4.
Фиг.6 - последовательность операций способа 600 обработки системных прерываний виртуализации, сгенерированных гостевой ОС, согласно одному из вариантов осуществления настоящего изобретения. Способ 600 начинается с установки прав доступа к области, занятой ЯВМ, на более привилегированный уровень, чем уровень привилегий, связанный с гостевой ОС (обрабатывающий блок 604). Например, все страницы ЯВМ могут отображаться только с уровнем привилегий супервизора (с 0-ым кольцом защиты (ring=0)), а гостевая ОС может быть установлена для выполнения в непривилегированном режиме пользователя (с 3-им кольцом защиты).
В обрабатывающем блоке 606 принимается системное прерывание, сгенерированное гостевой ОС. Системное прерывание вызывается попыткой гостевой ОС обратиться к привилегированным аппаратным ресурсам. В решающем блоке 608 проводится определение того, может ли системное прерывание быть обработано внутри ЯВМ (например, в обработчике системных прерываний, постоянно находящемся в ЯВМ). Если системное прерывание слишком сложно, чтобы обрабатываться ЯВМ, то оно доставляется в адресное пространство МВМ (например, обработчику системных прерываний, постоянно находящемуся в МВМ) (обрабатывающий блок 610) и затем возвращается назад в адресное пространство ВМ после того, как системное прерывание было обслужено МВМ (обрабатывающий блок 612). Впоследствии контроль над событием, которое вызвало системное прерывание, возвращается гостевой ОС (обрабатывающий блок 620).
В качестве альтернативы, если системное прерывание может быть обработано внутри ЯВМ, то проводится определение того, было ли системное прерывание вызвано конфликтом по адресному пространству между кодом и структурами данных ЯВМ и кодом и структурами данных гостевой ОС (решающий блок 614). Если системное прерывание было действительно вызвано конфликтом по адресному пространству, то код и структуры данных ЯВМ перемещаются в новую область в пределах адресного пространства ВМ (обрабатывающий блок 618). В качестве альтернативы системное прерывание обрабатывается в соответствующем обработчике системных прерываний (обрабатывающий блок 616). Впоследствии контроль над событием, которое вызвало системное прерывание, возвращается гостевой ОС (обрабатывающий блок 620).
Фиг.7 - блок-схема одного из вариантов осуществления обрабатывающей системы. Обрабатывающая система 700 включает в себя процессор 720 и память 730. Процессор 720 может быть процессором любого типа, способным к выполнению программного обеспечения, таким как микропроцессор, процессор цифровой обработки сигналов, микроконтроллер или подобный им. Обрабатывающая система 700 может быть персональным компьютером (ПК), универсальной вычислительной машиной (мейнфреймом), карманным устройством, портативным компьютером, телевизионной приставкой или любой другой системой, которая включает в себя программное обеспечение.
Память 730 может быть жестким диском, гибким диском, оперативным запоминающим устройством (ОЗУ), постоянным запоминающим устройством (ПЗУ), флеш-памятью или любым другим типом машинного носителя, считываемого процессором 720. Память 730 может хранить команды, предназначенные для выполнения различных вариантов осуществления способа настоящего изобретения, таких как способы 300, 400 и 600 (фиг.3, 4 и 6).
Следует понимать, что по замыслу вышеприведенное описание является иллюстративным, а не ограничительным. Множество других вариантов осуществления будут очевидны специалистам в данной области техники после прочтения и осознания вышеприведенного описания. Поэтому объем изобретения должен определяться по отношению к прилагаемой формуле изобретения наряду с полным объемом эквивалентов, который охватывает данная формула изобретения.
Claims (18)
1. Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой, содержащий этапы, на которых обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
2. Способ по п. 1, в котором первая часть МВМ включает в себя набор кода и структур данных МВМ, которые по требованиям архитектуры должны постоянно находиться в первом адресном пространстве.
3. Способ по п. 1, в котором первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП).
4. Способ по п. 1, дополнительно содержащий этапы, на которых делят МВМ на первую часть и вторую часть, создают первое адресное пространство, связанное с гостевой операционной системой, создают второе адресное пространство, связанное с МВМ, размещают вторую часть МВМ во втором адресном пространстве, связанном с МВМ, и отображают первую часть МВМ в первое адресное пространство и второе адресное пространство.
5. Способ по п. 1, дополнительно содержащий этап, на котором получают контроль над событием, инициированным гостевой операционной системой, когда событие может потенциально вызвать конфликт по адресному пространству между гостевой операционной системой и МВМ.
6. Способ по п. 5, в котором получение контроля дополнительно содержит этапы, на которых устанавливают права доступа к разделу, занятому первой частью МВМ, на более привилегированный уровень, чем уровень привилегий, связанный с гостевой операционной системой, и принимают системное прерывание, вызванное попыткой гостевой операционной системы обратиться к аппаратному ресурсу, имеющему более высокий уровень привилегий, чем уровень привилегий, связанный с гостевой операционной системой.
7. Способ по п. 6, дополнительно содержащий этапы, на которых определяют, что системное прерывание может быть обработано первой частью МВМ, выполняют код, связанный с системным прерыванием, и возвращают контроль над событием гостевой операционной системе.
8. Способ по п. 6, дополнительно содержащий этапы, на которых определяют, что системное прерывание должно быть обработано второй частью МВМ, доставляют системное прерывание ко второй части МВМ, передают контроль над событием гостевой операционной системе после того, как код, связанный с системным прерыванием, был выполнен второй частью МВМ.
9. Способ по п. 1, в котором перемещение первой части МВМ дополнительно содержит этапы, на которых обнаруживают неиспользуемую область в пределах первого адресного пространства и переотображают первую часть МВМ в эту неиспользуемую область.
10. Способ по п. 1, в котором перемещение первой части МВМ дополнительно содержит этапы, на которых определяют, что неиспользуемой области не существует в пределах первого адресного пространства, выбирают случайную область в пределах первого адресного пространства, копируют содержимое памяти, расположенное в этой случайной области, во второе адресное пространство и переотображают первую часть МВМ в данную случайную область.
11. Способ по п. 10, дополнительно содержащий этапы, на которых получают контроль над событием, инициированным гостевой операционной системой, причем данное событие соответствует попытке гостевой операционной системы обратиться к содержимому памяти, ранее расположенному в случайной области, и осуществляют доступ к скопированному содержимому памяти во втором адресном пространстве.
12. Способ по п. 11, дополнительно содержащий этап, на котором периодически перемещают первую часть МВМ в случайные области в пределах первого адресного пространства до тех пор, пока не обнаружат область, к которой редко обращаются.
13. Система для разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой, содержащая память, которая включает в себя первое адресное пространство, связанное с гостевой операционной системой, и второе адресное пространство, связанное с монитором виртуальных машин (МВМ), и процессор, соединенный с памятью, предназначенный для обнаружения того, что гостевая операционная система пытается обратиться к области, занятой первой частью МВМ в пределах первого адресного пространства, и для перемещения первой части МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
14. Система по п. 13, в которой первая часть МВМ включает в себя набор кода и структур данных МВМ, которые по требованиям архитектуры должны постоянно находиться в первом адресном пространстве.
15. Система по п. 13, в которой первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП).
16. Считываемый компьютером носитель, который предоставляет команды, которые при выполнении в процессоре заставляют указанный процессор выполнять операции, содержащие этапы, на которых обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
17. Считываемый компьютером носитель по п. 16, содержащий дополнительные команды, заставляющие процессор выполнять операции, содержащие этапы, на которых обнаруживают неиспользуемую область в пределах первого адресного пространства, и переотображают первую часть МВМ в эту неиспользуемую область.
18. Считываемый компьютером носитель по п. 16, содержащий дополнительные команды, заставляющие процессор выполнять операции, содержащие этапы, на которых определяют, что в пределах первого адресного пространства не существует неиспользуемой области, выбирают случайную область в пределах первого адресного пространства, копируют содержимое памяти, расположенное в данной случайной области, во второе адресное пространство и переотображают первую часть МВМ в эту случайную область.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/752,587 US7035963B2 (en) | 2000-12-27 | 2000-12-27 | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US09/752,587 | 2000-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2003123112A RU2003123112A (ru) | 2005-02-27 |
RU2259582C2 true RU2259582C2 (ru) | 2005-08-27 |
Family
ID=25026926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2003123112/09A RU2259582C2 (ru) | 2000-12-27 | 2001-12-20 | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой |
Country Status (10)
Country | Link |
---|---|
US (2) | US7035963B2 (ru) |
EP (1) | EP1405181A2 (ru) |
JP (1) | JP4021769B2 (ru) |
KR (1) | KR100624668B1 (ru) |
CN (2) | CN1575453B (ru) |
AU (1) | AU2002249862A1 (ru) |
BR (1) | BR0116630A (ru) |
RU (1) | RU2259582C2 (ru) |
TW (1) | TWI228221B (ru) |
WO (1) | WO2002056172A2 (ru) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2433458C2 (ru) * | 2006-04-17 | 2011-11-10 | Майкрософт Корпорейшн | Создание согласованных с приложениями резервных копий виртуальных машин уровня хоста |
RU2446447C2 (ru) * | 2006-05-15 | 2012-03-27 | Майкрософт Корпорейшн | Запуск гипервизора в запущенной операционной системе |
RU2462747C2 (ru) * | 2007-01-25 | 2012-09-27 | Майкрософт Корпорейшн | Защита ресурсов операционной системы |
US8327353B2 (en) | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
WO2012177464A1 (en) * | 2011-06-13 | 2012-12-27 | Lynuxworks, Inc. | Systems and methods of secure domain isolation |
US8943300B2 (en) | 2006-08-31 | 2015-01-27 | Qualcomm Incorporated | Method and apparatus for generating return address predictions for implicit and explicit subroutine calls using predecode information |
US9607151B2 (en) | 2012-06-26 | 2017-03-28 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
RU2626550C1 (ru) * | 2016-08-09 | 2017-07-28 | Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" | Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи |
US9940174B2 (en) | 2014-05-15 | 2018-04-10 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
US10051008B2 (en) | 2014-05-15 | 2018-08-14 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features |
US10095538B2 (en) | 2014-05-15 | 2018-10-09 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features |
US10824715B2 (en) | 2014-07-01 | 2020-11-03 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features |
US10908968B2 (en) | 2009-03-26 | 2021-02-02 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture and determining a highest detected NUMA ratio in a datacenter |
US11782745B2 (en) | 2014-07-01 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745346B2 (en) * | 2000-12-08 | 2004-06-01 | Intel Corporation | Method for efficiently identifying errant processes in a computer system by the operating system (OS) for error containment and error recovery |
US7461148B1 (en) * | 2001-02-16 | 2008-12-02 | Swsoft Holdings, Ltd. | Virtual private server with isolation of system components |
US7260820B1 (en) * | 2001-04-26 | 2007-08-21 | Vm Ware, Inc. | Undefeatable transformation for virtual machine I/O operations |
US7103529B2 (en) * | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7058786B1 (en) * | 2002-01-17 | 2006-06-06 | Hewlett-Packard Development Company | Operating system data communication method and system |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7124327B2 (en) * | 2002-06-29 | 2006-10-17 | Intel Corporation | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
US7149510B2 (en) | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
US7278030B1 (en) * | 2003-03-03 | 2007-10-02 | Vmware, Inc. | Virtualization system for computers having multiple protection mechanisms |
US7111145B1 (en) * | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US7409487B1 (en) * | 2003-06-30 | 2008-08-05 | Vmware, Inc. | Virtualization system for computers that use address space indentifiers |
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
US7376949B2 (en) * | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
JP2007508623A (ja) * | 2003-10-08 | 2007-04-05 | ユニシス コーポレーション | 複数のノードにわたってシステムリソースを割り当てて管理する仮想データセンタ |
US20050132122A1 (en) * | 2003-12-16 | 2005-06-16 | Rozas Carlos V. | Method, apparatus and system for monitoring system integrity in a trusted computing environment |
US7877747B2 (en) | 2004-02-20 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Flexible operating system operable as either native or as virtualized |
US7725643B1 (en) * | 2004-05-04 | 2010-05-25 | Oracle America, Inc. | Methods and systems for detecting and avoiding an address dependency between tasks |
US7802250B2 (en) * | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US7607011B1 (en) * | 2004-07-16 | 2009-10-20 | Rockwell Collins, Inc. | System and method for multi-level security on a network |
US7685391B1 (en) * | 2004-10-12 | 2010-03-23 | Sun Microsystems, Inc. | Kernel/user stack relocation during system uptime |
DE602004027516D1 (de) * | 2004-12-03 | 2010-07-15 | St Microelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US7395405B2 (en) * | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US20070006178A1 (en) * | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US20060277546A1 (en) * | 2005-06-02 | 2006-12-07 | Rothman Michael A | Detecting virtualization |
US7370137B2 (en) * | 2005-06-06 | 2008-05-06 | Intel Corporation | Inter-domain data mover for a memory-to-memory copy engine |
JP2007004661A (ja) * | 2005-06-27 | 2007-01-11 | Hitachi Ltd | 仮想計算機の制御方法及びプログラム |
US8856473B2 (en) * | 2005-07-01 | 2014-10-07 | Red Hat, Inc. | Computer system protection based on virtualization |
US8429629B2 (en) | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US8104034B2 (en) * | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
US8612970B2 (en) * | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US7548999B2 (en) * | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
US7536541B2 (en) * | 2006-03-07 | 2009-05-19 | Novell Inc. | Parallelizing multiple boot images with virtual machines |
US9213542B2 (en) | 2006-03-30 | 2015-12-15 | Microsoft Technology Licensing, Llc | Creating templates of offline resources |
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US7774579B1 (en) * | 2006-04-14 | 2010-08-10 | Tilera Corporation | Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles |
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
US7587663B2 (en) * | 2006-05-22 | 2009-09-08 | Intel Corporation | Fault detection using redundant virtual machines |
US20070294707A1 (en) * | 2006-06-15 | 2007-12-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
US8024727B2 (en) * | 2006-06-15 | 2011-09-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
DE102006029756A1 (de) | 2006-06-27 | 2008-01-03 | Deutsche Telekom Ag | Verfahren zum Delegieren von Privilegien an eine niedriger-priviligierte Instanz durch eine höher-priviligierte Instanz |
JP2008033392A (ja) * | 2006-07-26 | 2008-02-14 | Nec Corp | 仮想計算機システム及びその動作方法 |
US7490191B2 (en) * | 2006-09-22 | 2009-02-10 | Intel Corporation | Sharing information between guests in a virtual machine environment |
US20080104586A1 (en) * | 2006-10-27 | 2008-05-01 | Microsoft Corporation | Allowing Virtual Machine to Discover Virtual Status Thereof |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
US9354927B2 (en) | 2006-12-21 | 2016-05-31 | Vmware, Inc. | Securing virtual machine data |
US9098347B2 (en) | 2006-12-21 | 2015-08-04 | Vmware | Implementation of virtual machine operations using storage system functionality |
US9189265B2 (en) | 2006-12-21 | 2015-11-17 | Vmware, Inc. | Storage architecture for virtual machines |
US8380987B2 (en) * | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
KR101396831B1 (ko) * | 2007-03-30 | 2014-05-21 | 삼성전자주식회사 | 메모리 접근 제어 방법 |
US7984483B2 (en) * | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
US8561060B2 (en) * | 2007-04-26 | 2013-10-15 | Advanced Micro Devices, Inc. | Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine |
US20090007100A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Suspending a Running Operating System to Enable Security Scanning |
CN101334751B (zh) * | 2007-06-29 | 2010-04-14 | 联想(北京)有限公司 | 虚拟机监视器识别客户操作系统中进程的方法及装置 |
US8763115B2 (en) * | 2007-08-08 | 2014-06-24 | Vmware, Inc. | Impeding progress of malicious guest software |
CA2699565C (en) * | 2007-09-20 | 2014-07-15 | C&S Operations, Inc. | Computer system with multiple terminals |
CN101425020A (zh) * | 2007-10-31 | 2009-05-06 | 国际商业机器公司 | 对mmu仿真进行加速的方法、装置和全系统仿真器 |
KR100881386B1 (ko) | 2008-01-24 | 2009-02-02 | 주식회사 파수닷컴 | 프로세스 분리 실행을 통한 drm 클라이언트 충돌 방지 방법 |
CN101727331B (zh) * | 2008-10-24 | 2013-03-20 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
US9785462B2 (en) | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
US8627014B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
US8806101B2 (en) * | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US9529636B2 (en) | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US8429648B2 (en) * | 2009-05-28 | 2013-04-23 | Red Hat, Inc. | Method and apparatus to service a software generated trap received by a virtual machine monitor |
US8813069B2 (en) * | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
US20110197256A1 (en) * | 2009-12-18 | 2011-08-11 | Assured Information Security, Inc. | Methods for securing a processing system and devices thereof |
KR20110094764A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 |
US20110219373A1 (en) * | 2010-03-02 | 2011-09-08 | Electronics And Telecommunications Research Institute | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform |
US9529729B2 (en) * | 2010-11-16 | 2016-12-27 | International Business Machines Corporation | Location of memory management translations in an emulated processor |
US9804870B2 (en) | 2011-10-28 | 2017-10-31 | Intel Corporation | Instruction-set support for invocation of VMM-configured services without VMM intervention |
KR20130050156A (ko) * | 2011-11-07 | 2013-05-15 | 한국전자통신연구원 | 가상 주소 공간 전환 장치 |
US9170940B2 (en) * | 2011-12-07 | 2015-10-27 | Intel Corporation | Techniques to prelink software to improve memory de-duplication in a virtual system |
RU2472215C1 (ru) | 2011-12-28 | 2013-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ выявления неизвестных программ с использованием эмуляции процесса загрузки |
US10310973B2 (en) * | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
CN103699388B (zh) * | 2013-12-30 | 2015-07-08 | 北京控制工程研究所 | 基于绝对地址汇聚的数据访问冲突检测方法 |
US9292686B2 (en) * | 2014-01-16 | 2016-03-22 | Fireeye, Inc. | Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment |
US9436395B2 (en) * | 2014-03-14 | 2016-09-06 | Advanced Micro Devices, Inc. | Mechanisms to save user/kernel copy for cross device communications |
US9934376B1 (en) | 2014-12-29 | 2018-04-03 | Fireeye, Inc. | Malware detection appliance architecture |
US9912681B1 (en) | 2015-03-31 | 2018-03-06 | Fireeye, Inc. | Injection of content processing delay in an endpoint |
US10474813B1 (en) | 2015-03-31 | 2019-11-12 | Fireeye, Inc. | Code injection technique for remediation at an endpoint of a network |
US10454950B1 (en) | 2015-06-30 | 2019-10-22 | Fireeye, Inc. | Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks |
US10846117B1 (en) | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10447728B1 (en) | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US10191861B1 (en) | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
US10909053B2 (en) * | 2019-05-27 | 2021-02-02 | Advanced Micro Devices, Inc. | Providing copies of input-output memory management unit registers to guest operating systems |
US10853263B1 (en) * | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
CN111124664B (zh) | 2019-11-22 | 2023-12-08 | 华为技术有限公司 | 第一操作系统访问第二操作系统资源的方法和装置 |
US20230033583A1 (en) * | 2021-07-30 | 2023-02-02 | Advanced Micro Devices, Inc. | Primary input-output queue serving host and guest operating systems concurrently |
Family Cites Families (184)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4307214A (en) | 1979-12-12 | 1981-12-22 | Phillips Petroleum Company | SC2 activation of supported chromium oxide catalysts |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
JPS58140862A (ja) | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
JPS6273346A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
JPS63156248A (ja) * | 1986-12-19 | 1988-06-29 | Nec Corp | 仮想計算機方式 |
FR2618002B1 (fr) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JPH0388042A (ja) * | 1989-08-31 | 1991-04-12 | Nec Corp | 仮想計算機環境におけるプログラム起動方式 |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
JP3093293B2 (ja) * | 1991-02-08 | 2000-10-03 | 日本電気株式会社 | 情報処理装置の割り込み方式 |
US5446904A (en) * | 1991-05-17 | 1995-08-29 | Zenith Data Systems Corporation | Suspend/resume capability for a protected mode microprocessor |
JPH04348434A (ja) * | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
US5522075A (en) | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (ja) | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (ja) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (ja) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5421066A (en) * | 1994-05-16 | 1995-06-06 | Bonomo; Melvin E. | Self-locking tensioning bar |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) * | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (fr) * | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5684948A (en) | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US5606817B1 (en) * | 1995-10-18 | 1999-06-29 | Remington Arms Co Inc | Muzzle-loading firearm |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) * | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) * | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6178509B1 (en) * | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) * | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US6205550B1 (en) * | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5757604A (en) | 1996-06-27 | 1998-05-26 | Raychem Corporation | Surge arrester having grooved and ridged terminals |
US5944821A (en) * | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
US6055637A (en) * | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) * | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (ja) * | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) * | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) * | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) * | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US5953502A (en) * | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6014745A (en) * | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) * | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5919257A (en) * | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (de) * | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6182089B1 (en) * | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US6357004B1 (en) * | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US6061794A (en) * | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6108644A (en) * | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6192455B1 (en) * | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) * | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
EP0990072B2 (de) * | 1998-04-22 | 2008-01-02 | Peter Geiger | Verlegeverbund aus Pflastersteinen aus Betonwerkstoff |
US6173417B1 (en) * | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) * | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
US6421702B1 (en) * | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US6505279B1 (en) * | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
US6339815B1 (en) * | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
JP2000076087A (ja) * | 1998-08-28 | 2000-03-14 | Hitachi Ltd | マルチオペレーティングシステム制御方法 |
US6363485B1 (en) * | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6230248B1 (en) * | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6445797B1 (en) * | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6282650B1 (en) * | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
US6272533B1 (en) * | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) * | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (ja) * | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
US6535988B1 (en) * | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) * | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6789126B1 (en) * | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
JP4316882B2 (ja) * | 2000-12-21 | 2009-08-19 | マイクロソフト コーポレーション | エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 |
US7225441B2 (en) * | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
US6789156B1 (en) * | 2001-05-22 | 2004-09-07 | Vmware, Inc. | Content-based, transparent sharing of memory units |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US6725289B1 (en) * | 2002-04-17 | 2004-04-20 | Vmware, Inc. | Transparent address remapping for high-speed I/O |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
-
2000
- 2000-12-27 US US09/752,587 patent/US7035963B2/en not_active Expired - Fee Related
-
2001
- 2001-12-20 JP JP2002556364A patent/JP4021769B2/ja not_active Expired - Fee Related
- 2001-12-20 EP EP01998106A patent/EP1405181A2/en not_active Withdrawn
- 2001-12-20 BR BR0116630-1A patent/BR0116630A/pt not_active Application Discontinuation
- 2001-12-20 CN CN018228372A patent/CN1575453B/zh not_active Expired - Fee Related
- 2001-12-20 WO PCT/US2001/050415 patent/WO2002056172A2/en active Application Filing
- 2001-12-20 RU RU2003123112/09A patent/RU2259582C2/ru not_active IP Right Cessation
- 2001-12-20 CN CN2010101495395A patent/CN101826030B/zh not_active Expired - Fee Related
- 2001-12-20 KR KR1020037008770A patent/KR100624668B1/ko not_active IP Right Cessation
- 2001-12-20 AU AU2002249862A patent/AU2002249862A1/en not_active Abandoned
- 2001-12-24 TW TW090132036A patent/TWI228221B/zh not_active IP Right Cessation
-
2003
- 2003-09-30 US US10/676,737 patent/US7020738B2/en not_active Expired - Fee Related
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327353B2 (en) | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
US8321377B2 (en) | 2006-04-17 | 2012-11-27 | Microsoft Corporation | Creating host-level application-consistent backups of virtual machines |
US9529807B2 (en) | 2006-04-17 | 2016-12-27 | Microsoft Technology Licensing, Llc | Creating host-level application-consistent backups of virtual machines |
RU2433458C2 (ru) * | 2006-04-17 | 2011-11-10 | Майкрософт Корпорейшн | Создание согласованных с приложениями резервных копий виртуальных машин уровня хоста |
RU2446447C2 (ru) * | 2006-05-15 | 2012-03-27 | Майкрософт Корпорейшн | Запуск гипервизора в запущенной операционной системе |
US8943300B2 (en) | 2006-08-31 | 2015-01-27 | Qualcomm Incorporated | Method and apparatus for generating return address predictions for implicit and explicit subroutine calls using predecode information |
RU2462747C2 (ru) * | 2007-01-25 | 2012-09-27 | Майкрософт Корпорейшн | Защита ресурсов операционной системы |
US10908968B2 (en) | 2009-03-26 | 2021-02-02 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture and determining a highest detected NUMA ratio in a datacenter |
US10061606B2 (en) | 2011-06-13 | 2018-08-28 | Lynx Software Technologies, Inc. | Systems and methods of secure domain isolation involving separation kernel features |
WO2012177464A1 (en) * | 2011-06-13 | 2012-12-27 | Lynuxworks, Inc. | Systems and methods of secure domain isolation |
US9129123B2 (en) | 2011-06-13 | 2015-09-08 | Lynx Software Technologies, Inc. | Systems and methods of secure domain isolation involving separation kernel features |
US9575824B2 (en) | 2011-06-13 | 2017-02-21 | Lynx Software Technologies, Inc. | Systems and methods of secure domain isolation involving separation kernel features |
US9607151B2 (en) | 2012-06-26 | 2017-03-28 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
US10671727B2 (en) | 2012-06-26 | 2020-06-02 | Lynx Software Technologies, Inc. | Systems and methods involving features of securely handling attempts to perform boot modifications(s) via a separation kernel hypervisor |
US11861005B2 (en) | 2012-06-26 | 2024-01-02 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
US10051008B2 (en) | 2014-05-15 | 2018-08-14 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features |
US9940174B2 (en) | 2014-05-15 | 2018-04-10 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
US10095538B2 (en) | 2014-05-15 | 2018-10-09 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features |
US10789105B2 (en) | 2014-05-15 | 2020-09-29 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
US11782766B2 (en) | 2014-05-15 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
US10824715B2 (en) | 2014-07-01 | 2020-11-03 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features |
US11782745B2 (en) | 2014-07-01 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features |
RU2626550C1 (ru) * | 2016-08-09 | 2017-07-28 | Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" | Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи |
Also Published As
Publication number | Publication date |
---|---|
CN1575453A (zh) | 2005-02-02 |
TWI228221B (en) | 2005-02-21 |
US20030120856A1 (en) | 2003-06-26 |
EP1405181A2 (en) | 2004-04-07 |
CN1575453B (zh) | 2011-01-12 |
US20040064813A1 (en) | 2004-04-01 |
WO2002056172A3 (en) | 2004-01-08 |
WO2002056172A2 (en) | 2002-07-18 |
CN101826030A (zh) | 2010-09-08 |
CN101826030B (zh) | 2012-12-05 |
KR100624668B1 (ko) | 2006-09-18 |
JP4021769B2 (ja) | 2007-12-12 |
BR0116630A (pt) | 2004-09-28 |
US7035963B2 (en) | 2006-04-25 |
US7020738B2 (en) | 2006-03-28 |
KR20030097798A (ko) | 2003-12-31 |
RU2003123112A (ru) | 2005-02-27 |
AU2002249862A1 (en) | 2002-07-24 |
JP2004526229A (ja) | 2004-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2259582C2 (ru) | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой | |
US6081890A (en) | Method of communication between firmware written for different instruction set architectures | |
US7707341B1 (en) | Virtualizing an interrupt controller | |
RU2265880C2 (ru) | Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины | |
US6349355B1 (en) | Sharing executable modules between user and kernel threads | |
US8225071B2 (en) | Accessing multiple page tables in a computer system | |
US5317754A (en) | Method and apparatus for enabling an interpretive execution subset | |
US8032897B2 (en) | Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization | |
US7506121B2 (en) | Method and apparatus for a guest to access a memory mapped device | |
CA2915646C (en) | Page fault injection in virtual machines to cause mapping of swapped-out memory pages into (vm) virtualized memory | |
US20050204357A1 (en) | Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology | |
US20050076186A1 (en) | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements | |
KR20070086843A (ko) | 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법 | |
WO2006007361A2 (en) | Support for nested faults in a virtual machine environment | |
US5873124A (en) | Virtual memory scratch pages | |
JPS60171552A (ja) | アドレス変換処理方法 | |
US11385927B2 (en) | Interrupt servicing in userspace | |
US8091090B2 (en) | Method for providing scratch registers for use by a virtual-machine monitor | |
US11169838B2 (en) | Hypercall implementation in a virtualized computer system | |
US11550609B2 (en) | Unified hypercall interface across processors in virtualized computing systems | |
US20120054773A1 (en) | Processor support for secure device driver architecture | |
Steil et al. | Inside VMware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20171221 |