RU2265880C2 - Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины - Google Patents
Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины Download PDFInfo
- Publication number
- RU2265880C2 RU2265880C2 RU2003123118/09A RU2003123118A RU2265880C2 RU 2265880 C2 RU2265880 C2 RU 2265880C2 RU 2003123118/09 A RU2003123118/09 A RU 2003123118/09A RU 2003123118 A RU2003123118 A RU 2003123118A RU 2265880 C2 RU2265880 C2 RU 2265880C2
- Authority
- RU
- Russia
- Prior art keywords
- processor
- guest software
- guest
- mode
- processor mode
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- 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
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Изобретение относится к виртуальным машинам. Техническим результатом является повышение надежности работы за счет предотвращения несанкционированного доступа гостевого программного обеспечения. В способе для гостевого программного обеспечения предоставляют режим процессора. Режим процессора обеспечивает возможность гостевому программному обеспечению работать на уровне привилегий, намеченном гостевым программным обеспечением. При попытке гостевого программного обеспечения выполнить операцию, ограниченную режимом процессора, осуществляется выход из режима процессора для передачи управления операцией монитору виртуальной машины, выполняющемуся вне этого режима процессора. Система реализует заявленный способ. 3 н. и 27 з.п. ф-лы, 9 ил.
Description
Область изобретения
Настоящее изобретение, в общем, относится к виртуальным машинам, а более конкретно, к обеспечению поддержки процессора для монитора виртуальной машины.
Предшествующий уровень техники
Известный монитор виртуальной машины (МВМ, VMM) обычно выполняется на компьютере и для другого программного обеспечения представляет абстракцию одной или более виртуальных машин. Каждая виртуальная машина может функционировать как автономная платформа, выполняя собственную "гостевую операционную систему" (то есть, операционную систему, которая назначена МВМ в качестве ведущей). Предполагается, что гостевая операционная система функционирует таким образом, будто она выполняется на выделенном компьютере, а не на виртуальной машине. То есть предполагается, что гостевая операционная система управляет различными операциями компьютера и во время этих операций имеет доступ к аппаратным ресурсам. Аппаратные ресурсы могут включать в себя ресурсы, постоянно находящиеся в процессоре (например, регистры управления), и ресурсы, постоянно находящиеся в памяти (например, таблицы дескрипторов). Однако в среде виртуальной машины для обеспечения корректной работы виртуальных машин и защиты от виртуальных машин и между ними требуется, чтобы МВМ обладал максимальным контролем над этими ресурсами. Для этого МВМ обычно перехватывает и принимает решение по всем попыткам доступа к аппаратным ресурсам, осуществляемым гостевой операционной системой.
Существующие в настоящее время реализации МВМ могут быть основаны на программных технологиях, предназначенных для управления доступом к аппаратным ресурсам, осуществляемым гостевой операционной системой. Однако эти программные технологии могут иметь недостаточные возможности для предотвращения доступа гостевого программного обеспечение к некоторым полям в регистрах управления в процессоре и к памяти. Например, не может быть предотвращен доступ гостевой операционной системы к полю уровня привилегии запрашивающей стороны (УПЗ, RPL) в регистре сегмента кода микропроцессоров IA-32. Кроме того, существующим программным технологиям обычно характерны проблемы, связанные с эффективностью. Следовательно, требуется альтернативный механизм для поддержки работы МВМ.
Перечень фигур
На фигурах, на которых идентичные номера позиций относятся к подобным элементам, настоящее изобретение изображено в качестве примера, но не в качестве ограничения.
Фиг.1 изображает один вариант осуществления среды виртуальной машины.
Фиг.2 иллюстрирует работу монитора виртуальной машины на основе лишения гостя привилегий.
Фиг.3 изображает блок-схему системы, предназначенной для обеспечения поддержки процессора для монитора виртуальной машины, согласно одному варианту осуществления настоящего изобретения.
Фиг.4 изображает блок-схему алгоритма для способа обеспечения поддержки процессором для монитора виртуальной машины, согласно одному варианту осуществления настоящего изобретения.
Фиг.5 изображает блок-схему алгоритма для способа выполнения перехода из режима V32, согласно одному варианту осуществления настоящего изобретения.
Фиг.6 изображает блок-схему алгоритма для способа генерирования виртуального перехвата, согласно одному варианту осуществления настоящего изобретения.
Фиг.7 изображает блок-схему алгоритма для способа поддержания карты матрицы переадресации, согласно одному варианту осуществления настоящего изобретения.
Фиг.8 изображает блок-схему алгоритма для способа для управления маскированием прерываний, согласно одному варианту осуществления настоящего изобретения.
Фиг.9 изображает блок-схему одного варианта осуществления системы обработки данных.
Описание вариантов осуществления
Описаны способ и устройство, предназначенные для обеспечения поддержки процессора для монитора виртуальной машины. В последующем описании, чтобы обеспечить полное понимание настоящего изобретения, в пояснительных целях, изложены многочисленные специфические подробности. Однако для специалистов в данной области техники очевидно, что настоящее изобретение может быть реализовано без указанных специфических подробностей.
Некоторые фрагменты последующего подробного описания приведены в терминах алгоритмов и символических представлений операций над битами данных в памяти компьютера. Эти алгоритмические описания и представления являются средством, используемым специалистами в области обработки данных для выражения наиболее эффективным способом сущности своей работы для других специалистов в этой области техники. Алгоритм, здесь и в общем, полагается самосогласованной последовательностью этапов, ведущих к желаемому результату. Этапы представляют собой то, что требует физических манипуляций физическими величинами. Обычно, но не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно сохранить, передать, объединить, сравнить, а также ими можно манипулировать иным образом. Эти сигналы, главным образом по причинам общего использования, иногда удобно определять как биты, значения, элементы, символы, знаки, термы, числа и т.д.
Однако следует иметь в виду, что все указанные и подобные им термины должны быть сопоставлены соответствующим физическим величинам и являются просто удобными обозначениями, применяемыми к этим величинам. Как ясно из последующего описания, если специально не оговорено иначе, в настоящем изобретении описания, в которых используются такие термины, как "обработка", "вычисление", "расчет", "определение" или "отображение" или подобные им, могут относиться к действию и процессам в вычислительной системе или в аналогичном электронном вычислительном устройстве, которое манипулирует данными, представленными как физические (электронные) величины в регистрах вычислительной системы и блоках памяти, и преобразует их в другие данные, аналогично представленные как физические величины в блоках памяти или регистрах вычислительной системы или в других подобных устройствах хранения информации, передачи или отображения.
Настоящее изобретение также относится к устройству, предназначенному для выполнения в нем операций. Это устройство может быть сконструировано специально для требуемых целей или может содержать компьютер общего назначения, активируемый избирательным образом или переконфигурируемый компьютерной программой, которая хранится в самом компьютере. Такая компьютерная программа может храниться на машинно-читаемом носителе информации, например на диске любого типа, включая гибкие диски, оптические диски, компакт-диски (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 и защиты от ВМ 102 и 114 и между ними. МВМ 112 достигает этого путем перехвата всех попыток доступа гостевых ОС 104 и 106 к физическим ресурсам компьютера. Для обеспечения МВМ 112 возможности перехвата указанных попыток доступа могут использоваться различные способы. Одним из таких способов является способ лишения гостя привилегий, который принудительным образом вызывает выполнение всего гостевого программного обеспечения на уровне привилегии аппаратных средств, не допускающем доступ этого программного обеспечения к некоторым аппаратным ресурсам. В результате, при попытке гостевой ОС 104 или 106 осуществить доступ к любому из этих аппаратных ресурсов, она «перехватывается» МВМ 112, то есть если операция, инициализированная гостевой ОС, включает в себя доступ к таким аппаратным ресурсам, то управление операцией получает МВМ 112. Фиг.2 изображает известный вариант осуществления работы МВМ, поддерживающий лишение гостя привилегий. Как описано выше, лишение гостя привилегий принудительным образом вызывает выполнение гостевой ОС в менее привилегированном режиме выполнения. Для микропроцессоров IA-32 сущность страничной защиты состоит в том, что все гостевое программное обеспечение выполняется на наименее привилегированном уровне (то есть, кольцо 3). То есть гостевая ОС 206 и гостевые приложения 204 выполняются на одном уровне привилегий. В результате гостевая ОС 206 может оказаться неспособной обеспечить себе защиту от гостевых приложений 206, вследствие чего, возможно, целостность гостевой ОС 206 подвергается риску. Эта проблема известна как кольцевое сжатие.
Лишение гостя привилегий может также привести к проблеме сжатия адресного пространства. Как описано выше, некоторые попытки доступа к аппаратным ресурсам, осуществляемые гостевым программным обеспечением, приводят к перехватам, которые осуществляют передачу управления к МВМ 220. Для обеспечения возможности такой передачи управления часть кода МВМ и/или структур данных может постоянно находиться, согласно требованиям архитектуры, в том же виртуально-адресном пространстве, что и гостевая ОС 206. Например, архитектура системы команд (АСК, ISA) IA-32 может требовать, чтобы таблица дескрипторов прерываний (ТДП, IDT) 212, глобальная таблица дескрипторов (ГТД, GDT) 210 и процедуры, обрабатывающие перехваты, постоянно находились в том же виртуальном пространстве, что и гостевая ОС 206. Код МВМ и структуры данных 220, которые постоянно находятся в виртуальном пространстве 202, должны быть защищены от доступа гостевого программного обеспечения (например, путем выполнения в кольце 0). Соответственно, гостевая ОС 206 не управляет всем адресным пространством 202, как полагается гостевой ОС 206. Это приводит к проблеме сжатия адресного пространства.
Другое ограничение мониторов МВМ, использующих лишение гостя привилегий, относится к некоторым случаям, в которых процессорам не удается предотвратить считывание гостевым программным обеспечением привилегированных аппаратных ресурсов. Например, микропроцессоры IA-32 допускают выполнение гостевой ОС 206 инструкций PUSH CS, которые сохраняют в память регистр кодового сегмента. В одном из полей этого регистра хранится информация о текущем уровне привилегий. Соответственно, гостевая ОС 206, считывая из памяти значение текущего уровня привилегии, может получить информацию о том, что ее уровень привилегии равен 3, а не 0, как полагает гостевая ОС 206. В результате гостевая ОС 206 может обнаружить, что она выполняется на виртуальной машине, и целостность гостевой ОС 206 может быть подвержена риску.
Аналогично в некоторых случаях процессоры не перехватывают попытку гостевого программного обеспечения изменить привилегированные программные ресурсы. Например, процессоры IA-32 допускают выдачу гостевой ОС 206 инструкций POPF, которые пытаются загрузить EFLAGS, и вместо генерирования перехвата просто игнорируют все или часть таких попыток гостевой ОС 206, так как гостевая ОС 206 выполняет эти инструкции с недостаточной привилегией. В результате гостевая ОС 206 полагает, что соответствующее поле EFLAGS было изменено, но МВМ 220 не получает информации об этом и не может правильно эмулировать это изменение. Соответственно, гостевая ОС 206 может обнаружить, что она выполняется на виртуальной машине, и целостность гостевой ОС 206 может быть подвержена риску.
Еще одно ограничение мониторов ВМ, которые используют лишение гостя привилегий, обусловлено избыточным перехватом. Так как количество элементов аппаратных ресурсов, которые необходимо защитить от доступа со стороны гостевого программного обеспечения, значительно, и такие попытки доступа могут осуществляться часто, то перехваты могут происходить часто. Например, микропроцессоры IA-32 поддерживают инструкции CLI. Инструкции CLI выдаются для изменения флага прерывания, который является элементом привилегированных аппаратных ресурсов и к которому, следовательно, не может осуществить доступ непривилегированное программное обеспечение. Гостевая ОС 206 обычно выдает такие инструкции во время своей работы, тем самым обуславливая частые перехваты со стороны МВМ 220. Частые перехваты отрицательно влияют на эффективность системы и уменьшают полезность МВМ 220.
Настоящее изобретение решает упомянутые выше проблемы и снимает различные другие ограничения, обеспечивая для МВМ поддержку процессора. Фиг.3 является блок-схемой системы, предназначенной для обеспечения поддержки процессора для монитора виртуальной машины, согласно одному варианту осуществления настоящего изобретения.
Согласно фиг.3, все гостевое программное обеспечение выполняется в режиме процессора, определенном здесь как виртуальный 32-битовый режим (режим V32). Режим V32 допускает выполнение гостевого программного обеспечения на своем намеченном уровне привилегий. Например, для АСК IA-32 гостевая ОС 308 выполняется на наиболее привилегированном уровне (то есть, кольцо 0), а гостевые приложения 306 выполняются на наименее привилегированном уровне (то есть, кольцо 3). Режим V32 ограничивает функционирование гостевого программного обеспечения, предотвращая выполнение гостевым программным обеспечением операций, которые могут привести к его доступу к некоторым привилегированным аппаратным ресурсам. При попытке гостевого программного обеспечения выполнить такую операцию осуществляется выход из режима V32.
МВМ 320 выполняется вне режима V32. Когда происходит переход из режима V32, МВМ 320 получает контроль над операцией, инициализированной гостевой ОС 308 или гостевым приложением 306. Затем МВМ 320 выполняет эту операцию и передает управление обратно гостевому программному обеспечению посредством входа в режим V32, вследствие этого эмулируя функциональные возможности, которые требуются для гостевого программного обеспечения.
В одном варианте осуществления режим V32 реализуется путем сохранения флага в одном из регистров управления процессора (например, CR0) для указания, находится ли процессор в режиме V32. В другом варианте осуществления этот флаг (определенный здесь как EFLAGS.V32) сохраняют в одном из зарезервированных битов в верхней половине EFLAGS. При переходе либо из режима V32, либо в режим V32 флаг EFLAGS.V32 изменяется. В одном варианте осуществления информация о возможности процессора поддерживать режим V32 выдается с использованием одного из зарезервированных дополнительных битов, которые возвращаются в EDX при выполнении инструкции CPUID со значением 1 в EAX. Следует отметить, что можно без потери общности использовать разнообразные механизмы для реализации режима V32 и передачи информации о возможности процессора поддерживать режим V32.
В одном варианте осуществления некоторые исключения и прерывания приводят к переходу из режима V32. В указанные исключения и прерывания входят "виртуальные перехваты". Виртуальный перехват генерируется при попытке гостевого программного обеспечения, выполняемого в режиме V32, выполнить операцию, которая может привести к доступу к некоторым привилегированным аппаратным ресурсам. В одном варианте осуществления при переходе из режима V32 гостевое адресное пространство 304 автоматически заменяется на адресное пространство 302 МВМ. Кроме того, состояние процессора, которое использовалось гостевым программным обеспечением, сохраняют и хранят во временных регистрах, и загружают состояние процессора, требуемое для МВМ 320.
В одном варианте осуществления при переходе в режим V32 состояние процессора, которое было сохранено при переходе из режима V32 (то есть, в МВМ 320), автоматически восстанавливается, адресное пространство 302 МВМ заменяются на гостевое адресное пространство 304, и управление возвращаются гостевой ОС 308.
В одном варианте осуществления при выполнении гостевого программного обеспечения в режиме V32 программные прерывания (например, прерывания, вызванные выполнением инструкций BOUND, INT или INTO) обрабатываются гостевой ОС 308 с использованием гостевой ТДП (то есть, ТДП, постоянно находящейся в гостевом адресном пространстве 304). Все остальные прерывания и исключения, включая виртуальные перехваты, вызывают переход из режима V32, что приводит к замене гостевого адресного пространства 304 на адресное пространство 302 МВМ. Далее ТДП 316 используется для указания на код, который обрабатывает соответствующее исключение или прерывание.
В одном варианте осуществления поддерживается новый флаг прерывания (то есть, флаг прерывания виртуальной машины) для попыток доступа, осуществляемых гостевым программным обеспечением. Всякий раз, когда гостевое программное обеспечение осуществляет попытку доступа к флагу прерывания (ФП, IF), оно вместо этого осуществляет доступ к флагу прерывания виртуальной машины (ФПВМ, VMIF). В одном варианте осуществления попытка гостевого программного обеспечения осуществить доступ к ФПВМ (например, используя инструкцию CLI) не приводит к переходу из режима V32, за исключением случая, когда гостевая ОС 308 только что установила ФПВМ в 1 (например, посредством инструкции STI), и МВМ 320 предпочитает выдать задержанное прерывание гостевой ОС 308. Такие задержанные прерывания, определенные здесь как "виртуальные задержанные прерывания", генерируют виртуальные перехваты, обеспечивающие МВМ 320 возможность выдать задержанное прерывание гостевому программному обеспечению, когда гостевая ОС 308 сигнализирует о готовности обработать такое прерывание. В одном варианте осуществления один из зарезервированных битов в верхней половине регистра EFLAGS используется для сохранения флага, указывающего, имеет ли гостевое программное обеспечение задержанное виртуальное прерывание.
Реализация режима V32 позволяет решить все проблемы, вызванные лишением гостя привилегий, как описано выше. В частности, так как гостевое программное обеспечение выполняется в режиме V32 на своем намеченном уровне привилегий, устраняется проблема кольцевого сжатия. Кроме того, сжатие адресного пространства больше не является проблемой, поскольку виртуальный перехват автоматически приводит к переключению на адресное пространство 302 МВМ, и, следовательно, не требуется размещение таблиц, управляющих такими переходами, и кода, обрабатывающего соответствующий виртуальный перехват, в гостевом адресном пространстве 304.
Помимо этого, поскольку режим V32 обеспечивает возможность выполнения гостевого программного обеспечения на своем намеченном уровне привилегий, аппаратные ресурсы, которые должны быть защищены, больше не содержат те элементы аппаратных ресурсов, которые управляют уровнем привилегий. Например, с помощью описанной выше инструкции PUSH CS гостевая ОС 308 не сможет больше выяснить, что она выполняется на виртуальной машине, так как поле регистра кодового сегмента, хранящее информацию о текущем уровне привилегий, теперь хранит уровень привилегий, назначенный гостевой ОС 308. Аналогично, инструкции POPF, осуществляющие попытку загрузить EFLAGS, более не игнорируются при их выполнении гостевой ОС 308, так как гостевая ОС 206 выполняет эти инструкции с достаточной привилегией.
Соответственно, уменьшается количество элементов аппаратных ресурсов, которые должны быть защищены. Если какие-либо из них позволяют гостевому программному обеспечению осуществлять неперехватываемый доступ для считывания или записи, то они специально разработаны для вызова перехватов при выполнении в режиме V32. Следовательно, устранены проблемы, вызванные неперехватываемым доступом для чтения и записи. Более того, поскольку реализация режима V32 уменьшает количество элементов аппаратных ресурсов, которые должны быть защищены, количество перехватов, происходящих при попытке доступа гостевого программного обеспечения к этим элементам, также уменьшается. Частота перехватов дополнительно уменьшается путем предоставления механизмов для исключения перехватов, вызванных наиболее часто используемыми инструкциями. Например, инструкции STI более не вызывают перехваты, за исключением случаев, когда гостевое программное обеспечение имеет задержанное виртуальное прерывание.
Фиг.4 является блок-схемой алгоритма для способа 400 обеспечения поддержки процессора для монитора виртуальной машины, согласно одному варианту осуществления настоящего изобретения. В блоке 404 обработки гостевое программное обеспечение выполняется в режиме процессора (то есть, режиме V32), который обеспечивает возможность функционирования гостевого программного обеспечения на уровне привилегий, намеченном гостевым программным обеспечением. То есть гостевая ОС может функционировать на уровне привилегий супервизора, а гостевые приложения могут функционировать на уровне привилегий пользователя.
В блоке 406 обработки идентифицируют попытку гостевого программного обеспечения выполнить операцию, ограниченную режимом V32. В ответ на эту попытку осуществляют выход из режима V32 для передачи контроля над операцией, инициированной гостевым программным обеспечением, к МВМ, выполняемому вне режима V32 (блок 408 обработки). В одном варианте осуществления, как будет описано более подробно ниже со ссылкой на фиг.7, МВМ задает конфигурацию, определяющую, какие операции должны приводить к переходу из режима V32. В одном варианте осуществления такие операции генерируют виртуальные перехваты, которые приводят к переходу из режима V32. В качестве альтернативы, для вызова перехода из режима V32 может использоваться любой другой известный механизм. Один вариант осуществления выполнения перехода из режима V32 описан более подробно ниже со ссылками на фиг.5.
Далее, МВМ реагирует на операцию, намеченную гостевым программным обеспечением (блок 410 обработки). После этого осуществляют повторный ввод в режим V32 для передачи контроля над этой операцией обратно гостевому программному обеспечению (блок 412 обработки), и способ 400 возвращается к блоку 404 обработки. В одном варианте осуществления при переходе в режим V32 автоматически восстанавливается состояние процессора, ожидаемое гостевым программным обеспечением, и адресное пространство МВМ заменяется на гостевое адресное пространство.
Фиг.5 является блок-схемой алгоритма для способа 500 выполнения перехода из режима V32, согласно одному варианту осуществления настоящего изобретения. Способ 500 начинается с сохранения состояния процессора, которое используется гостевым программным обеспечением (блок 504 обработки). В одном варианте осуществления сохраненное состояние процессора хранится во временных регистрах процессора. В блоке 506 обработки в регистры процессора загружают состояние процессора, требуемое МВМ. В одном варианте осуществления загрузка состояния процессора приводит к замене гостевого адресного пространства адресным пространством МВМ (например, состояние процессора загружается путем загрузки регистра CR3 управления). В альтернативном варианте осуществления загрузка состояния процессора не приводит к изменению в адресном пространстве. В таком варианте осуществления в блоке 508 обработки выполняют переключение адресного пространства для перехода из гостевого адресного пространства в адресное пространство МВМ. Соответственно, при возникновении прерывания или исключения, приводящего к переходу, автоматически используется ТДП, постоянно находящаяся в адресном пространстве МВМ, для указания на постоянно находящийся в МВМ код, предназначенный для обработки этого прерывания или исключения.
Фиг.6 является блок-схемой алгоритма для способа 600 генерирования виртуальных перехватов, согласно одному варианту осуществления настоящего изобретения. Способ 600 начинается с идентификации попытки гостевого программного обеспечения выполнить операцию, которая может быть ограниченной режимом V32 (блок 604 обработки). В блоке 606 принятия решения определяют, может ли потенциально попытка гостевого программного обеспечения быть успешной. Если результат определения положительный, то генерируют виртуальный перехват (блок обработки 608). В качестве альтернативы, виртуальный перехват не генерируют, и гостевое программное обеспечение возобновляет операцию (блок 610 обработки). Например, согласно АСК IA-32, инструкция RDMSR может быть выполнена только программным обеспечением, выполняющимся с привилегией супервизора. Следовательно, если ОС гостевого программного обеспечения, работающая с привилегией супервизора, выполняет эту инструкцию, то ее попытка может быть успешной. Если гостевое приложение, работающее с привилегией пользователя, выполняет эту инструкцию, то попытка будет неуспешной, и произойдет сбой общей защиты. Соответственно, попытка гостевой ОС выполнить инструкцию RDMSR вызовет виртуальный перехват, а попытка гостевого приложения будет обработана гостевой ОС.
В одном варианте осуществления виртуальные перехваты будут вызываться потенциально успешными попытками доступа гостевой ОС к регистрам управления процессора (например, CR0 - CR4). Например, для процессоров IA-32 виртуальные перехваты будут генерироваться в ответ на попытку гостевого программного обеспечения выполнить инструкции MOV CR (за исключением попыток сохранить CR2, которые не обязательно должны вызывать виртуальные перехваты), CLTS, LMSW или SMSW, или переключить задачи. Виртуальные перехваты могут быть также вызваны потенциально успешной попыткой гостевого программного обеспечения установить флаг ФП прерывания (например, посредством инструкций STI, POPF или IRET), если гостевое программное обеспечение имеет задержанное виртуальное прерывание. Для АСК IA-32 успешные попытки выполнить такие инструкции, как, например, HLT, IN, INS/ INSB/ INSW/ INSD, INVD, OUT, OUTS/ OUTSB/ OUTSW/ OUTSD, RDMSR и WRMSR, вызовут виртуальные перехваты. Эти виртуальные перехваты предотвратят останов процессора и прямой доступ к портам ввода/вывода, кэшу или специфичным для модели регистрам со стороны гостевого программного обеспечения. Кроме того, виртуальные перехваты могут быть вызваны попытками выполнить инструкции CPUID, чтобы обеспечить МВМ возможность представить абстракции отличительных признаков процессора, выбранных МВМ; попытками выполнить инструкции INVLPG, чтобы обеспечить МВМ возможность правильно транслировать виртуальные адреса, и попытками выполнить инструкции IRET (если IRET используется для перехода в режим V32), используемых гостевым программным обеспечением для реализации МВМ, чтобы сделать возможными рекурсивно вложенные МВМ.
Фиг.7 является блок-схемой алгоритма для способа 700 поддержания карты переадресации, согласно одному варианту осуществления настоящего изобретения. Согласно этому варианту осуществления МВМ поддерживает карту переадресации для конфигурирования того, какие прерывания и исключения должны привести к виртуальному прерыванию (блок 704 обработки). В блоке 706 обработки идентифицируют возникновение прерывания или исключения. Затем обращаются к карте переадресации, чтобы найти бит, соответствующий этому прерыванию или исключению в битовой карте переадресации (блок 708 обработки). В блоке 710 принятия решения определяют, допускается ли обработка этого прерывания гостевой ОС. Если результат определения положительный, то прерывание или исключение доставляют в режим V32 и обрабатывают гостевой ОС (блок 714 обработки). В качестве альтернативы, генерируются виртуальный перехват, вызывая переход из режима V32 (блок 712 обработки).
Фиг.8 является блок-схемой алгоритма для способа 800 управления маскированием прерываний, согласно одному варианту осуществления настоящего изобретения. Для управления маскированием прерываний могут использоваться различные варианты осуществления. В одном варианте осуществления все прерывания не маскированы при выполнении гостевого программного обеспечения. В этом варианте осуществления гостевому программному обеспечению разрешается манипулировать флагом прерывания (например, для микропроцессоров IA-32 этот флаг идентифицируют как EFLAGS.IF), но это манипулирование будет игнорироваться в отношении маскирования прерываний. В другом варианте осуществления маскирование прерываний зависит от флага прерывания. В этом варианте осуществления гостевому программному обеспечению не разрешается манипулировать флагом прерывания. В частности, может быть предотвращен доступ гостевого программного обеспечения к флагу прерывания путем предоставления скрытого флага прерывания (например, EFLAGS.VMIF) для изменений, осуществляемых гостевым программным обеспечением, путем генерирования виртуального перехвата в ответ на такую попытку со стороны гостевого программного обеспечения или путем использования любого другого известного способа. Способ 800 начинается с идентификации попытки гостевого программного обеспечения изменить флаг прерывания, посредством чего потенциально можно осуществить управление маскированием прерываний (блок 804 обработки). В блоке 806 принятия решения определяют, управляет ли флаг прерывания маскированием прерываний. Если результат определения отрицательный, то есть все прерывания не маскированы, то гостевому программному обеспечению обеспечивается возможность изменить флаг прерывания (блок 808 обработки). Как описано выше, это изменение не будет воздействовать на маскирование прерываний.
В противном случае, если маскирование прерываний зависит от флага прерывания, то затем определяют, имеется ли скрытый флаг прерывания, то есть воздействует ли на скрытый флаг попытка гостевого программного обеспечения воздействовать на маскирование прерываний (блок 810 принятия решения). Если результат определения отрицательный, то есть гостевое программное обеспечение осуществляет попытку изменить фактический флаг прерывания, то происходит виртуальный перехват (блок 812 обработки), который приводит к переходу из режима V32 (блок 816 обработки). В качестве альтернативы, если фактический флаг прерывания не доступен для гостевого программного обеспечения, то гостевому программному обеспечению предоставляется возможность изменить скрытый флаг прерывания (блок 814 обработки).
Фиг.9 изображает блок-схему одного варианта осуществления системы обработки данных. Система 900 обработки данных включает в себя процессор 920 и память 930. Процессором 920 может быть любой тип процессора, обеспечивающего возможность выполнения программного обеспечения, например микропроцессор, процессор цифровых сигналов, микроконтроллер и т.д. Системой 900 обработки данных может быть персональный компьютер (ПК), универсальная вычислительная машина, портативное устройство, переносной компьютер, компьютерная приставка к телевизору или любая другая система, содержащая программное обеспечение.
Памятью 930 может быть жесткий диск, гибкий диск, запоминающее устройство с произвольной выборкой (ЗУПВ), постоянное запоминающее устройство (ПЗУ), флэш-память или любой другой тип носителя информации вычислительной машины, который может считываться процессором 920. Память 930 может хранить инструкции для выполнения вариантов осуществления различных способов настоящего изобретения, таких как способы 400, 500, 600, 700 и 800 (фиг.4-8).
Ясно, что приведенное выше описание предназначено для пояснения, а не ограничения. При чтении и осмыслении приведенного выше описания для специалистов в данной области техники станут очевидны многие другие варианты осуществления. Следовательно, объем изобретения должен определяться согласно приложенной формуле изобретения, полностью охватывая эквиваленты, к которым применима формула изобретения.
Claims (30)
1. Способ ограничения функционирования гостевого программного обеспечения, выполняющийся на виртуальной машине, включающий в себя этапы, на которых выполняют гостевое программное обеспечение в режиме процессора, обеспечивающем возможность гостевому программному обеспечению работать на уровне привилегий, намеченном гостевым программным обеспечением; и выходят из упомянутого режима процессора для передачи контроля над операцией монитору виртуальной машины (МВМ), выполняющемуся вне упомянутого режима процессора, в ответ на попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора.
2. Способ по п.1, дополнительно включающий в себя этапы, на которых реагируют на упомянутую операцию, и передают контроль над упомянутой операцией гостевому программному обеспечению путем входа в упомянутый режим процессора.
3. Способ по п.2, в котором вход в упомянутый режим процессора включает в себя загрузку состояния процессора, ожидаемого гостевым программным обеспечением.
4. Способ по п.1, в котором выход из упомянутого режима процессора дополнительно включает в себя этапы, на которых сохраняют состояние процессора, используемое гостевым программным обеспечением, и
загружают состояние процессора, требуемое МВМ.
5. Способ по п.1, в котором выход из упомянутого режима процессора дополнительно включает в себя этап автоматического перехода из адресного пространства, соответствующего гостевому программному обеспечению, в адресное пространство, соответствующее МВМ.
6. Способ по п.1, дополнительно включающий в себя этап, на котором сохраняют флаг в регистре управления в процессоре для указания того, находится ли процессор в упомянутом режиме процессора.
7. Способ по п.1, дополнительно включающий в себя этап, на котором выдают информацию о способности процессора поддерживать упомянутый режим процессора с использованием одного из множества зарезервированных дополнительных битов, возвращаемых в регистр процессора.
8. Способ по п.1, в котором выход из упомянутого режима процессора включает в себя этап, на котором генерируют одно из множества прерываний и исключений в ответ на попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора.
9. Способ по п.8, в котором генерирование одного из множества прерываний и исключений дополнительно включает в себя этап, на котором идентифицируют попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора, и определяют, что данная попытка гостевого программного обеспечения потенциально успешна.
10. Способ по п.8, дополнительно включающий в себя этапы, на которых сохраняют битовую карту переадресации для множества прерываний и исключений, причем эта битовая карта переадресации указывает на то, допускается ли для каждого из множества прерываний и исключений обработка гостевым программным обеспечением, и обращаются к битовой карте переадресации для определения того, следует ли выйти из упомянутого режима процессора.
11. Способ по п.8, дополнительно включающий в себя этапы, на которых идентифицируют попытку гостевого программного обеспечения изменить флаг прерывания, и изменяют флаг прерывания, если этот флаг прерывания не управляет маскированием прерываний.
12. Способ по п.8, дополнительно включающий в себя этапы, на которых идентифицируют попытку гостевого программного обеспечения изменить флаг прерывания, и предотвращают попытку гостевого программного обеспечения изменить этот флаг прерывания.
13. Способ по п.12, в котором предотвращение попытки гостевого программного обеспечения изменить флаг прерывания включает в себя этап, на котором предоставляют скрытый флаг прерывания для изменений, осуществляемых гостевым программным обеспечением.
14. Способ по п.12, в котором предотвращение попытки гостевого программного обеспечения изменить флаг прерывания включает в себя этап, на котором генерируют одно из множества прерываний и исключений в ответ на попытку гостевого программного обеспечения изменить этот флаг прерывания.
15. Система для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, содержащая память, и процессор, соединенный с памятью и предназначенный для выполнения гостевого программного обеспечения в режиме процессора, обеспечивающем возможность гостевому программному обеспечению работать на уровне привилегий, намеченном гостевым программным обеспечением; идентифицировать попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора, и осуществить выход из упомянутого режима процессора в ответ на упомянутую попытку с целью передачи контроля над этой операцией монитору виртуальной машины (МВМ), выполняющемуся вне упомянутого режима процессора.
16. Система по п.15, в которой процессор должен повторно войти в упомянутый режим процессора после того, как МВМ отреагирует на операцию.
17. Система по п.16, в которой процессор должен загрузить состояние процессора, ожидаемое гостевым программным обеспечением, при повторном входе в упомянутый режим процессора.
18. Система по п.15, в которой процессор должен сохранить состояние процессора, используемое гостевым программным обеспечением, и загрузить состояние процессора, требуемое МВМ, при выходе из упомянутого режима процессора.
19. Система по п.15, в которой выход из упомянутого режима процессора дополнительно включает в себя автоматический переход из адресного пространства, соответствующего гостевому программному обеспечению, в адресное пространство, соответствующее МВМ.
20. Система по п.15, в которой процессор должен сохранить флаг в регистре управления в процессоре для указания того, находится ли процессор в упомянутом режиме процессора.
21. Система по п.15, в которой процессор должен выдать информацию о возможности поддерживать упомянутый режим процессора, используя один из множества зарезервированных дополнительных битов, возвращаемых в регистр процессора.
22. Система по п.15, в которой процессор должен генерировать одно из множества прерываний и исключений в ответ на попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора.
23. Система по п.22, в которой процессор должен генерировать одно из множества прерываний и исключений после определения того, что попытка гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора, потенциально успешна.
24. Система по п.22, в которой процессор должен обратиться к битовой карте переадресации для определения того, следует ли выйти из упомянутого режима процессора, причем данная битовая карта переадресации указывает на то, допускается ли для каждого из множества прерываний и исключений обработка гостевым программным обеспечением.
25. Система по п.22, в которой процессор должен идентифицировать попытку гостевого программного обеспечения изменить флаг прерывания и изменить флаг этого прерывания, если флаг прерывания не управляет маскированием прерываний.
26. Система по п.22, в которой процессор должен идентифицировать попытку гостевого программного обеспечения изменить флаг прерывания и предотвратить попытку гостевого программного обеспечения изменить этот флаг прерывания.
27. Система по п.26, в которой процессор должен предотвратить попытку гостевого программного обеспечения изменить флаг прерывания путем предоставления скрытого флага прерывания для изменений, осуществляемых гостевым программным обеспечением.
28. Машинно-читаемый носитель информации, предоставляющий инструкции, которые при выполнении на процессоре вызывают выполнение упомянутым процессором операций, включающих в себя выполнение гостевого программного обеспечения в режиме процессора, обеспечивающем возможность гостевому программному обеспечению работать на уровне привилегий, намеченном гостевым программным обеспечением, и выход из упомянутого режима процессора для передачи контроля над операцией МВМ, выполняющегося вне упомянутого режима процессора, в ответ на попытку гостевого программного обеспечения выполнить операцию, ограниченную упомянутым режимом процессора.
29. Машиночитаемый носитель информации по п.28, предоставляющий дополнительные инструкции, вызывающие выполнение процессором операций, включающих в себя реагирование на упомянутую операцию, и передачу контроля над операцией гостевому программному обеспечению путем входа в упомянутый режим процессора.
30. Машиночитаемый носитель информации по п.28, содержащий дополнительные инструкции, вызывающие выполнение процессором операций, включающих в себя сохранение битовой карты переадресации для множества прерываний и исключений, причем эта битовая карта переадресации указывает на то, допускается ли для каждого из множества прерываний и исключений обработка гостевым программным обеспечением, и обращение к битовой карте переадресации для определения того, следует ли выйти из упомянутого режима процессора.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/752,134 US7818808B1 (en) | 2000-12-27 | 2000-12-27 | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US09/752,134 | 2000-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2003123118A RU2003123118A (ru) | 2005-01-10 |
RU2265880C2 true RU2265880C2 (ru) | 2005-12-10 |
Family
ID=25025025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2003123118/09A RU2265880C2 (ru) | 2000-12-27 | 2001-11-27 | Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины |
Country Status (11)
Country | Link |
---|---|
US (1) | US7818808B1 (ru) |
KR (1) | KR100602157B1 (ru) |
CN (1) | CN1295604C (ru) |
AU (1) | AU2002217992A1 (ru) |
BR (1) | BR0116599A (ru) |
DE (1) | DE10197121B4 (ru) |
GB (1) | GB2386230B (ru) |
HK (1) | HK1058255A1 (ru) |
RU (1) | RU2265880C2 (ru) |
TW (1) | TW594493B (ru) |
WO (1) | WO2002052404A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2536347C2 (ru) * | 2010-06-25 | 2014-12-20 | Интел Корпорейшн | Способы и системы реализации физического устройства для дифференциации множества виртуальных машин системы хост-компьютера |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7793286B2 (en) * | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US7287197B2 (en) * | 2003-09-15 | 2007-10-23 | Intel Corporation | Vectoring an interrupt or exception upon resuming operation of a virtual machine |
US7424709B2 (en) * | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
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 |
US7484247B2 (en) * | 2004-08-07 | 2009-01-27 | Allen F Rozman | System and method for protecting a computer system from malicious software |
EP1669864B1 (en) * | 2004-12-03 | 2010-06-02 | STMicroelectronics Srl | A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor |
US7685635B2 (en) * | 2005-03-11 | 2010-03-23 | Microsoft Corporation | Systems and methods for multi-level intercept processing in a virtual machine environment |
EP1736875A1 (en) * | 2005-06-21 | 2006-12-27 | Alcatel | Method of operating a computer system |
CN100399274C (zh) * | 2005-09-19 | 2008-07-02 | 联想(北京)有限公司 | 一种虚拟机系统输入/输出设备动态分配的方法及其设备 |
WO2007053980A1 (en) * | 2005-11-12 | 2007-05-18 | Intel Corporation | Method and apparatus to support virtualization with code patches |
CN100464276C (zh) * | 2005-12-30 | 2009-02-25 | 联想(北京)有限公司 | 配置和保护用户软硬件配置信息的方法和系统 |
US7506121B2 (en) * | 2005-12-30 | 2009-03-17 | Intel Corporation | Method and apparatus for a guest to access a memory mapped device |
US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
JP4233585B2 (ja) * | 2006-07-25 | 2009-03-04 | 株式会社エヌ・ティ・ティ・ドコモ | ペリフェラル切替装置及びペリフェラル切替制御装置 |
US7882336B2 (en) * | 2007-02-01 | 2011-02-01 | International Business Machines Corporation | Employing a buffer to facilitate instruction execution |
CA2691468C (en) | 2007-06-22 | 2017-05-09 | Hydra Biosciences, Inc. | Substituted xanthine compounds and methods to treat diseases mediated by trpa1 |
US8763115B2 (en) * | 2007-08-08 | 2014-06-24 | Vmware, Inc. | Impeding progress of malicious guest software |
US7996648B2 (en) | 2007-12-19 | 2011-08-09 | Microsoft Corporation | Coupled symbiotic operating systems |
US8522236B2 (en) | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
KR101425621B1 (ko) | 2008-01-15 | 2014-07-31 | 삼성전자주식회사 | 컨텐츠를 안전하게 공유하는 방법 및 시스템 |
CN101493781B (zh) * | 2008-01-24 | 2012-02-15 | 中国长城计算机深圳股份有限公司 | 一种虚拟机系统及其启动方法 |
GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US9424211B2 (en) * | 2008-12-31 | 2016-08-23 | Intel Corporation | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
US8510735B2 (en) * | 2009-02-11 | 2013-08-13 | International Business Machines Corporation | Runtime environment for virtualizing information technology appliances |
US8479196B2 (en) * | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
US8966624B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for securing an input/output path of an application against malware with a below-operating system security agent |
US9087199B2 (en) | 2011-03-31 | 2015-07-21 | Mcafee, Inc. | System and method for providing a secured operating system execution environment |
US8925089B2 (en) | 2011-03-29 | 2014-12-30 | Mcafee, Inc. | System and method for below-operating system modification of malicious code on an electronic device |
US9032525B2 (en) | 2011-03-29 | 2015-05-12 | Mcafee, Inc. | System and method for below-operating system trapping of driver filter attachment |
US8813227B2 (en) | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
US8966629B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for below-operating system trapping of driver loading and unloading |
US8959638B2 (en) | 2011-03-29 | 2015-02-17 | Mcafee, Inc. | System and method for below-operating system trapping and securing of interdriver communication |
US9262246B2 (en) | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
US9038176B2 (en) | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
US8863283B2 (en) * | 2011-03-31 | 2014-10-14 | Mcafee, Inc. | System and method for securing access to system calls |
US9317690B2 (en) | 2011-03-28 | 2016-04-19 | Mcafee, Inc. | System and method for firmware based anti-malware security |
US10303503B2 (en) | 2011-12-31 | 2019-05-28 | Intel Corporation | Hardware protection of virtual machine monitor runtime integrity watcher |
WO2013101248A1 (en) * | 2011-12-31 | 2013-07-04 | Intel Corporation | Hardware protection of virtual machine monitor runtime integrity watcher |
US9207994B2 (en) * | 2012-05-09 | 2015-12-08 | Intel Corporation | Scheduling tasks among processor cores |
US9304874B2 (en) | 2014-02-03 | 2016-04-05 | Red Hat Israel, Ltd. | Virtual machine-guest driven state restoring by hypervisor |
US10963280B2 (en) * | 2016-02-03 | 2021-03-30 | Advanced Micro Devices, Inc. | Hypervisor post-write notification of control and debug register updates |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
CN107977252A (zh) * | 2016-10-21 | 2018-05-01 | 中兴通讯股份有限公司 | 一种云平台业务的缩容方法、装置及云平台 |
US10360353B2 (en) * | 2017-02-08 | 2019-07-23 | International Business Machines Corporation | Execution control of computer software instructions |
US11423140B1 (en) | 2017-03-27 | 2022-08-23 | Melih Abdulhayoglu | Auto-containment of guest user applications |
US10951644B1 (en) | 2017-04-07 | 2021-03-16 | Comodo Security Solutions, Inc. | Auto-containment of potentially vulnerable applications |
Family Cites Families (229)
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 |
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 |
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | 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 |
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 |
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 |
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 |
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 | 仮想計算機制御方式 |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
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 |
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 |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
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 |
US5551033A (en) | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
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 |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
US5237669A (en) * | 1991-07-15 | 1993-08-17 | Quarterdeck Office Systems, Inc. | Memory management method |
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 |
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 | 株式会社日立製作所 | 仮想計算機方式 |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
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 |
EP0602867A1 (en) | 1992-12-17 | 1994-06-22 | NCR International, Inc. | An apparatus for securing a system platform |
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. |
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 |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
EP0706275B1 (en) | 1994-09-15 | 2006-01-25 | International Business Machines Corporation | System and method for secure storage and distribution of data using digital signatures |
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 |
US5901312A (en) * | 1994-12-13 | 1999-05-04 | Microsoft Corporation | Providing application programs with unmediated access to a contested hardware resource |
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 |
US6093213A (en) | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
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 |
CA2242596C (en) | 1996-01-11 | 2012-06-19 | Mrj, Inc. | System for controlling access and distribution of digital property |
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 |
IL117085A (en) | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure 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 |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
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 |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
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 |
JP4000654B2 (ja) | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | 半導体装置及び電子機器 |
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 |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
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 |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
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 |
US6996828B1 (en) * | 1997-09-12 | 2006-02-07 | Hitachi, Ltd. | Multi-OS configuration method |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US5935247A (en) | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
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 |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
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 |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
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 |
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 |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
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 |
EP0961193B1 (en) | 1998-05-29 | 2010-09-01 | Texas Instruments Incorporated | Secure computing device |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
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 |
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 |
US6363485B1 (en) | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
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 |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6609199B1 (en) | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6453392B1 (en) * | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US6445797B1 (en) | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US7111290B1 (en) | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
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 |
US6188257B1 (en) | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
EP1030237A1 (en) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Trusted hardware device in a computer |
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 |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6389537B1 (en) | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6275933B1 (en) | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
EP1055989A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for digitally signing a document |
EP1056014A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for providing a trustworthy user interface |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
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 | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
EP1085396A1 (en) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
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 |
GB9923804D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | Electronic commerce system |
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 |
US20010027527A1 (en) | 2000-02-25 | 2001-10-04 | Yuri Khidekel | Secure transaction system |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
JP3710671B2 (ja) | 2000-03-14 | 2005-10-26 | シャープ株式会社 | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
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 |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6651132B1 (en) * | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
GB0020416D0 (en) | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7631160B2 (en) | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
EP1271277A3 (en) | 2001-06-26 | 2003-02-05 | Redstrike B.V. | Security system and software to prevent unauthorized use of a computing device |
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 |
US20030126453A1 (en) | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7107460B2 (en) | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7343493B2 (en) | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
-
2000
- 2000-12-27 US US09/752,134 patent/US7818808B1/en not_active Expired - Fee Related
-
2001
- 2001-11-27 WO PCT/US2001/045061 patent/WO2002052404A2/en not_active Application Discontinuation
- 2001-11-27 DE DE10197121T patent/DE10197121B4/de not_active Expired - Fee Related
- 2001-11-27 AU AU2002217992A patent/AU2002217992A1/en not_active Abandoned
- 2001-11-27 BR BR0116599-2A patent/BR0116599A/pt not_active Application Discontinuation
- 2001-11-27 GB GB0314030A patent/GB2386230B/en not_active Expired - Fee Related
- 2001-11-27 RU RU2003123118/09A patent/RU2265880C2/ru not_active IP Right Cessation
- 2001-11-27 KR KR1020037008692A patent/KR100602157B1/ko not_active IP Right Cessation
- 2001-11-27 CN CNB018215750A patent/CN1295604C/zh not_active Expired - Fee Related
- 2001-12-24 TW TW090132037A patent/TW594493B/zh not_active IP Right Cessation
-
2004
- 2004-02-11 HK HK04100915A patent/HK1058255A1/xx not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2536347C2 (ru) * | 2010-06-25 | 2014-12-20 | Интел Корпорейшн | Способы и системы реализации физического устройства для дифференциации множества виртуальных машин системы хост-компьютера |
US9396000B2 (en) | 2010-06-25 | 2016-07-19 | Intel Corporation | Methods and systems to permit multiple virtual machines to separately configure and access a physical device |
Also Published As
Publication number | Publication date |
---|---|
GB2386230B (en) | 2005-03-02 |
HK1058255A1 (en) | 2004-05-07 |
TW594493B (en) | 2004-06-21 |
WO2002052404A3 (en) | 2003-09-12 |
DE10197121B4 (de) | 2009-10-01 |
GB2386230A (en) | 2003-09-10 |
KR100602157B1 (ko) | 2006-07-19 |
AU2002217992A1 (en) | 2002-07-08 |
GB0314030D0 (en) | 2003-07-23 |
BR0116599A (pt) | 2004-06-15 |
CN1561485A (zh) | 2005-01-05 |
CN1295604C (zh) | 2007-01-17 |
US7818808B1 (en) | 2010-10-19 |
RU2003123118A (ru) | 2005-01-10 |
WO2002052404A2 (en) | 2002-07-04 |
KR20040028704A (ko) | 2004-04-03 |
DE10197121T1 (de) | 2003-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2265880C2 (ru) | Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины | |
US7418584B1 (en) | Executing system management mode code as virtual machine guest | |
US8099541B2 (en) | Minivisor entry point in virtual machine monitor address space | |
US7127548B2 (en) | Control register access virtualization performance improvement in the virtual-machine architecture | |
US10908909B2 (en) | Processor with mode support | |
US7886293B2 (en) | Optimizing system behavior in a virtual machine environment | |
KR100737666B1 (ko) | 가상 기계 동작에서 기계 상태를 관리하는 방법 및 시스템 | |
RU2259582C2 (ru) | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой | |
US8561060B2 (en) | Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine | |
US8301856B2 (en) | Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag | |
KR101673435B1 (ko) | 공동 설계 프로세서에서 격리된 실행 환경의 생성 | |
US20050076186A1 (en) | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements | |
KR20050035833A (ko) | 가상 기계에서 합성 명령어를 사용하는 시스템 및 방법 | |
US20160048458A1 (en) | Computer Security Systems and Methods Using Hardware-Accelerated Access To Guest Memory From Below The Operating System | |
US10963280B2 (en) | Hypervisor post-write notification of control and debug register updates | |
NL2030804B1 (en) | Flexible return and event delivery | |
US11216280B2 (en) | Exception interception | |
EP4202654A1 (en) | Efficient exception handling in trusted execution environments | |
CN114090273B (zh) | 一种进程间通信的方法、装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20171128 |