RU2259582C2 - Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой - Google Patents

Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой Download PDF

Info

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
Application number
RU2003123112/09A
Other languages
English (en)
Other versions
RU2003123112A (ru
Inventor
Стефен ЧОУ (US)
Стефен ЧОУ
Гилберт НЭЙДЖЕР (US)
Гилберт НЭЙДЖЕР
Эрик КОТА-РОБЛЕС (US)
Эрик КОТА-РОБЛЕС
Сталинселварадж ДЖЕЯСИНГХ (US)
Сталинселварадж ДЖЕЯСИНГХ
Рихард УЛИГ (US)
Рихард УЛИГ
Элэйн КАГИ (US)
Элэйн КАГИ
Себасть н ШЕНБЕРГ (DE)
Себастьян ШЕНБЕРГ
Майкл КОЗУЧ (US)
Майкл КОЗУЧ
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2003123112A publication Critical patent/RU2003123112A/ru
Application granted granted Critical
Publication of RU2259582C2 publication Critical patent/RU2259582C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory 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, содержащий дополнительные команды, заставляющие процессор выполнять операции, содержащие этапы, на которых определяют, что в пределах первого адресного пространства не существует неиспользуемой области, выбирают случайную область в пределах первого адресного пространства, копируют содержимое памяти, расположенное в данной случайной области, во второе адресное пространство и переотображают первую часть МВМ в эту случайную область.
RU2003123112/09A 2000-12-27 2001-12-20 Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой RU2259582C2 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (23)

* Cited by examiner, † Cited by third party
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