RU2398267C2 - Иерархическая виртуализация посредством многоуровневого механизма виртуализации - Google Patents
Иерархическая виртуализация посредством многоуровневого механизма виртуализации Download PDFInfo
- Publication number
- RU2398267C2 RU2398267C2 RU2008107734/09A RU2008107734A RU2398267C2 RU 2398267 C2 RU2398267 C2 RU 2398267C2 RU 2008107734/09 A RU2008107734/09 A RU 2008107734/09A RU 2008107734 A RU2008107734 A RU 2008107734A RU 2398267 C2 RU2398267 C2 RU 2398267C2
- Authority
- RU
- Russia
- Prior art keywords
- hypervisor
- virtualization
- child
- section
- partition
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45566—Nested virtual machines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
- Coupling Device And Connection With Printed Circuit (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Separation By Low-Temperature Treatments (AREA)
Abstract
Изобретение относится к области компьютерной виртуализации. Техническим результатом является облегчение обеспечения иерархической виртуализации. Раскрыта иерархическая виртуализация, причем такая виртуализация может быть выполнена при помощи многоуровневого механизма. Иерархическая виртуализация включает в себя использование гипервизора, который поддерживает первый раздел, и использование стека виртуализации в первом разделе для создания и управления вторым разделом. В первом разделе может существовать множество стеков виртуализации, и каждый стек виртуализации может создавать и управлять множеством разделов. В одном частном варианте осуществления дочерний раздел может осуществлять исключительное по отношению к материнскому разделу управление частью или всеми своими ресурсами. Гипервизор в качестве высшего арбитра в такой виртуализированной среде обеспечивает реализацию такой схемы и может непосредственно связываться с любым разделом в виртуализированной иерархии. 3 н. и 14 з.п. ф-лы, 11 ил.
Description
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к области обработки данных, более конкретно к компьютерной виртуализации.
Предшествующий уровень техники
Понятие "виртуализация" включает в себя виртуализацию компьютерного аппаратного обеспечения, так чтобы на одной единице программного обеспечения можно было запускать множество операционных систем, каждая из которых может содержаться в отдельном разделе. Виртуализирующее программное обеспечение различным образом абстрагирует аппаратное обеспечение, так что с этим программным обеспечением взаимодействуют различные операционные системы, а программное обеспечение в свою очередь взаимодействует с аппаратным обеспечением.
Большинство систем виртуализации содержит одну единственную программу монитора виртуальных машин (МВМ, VMM). В некоторых устройствах МВМ называется "гипервизором". Гипервизор выполнен с возможностью запуска непосредственно на аппаратном обеспечении. Таким образом, он является окончательным арбитром, принимающим решение относительно того, как используется программное обеспечение. По этой причине в общем случае может быть только один гипервизор в машине (в одном комплекте аппаратного обеспечения). Гипервизор обеспечивает одновременный запуск множества "гостевых" операционных систем (ОС) или просто "гостей" в системе.
МВМ или гипервизор может быть предназначен для определенных целей. Разработчики всегда должны искать компромисс между безопасностью, сложностью, гибкостью, эффективностью и т.д. Некоторые МВМ и гипервизоры обеспечивают взаимодействие с гостями посредством программного интерфейса. Как и в случае с любым интерфейсом, возникает вопрос совместимости версий. Гость, написанный для одной версии гипервизора, может оказаться несовместим с другой версией гипервизора.
Таким образом, существуют ситуации, когда было бы полезно запускать множество экземпляров гипервизора на одной машине. Одна версия, например, может быть крайне простой и обеспечивать высокую гарантию безопасности, а другая версия может обеспечивать более сложные и замысловатые функции. Такое множество версий может быть запущено одновременно.
К сожалению, в рамках существующих схем это невозможно, поскольку в машине может быть только один гипервизор. Один традиционный подход к этой проблеме заключается в том, чтобы использовать рекурсивную виртуализацию, в соответствии с которой гипервизоры "вложены" друг в друга. В основании находится единственный "настоящий" гипервизор, а над ним запущены один-два гипервизора второго уровня. Недостатком такой компоновки является низкая эффективность. Поскольку гипервизоры второго уровня написаны в предположении, что они имеют прямой доступ к аппаратному обеспечению, их эффективность не столь высока. Короче говоря, с каждым дополнительным уровнем вложенных гипервизоров эффективность виртуализируемой системы падает в геометрической прогрессии.
Кроме того, многие процессоры обеспечивают аппаратную поддержку для одного уровня виртуализации, но они редко обеспечивают поддержку для более чем одного уровня. Таким образом, с точки зрения аппаратного обеспечения становится трудно реализовать множество гипервизоров на одной физической машине. Поэтому было бы полезно создать механизм для запуска виртуализирующего программного обеспечения непосредственно в аппаратном обеспечении с тем, чтобы множество версий программного обеспечения одновременно выполнялись непосредственно в аппаратном обеспечении.
Сущность изобретения
Предмет, раскрытый в настоящей заявке, относится к иерархической виртуализации посредством многоуровневого механизма виртуализации. В одном примере используется способ обеспечения такой виртуализации, когда поддерживается первый раздел с гипервизором. Первый стек виртуализации в первом разделе взаимодействует со вторым разделом, например, посредством первоначального создания второго раздела и выделения ему ресурсов. При такой иерархической компоновке разделов, когда стек виртуализации в одном разделе управляет другим разделом, гипервизор фактически знает о каждом разделе и может непосредственно связываться с каждым разделом. Поскольку гипервизор может связываться с каждым разделом, он может также перечислять любые ресурсы в любом данном разделе.
Кроме того, второй раздел может дополнить иерархическое взаимоотношение разделов посредством создания третьего раздела при помощи своего собственного второго стека виртуализации. Кроме того, в первом разделе может сосуществовать с первым стеком виртуализации третий стек виртуализации, причем третий стек виртуализации может создать четвертый раздел, который независим от вышеупомянутых первого, второго и третьего разделов. В альтернативном варианте четвертый раздел может быть создан первым стеком виртуализации, поскольку стек виртуализации может создать и управлять более чем одним разделом в любой заданный промежуток времени.
В другом примере изобретения рассматривается безопасность иерархической виртуализации. Так, предусмотрен материнский раздел, и этот материнский раздел имеет стек виртуализации. Стеком виртуализации в пределах материнского раздела создается дочерний раздел, однако дочерний раздел не полностью контролируется материнским разделом, поскольку у него есть по меньшей мере один ресурс (или его часть), который находится исключительно под его собственным контролем. По соображениям безопасности дочерний раздел может не доверять материнскому разделу, и если это так, то некоторые ресурсы в дочернем разделе недоступны материнскому разделу. Для реализации этого освобождения дочернего раздела от родительского раздела дочерний раздел запрашивает у родительского раздела исключительный контроль над ресурсами и другими объектами, а гипервизор в качестве окончательного арбитра в виртуализированной среде обеспечивает выполнение материнским разделом запросов дочернего раздела.
Настоящее краткое описание сущности изобретения приведено для ознакомления с избранными принципами изобретения в упрощенной форме, которые дополнительно описаны ниже в Подробном описании. Настоящее краткое описание сущности изобретения не предназначено для выявления основных или существенных признаков заявленного изобретения, и его не предполагается использовать для определения объема заявленного изобретения.
Перечень чертежей
Вышеприведенное краткое описание сущности изобретения, как и нижеследующее подробное описание, лучше понимаются в сочетании с прилагаемыми чертежами. Для иллюстрации настоящего изобретения на чертежах приведены различные аспекты изобретения. Однако изобретение не ограничивается конкретными рассматриваемыми аспектами. Имеются следующие чертежи:
фиг.1 - блок-схема, иллюстрирующая логическое иерархическое представление структуры аппаратного и программного обеспечения для виртуализации операционной среды в компьютерной системе;
фиг.2A - блок-схема, иллюстрирующая виртуализированную вычислительную систему, в которой виртуализация выполняется ведущей операционной системой (либо непосредственно, либо через гипервизор);
фиг.2B - блок-схема, иллюстрирующая альтернативную виртуализированную компьютерную среду, в которой виртуализация выполняется монитором виртуальных машин, запущенным одновременно с ведущей операционной системой;
фиг.3 иллюстрирует один тип виртуализации с вложенными гипервизорами и разделами;
фиг.4A иллюстрирует иерархическую виртуализацию посредством механизма иерархической виртуализации, который устраняет необходимость использования вложенных гипервизоров;
фиг.4B дает общее представление о том, как снабженный микроядром гипервизор и стек виртуализации вписываются в пример реализации;
фиг.4C иллюстрирует сценарий, в котором дочерний раздел запрашивает у материнского раздела исключительный контроль над собственными ресурсами;
фиг.5 иллюстрирует концепцию, в соответствии с которой множество стеков виртуализации могут находиться в одном разделе;
фиг.6 иллюстрирует иерархическую компоновку стеков виртуализации и их соответствующих разделов;
фиг.7 иллюстрирует взаимоотношение между микроядром гипервизора и стеком виртуализации, которое обеспечивает услуги виртуализации для иерархической виртуализации;
фиг.8 - различные компоненты, которые составляют стек виртуализации, и их взаимоотношения друг с другом.
Подробное описание
Общий обзор
Приведенное ниже описание начинается с общего и краткого обзора виртуальных машин. Затем оно переходит к рассмотрению иерархической виртуализации посредством многоуровневого механизма виртуализации. Рассматриваются соответствующие аспекты иерархической виртуализации, когда гипервизором поддерживается один раздел, а содержащийся в этом разделе стек виртуализации может создать другой раздел и управлять им, или в альтернативном варианте раздел может иметь несколько стеков виртуализации, которые могут создавать другие разделы и управлять ими. В любом случае гипервизор может непосредственно связываться с каждым разделом в иерархии, поскольку он с самого начала знает о каждом разделе. Наконец, подробно рассматривается механизм, который обеспечивает иерархическую виртуализацию, сначала посредством рассмотрения микроядра гипервизора и стека виртуализации. В свою очередь каждый элемент и компонент этих двух частей рассматривается затем более подробно.
Виртуальные машины
На фиг.1 приведена схема, представляющая логическую многоуровневую архитектуру аппаратного и программного обеспечения для виртуализированной среды в компьютерной системе. Как показано на чертеже, на физической архитектуре 112 аппаратного обеспечения непосредственным или косвенным образом запускается программа 110 виртуализации. Программа 110 виртуализации может быть (a) монитором виртуальных машин, который выполняется вместе с ведущей операционной системой или с ведущей операционной системой с гипервизорным компонентом, причем гипервизорный компонент выполняет виртуализацию. Программа 110 виртуализации виртуализирует архитектуру 108 гостевого аппаратного обеспечения (изображенную пунктирными линиями для отображения того, что этот компонент является разделом или "виртуальной машиной"), то есть на самом деле аппаратное обеспечение не существует, а виртуализируется программой 110 виртуализации. Гостевая операционная система 106 выполняется на архитектуре 108 гостевого аппаратного обеспечения, и в гостевой операционной системе 106 запускается программное приложение 104. В виртуализированной операционной среде, приведенной на фиг.1, программное приложение 104 может быть запущено в компьютерной системе 102, даже если программное приложение 104 предназначено для запуска в операционной системе, которая в целом несовместима с ведущей операционной системой и архитектурой 112 аппаратного обеспечения.
На фиг.2A приведена виртуализированная компьютерная система, содержащая программный уровень 204 ведущей операционной системы (ведущей ОС), функционирующей непосредственно над физическим аппаратным обеспечением 202 компьютера, причем ведущая ОС 204 обеспечивает доступ к ресурсам физического аппаратного обеспечения 202 компьютера посредством предоставления интерфейсов к разделам A 208 и B 210 для использования соответственно операционными системами 212 и 214. Это позволяет ведущей ОС 204 оставаться незамеченной для уровней 212 и 214 операционных систем, функционирующих над ней. Повторим, что для выполнения виртуализации ведущая ОС 204 может быть специально разработанной операционной системой с присущими ей возможностями виртуализации, или в альтернативном варианте она может быть стандартной операционной системой со встроенным гипервизорным компонентом для выполнения виртуализации (не показан).
Если вновь обратиться к фиг.2A, то над ведущей ОС 204 имеется два раздела, раздел A 208, который может быть, например, виртуализированным процессором Intel 386, и раздел B 210, который может быть, например, виртуализированной версией одного из процессоров семейства Motorola 680X0. В каждом разделе 208 и 210 имеются гостевые операционные системы (гостевые ОС) соответственно A 212 и B 214. Поверх гостевой ОС A 212 запущены два приложения, приложение A1 216 и приложение A2 218, а поверх гостевой ОС B 214 запущено приложение B1 220.
В отношении фиг.2A важно отметить, что раздел A 208 и раздел B 210 (которые показаны пунктирными линиями) являются виртуализированными представлениями компьютерного программного обеспечения, которые существуют только в виде программных конструкций. Их осуществление возможно благодаря выполнению специализированных(ой) программ(ы) виртуализации, которые не только представляют раздел 208 и раздел B 210 соответственно гостевой ОС A 212 и гостевой ОС B 214, но которые также выполняют все программные этапы, необходимые для обеспечения косвенного взаимодействия гостевой ОС A 212 и гостевой ОС B 214 с реальным физическим компьютерным аппаратным обеспечением 202.
На фиг.2B приведена альтернативная виртуализированная вычислительная система, в которой виртуализация выполняется монитором 204' виртуальных машин (МВМ), запущенным вместе с ведущей операционной системой 204". В некоторых случаях МВМ 204' может быть приложением, запущенным над ведущей операционной системой 204" и взаимодействующим с компьютерным аппаратным обеспечением 202 только через ведущую операционную систему 204". В других случаях, как показано на фиг.2B, МВМ 204' может вместо этого содержать частично независимую программную систему, которая на некоторых уровнях взаимодействует косвенным образом с компьютерным аппаратным обеспечением 202 через ведущую операционную систему 204", но на других уровнях МВМ 204' взаимодействует с компьютерным программным обеспечением 202 непосредственно (аналогично тому, как ведущая операционная система непосредственно взаимодействует с компьютерным аппаратным обеспечением). В третьих случаях МВМ 204' может содержать полностью независимую программную систему, которая на всех уровнях непосредственно взаимодействует с компьютерным аппаратным обеспечением 202 (аналогично тому, как ведущая операционная система непосредственно взаимодействует с компьютерным аппаратным обеспечением), не используя ведущую операционную систему 204" (хотя и взаимодействуя с ведущей операционной системой 204" для координации использования компьютерного аппаратного обеспечения 202 и недопущения конфликтов и т.п.).
Все эти видоизменения реализации вышеуказанных разделов являются просто примерами реализации, и все сказанное не должно интерпретироваться как ограничение изобретения каким-либо конкретным аспектом виртуализации.
Иерархическая виртуализация посредством многоуровневого монитора виртуальных машин
Иерархическая виртуализация может быть реализована посредством многоуровневого механизма виртуализации в виде монитора виртуальных машин (МВМ) или гипервизора. Например, функциональные возможности, которые традиционно предоставляются посредством монолитного гипервизора, могут быть поделены между микроядром, которое запускается непосредственно на аппаратном обеспечении, и стеком виртуализации, который функционирует внутри раздела. Многоуровневая архитектура такого типа обеспечивает иерархическую виртуализацию в том смысле, что стек виртуализации внутри раздела может создавать другие разделы и управлять ими (или, другими словами, "поддерживать"), и эти разделы могут в свою очередь содержать другие стеки виртуализации, которые могут поддерживать дальнейшие разделы. Важно отметить, что архитектура такого типа отличается от типичной "вложенной" рекурсивной виртуализации и повышает ее эффективность.
На фиг.3 приведена рекурсивная виртуализация, чтобы можно было сравнить ее с иерархической виртуализацией посредством многоуровневого механизма виртуализации. При рекурсивной виртуализации гипервизоры "вложены" один в другой. В основании расположен единственный "настоящий" гипервизор, и над ним функционирует один или несколько гипервизоров второго уровня. Например, на фиг.3 "настоящий" гипервизор A 301 расположен поверх аппаратного обеспечения 300 машины. Гипервизоры B 302 и C 308 вложены в гостевые разделы B 314 и C 316, причем гостевые разделы B 314 и C 316 поддерживаются "настоящим" гипервизором A 301.
Вложенные гипервизоры B 302 и C 308 могут каждый поддерживать свои собственные гостевые разделы. Например, гипервизор B 302 поддерживает гостевой раздел B.1 304 и гостевой раздел B.2 306. Аналогично гипервизор C 308 поддерживает гостевой раздел C.1 310 и гостевой раздел C.2 312. Специалистам в данной области техники должно быть ясно, хотя это и не показано на фиг.3, что гостевые разделы B.1 304, B.2 306, C.1 310 и C.2 312 в пределах гостевых разделов B 314 и B 316 могут содержать дальнейшие вложенные гипервизоры. И эти дальнейшие вложенные гипервизоры могут поддерживать следующие вложенные разделы и т.д.
Однако недостатком такой рекурсивной компоновки является низкая эффективность. Поскольку гипервизоры второго уровня (и все более высокого уровня) написаны в предположении, что они имеют непосредственный доступ к аппаратному обеспечению, эффективность их работы низка. Кроме того, многие процессоры обеспечивают аппаратную поддержку одного уровня виртуализации, но они редко обеспечивают поддержку более чем одного уровня. Наконец, при такой вложенной схеме никакой гипервизор не знает обо всех разделах и не может связываться непосредственно (например, посредством гипервизоров) со всеми разделами. Например, если гипервизор A 301 хочет связаться с гостем B.1 304, он должен сделать это через гипервизор B 302, что является очень неэффективным.
В отличие от фиг.3 на фиг.4A и 4B приведена иерархическая виртуализация посредством многоуровневого механизма виртуализации, которая устраняет необходимость использования вложенных гипервизоров. Так, на фиг.4A изображен гипервизор с разделенными функциональными возможностями (действующими на множестве уровней) в сравнении с традиционным гипервизором. Слева на фиг.4A приведена схема традиционного гипервизора 401, а справа приведена схема, раскрытая в настоящем документе, причем гипервизор разделен на стек 402 виртуализации и микроядро 400 гипервизора.
Микроядро 400 является очень маленьким и простым, и оно взаимодействует с аппаратным обеспечением 403. Оно обеспечивает только элементарные услуги, требуемые для разделения ресурсов машины. Более сложные разделы гипервизора 401 "выталкиваются" в любой избранный гостевой раздел 405 в виде стека 402 виртуализации. Стек 402 виртуализации имеет дело с таким поведением, как виртуализация устройства, вызовы, создание раздела, конфигурация и т.д.
Фиг.4B дает общее представление о том, каким образом гипервизор, содержащий микроядро, и стек виртуализации вписываются в типичную среду виртуализации. Так, в одном аспекте настоящего изобретения микроядро 400 гипервизора расположено непосредственно поверх физического аппаратного обеспечения 403 машин, а соответствующий стек 1 402 виртуализации микроядра 400 гипервизора выталкивается в материнский раздел 404. В свою очередь стек 402 виртуализации способен поддерживать свои собственные разделы. На фиг.4B стек 402 виртуализации поддерживает дочерний раздел A 406 и дочерний раздел B 408.
Интересно отметить, что с точки зрения безопасности дочерние разделы могут в действительности не доверять своим материнским разделам, даже если материнские разделы обычно управляют дочерними разделами. Поскольку материнский раздел по умолчанию управляет дочерним разделом, он может распоряжаться ресурсами внутри дочернего раздела. Если в родительский раздел проникло вредоносное программное обеспечение, дочерний раздел может оказаться подвержен воздействию этого вредоносного программного обеспечения. По этой причине в другом аспекте настоящего изобретения дочерний раздел может обратиться к материнскому разделу с запросом освободить его от управления со стороны материнского раздела. Такое освобождение ведет к тому, что материнский раздел перестает управлять ресурсами дочернего раздела (такими как страницы памяти), и материнский раздел деинсталлирует все свои перехваты (которые могут снабдить материнский раздел информацией, касающейся содержимого в дочернем разделе).
Так, на фиг.4C приведен сценарий, в котором дочерний раздел A 406 запрашивает 410 материнский раздел 404 об освобождении. Соответствующий компонент в стеке виртуализации обрабатывает этот запрос. Как правило, это может быть реализовано таким образом, что запрос выполняется операционной системой (то есть ядром ОС) в дочернем разделе A 406 или неким драйвером в дочернем разделе A 406, и этот запрос может быть направлен загрузчику в материнском разделе 404. Загрузчик может быть информированным загрузчиком (то есть загрузчиком, осведомленным о виртуализации). Таким образом, материнский раздел 404 может закрыть дверь в отношении любого вмешательства в дочерний раздел A 406, поскольку в освобожденный дочерний раздел A 406 нельзя проникнуть через материнский раздел 404.
Гипервизор 400 фактически обеспечивает выполнение 412 этого запроса, поскольку он является высшим арбитром в любой виртуализированной системе. На фиг.4C в качестве примера материнский раздел 404 не имеет доступа к участку памяти дочернего раздела A 406. Таким образом, материнский раздел 404 не может получить доступ к ресурсам дочернего раздела A 406. При этом материнский раздел 404 может иметь доступ 416 к другим участкам дочернего раздела A 406.
Аналогично весь дочерний раздел B 408 не доступен 414 для материнского раздела 404, и поэтому к материнскому разделу 404 полностью отсутствует доверие, что делает дочерний раздел B 408 очень безопасным. Это означает, что материнский раздел 404 не может ничего знать о дочернем разделе B 408. Интересно заметить, что в некоторых аспектах настоящего изобретения материнский раздел 404 несмотря на ограниченный (или отсутствующий) контроль над полностью освобожденным разделом, таким как раздел B 408, сохраняет способность в качестве материнского раздела 404 закрывать дочерний раздел B 408, если дочерний раздел ведет себя несоответствующим или неожиданным образом.
Фиг.5 иллюстрирует идею еще одного аспекта настоящего изобретения, согласно которой в одном разделе может находиться множество стеков виртуализации. Например, первый стек 1 502 виртуализации может находиться в материнском разделе 508 вместе со вторым стеком 2 503 виртуализации. Первый стек 1 502 виртуализации способен поддерживать множество дочерних разделов (по отношению к материнскому разделу, в котором он находится). Таким образом, стек 1 502 виртуализации поддерживает дочерний раздел 1A 504 и дочерний раздел 1B 506. Аналогично, стек 2 503 виртуализации поддерживает дочерний раздел 2A 505 и дочерний раздел 2B 507. Хотя на чертеже приведены только два стека виртуализации, в данном разделе может находиться любое число стеков виртуализации, и каждый из этих стеков виртуализации может поддерживать любое заданное число дочерних разделов.
Одна причина, для чего нужно иметь множество стеков виртуализации рядом друг с другом в одном разделе, состоит в том, чтобы, например, один стек 502 виртуализации мог специализироваться на поддержке безопасных разделов с ограниченной функциональностью, тогда как другой стек 503 виртуализации мог бы специализироваться на предоставлении полномасштабной поддержки всевозможных ресурсов. Естественно, что первый стек 502 виртуализации будет гораздо более безопасным (а следовательно, и его разделы), поскольку он будет пропорционально менее сложным, чем последний стек 502 виртуализации. В этом контексте безопасность и сложность можно повысить за счет друг друга. Так, например, последний стек 503 виртуализации может обеспечивать поддержку интерфейсов IDE (интегрированная электроника управления устройствами) и SCSI (интерфейс малых вычислительных систем), тогда как первая версия 502 с ограниченными функциональными возможностями не может.
В еще одном аспекте изобретения, приведенном на фиг.6, вышеупомянутые стеки виртуализации и их соответствующие разделы можно расположить в иерархическом порядке. Так, микроядро 600 гипервизора поддерживает материнский раздел 608, и соответствующий стек 1 602 виртуализации для микроядра 600 гипервизора расположен в материнском разделе 608. Этот стек 1 602 виртуализации поддерживает первый дочерний раздел 1A 604 и второй дочерний раздел 1B 606. Во втором дочернем разделе 1B 606 находится второй стек 2 610 виртуализации, и этот стек 2 610 виртуализации поддерживает два других дочерних раздела (или внучатых раздела по отношению к первоначальному разделу 608): дочерний раздел 2A 605 и дочерний раздел 2B 607.
Хотя на фиг.6 это не показано, понятно, что каждый дочерний раздел 605 и 607, поддерживаемый вторым стеком 2 610 виртуализации, может в свою очередь поддерживать один или несколько третичных стеков виртуализации, и эти стеки могут в свою очередь поддерживать дальнейшие дочерние разделы. Короче говоря, на фиг.6 приведена попытка проиллюстрировать идею, что архитектура гипервизора, состоящая из микроядра и стека виртуализации, делает возможной иерархическую виртуализацию. Разделы могут содержать множество стеков виртуализации, и такие стеки виртуализации могут поддерживать множество разделов, и каждый из множества разделов может поддерживать дальнейшие стеки виртуализации и т.д.
Одно преимущество иерархической компоновки такого типа состоит в том, что она поддерживает многоуровневое управление большими машинами. Например, "администратор машины" может управлять стеком виртуализации в пределах "корневого раздела" (то есть самого верхнего материнского раздела). Этот администратор может затем создать подразделы, у которых есть свои собственные стеки виртуализации и которые могут придать каждому из этих стеков виртуализации набор машинных ресурсов (память, процессор, сетевые интерфейсные платы, дисковые накопители и т.д.) Затем этот администратор может позволить другим администраторам (например, администраторам группового уровня) осуществить дальнейшее разделение назначенных им ресурсов. В таком сценарии стек виртуализации второго уровня ограничен использованием ресурсов, предоставленных стеком виртуализации первого уровня (то есть корневого уровня), но затем приданные ресурсы можно использовать любым подходящим образом. Система управления виртуальными машинами, которая знает об этой иерархии, может представить ее как таковую, позволяя администратору на каждом уровне перераспределять ресурсы между разделами, которыми они управляют.
Такого рода иерархический сценарий следует отличать от вложенного сценария, рассмотренного со ссылкой на фиг.3. В отличие от вложенного случая, в котором имеется множество гипервизоров, запущенных во вложенных разделах, причем каждый гипервизор не знает ни о базовых разделах (лежащих ниже), ни о производных разделах (лежащих выше), в иерархическом сценарии имеется единственный гипервизор, который знает о всех разделах. В этом случае множество стеков виртуализации обеспечивают создание различных иерархических взаимоотношений между разделами. Интересно отметить, что в отличие от всего, что имелось прежде, настоящий гипервизор может непосредственно связываться (то есть устраняется потребность в прохождении через любой другой гипервизор или программное обеспечение виртуализации) с любым разделом, даже когда такие разделы поддерживаются в иерархическом отношении различными соответствующими стеками виртуализации. Такая прямая связь может быть реализована посредством прямых гипервызовов от гипервизора к любому заданному разделу.
Снабженный микроядром гипервизор и службы виртуализации
Как указывалось выше, иерархическая виртуализация поддерживается снабженной микроядром архитектурой, содержащей гипервизор и стек виртуализации. На фиг.7 приведены компоненты гипервизора, которые включают в себя микроядро 702 гипервизора и службы виртуализации 704 в пределах гипервизора (на приведенной ниже фиг.8 изображена архитектура стека виртуализации).
Как показано на фиг.7, самый нижний уровень в микроядре 702 - это уровень 706 абстрагирования аппаратного обеспечения, который отвечает за абстрагирование специфических для конкретной платформы аспектов микроядра 702. На этом уровне и на рассмотренном ниже уровне могут применяться и другие модули, что должно быть понятно специалистам в данной области техники. Эти уровни и модули приведены в настоящем документе только в качестве примера с целью рассмотрения, и они ни в коем случае не несут ограничивающей или регулирующей функции.
Наверху этого уровня находится уровень 710 управления памятью. Этот уровень имеет диспетчер памяти, который обеспечивает простейшее управление внутренней памятью для гипервизора 700, и модуль диспетчера ресурсов, который хранит правила распределения ресурсов для заданного ЦПУ и использования памяти. Компоненты более высокого уровня отвечают за реализацию этих правил.
Наконец, третий уровень 712 ядра содержит по меньшей мере четыре примерных модуля: во-первых, модуль диспетчера доступа через систему безопасности, который управляет правами доступа для разделов и ресурсов, к которым может иметься совместный доступ или которые могут быть перемещены между разделами; во-вторых, диспетчер потоков, который управляет внутренними для гипервизора 700 потоками; в-третьих, диспетчер таймера управляет очередями по таймеру и прерываниями по таймеру и, в-четвертых, планировщик реализует планировщик гипервизора 700.
Аналогично в службах 704 виртуализации также может использоваться четыре уровня. Первый уровень - это уровень 714 абстрагирования виртуализации, и он содержит модуль уровня абстрагирования виртуализации, который абстрагирует компоненты виртуализации, представляемые процессором.
Далее уровень 716 разделов содержит по меньшей мере три следующих модуля: модуль диспетчера разделов, который управляет объектами разделов и соответствующими структурами данных; модуль виртуального диспетчерского процессора, который управляет одним или несколькими виртуальными процессорами, связанными с каждым разделом, - в данной конфигурации каждый виртуальный процессор имеет свое собственное состояние процессора и запускается на своем собственном стеке гипервизора; и синтезированный контроллер прерываний, который реализует контроллер прерываний, аналогичный расширенному программируемому контроллеру прерываний x86.
Следующий уровень относится к адресному пространству. Этот уровень может иметь модуль диспетчера адресов, который управляет определением физического адресного пространства для гостя и его отображением на нижележащие ресурсы физической памяти. Разумеется, можно использовать и другие модули, которые способствуют манипулированию механизмами адресного пространства, и этот модуль приведен только в качестве примера.
Наконец, службы 704 виртуализации содержат четыре модуля: во-первых, диспетчер распределения обрабатывает входящие события и распределяет их соответствующим образом; во-вторых, модуль диспетчера гипервызовов распределяет вызовы гипервизора, поступившие от гостя; в-третьих, модуль диспетчера перехвата занимается распределением и направлением перехватов (например, доступом к определяемым моделью регистрам, выполнением определенных команд и т.д.) и, в-четвертых, модуль выполнения команд управляет выполнением определенных команд в процессе виртуализации.
Компоненты стека виртуализации
На фиг.8 в соответствии с другим аспектом изобретения приведены различные компоненты, составляющие стек виртуализации, и их взаимоотношения друг с другом. С любыми имеющими отношение компонентами, не раскрытыми в настоящем документе, можно ознакомиться в родственной заявке, озаглавленной "SYSTEMS AND METHODS FOR MULTI-LEVEL INTERCEPT PROCESSING IN A VIRTUAL MACHINE ENVIRONMENT," порядковый № 11/078,141, поданной 11 марта 2005 г. "Внешний монитор", раскрытый в этой заявке, является подкомпонентом стека виртуализации, рассмотренного в настоящей заявке.
Данный стек 800 виртуализации может быть реализован в пользовательском режиме 802 и в режиме 804 ядра. Кроме того, режим 804 ядра может иметь такие компоненты, как библиотека 806 обработчика сообщений гипервизора и API гипервизора и драйвер 810 инфраструктуры виртуализации. Пользовательский режим 802 может иметь такие компоненты, как служба 812 виртуальной машины и рабочий процесс 814 виртуальной машины.
Каждый из этих компонентов может иметь специально определенную задачу. Например, библиотека 806 API гипервизора предоставляет API гипервизора для компонентов более высокого уровня, позволяя им осуществлять вызов гипервизора при помощи обычных соглашений вызова в операционной системе. Эту библиотеку можно найти во всех разделах, которые содержат информированный код (то есть код, знающий о виртуализации), вне зависимости от того, содержат ли они стек виртуализации. Кроме того, библиотека 806 обработчика сообщений гипервизора позволяет вызывающим устройствам регистрировать обратные вызовы уровня ядра для сообщений, принятых от гипервизора или от других разделов. Такие сообщения доставляются в виде межраздельных прерываний вместе с информационным наполнением сообщений. Такой интерфейс допускает, чтобы один раздел содержал множество параллельных стеков виртуализации. Например, третья сторона может реализовать стек виртуализации, который размещается в том же материнском разделе, что и стек виртуализации первоначальной стороны. Или множество вариантов стека виртуализации первоначальной стороны могут быть запущены одновременно.
Затем драйвер 810 инфраструктуры виртуализации (VID) инкапсулирует основную часть функциональных возможностей стека виртуализации в режиме ядра. Он содержит несколько подкомпонентов. Например, он содержит диспетчер памяти стека виртуализации. Этот подкомпонент отвечает за управление пулом физических страниц системы, которыми "владеет" стек виртуализации, и используется для поддержки предназначенной для гостя физической памяти дочерних разделов, управляемых этим стеком виртуализации. Этот подкомпонент поддерживает избыточную передачу памяти и совместный доступ к страницам памяти, пересекающий границы разделов (для страниц с идентичным содержимым). Он также делает открытыми группу интерфейсов, которые позволяют компонентам пользовательского режима определять структуру пространства гостевых физических адресов (GPA) виртуальной машины и помещать перехваты чтения и записи на диапазоны страниц (например, для использования в процессе отображения мгновенного состояния или живой миграции).
Кроме того, VID 810 также содержит Выполнение сложных команд. Этот подкомпонент способен осуществлять интерпретацию сложных команд, которые затрагивают память и которые не обрабатываются непосредственно гипервизором. Эта поддержка требуется для некоторых сценариев эмуляции устройств (например, для обращения к плоской памяти VGA, записи в ПЗУ или обращения к отображенным на память регистрам эмулируемого устройства).
VID 810 также содержит Перехваты процессора. Этот подкомпонент позволяет компонентам пользовательского режима задавать перехваты виртуального процессора. Например, модуль эмулируемого устройства может захотеть принять уведомление о перехвате, когда осуществляется обращение к определенному диапазону портов ввода-вывода при помощи команды IN или OUT. Другие примеры перехватов процессора включают в себя: обращение к регистру MSR, CPUID, исключительные ситуации и HLT. Этот компонент отслеживает установленные перехваты и направляет сообщения о перехватах надлежащим образом.
Наконец, VID 810 может содержать подкомпонент Создания и управления разделами. Этот подкомпонент позволяет компонентам пользовательского уровня создавать, удалять и управлять разделами и задавать распространяющиеся на весь раздел ресурсы и квоты, определяя правила планирования заданий и управления доступом. Например, создание нового раздела может быть реализовано сначала посредством гипервызова модуля в гипервизоре (например, HvCreatePartition). Затем посредством гипервызова HvCreateVp создаются один или несколько виртуальных процессоров. Посредством другого гипервызова, например HvMapGpaPages, гостевому пространству физических адресов вновь созданного раздела выделяется память. Посредством гипервызова HvInstallIntercept запрашиваются перехваты для определенных действий процессора. Посредством гипервызова HvSetPartitionProperty устанавливаются правила планирования заданий и безопасности. В память вновь созданной виртуальной машины копируется код инициализации (например, загрузчик ОС или системная BIOS). Посредством гипервызова HvResumePartition начинается выполнение в рамках виртуальной машины. Эти гипервызовы приведены исключительно в качестве примера, и специалистам в данной области техники должно быть понятно, что создание раздела может быть реализовано также другими и эквивалентными способами. Аналогично способы удаления разделов (удаление виртуальных процессоров, гостевых физических адресов и т.д.) должны быть понятны специалистам в данной области техники, равно как и способы управления ресурсами раздела.
Как указывалось выше, VID 810 и API 806 гипервизора существуют в режиме 804 ядра. Однако другие компоненты стека 800 виртуализации существуют в пользовательском режиме 802. Например, Служба 812 управления виртуальными машинами управляет набором конфигураций виртуальной машины и делает открытым набор интерфейсов API на основе WMI для управления виртуальными машинами. Эта служба отвечает за порождение нового рабочего процесса виртуальной машины при запуске виртуальной машины. Эта служба может быть перезапущена без влияния на какие-либо рабочие процессы виртуальной машины (что делает машину более отказоустойчивой в случае аварийного отказа службы).
Другой компонент пользовательского режима 802 - это Рабочий процесс 814 виртуальной машины. Каждая виртуальная машина имеет связанный с ней рабочий процесс. В случае аварийного отказа какого-либо компонента в рабочем процессе вред может быть ограничен одной виртуальной машиной. В рабочем процессе 814 имеется структура виртуализированных машин. Виртуальная машина состоит из набора виртуальных устройств. Каждое устройство имеет свои настойки и параметры, многие из которых могут настраиваться пользователем. Структура устройства отвечает за создание экземпляров модулей виртуального устройства и "соединение" этих устройств для получения функциональной виртуальной машины. Устройства, которые входят в состав виртуальной машины, указываются в ведомости устройств, которая является частью конфигурационного файла виртуальных машин.
В рамках вышеуказанной структуры имеются модули виртуальных устройств (VDEV): эти подключаемые модули содержат логику, требуемую для создания экземпляров, инициализации, сохранения, восстановления, перезагрузки и демонтажа виртуального устройства. Некоторые виртуальные устройства реализуют полную эмуляцию обычных аппаратных устройств. Эти виртуальные устройства называются модулями эмулированных устройств и используют перехваты ввода-вывода и памяти для ответа на гостевые обращения.
В рабочем процессе 814 может также находиться Создатель виртуальной машины. Этот компонент отвечает за создание и управление запущенной виртуальной машины. В его ведении находятся правила, распространяющиеся на всю виртуальную машину, он отвечает на запросы, связанные с динамическим изменением ресурсов, и отвечает за приостановление и возобновление, сохранение и восстановление, отображение мгновенного состояния и живую миграцию виртуальной машины.
Хотя настоящее изобретение было описано в связи с его предпочтительными аспектами, приведенными на различных чертежах, понятно, что можно использовать другие подобные аспекты или можно сделать видоизменения и дополнения к описанным аспектам для выполнения той же функции настоящего изобретения без отступления от его сущности. Например, в одном аспекте изобретения рассматривалась иерархическая виртуализация, возможность которой обеспечивалась многоуровневым механизмом виртуализации. Однако на основе изложенных принципов можно представить себе другие эквивалентные механизмы для этих описанных аспектов. Поэтому настоящее изобретение не должно ограничиваться каким-либо одним аспектом, но его объем должен определяться прилагаемой формулой изобретения.
Claims (17)
1. Компьютерная система, выполненная с возможностью обеспечения иерархической виртуализации, содержащая
ядро гипервизора, функционирующее непосредственно поверх аппаратного обеспечения компьютерной системы; и
один или более стеков виртуализации, функционирующих в пределах материнского раздела, поддерживаемого ядром гипервизора, причем каждый из этих стеков виртуализации выполнен с возможностью независимого создания одного или более дочерних разделов и управления ими, при этом данный стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора каждому из упомянутых дочерних разделов, посредством чего ядро гипервизора может непосредственно связываться с этим дочерним разделом.
ядро гипервизора, функционирующее непосредственно поверх аппаратного обеспечения компьютерной системы; и
один или более стеков виртуализации, функционирующих в пределах материнского раздела, поддерживаемого ядром гипервизора, причем каждый из этих стеков виртуализации выполнен с возможностью независимого создания одного или более дочерних разделов и управления ими, при этом данный стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора каждому из упомянутых дочерних разделов, посредством чего ядро гипервизора может непосредственно связываться с этим дочерним разделом.
2. Компьютерная система по п.1, в которой ядро гипервизора знает по меньшей мере об одном ресурсе в материнском разделе и в дочернем разделе, при этом ядро гипервизора выполнено с возможностью пронумеровать по запросу этот по меньшей мере один ресурс.
3. Компьютерная система по п.1, в которой дочерний раздел содержит стек виртуализации более низкого уровня, который выполнен с возможностью создания и взаимодействия с по меньшей мере одним дочерним разделом более низкого уровня.
4. Компьютерная система по п.1, в которой материнский раздел содержит первый стек виртуализации и второй стек виртуализации, причем первый стек виртуализации и второй стек виртуализации одновременно содержатся в материнском разделе по меньшей мере в течение заданного промежутка времени.
5. Компьютерная система, выполненная с возможностью обеспечения защищенной иерархической виртуализации, содержащая
ядро гипервизора, функционирующее непосредственно поверх аппаратного обеспечения компьютерной системы; и
стек виртуализации, функционирующий в пределах материнского раздела, поддерживаемого ядром гипервизора, причем стек виртуализации выполнен с возможностью создания дочернего раздела и управления им, при этом стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора дочернему разделу, посредством чего дочерний раздел имеет доступ к одному или более ресурсам аппаратного обеспечения компьютерной системы, а ядро гипервизора может непосредственно связываться с дочерним разделом,
при этом ядро гипервизора выполнено с возможностью делать по меньшей мере один из этих ресурсов аппаратного обеспечения компьютерной системы недоступным для материнского раздела.
ядро гипервизора, функционирующее непосредственно поверх аппаратного обеспечения компьютерной системы; и
стек виртуализации, функционирующий в пределах материнского раздела, поддерживаемого ядром гипервизора, причем стек виртуализации выполнен с возможностью создания дочернего раздела и управления им, при этом стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора дочернему разделу, посредством чего дочерний раздел имеет доступ к одному или более ресурсам аппаратного обеспечения компьютерной системы, а ядро гипервизора может непосредственно связываться с дочерним разделом,
при этом ядро гипервизора выполнено с возможностью делать по меньшей мере один из этих ресурсов аппаратного обеспечения компьютерной системы недоступным для материнского раздела.
6. Компьютерная система по п.5, в которой упомянутый ресурс включает в себя по меньшей мере одну страницу памяти.
7. Компьютерная система по п.5, в которой дочерний раздел получает исключительное управление упомянутым ресурсом посредством запроса, направляемого материнскому разделу.
8. Компьютерная система по п.7, в которой ядро гипервизора удостоверяется в том, что материнский раздел удовлетворил запрос, сделанный дочерним разделом, и обеспечивает выполнение этого запроса.
9. Компьютерная система по п.7, в которой запрос, сделанный дочерним разделом, делается ядром операционной системы в дочернем разделе.
10. Компьютерная система по п.7, в которой запрос, сделанный дочерним разделом, делается драйвером в дочернем разделе.
11. Компьютерная система по п.7, в которой запрос, сделанный дочерним разделом, направляется загрузчику в материнском разделе.
12. Машиночитаемый носитель, содержащий исполняемые компьютером команды, обеспечивающие иерархическую виртуализацию посредством реализации ими
ядра гипервизора, функционирующего непосредственно поверх аппаратного обеспечения компьютера; и
стека виртуализации, функционирующего в пределах материнского раздела, поддерживаемого ядром гипервизора, причем стек виртуализации выполнен с возможностью создания дочернего раздела и управления им, при этом стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора дочернему разделу, посредством чего ядро гипервизора может непосредственно связываться с дочерним разделом.
ядра гипервизора, функционирующего непосредственно поверх аппаратного обеспечения компьютера; и
стека виртуализации, функционирующего в пределах материнского раздела, поддерживаемого ядром гипервизора, причем стек виртуализации выполнен с возможностью создания дочернего раздела и управления им, при этом стек виртуализации и ядро гипервизора совместно предоставляют функциональные возможности гипервизора дочернему разделу, посредством чего ядро гипервизора может непосредственно связываться с дочерним разделом.
13. Машиночитаемый носитель по п.12, в котором стек виртуализации дополнительно создает еще один дочерний раздел.
14. Машиночитаемый носитель по п.12, в котором исполняемые компьютером команды дополнительно реализуют еще один стек виртуализации, находящийся в материнском разделе, причем этот еще один стек виртуализации создает еще один дочерний раздел.
15. Машиночитаемый носитель по п.12, в котором дочерний раздел имеет свой собственный стек виртуализации.
16. Машиночитаемый носитель по п.15, в котором стек виртуализации, находящийся в дочернем разделе, создает дочерний раздел более низкого уровня.
17. Машиночитаемый носитель по п.15, в котором стек виртуализации, находящийся в материнском разделе, и стек виртуализации, находящийся в дочернем разделе, сосуществуют одновременно, по меньшей мере, в течение заданного промежутка времени.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/215,380 US8327353B2 (en) | 2005-08-30 | 2005-08-30 | Hierarchical virtualization with a multi-level virtualization mechanism |
| US11/215,380 | 2005-08-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RU2008107734A RU2008107734A (ru) | 2009-09-10 |
| RU2398267C2 true RU2398267C2 (ru) | 2010-08-27 |
Family
ID=37805843
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2008107734/09A RU2398267C2 (ru) | 2005-08-30 | 2006-08-29 | Иерархическая виртуализация посредством многоуровневого механизма виртуализации |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US8327353B2 (ru) |
| EP (1) | EP1922619B1 (ru) |
| JP (1) | JP2009506462A (ru) |
| KR (1) | KR20080047372A (ru) |
| CN (1) | CN101253481B (ru) |
| AU (1) | AU2006284910B2 (ru) |
| BR (1) | BRPI0615278A2 (ru) |
| CA (1) | CA2620087A1 (ru) |
| MX (1) | MX2008002497A (ru) |
| NO (1) | NO340567B1 (ru) |
| RU (1) | RU2398267C2 (ru) |
| TW (1) | TW200729038A (ru) |
| WO (1) | WO2007027739A1 (ru) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2436149C2 (ru) * | 2006-02-28 | 2011-12-10 | Майкрософт Корпорейшн | Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство |
| RU2486584C2 (ru) * | 2011-09-16 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) | Способ построения иерархической системы сетевого взаимодействия виртуальных рабочих мест |
| RU2486578C2 (ru) * | 2011-09-16 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг России) | Способ построения системы сообщений многоуровневой несимметричной транспортной системы |
| RU2571600C2 (ru) * | 2012-06-08 | 2015-12-20 | Хуавэй Текнолоджиз Ко., Лтд. | Способ управления виртуализацией и соответствующие устройства для управления аппаратными ресурсами устройства связи |
| RU2626550C1 (ru) * | 2016-08-09 | 2017-07-28 | Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" | Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи |
Families Citing this family (152)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8539063B1 (en) | 2003-08-29 | 2013-09-17 | Mcafee, Inc. | Method and system for containment of networked application client software by explicit human input |
| US7840968B1 (en) | 2003-12-17 | 2010-11-23 | Mcafee, Inc. | Method and system for containment of usage of language interfaces |
| US7873955B1 (en) * | 2004-09-07 | 2011-01-18 | Mcafee, Inc. | Solidifying the executable software set of a computer |
| US7856661B1 (en) | 2005-07-14 | 2010-12-21 | Mcafee, Inc. | Classification of software on networked systems |
| US7900204B2 (en) * | 2005-12-30 | 2011-03-01 | Bennett Steven M | Interrupt processing in a layered virtualization architecture |
| US8521912B2 (en) * | 2006-01-12 | 2013-08-27 | Broadcom Corporation | Method and system for direct device access |
| US7757269B1 (en) | 2006-02-02 | 2010-07-13 | Mcafee, Inc. | Enforcing alignment of approved changes and deployed changes in the software change life-cycle |
| US7895573B1 (en) | 2006-03-27 | 2011-02-22 | Mcafee, Inc. | Execution environment file inventory |
| US20070240153A1 (en) * | 2006-03-29 | 2007-10-11 | Lenovo (Singapore) Pte. Ltd. | System and method for installing hypervisor after user operating system has been installed and loaded |
| US8191062B2 (en) * | 2006-03-31 | 2012-05-29 | Intel Corporation | System for processor frequency governors to govern a processor frequency by deriving CPU utilization information based on the state of virtual machine monitor |
| US7870387B1 (en) * | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
| US8352930B1 (en) | 2006-04-24 | 2013-01-08 | Mcafee, Inc. | Software modification by group to minimize breakage |
| US8555404B1 (en) | 2006-05-18 | 2013-10-08 | Mcafee, Inc. | Connectivity-based authorization |
| US8429746B2 (en) | 2006-05-22 | 2013-04-23 | Neuraliq, Inc. | Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems |
| US20140373144A9 (en) | 2006-05-22 | 2014-12-18 | Alen Capalik | System and method for analyzing unauthorized intrusion into a computer network |
| US20080028472A1 (en) * | 2006-07-25 | 2008-01-31 | International Business Machines Corporation | Heterogeneous evolutionary self-formatting Internet protocols |
| US8272048B2 (en) * | 2006-08-04 | 2012-09-18 | Apple Inc. | Restriction of program process capabilities |
| US20080178143A1 (en) * | 2006-10-05 | 2008-07-24 | Cort Dougan | System, Method and Computer Program Product for Developing, Configuring, Installing and Testing Software |
| US9424154B2 (en) | 2007-01-10 | 2016-08-23 | Mcafee, Inc. | Method of and system for computer system state checks |
| US8332929B1 (en) | 2007-01-10 | 2012-12-11 | Mcafee, Inc. | Method and apparatus for process enforced configuration management |
| US7975267B2 (en) * | 2007-03-30 | 2011-07-05 | Bennett Steven M | Virtual interrupt processing in a layered virtualization architecture |
| US20080270737A1 (en) * | 2007-04-26 | 2008-10-30 | Hewlett-Packard Development Company, L.P. | Data Processing System And Method |
| US8151264B2 (en) * | 2007-06-29 | 2012-04-03 | Intel Corporation | Injecting virtualization events in a layered virtualization architecture |
| US8219989B2 (en) | 2007-08-02 | 2012-07-10 | International Business Machines Corporation | Partition adjunct with non-native device driver for facilitating access to a physical input/output device |
| US8645974B2 (en) * | 2007-08-02 | 2014-02-04 | International Business Machines Corporation | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
| US7984449B2 (en) * | 2007-08-15 | 2011-07-19 | International Business Machines Corporation | In-band communication with virtual machines via a hypervisor message bus |
| US8195931B1 (en) | 2007-10-31 | 2012-06-05 | Mcafee, Inc. | Application change control |
| US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
| US8181174B2 (en) * | 2007-12-28 | 2012-05-15 | Accenture Global Services Limited | Virtual machine configuration system |
| US8819647B2 (en) * | 2008-01-25 | 2014-08-26 | International Business Machines Corporation | Performance improvements for nested virtual machines |
| US8515075B1 (en) | 2008-01-31 | 2013-08-20 | Mcafee, Inc. | Method of and system for malicious software detection using critical address space protection |
| US8458438B2 (en) * | 2008-02-26 | 2013-06-04 | International Business Machines Corporation | System, method and computer program product for providing quiesce filtering for shared memory |
| US8140834B2 (en) | 2008-02-26 | 2012-03-20 | International Business Machines Corporation | System, method and computer program product for providing a programmable quiesce filtering register |
| US8380907B2 (en) * | 2008-02-26 | 2013-02-19 | International Business Machines Corporation | Method, system and computer program product for providing filtering of GUEST2 quiesce requests |
| US8527715B2 (en) * | 2008-02-26 | 2013-09-03 | International Business Machines Corporation | Providing a shared memory translation facility |
| JPWO2009113571A1 (ja) * | 2008-03-11 | 2011-07-21 | 日本電気株式会社 | 複数の基盤ソフトウェアを動作可能な情報処理装置および方法 |
| US7941688B2 (en) * | 2008-04-09 | 2011-05-10 | Microsoft Corporation | Managing timers in a multiprocessor environment |
| US8615502B2 (en) | 2008-04-18 | 2013-12-24 | Mcafee, Inc. | Method of and system for reverse mapping vnode pointers |
| US8307405B2 (en) * | 2008-04-28 | 2012-11-06 | International Business Machines Corporation | Methods, hardware products, and computer program products for implementing zero-trust policy in storage reports |
| US8336099B2 (en) * | 2008-05-08 | 2012-12-18 | International Business Machines Corporation | Methods, hardware products, and computer program products for implementing introspection data comparison utilizing hypervisor guest introspection data |
| US9262194B2 (en) * | 2008-06-10 | 2016-02-16 | Apple Inc. | Virtual machine communications |
| US8468356B2 (en) | 2008-06-30 | 2013-06-18 | Intel Corporation | Software copy protection via protected execution of applications |
| US8327355B2 (en) * | 2008-07-15 | 2012-12-04 | International Business Machines Corporation | Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit |
| US9280335B2 (en) | 2010-09-30 | 2016-03-08 | International Business Machines Corporation | Semantically rich composable software image bundles |
| US8793652B2 (en) | 2012-06-07 | 2014-07-29 | International Business Machines Corporation | Designing and cross-configuring software |
| US8468535B1 (en) | 2008-09-23 | 2013-06-18 | Gogrid, LLC | Automated system and method to provision and allocate hosting resources |
| US8732716B2 (en) * | 2008-09-30 | 2014-05-20 | International Business Machines Corporation | Virtualization across physical partitions of a multi-core processor (MCP) |
| US8544003B1 (en) | 2008-12-11 | 2013-09-24 | Mcafee, Inc. | System and method for managing virtual machine configurations |
| US9086913B2 (en) | 2008-12-31 | 2015-07-21 | Intel Corporation | Processor extensions for execution of secure embedded containers |
| US8387031B2 (en) * | 2009-01-23 | 2013-02-26 | International Business Machines Corporation | Providing code improvements for nested virtual machines |
| US9450783B2 (en) * | 2009-05-28 | 2016-09-20 | Red Hat, Inc. | Abstracting cloud management |
| US9152200B2 (en) * | 2009-06-23 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Resource and power management using nested heterogeneous hypervisors |
| WO2011013805A1 (ja) | 2009-07-31 | 2011-02-03 | 日本電気株式会社 | 制御サーバ、サービス提供システムおよび仮想的なインフラストラクチャの提供方法 |
| US8381284B2 (en) * | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
| US8341627B2 (en) * | 2009-08-21 | 2012-12-25 | Mcafee, Inc. | Method and system for providing user space address protection from writable memory area in a virtual environment |
| US8495628B2 (en) * | 2009-08-23 | 2013-07-23 | International Business Machines Corporation | Para-virtualization in a nested virtualization environment using reduced number of nested VM exits |
| US9069591B1 (en) * | 2009-09-10 | 2015-06-30 | Parallels IP Holding GmbH | Patching host OS structures for hardware isolation of virtual machines |
| US8479196B2 (en) * | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
| US9027038B2 (en) * | 2009-10-21 | 2015-05-05 | General Dynamics C4 Systems, Inc. | Methods and apparatus for constructing a secure and flexible operating system |
| US9552497B2 (en) * | 2009-11-10 | 2017-01-24 | Mcafee, Inc. | System and method for preventing data loss using virtual machine wrapped applications |
| US20110153715A1 (en) * | 2009-12-17 | 2011-06-23 | Microsoft Corporation | Lightweight service migration |
| US9389895B2 (en) * | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
| WO2011103544A1 (en) * | 2010-02-22 | 2011-08-25 | Virtustream, Inc. | Methods and apparatus for data center management independent of hypervisor platform |
| US8601226B1 (en) | 2010-05-20 | 2013-12-03 | Gogrid, LLC | System and method for storing server images in a hosting system |
| US9106697B2 (en) | 2010-06-24 | 2015-08-11 | NeurallQ, Inc. | System and method for identifying unauthorized activities on a computer system using a data structure model |
| US8789189B2 (en) | 2010-06-24 | 2014-07-22 | NeurallQ, Inc. | System and method for sampling forensic data of unauthorized activities using executability states |
| US8938800B2 (en) | 2010-07-28 | 2015-01-20 | Mcafee, Inc. | System and method for network level protection against malicious software |
| US8925101B2 (en) | 2010-07-28 | 2014-12-30 | Mcafee, Inc. | System and method for local protection against malicious software |
| US8549003B1 (en) | 2010-09-12 | 2013-10-01 | Mcafee, Inc. | System and method for clustering host inventories |
| US8458698B2 (en) | 2010-11-18 | 2013-06-04 | International Business Machines Corporation | Improving performance in a nested virtualized environment |
| US8819677B2 (en) * | 2010-11-23 | 2014-08-26 | International Business Machines Corporation | Virtual machine data structures corresponding to nested virtualization levels |
| US8839240B2 (en) * | 2010-11-29 | 2014-09-16 | International Business Machines Corporation | Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device |
| US8881141B2 (en) | 2010-12-08 | 2014-11-04 | Intenational Business Machines Corporation | Virtualization of hardware queues in self-virtualizing input/output devices |
| US9075993B2 (en) | 2011-01-24 | 2015-07-07 | Mcafee, Inc. | System and method for selectively grouping and managing program files |
| US8490090B2 (en) * | 2011-02-17 | 2013-07-16 | International Business Machines Corporation | Multilevel support in a nested virtualization environment |
| US9112830B2 (en) | 2011-02-23 | 2015-08-18 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
| US8798541B1 (en) * | 2011-04-11 | 2014-08-05 | Vmware, Inc. | System and method for socket backed host controller interface emulation for virtual bluetooth adapter |
| EP2521035B1 (de) * | 2011-05-06 | 2018-02-21 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Konfigurierung einer Ressource für eine virtuelle Laufzeitumgebung |
| US9218195B2 (en) | 2011-05-17 | 2015-12-22 | International Business Machines Corporation | Vendor-independent resource configuration interface for self-virtualizing input/output device |
| US8843924B2 (en) | 2011-06-17 | 2014-09-23 | International Business Machines Corporation | Identification of over-constrained virtual machines |
| US8966084B2 (en) | 2011-06-17 | 2015-02-24 | International Business Machines Corporation | Virtual machine load balancing |
| US8949428B2 (en) | 2011-06-17 | 2015-02-03 | International Business Machines Corporation | Virtual machine load balancing |
| US8966478B2 (en) * | 2011-06-28 | 2015-02-24 | The Boeing Company | Methods and systems for executing software applications using hardware abstraction |
| US8812830B2 (en) | 2011-08-31 | 2014-08-19 | Microsoft Corporation | Attestation protocol for securely booting a guest operating system |
| US9594881B2 (en) | 2011-09-09 | 2017-03-14 | Mcafee, Inc. | System and method for passive threat detection using virtual memory inspection |
| US8621178B1 (en) * | 2011-09-22 | 2013-12-31 | Emc Corporation | Techniques for data storage array virtualization |
| US8695010B2 (en) | 2011-10-03 | 2014-04-08 | International Business Machines Corporation | Privilege level aware processor hardware resource management facility |
| US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
| US9069586B2 (en) | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
| US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
| US8800024B2 (en) | 2011-10-17 | 2014-08-05 | Mcafee, Inc. | System and method for host-initiated firewall discovery in a network environment |
| US8713668B2 (en) | 2011-10-17 | 2014-04-29 | Mcafee, Inc. | System and method for redirected firewall discovery in a network environment |
| US8739272B1 (en) | 2012-04-02 | 2014-05-27 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
| US8826305B2 (en) * | 2012-04-18 | 2014-09-02 | International Business Machines Corporation | Shared versioned workload partitions |
| WO2013171944A1 (ja) * | 2012-05-15 | 2013-11-21 | 日本電気株式会社 | 仮想マシン管理システム、仮想マシン管理方法およびプログラム |
| US9122780B2 (en) * | 2012-06-20 | 2015-09-01 | Intel Corporation | Monitoring resource usage by a virtual machine |
| EP4036721B1 (en) | 2012-06-26 | 2025-03-26 | Lynx Software Technologies Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention and further features |
| JP5660082B2 (ja) * | 2012-07-03 | 2015-01-28 | 横河電機株式会社 | プロセス制御装置及びシステム |
| US20140053272A1 (en) * | 2012-08-20 | 2014-02-20 | Sandor Lukacs | Multilevel Introspection of Nested Virtual Machines |
| US9563480B2 (en) * | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
| CN103051963B (zh) * | 2012-11-30 | 2018-02-13 | 北京视博数字电视科技有限公司 | 一种数字电视终端设备的安全控制方法 |
| WO2014100279A1 (en) | 2012-12-18 | 2014-06-26 | Dynavisor, Inc. | Dynamic device virtualization |
| US8973146B2 (en) | 2012-12-27 | 2015-03-03 | Mcafee, Inc. | Herd based scan avoidance system in a network environment |
| US9268707B2 (en) | 2012-12-29 | 2016-02-23 | Intel Corporation | Low overhead paged memory runtime protection |
| US9304793B2 (en) * | 2013-01-16 | 2016-04-05 | Vce Company, Llc | Master automation service |
| US9229752B2 (en) * | 2013-03-12 | 2016-01-05 | International Business Machines Corporation | Systems and methods to offload hardware support using a hypervisor subpartition |
| US9152450B2 (en) | 2013-03-12 | 2015-10-06 | International Business Machines Corporation | Offloading service requests to a second guest hypervisor in a logical partition shared by a plurality of guest hypervisors |
| US9342343B2 (en) * | 2013-03-15 | 2016-05-17 | Adventium Enterprises, Llc | Wrapped nested virtualization |
| US9058239B2 (en) | 2013-06-20 | 2015-06-16 | International Business Machines Corporation | Hypervisor subpartition as concurrent upgrade |
| JP5608797B2 (ja) * | 2013-07-31 | 2014-10-15 | 株式会社日立製作所 | 仮想化プログラム、仮想計算機システム及び計算機システム制御方法 |
| CN105580023B (zh) | 2013-10-24 | 2019-08-16 | 迈克菲股份有限公司 | 网络环境中的代理辅助的恶意应用阻止 |
| WO2015081308A2 (en) | 2013-11-26 | 2015-06-04 | Dynavisor, Inc. | Dynamic i/o virtualization |
| US10031767B2 (en) | 2014-02-25 | 2018-07-24 | Dynavisor, Inc. | Dynamic information virtualization |
| US9424062B1 (en) * | 2014-03-24 | 2016-08-23 | Amazon Technologies, Inc. | Virtualization infrastructure support |
| CN104951694B (zh) | 2014-03-24 | 2018-04-10 | 华为技术有限公司 | 一种管理虚拟机的隔离方法及装置 |
| WO2016004263A1 (en) | 2014-07-01 | 2016-01-07 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features |
| US9213840B2 (en) | 2014-05-15 | 2015-12-15 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features |
| WO2015176029A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features |
| WO2015176048A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Aspects of hardware virtualization, hypervisors, code detection |
| US9417896B2 (en) * | 2014-05-19 | 2016-08-16 | International Business Machines Corporation | Allocating hypervisor resources |
| JP2015225436A (ja) * | 2014-05-27 | 2015-12-14 | 株式会社エヌ・ティ・ティ・データ | リソース提供支援装置、リソース提供支援システム、リソース提供支援方法 |
| US11782745B2 (en) | 2014-07-01 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features |
| US9781054B1 (en) * | 2014-07-25 | 2017-10-03 | Google Inc. | Quota-based resource scheduling |
| US9851998B2 (en) * | 2014-07-30 | 2017-12-26 | Microsoft Technology Licensing, Llc | Hypervisor-hosted virtual machine forensics |
| US10104099B2 (en) | 2015-01-07 | 2018-10-16 | CounterTack, Inc. | System and method for monitoring a computer system using machine interpretable code |
| US10101915B2 (en) * | 2015-06-24 | 2018-10-16 | Vmware, Inc. | Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks |
| US9804789B2 (en) | 2015-06-24 | 2017-10-31 | Vmware, Inc. | Methods and apparatus to apply a modularized virtualization topology using virtual hard disks |
| US10126983B2 (en) | 2015-06-24 | 2018-11-13 | Vmware, Inc. | Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks |
| US9928010B2 (en) | 2015-06-24 | 2018-03-27 | Vmware, Inc. | Methods and apparatus to re-direct detected access requests in a modularized virtualization topology using virtual hard disks |
| US11422840B2 (en) * | 2015-08-28 | 2022-08-23 | Vmware, Inc. | Partitioning a hypervisor into virtual hypervisors |
| CN105224388A (zh) * | 2015-09-14 | 2016-01-06 | 北京百度网讯科技有限公司 | 基于嵌套虚拟化的云系统持续集成方法和装置 |
| US12339979B2 (en) * | 2016-03-07 | 2025-06-24 | Crowdstrike, Inc. | Hypervisor-based interception of memory and register accesses |
| US12248560B2 (en) * | 2016-03-07 | 2025-03-11 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
| JP6651955B2 (ja) * | 2016-03-31 | 2020-02-19 | 日本電気株式会社 | 仮想マシンシステム、仮想マシンシステム管理装置、仮想マシンシステム管理方法及びプログラム |
| US10353727B2 (en) | 2016-05-26 | 2019-07-16 | International Business Machines Corporation | Extending trusted hypervisor functions with existing device drivers |
| US11442760B2 (en) * | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
| KR102511451B1 (ko) | 2016-11-09 | 2023-03-17 | 삼성전자주식회사 | 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템 |
| US10942757B2 (en) * | 2017-02-27 | 2021-03-09 | Red Hat, Inc. | Virtual machine security through guest-side emulation |
| US10394585B2 (en) * | 2017-03-07 | 2019-08-27 | Microsoft Technology Licensing, Llc | Managing guest partition access to physical devices |
| US11556363B2 (en) * | 2017-03-31 | 2023-01-17 | Intel Corporation | Techniques for virtual machine transfer and resource management |
| CN107766001B (zh) * | 2017-10-18 | 2021-05-25 | 成都索贝数码科技股份有限公司 | 一种基于用户群组的存储配额方法 |
| US10931528B2 (en) * | 2018-05-04 | 2021-02-23 | VCE IP Holding Company LLC | Layer-based method and system for defining and enforcing policies in an information technology environment |
| CN112400170A (zh) | 2018-06-24 | 2021-02-23 | 海克斯伍安全公司 | 配置、实施和监控可信执行环境的分离 |
| US10831532B2 (en) | 2018-10-19 | 2020-11-10 | International Business Machines Corporation | Updating a nested virtualization manager using live migration of virtual machines |
| US11237859B2 (en) * | 2018-11-28 | 2022-02-01 | Red Hat Israel, Ltd. | Securing virtual machines in computer systems |
| GB2581482B (en) * | 2019-02-15 | 2021-02-24 | Promon As | Security virtual-machine software applications |
| US11494214B2 (en) * | 2019-03-28 | 2022-11-08 | Amazon Technologies, Inc. | Verified isolated run-time environments for enhanced security computations within compute instances |
| KR102440562B1 (ko) * | 2020-11-17 | 2022-09-06 | 주식회사 알티스트 | 계층적으로 구성된 파티션을 활용한 파티션 재시작 방법 |
| US12175271B2 (en) | 2021-06-29 | 2024-12-24 | Red Hat, Inc. | Reducing latency for nested virtual machines |
| US11983555B2 (en) | 2021-08-03 | 2024-05-14 | Red Hat, Inc. | Storage snapshots for nested virtual machines |
| CN113934509B (zh) | 2021-09-02 | 2024-12-31 | 三星(中国)半导体有限公司 | 支持混合虚拟机管理器的系统和运行方法 |
| US12235950B2 (en) | 2022-01-18 | 2025-02-25 | Xilinx, Inc. | Hierarchical hardware-software partitioning and configuration |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2005036405A1 (en) * | 2003-10-08 | 2005-04-21 | Unisys Corporation | Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system |
| WO2005062178A2 (en) * | 2003-12-16 | 2005-07-07 | Intel Corporation (A Corporation Of Delaware) | Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management |
| RU2259582C2 (ru) * | 2000-12-27 | 2005-08-27 | Интел Корпорейшн | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой |
Family Cites Families (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4253145A (en) | 1978-12-26 | 1981-02-24 | Honeywell Information Systems Inc. | Hardware virtualizer for supporting recursive virtual computer systems on a host computer system |
| DE3428634A1 (de) | 1984-08-03 | 1986-02-13 | Unilever N.V., Rotterdam | Huelsenfoermiger traeger |
| US4787031A (en) | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
| JPS62221041A (ja) | 1986-03-24 | 1987-09-29 | Hitachi Ltd | 仮想計算機システムにおけるデイスパツチ制御装置 |
| JP2705121B2 (ja) | 1988-07-08 | 1998-01-26 | 株式会社日立製作所 | 電子計算機システム |
| JP3138985B2 (ja) | 1989-03-14 | 2001-02-26 | 富士通株式会社 | 仮想計算機 |
| JP2864255B2 (ja) | 1989-09-14 | 1999-03-03 | 富士通株式会社 | 仮想計算機方式の計算機システム |
| US5325526A (en) * | 1992-05-12 | 1994-06-28 | Intel Corporation | Task scheduling in a multicomputer system |
| JP3543441B2 (ja) | 1995-09-19 | 2004-07-14 | 株式会社日立製作所 | 大域的なリソースキャッピング方法 |
| JPH09282196A (ja) | 1996-04-18 | 1997-10-31 | Hitachi Ltd | 複合論理プロセッサシステムのプログラム走行制御方式 |
| US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
| AU7101498A (en) | 1997-04-02 | 1998-10-22 | Microsoft Corporation | Method for integrating a virtual machine with input method editors |
| US6282701B1 (en) | 1997-07-31 | 2001-08-28 | Mutek Solutions, Ltd. | System and method for monitoring and analyzing the execution of computer programs |
| US6633916B2 (en) | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
| US6141732A (en) | 1998-03-24 | 2000-10-31 | Novell, Inc. | Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks |
| US6438671B1 (en) | 1999-07-01 | 2002-08-20 | International Business Machines Corporation | Generating partition corresponding real address in partitioned mode supporting system |
| US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
| JP3630087B2 (ja) | 2000-05-10 | 2005-03-16 | 日本電気株式会社 | 自動データ処理装置 |
| US6990663B1 (en) | 2000-06-08 | 2006-01-24 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
| US7085705B2 (en) | 2000-12-21 | 2006-08-01 | Microsoft Corporation | System and method for the logical substitution of processor control in an emulated computing environment |
| US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
| US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
| AU2002329560A1 (en) | 2001-09-25 | 2003-04-07 | Koninklijke Philips Electronics N.V. | Software support for virtual machine interpreter (vmi) acceleration hardware |
| US7406522B2 (en) * | 2001-09-26 | 2008-07-29 | Packeteer, Inc. | Dynamic partitioning of network resources |
| US20030110205A1 (en) | 2001-12-07 | 2003-06-12 | Leith Johnson | Virtualized resources in a partitionable server |
| WO2003052542A2 (fr) | 2001-12-14 | 2003-06-26 | David Carrere | Procede et dispositif de traitement de l'information |
| US6934888B2 (en) * | 2002-03-07 | 2005-08-23 | International Business Machines Corporation | Method and apparatus for enhancing input/output error analysis in hardware sub-systems |
| US6725284B2 (en) | 2002-04-25 | 2004-04-20 | International Business Machines Corporation | Logical partition hosted virtual input/output using shared translation control entries |
| US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
| US6895491B2 (en) | 2002-09-26 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching |
| US7197585B2 (en) * | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
| US20040117532A1 (en) | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
| US7962545B2 (en) | 2002-12-27 | 2011-06-14 | Intel Corporation | Dynamic service registry for virtual machines |
| US7000051B2 (en) | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
| US8209680B1 (en) * | 2003-04-11 | 2012-06-26 | Vmware, Inc. | System and method for disk imaging on diverse computers |
| US7376948B2 (en) * | 2003-04-24 | 2008-05-20 | International Business Machines Corporation | Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer |
| EP1503286B1 (en) | 2003-07-30 | 2014-09-03 | Jaluna SA | Multiple operating system networking |
| US20050044301A1 (en) | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
| US7424709B2 (en) | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
| US7913226B2 (en) | 2003-10-01 | 2011-03-22 | Hewlett-Packard Development Company, L.P. | Interposing a virtual machine monitor and devirtualizing computer hardware at runtime |
| US7376949B2 (en) | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
| US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
| US7552426B2 (en) * | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
| US20050091022A1 (en) | 2003-10-24 | 2005-04-28 | Konstantin Levit-Gurevich | Ultra fast multi-processor system simulation using dedicated virtual machines |
| US7146482B2 (en) * | 2003-11-25 | 2006-12-05 | International Business Machines Corporation | Memory mapped input/output emulation |
| US7234037B2 (en) * | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
| US7467381B2 (en) | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
| US7421533B2 (en) * | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
| US7478388B1 (en) * | 2004-04-21 | 2009-01-13 | Vmware, Inc. | Switching between multiple software entities using different operating modes of a processor in a computer system |
| US7249208B2 (en) * | 2004-05-27 | 2007-07-24 | International Business Machines Corporation | System and method for extending the cross-memory descriptor to describe another partition's memory |
| US7562179B2 (en) | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
| US20060070066A1 (en) * | 2004-09-30 | 2006-03-30 | Grobman Steven L | Enabling platform network stack control in a virtualization platform |
| US8145872B2 (en) * | 2004-11-08 | 2012-03-27 | International Business Machines Corporation | Autonomic self-tuning of database management system in dynamic logical partitioning environment |
| US7757231B2 (en) * | 2004-12-10 | 2010-07-13 | Intel Corporation | System and method to deprivilege components of a virtual machine monitor |
| US7853960B1 (en) * | 2005-02-25 | 2010-12-14 | Vmware, Inc. | Efficient virtualization of input/output completions for a virtual device |
| US7685635B2 (en) * | 2005-03-11 | 2010-03-23 | Microsoft Corporation | Systems and methods for multi-level intercept processing in a virtual machine environment |
| US7443878B2 (en) * | 2005-04-04 | 2008-10-28 | Sun Microsystems, Inc. | System for scaling by parallelizing network workload |
| US7779164B2 (en) * | 2005-04-04 | 2010-08-17 | Oracle America, Inc. | Asymmetrical data processing partition |
| US8578385B2 (en) * | 2005-04-21 | 2013-11-05 | Microsoft Corporation | Method and system for virtual service isolation |
| US8166473B2 (en) | 2005-04-21 | 2012-04-24 | Microsoft Corporation | Method and system for a resource negotiation between virtual machines |
| US8375386B2 (en) * | 2005-06-29 | 2013-02-12 | Microsoft Corporation | Failure management for a virtualized computing environment |
| US8387049B2 (en) * | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
| US9785485B2 (en) * | 2005-07-27 | 2017-10-10 | Intel Corporation | Virtualization event processing in a layered virtualization architecture |
-
2005
- 2005-08-30 US US11/215,380 patent/US8327353B2/en active Active
-
2006
- 2006-08-29 WO PCT/US2006/033815 patent/WO2007027739A1/en not_active Ceased
- 2006-08-29 EP EP06802600.4A patent/EP1922619B1/en not_active Ceased
- 2006-08-29 JP JP2008529220A patent/JP2009506462A/ja active Pending
- 2006-08-29 CA CA002620087A patent/CA2620087A1/en not_active Abandoned
- 2006-08-29 AU AU2006284910A patent/AU2006284910B2/en not_active Ceased
- 2006-08-29 BR BRPI0615278-3A patent/BRPI0615278A2/pt not_active Application Discontinuation
- 2006-08-29 KR KR1020087004700A patent/KR20080047372A/ko not_active Withdrawn
- 2006-08-29 CN CN200680031438XA patent/CN101253481B/zh not_active Expired - Fee Related
- 2006-08-29 RU RU2008107734/09A patent/RU2398267C2/ru not_active IP Right Cessation
- 2006-08-29 MX MX2008002497A patent/MX2008002497A/es not_active Application Discontinuation
- 2006-08-30 TW TW095132063A patent/TW200729038A/zh unknown
-
2008
- 2008-02-12 NO NO20080757A patent/NO340567B1/no not_active IP Right Cessation
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2259582C2 (ru) * | 2000-12-27 | 2005-08-27 | Интел Корпорейшн | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой |
| WO2005036405A1 (en) * | 2003-10-08 | 2005-04-21 | Unisys Corporation | Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system |
| WO2005062178A2 (en) * | 2003-12-16 | 2005-07-07 | Intel Corporation (A Corporation Of Delaware) | Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2436149C2 (ru) * | 2006-02-28 | 2011-12-10 | Майкрософт Корпорейшн | Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство |
| US10552208B2 (en) | 2006-02-28 | 2020-02-04 | Microsoft Technology Licensing, Llc | Migrating a virtual machine that owns a resource such as a hardware device |
| RU2486584C2 (ru) * | 2011-09-16 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) | Способ построения иерархической системы сетевого взаимодействия виртуальных рабочих мест |
| RU2486578C2 (ru) * | 2011-09-16 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг России) | Способ построения системы сообщений многоуровневой несимметричной транспортной системы |
| RU2571600C2 (ru) * | 2012-06-08 | 2015-12-20 | Хуавэй Текнолоджиз Ко., Лтд. | Способ управления виртуализацией и соответствующие устройства для управления аппаратными ресурсами устройства связи |
| US9558025B2 (en) | 2012-06-08 | 2017-01-31 | Huwaei Technologies Co., Ltd. | Inter-board virtualization management for managing hardware resources corresponding to interrupts |
| RU2626550C1 (ru) * | 2016-08-09 | 2017-07-28 | Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" | Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1922619B1 (en) | 2016-11-02 |
| TW200729038A (en) | 2007-08-01 |
| CA2620087A1 (en) | 2007-03-08 |
| BRPI0615278A2 (pt) | 2011-05-17 |
| EP1922619A1 (en) | 2008-05-21 |
| MX2008002497A (es) | 2008-04-10 |
| CN101253481B (zh) | 2012-07-04 |
| NO340567B1 (no) | 2017-05-15 |
| WO2007027739A1 (en) | 2007-03-08 |
| AU2006284910A1 (en) | 2007-03-08 |
| CN101253481A (zh) | 2008-08-27 |
| US8327353B2 (en) | 2012-12-04 |
| KR20080047372A (ko) | 2008-05-28 |
| RU2008107734A (ru) | 2009-09-10 |
| US20070050764A1 (en) | 2007-03-01 |
| AU2006284910B2 (en) | 2011-01-20 |
| NO20080757L (no) | 2008-03-05 |
| JP2009506462A (ja) | 2009-02-12 |
| EP1922619A4 (en) | 2009-01-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2398267C2 (ru) | Иерархическая виртуализация посредством многоуровневого механизма виртуализации | |
| JP5042848B2 (ja) | 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法 | |
| RU2412468C2 (ru) | Системы и способы многоуровневой обработки перехватов в виртуальной машинной среде | |
| US7814495B1 (en) | On-line replacement and changing of virtualization software | |
| JP5584220B2 (ja) | コンフィギュレーション空間仮想化 | |
| US9864626B2 (en) | Coordinating joint operation of multiple hypervisors in a computer system | |
| US8161477B2 (en) | Pluggable extensions to virtual machine monitors | |
| US20240028361A1 (en) | Virtualized cache allocation in a virtualized computing system | |
| US20230036017A1 (en) | Last-level cache topology for virtual machines | |
| Kanda et al. | SIGMA system: A multi-OS environment for embedded systems | |
| US8291415B2 (en) | Paging instruction for a virtualization engine to local storage | |
| US12367057B2 (en) | Scaling a host virtual counter and timer in a virtualized computer system | |
| 林宗翰 | Addressing Hybrid OS Environment Issues in the Embedded Virtualization Multicore Platform | |
| Fantini | Virtualization technologies from hypervisors to containers: overview, security considerations, and performance comparisons | |
| HK1097927A (en) | Systems and methods for multi-level intercept processing in a virtual machine environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150526 |
|
| MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20200830 |