запуск гипервизора в запущенной операционной системе

Классы МПК:G06F9/44 устройства для выполнения специальных программ
Автор(ы):, , ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2007-05-14
публикация патента:

Изобретение относится к области вычислительной техники, а более точно к способу запуска гипервизора в компьютерной системе. Техническим результатом является обеспечение избежания необходимости иметь отдельный код для гипервизора, чтобы обнаруживать физические ресурсы компьютерной системы. Способ включает: запуск корневой операционной системы; обнаружение посредством корневой операционной системы множества физических ресурсов; запуск посредством корневой операционной системы гипервизора; прием посредством гипервизора от корневой операционной системы информации, представляющей множество физических ресурсов; запуск посредством гипервизора экземпляра виртуальной машины для корневой операционной системы; инициализацию виртуальной машины с помощью состояния, согласованного с информацией; возобновление работы корневой операционной системы так, что корневая операционная система взаимодействует опосредованно с упомянутым множеством физических ресурсов через экземпляр виртуальной машины. 3 н. и 17 з.п. ф-лы, 7 ил. запуск гипервизора в запущенной операционной системе, патент № 2446447

запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447 запуск гипервизора в запущенной операционной системе, патент № 2446447

Формула изобретения

1. Машиночитаемый носитель, имеющий одну или более машиноисполняемых инструкций, которые при их исполнении одним или более процессорами компьютерной системы предписывают компьютерной системе выполнять способ использования работающей операционной системы для запуска гипервизора, содержащий этапы, на которых:

запускают посредством операционной системы гипервизор и

виртуализируют посредством запущенного гипервизора по меньшей мере один физический ресурс компьютерной системы для операционной системы, которая запустила гипервизор.

2. Машиночитаемый носитель по п.1, который является физической памятью.

3. Машиночитаемый носитель по п.1, который является носителем физической памяти.

4. Машиночитаемый носитель по п.1, который является физическим носителем данных.

5. Машиночитаемый носитель по п.1, в котором упомянутые машиноисполняемые инструкции дополнительно приспособлены при их исполнении одним или более процессорами компьютерной системы предписывать компьютерной системе дополнительно осуществлять этапы, на которых:

обнаруживают посредством операционной системы упомянутый по меньшей мере один физический ресурс; и

предоставляют посредством операционной системы информацию состояния для упомянутого по меньшей мере одного физического ресурса в гипервизор, причем эта информация состояния включает в себя по меньшей мере идентификационные данные соответствующего физического ресурса.

6. Машиночитаемый носитель по п.5, в котором упомянутые машиноисполняемые инструкции дополнительно приспособлены при их исполнении одним или более процессорами компьютерной системы предписывать компьютерной системе дополнительно осуществлять этапы, на которых:

запускают посредством гипервизора экземпляр виртуальной машины для операционной системы;

инициализируют экземпляр виртуальной машины с помощью информации состояния, предоставленной операционной системой;

возобновляют посредством гипервизора работу операционной системы после инициализации экземпляра виртуальной машины; и

после того как работа операционной системы возобновлена, используют посредством гипервизора экземпляр виртуальной машины для виртуализации упомянутого по меньшей мере одного физического ресурса.

7. Машиночитаемый носитель по п.6, в котором упомянутые машиноисполняемые инструкции дополнительно приспособлены при их исполнении одним или более процессорами компьютерной системы предписывать компьютерной системе дополнительно осуществлять для каждой дополнительной операционной системы, запущенной в компьютерной системе, этапы, на которых:

запускают посредством гипервизора соответствующий экземпляр виртуальной машины для каждой дополнительной операционной системы;

запускают соответствующую дополнительную операционную систему после того, как запущен соответствующий экземпляр виртуальной машины; и

используют посредством гипервизора соответствующий экземпляр виртуальной машины для виртуализации упомянутого по меньшей мере одного физического ресурса для этой соответствующей дополнительной операционной системы.

8. Машиночитаемый носитель по п.1, в котором упомянутые машиноисполняемые инструкции дополнительно приспособлены при их исполнении одним или более процессорами компьютерной системы предписывать компьютерной системе дополнительно осуществлять этап, на котором виртуализируют посредством запущенного гипервизора по меньшей мере один физический ресурс компьютерной системы для операционной системы, которая запустила гипервизор.

9. Машиночитаемый носитель по п.1, в котором упомянутые машиноисполняемые инструкции дополнительно содержат машиноисполняемые инструкции, которые при их исполнении одним или более процессорами компьютерной системы предписывают компьютерной системе осуществлять этапы, на которых:

создают посредством операционной системы временный экземпляр виртуальной машины;

инициализируют временный экземпляр виртуальной машины с помощью инструкции, которая формирует перехват;

возобновляют работу временного экземпляра виртуальной машины после этапа инициализации;

после обнаружения перехвата, являющегося результатом этапа возобновления работы временного экземпляра виртуальной машины, запускают временный экземпляр виртуальной машины так, чтобы он работал, используя состояние гипервизора.

10. Машиночитаемый носитель по п.9, в котором упомянутые машиноисполняемые инструкции дополнительно содержат машиноисполняемые инструкции, которые при их исполнении одним или более процессорами компьютерной системы предписывают компьютерной системе осуществлять до создания временного экземпляра виртуальной машины этап, на котором делают недействительными все немаскируемые прерывания.

11. Машиночитаемый носитель по п.9, в котором упомянутые машиноисполняемые инструкции дополнительно содержат машиноисполняемые инструкции, которые при их исполнении одним или более процессорами компьютерной системы предписывают компьютерной системе осуществлять, после того как временный экземпляр виртуальной машины запущен, используя состояние гипервизора, следующие этапы, на которых:

запускают гипервизор и

удаляют временный экземпляр виртуальной машины.

12. Машиночитаемый носитель по п.11, при этом одно из операционной системы и гипервизора работает в 32-битовом режиме, тогда как другое из операционной системы и гипервизора работает в 64-битовом режиме.

13. Машиночитаемый носитель по п.11, при этом операционная система и гипервизор работают, используя различные страничные механизмы.

14. Способ запуска гипервизора в компьютерной системе, содержащий этапы, на которых:

запускают корневую операционную систему в компьютерной системе;

обнаруживают посредством корневой операционной системы множество физических ресурсов компьютерной системы;

запускают посредством корневой операционной системы гипервизор;

принимают посредством гипервизора от корневой операционной системы информацию, представляющую множество физических ресурсов, обнаруженных корневой операционной системой;

запускают посредством гипервизора экземпляр виртуальной машины для корневой операционной системы;

инициализируют виртуальную машину с помощью состояния, согласованного с информацией, представляющей множество физических ресурсов, обнаруженных корневой операционной системой;

возобновляют работу корневой операционной системы так, что корневая операционная система взаимодействует опосредованно с упомянутым множеством физических ресурсов через экземпляр виртуальной машины, который инициализирован используя, упомянутое состояние.

15. Способ по п.14, дополнительно содержащий, после того как гипервизор запущен, этап, на котором запускают одну или более дополнительных операционных систем.

16. Способ по п.15, дополнительно содержащий для каждой из упомянутых одной или более дополнительных операционных систем этап, на котором инициируют соответствующий экземпляр виртуальной машины, чтобы непосредственно взаимодействовать с соответствующей дополнительной операционной системой.

17. Считываемый компьютером носитель, на котором содержится:

операционная система; и

гипервизор, запущенный операционной системой и выполненный с возможностью виртуализировать по меньшей мере один физический ресурс компьютерной системы для операционной системы.

18. Считываемый компьютером носитель по п.17, который является физической памятью.

19. Считываемый компьютером носитель по п.17, который является носителем физической памяти.

20. Считываемый компьютером носитель по п.17, который является физическим носителем данных.

Описание изобретения к патенту

Предшествующий уровень техники

Одна из основных функций операционной системы заключается в том, чтобы взаимодействовать с физическими ресурсами в вычислительной системе. Типичная операционная система может ограждать от осуществления доступа к физическим ресурсам ненадлежащим образом. Например, когда одно приложение использует конкретный сегмент памяти, операционная система может защитить этот сегмент памяти от изменения другим приложением, управляемым той же операционной системой. В противном случае приложения могут не функционировать так, как ожидается. Эти ограждения доступа зачастую основаны на том допущении, что операционная система является единственной операционной системой, работающей в вычислительной системе.

Тем не менее, иногда может быть преимущественным запускать несколько операционных систем в одной вычислительной системе. В этом случае неявной защиты в каждой операционной системе, чтобы обеспечить безопасную работу с ресурсами, более может быть недостаточно. Операционная система может не иметь возможности управлять осуществлением доступа к одним и тем же физическим ресурсам со стороны другой операционной системы и может не иметь механизма распознавания наличия этой другой запущенной операционной системы.

Гипервизор - это уровень программного обеспечения, который выполнен с возможностью размещения между одной или более запущенными операционными системами и защищенными физическими ресурсами (такими как процессоры, порты ввода-вывода, память, прерывания и т.п.). Гипервизор функционально объединяет защищенные физические ресурсы для операционных систем и открывает ресурсы для каждой операционной системы виртуализированным способом. Например, в качестве простой иллюстрации предположим, что имеется две операционные системы, работающие в вычислительной системе, которая имеет один процессор и 1 гигабайт (ГБ) оперативной памяти (RAM). Гипервизор может выделить половину циклов процессора каждой операционной системе и половину памяти (512 мегабайт (МБ) RAM) каждой операционной системе. Более того, гипервизор может предоставить виртуализированный диапазон RAM, адресуемый для каждой операционной системы так, что для обеих операционных систем кажется, что доступно только 512 МБ RAM.

Когда операционная система пытается обмениваться данными с физическим ресурсом и наоборот, гипервизор выполняет соответствующую буферизацию и преобразования, чтобы позволить каждой операционной системе работать со своим окружением, как если бы оно было единственной операционной системой, работающей в вычислительной системе. Более того, гипервизор делает это таким образом, что физические ресурсы в вычислительной системе могут совместно использоваться несколькими экземплярами операционной системы, при этом будучи защищенными.

Традиционно гипервизоры запускаются до запуска операционной системы.

Это позволяет гипервизору запускать операционную систему в виртуальной машине посредством представления виртуального представления физических ресурсов. Чтобы немедленно запускать операционную систему в виртуальной машине, гипервизор включает исчерпывающий код для обнаружения физических ресурсов и их важнейших характеристик. Поскольку обнаружение физических ресурсов выполняется до того, как имеются какие-либо запущенные операционные системы на операционную систему нельзя полагаться в этом процессе обнаружения. Соответственно, код для обнаружения физических ресурсов в гипервизоре может быть достаточно сложным.

Сущность изобретения

Хотя принципы настоящего изобретения не ограничены вариантами осуществления, обобщенными в этом кратком изложении сущности изобретения, некоторые варианты осуществления, описанные в данном документе, относятся к запуску гипервизора после того, как уже есть запущенная операционная система. Хотя необязательно запущенная операционная система может быть использована вместо гипервизора, чтобы обнаруживать физические ресурсы, функционирующие в вычислительной системе. Таким образом, если требуется, гипервизор может полагаться на операционную систему для обнаружения ресурсов вместо необходимости иметь код, который выполняет ту же самую функциональность.

Данное изменение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить набор идей, которые дополнительно описываются ниже в подробном описании. Это изложение сущности изобретения не предназначено для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого изобретения, а также не предназначена для того, чтобы быть использованной в качестве помощи при определении объема заявляемого изобретения.

Перечень чертежей

Чтобы дополнительно прояснить вышеизложенные и другие преимущества и признаки настоящего изобретения, более подробное описание изобретения предоставляется посредством отсылки к его конкретным вариантам осуществления, которые проиллюстрированы на прилагаемых чертежах. Следует принимать во внимание, что эти чертежи иллюстрируют только типичные варианты осуществления изобретения и, следовательно, не должны считаться ограничивающими его объем. Изобретение описывается и поясняется с дополнительной специфичностью и подробностью за счет использования прилагаемых чертежей, на которых:

Фиг.1 иллюстрирует вычислительное окружение, в котором могут быть использованы варианты осуществления изобретения;

Фиг.2 иллюстрирует блок-схему последовательности операций способа запуска гипервизора с помощью запущенной операционной системы;

Фиг.3 иллюстрирует блок-схему последовательности операций способа запуска дополнительных экземпляров операционной системы;

Фиг.4A иллюстрирует конфигурацию, в которой корневая операционная система, при отсутствии гипервизора, поддерживает прямой обмен данными с физическими ресурсами вычислительной системы;

Фиг.4B иллюстрирует конфигурацию, в которой вычислительная система запустила гипервизор, чтобы выступать в качестве посредника между операционной системой и физическими ресурсами;

Фиг.4C иллюстрирует конфигурацию, в которой дополнительные операционные системы запущены и поддерживаются посредством гипервизора; и

Фиг.5 иллюстрирует блок-схему последовательности операций способа переноса операционной системы в окружение гипервизора.

Подробное описание изобретения

В соответствии с вариантами осуществления настоящего изобретения гипервизор может запускаться после того, как уже есть запущенная операционная система. Запущенная операционная система может быть использована вместо гипервизора, чтобы обнаруживать физические ресурсы, функционирующие в вычислительной системе. Другие экземпляры операционных систем могут запускаться после того, как гипервизор является рабочим. Общее вычислительное окружение, в котором принципы настоящего изобретения могут быть использованы на практике, сначала описывается со ссылкой на фиг.1. Далее дополнительные подробности, касающиеся вариантов осуществления настоящего изобретения, описываются со ссылкой на прилагаемые чертежи.

Вычислительные системы сегодня все в большей степени принимают множество форм. Вычислительными системами могут быть, например, портативные устройства, бытовые приборы, дорожные компьютеры, мейнфреймы, распределенные вычислительные системы или даже устройства, которые не считались традиционно вычислительной системой. В этом описании и в формуле изобретения термин "вычислительная система" задается в широком смысле как охватывающий любое устройство или систему (либо их комбинацию), которая включает в себя, по меньшей мере, один процессор и память, допускающую наличие в ней машиноисполняемых команд, которые могут исполняться процессором. Память может принимать любую форму и может зависеть от характера и формы вычислительной системы. Вычислительная система может быть распределена по сетевому окружению и может иметь несколько составляющих вычислительных систем.

Ссылаясь на фиг.1, в своей самой базовой конфигурации вычислительная система 100 в типичном варианте включает в себя, по меньшей мере, один процессор 102 и память 104. Память 104 может быть физической системной памятью, которая может быть энергозависимой, энергонезависимой или комбинацией вышеуказанного. Пример энергозависимой памяти включает в себя оперативную память (RAM). Примеры энергонезависимой памяти включают в себя постоянное запоминающее устройство (ROM), флэш-память и т.п. Термин "память" также может быть использован в данном документе для того, чтобы ссылаться на энергонезависимое устройство хранения большой емкости, такое как физические носители данных. Эти носители данных могут быть съемными и стационарными и могут включать в себя (но не только) PCMCIA-карты, магнитные и оптические диски, магнитную ленту и т.п.

При использовании в данном документе термин "модуль" или "компонент" может означать программные объекты или процедуры, которые исполняются в вычислительной системе. Различные компоненты, модули, механизмы и службы, описанные в данном документе, могут быть реализованы как объекты или процессы, которые исполняются в вычислительной системе (к примеру, как отдельные потоки). Хотя системы и способы, описанные в данном документе, могут быть реализованы в программном обеспечении, реализации в аппаратных средствах, а также в комбинациях программного обеспечения и аппаратных средств также допускаются и подразумеваются.

В нижеследующем описании варианты осуществления изобретения поясняются со ссылкой на этапы, которые выполняются одной или более вычислительными системами. Если эти этапы реализованы в программном обеспечении, один или более процессоров ассоциированной вычислительной системы, которая выполняет этап, управляют работой вычислительной системы в ответ на исполнение машиночитаемых инструкций. Пример такой работы включает в себя обработку данных. Машиноисполняемые инструкции (и обрабатываемые данные) могут быть сохранены в памяти 104 вычислительной системы 100.

Вычислительная система 100 также может содержать каналы 108 связи, которые позволяют вычислительной системе 100 обмениваться данными с другими вычислительными системами, например, по сети 110. Каналы 108 связи являются примерами сред связи. Среды связи в типичном варианте воплощают машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущее колебание или другой механизм распространения, и включают в себя любые среды для доставки информации. Для примера, но не в качестве ограничения, среды связи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустическая среда, радиочастотная среда, инфракрасное излучение и другие беспроводные среды. Термин «машиночитаемый носитель» при использовании в данном документе охватывает как носители данных, так и среды связи.

Варианты осуществления в объеме настоящего изобретения также включают в себя машиночитаемые носители для передачи или сохранения на них машиноисполняемых инструкций или структур данных. Этими машиночитаемыми носителями могут быть любые доступные носители, к которым можно осуществлять доступ посредством компьютера общего назначения или специального назначения. В качестве примера, а не ограничения, эти машиночитаемые носители могут содержать физические устройства хранения и/или запоминающие устройства, такие как RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптических дисках, накопитель на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы переносить или сохранять требуемое средство программного кода в форме машиноисполняемых инструкций или структур данных, к которым можно осуществлять доступ посредством компьютера общего назначения или специального назначения. Когда информация передается или предоставляется по сети или другому коммуникационному соединению (проводному, беспроводному или комбинации проводного и беспроводного) в компьютер, компьютер надлежащим образом рассматривает это соединение как машиночитаемый носитель. Таким образом, любое подобное соединение корректно называть машиночитаемым носителем. Комбинации вышеперечисленного также следует считать охватываемым понятием «машиночитаемый носитель».

Машиноисполняемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения выполнять определенную функцию или группу функций. Хотя изобретение описано на языке, характерном для структурных признаков и/или методологических действий, необходимо понимать, что предмет изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен описанными в данном документе характерными признаками или действиями. Наоборот, описанные в данном документе характерные признаки и действия раскрываются как примерные формы реализации формулы изобретения.

Фиг.2 иллюстрирует блок-схему последовательности операций способа 200 для работающей операционной системы запускать гипервизор. В этом описании и в формуле изобретения "гипервизор" - это уровень программного обеспечения, который выполнен с возможностью размещения между одной или более работающими операционными системами и защищенными физическими ресурсами. Гипервизор функционально объединяет защищенные физические ресурсы для операционных систем и открывает ресурсы для каждой операционной системы виртуализированным способом. Таким образом, гипервизор выступает в качестве специального вида уровня абстрагирования между операционной системой и физическими ресурсами вычислительной системы.

Например, в качестве простой иллюстрации предположим, что имеется две операционные системы, работающие в вычислительной системе, которая имеет один процессор и 1 гигабайт (ГБ) оперативной памяти (RAM). Гипервизор может выделить половину циклов процессора каждой операционной системе и половину памяти (512 мегабайт (МБ) RAM) каждой операционной системе. Более того, гипервизор может предоставить виртуальный диапазон RAM, адресуемый для каждой операционной системы так, что для обеих операционных систем кажется, что доступно только 512 МБ RAM. Когда операционная система пытается обмениваться данными с физическим ресурсом и наоборот, гипервизор выполняет соответствующую буферизацию и преобразования, чтобы позволить каждой операционной системе работать со своим окружением, как если бы она была единственной операционной системой, работающей в вычислительной системе.

В отличие от традиционных конфигураций гипервизоров, варианты осуществления настоящего изобретения позволяют гипервизору запускаться после того, как запущена операционная система, даже если операционная система уже обнаружила физические ресурсы вычислительной системы. Операционная система, которая запускает гипервизор, передает информацию, представляющую состояние обнаруженных физических ресурсов, в гипервизор. Таким образом, гипервизор не обязательно должен иметь отдельный код для того, чтобы обнаруживать физические ресурсы вычислительной системы.

После того как операционная система запускает гипервизор и передает в гипервизор информацию, касающуюся обнаруженных физических ресурсов в вычислительной системе, операционная система может приостановить выполнение и передать управление гипервизору. Гипервизор затем должен сконфигурировать экземпляр виртуальной машины, чтобы обрабатывать будущие запросы на доступ ко всем защищенным ресурсам из физических ресурсов вычислительной системы. Экземпляр виртуальной машины инициализируется с помощью состояния, которое согласовано с концепцией операционной системы по защищенным физическим ресурсам. Когда это выполнено, операционная система возобновляет работу в окружении виртуальной машины. Тем не менее, в окружении виртуальной машины операционная система взаимодействует с физическими ресурсами опосредованно через гипервизор, а не напрямую с физическими ресурсами. Изменение является прозрачным для операционной системы, поскольку виртуальная машина, которая выделена для связи с операционной системой, принимает на обработку информацию, которую операционная система ранее обнаружила по физическим ресурсам.

В некоторых случаях и для некоторых из защищенных физических ресурсов может быть невозможным для операционной системы обнаруживать защищенный физический ресурс без использования гипервизора, а после этого взаимодействовать в дальнейшем с тем же защищенным физическим ресурсом посредством гипервизора прозрачным образом. В этом случае операционная система может быть выполнена с возможностью понимать, что она в дальнейшем может работать посредством гипервизора и тем самым игнорировать любые физические ресурсы, которые в дальнейшем не могут быть виртуализированы прозрачным образом. Например, загрузчик операционной системы может быть выполнен с возможностью информировать другие компоненты операционной системы не использовать конкретные защищенные физические ресурсы.

Ссылаясь снова на фиг.2, способ 200 начинается, когда корневая операционная система запускается (этап 201). "Корневая" операционная система - это операционная система, которая запускает гипервизор, в отличие от операционных систем, которые могут запускаться после того, как гипервизор работает. Фиг.4A иллюстрирует конфигурацию 400A на этой стадии работы, в которой операционная система 401 обменивается данными непосредственно 404 с физическими ресурсами 402 вычислительной системы при отсутствии гипервизора.

Корневая операционная система после этого выполняет несколько этапов, которые проиллюстрированы в левом столбце на фиг.2 под заголовком столбца "КОРНЕВАЯ ОПЕРАЦИОННАЯ СИСТЕМА". Например, корневая операционная система обнаруживает, по меньшей мере, один физический ресурс (этап 211A). Операционные системы в типичном случае имеют инструкции, которые обнаруживают физические ресурсы вычислительной системы, которые приводятся в исполнение вскоре после запуска операционной системы. Ссылаясь на фиг.4A, например, операционная система 401 обнаруживает состояние 403 физических ресурсов. Обнаружение физических ресурсов вычислительной системы может быть сложной задачей.

Чтобы возобновить работу операционной системы в состоянии до запуска гипервизора, операционная система получает состояние физической машины перед запуском гипервизора. В одном варианте осуществления полученное состояние включает в себя состояние всех физических процессоров и физических усовершенствованных программируемых контроллеров прерываний (APIC). Состояние физического процессора включает в себя:

1. Регистры общего назначения.

2. Регистры с плавающей запятой и XMM-регистры.

3. Регистры управления (CR).

4. Регистры отладки (DR)

5. Указатель команд (RIP), указатель стека (RSP) и флаговый регистр (RFLAGS).

6. Состояние сегментов для сегментов CS, DS, SS, ES, FS, GS и TR, в том числе базовые адреса, ограничения и права доступа к сегментам.

7. Регистр таблицы глобальных дескрипторов (GDTR), регистр таблицы дескрипторов прерываний (IDTR) и регистр таблицы локальных дескрипторов (LDTR).

8. Определенные специфические для конкретной модели регистры (MSR), которые включают в себя MSR KernelGsBase, Star, Lstar, Cstar, Sfmask, SysenterCs, SysenterEip, SysenterEsp и ApicBase.

Состояние физического локального APIC может включать в себя:

1. Идентификатор локального APIC

2. Регистр запроса на прерывание (IRR)

3. Регистр обслуживаемых прерываний (ISR)

4. Регистр приоритета задач (TPR)

Помимо этого, некоторые другие аспекты аппаратных средств могут быть предоставлены гипервизору в качестве параметров начальной загрузки, когда гипервизор запущен. Они могут включать в себя:

1. Представленные и потенциальные логические процессоры, включая процессоры, которые могут подключаться "в горячем режиме" без отключения работающей системы.

2. Включена или отключена гиперпотоковость в BIOS.

3. Текущие физические диапазоны RAM - диапазоны системных физических адресов, которые заполнены RAM в то время, когда загружается гипервизор.

4. Физические узлы (включая узлы, которые не имеют связанных с ними ресурсов во время начальной загрузки, но могут заполняться в ходе выполнения).

5. Соотношения доступа к памяти между физическими узлами.

6. Адреса определенных аппаратных признаков, к которым гипервизор должен осуществлять доступ (к примеру, таймер управления питанием).

Операционная система также запускает гипервизор (этап 211B), который должен быть размещен между операционной системой и физическими ресурсами. Например, ссылаясь на фиг.4B, гипервизор 405 размещается между корневой операционной системой 401 и физическими ресурсами 402. Как часть этого запуска, операционная система предоставляет информацию состояния, по меньшей мере, для физических ресурсов, которые должны быть защищены, в гипервизор (этап 212). Эта информация состояния включает в себя всю информацию, которая требуется гипервизору для того, чтобы обнаруживать релевантное состояние защищенных физических ресурсов, которые должны быть ограждены посредством гипервизора. В одном варианте осуществления информация состояния может включать в себя полученное состояние, описанное выше. Самое меньшее, информация состояния включает в себя, по меньшей мере, идентифиционные данные соответствующих физических ресурсов.

Кроме того, как часть запуска, операционная система передает управление гипервизору. Гипервизор затем выполняет этапы, проиллюстрированные в правом столбце на фиг.2 под заголовком "ГИПЕРВИЗОР". В частности, гипервизор затем выполняет задачи, требуемые для того, чтобы виртуализировать физические ресурсы вычислительной системы для корневой операционной системы (этап 221).

Например, гипервизор может создать экземпляр виртуальной машины для корневой операционной системы (этап 231). Ссылаясь на фиг.4B, на этапе 421 представляют экземпляр виртуальной машины для операционной системы 401. После инициализации и приведения в рабочее состояние экземпляр 421 виртуальной машины должен выступать в качестве посредника для физических ресурсов 402 операционной системы 401. Экземпляр 421 виртуальной машины будет принимать запросы на обслуживание от операционной системы 401 для физических ресурсов и будет выполнять соответствующие преобразования и буферизацию запросов в зависимости от информации состояния, доступной для экземпляра 421 виртуальной машины. Экземпляр 421 виртуальной машины после этого предписывает гипервизору 405 запросить соответствующее обслуживание от физических ресурсов 402. Экземпляр 421 виртуальной машины потенциально также будет сообщать результаты запроса в операционную систему 401 с надлежащими преобразованиями и буферизацией при необходимости.

Экземпляр 421 виртуальной машины ведет себя по-разному в зависимости от информации состояния, доступной экземпляру виртуальной машины. Гипервизор принимает на обработку информацию состояния, которую операционная система 401 уже обнаружила касательно физических ресурсов 402. Соответственно, гипервизор 405 инициализирует экземпляр 421 виртуальной машины с помощью, по меньшей мере, некоторой из информации состояния, предоставляемой операционной системой (этап 232). Например, гипервизор 405 может инициализировать виртуальную машину с помощью полученного состояния, предоставленного операционной системой. Таким образом, экземпляр 421 виртуальной машины инициализируется с помощью состояния, согласованным с информацией, представляющей физические ресурсы, обнаруженные операционной системой. Операционная система затем возобновляет работу в окружении виртуальной машины (этап 233 и этап 214). В этом варианте осуществления, как показано на фиг.4B, вместо операционной системы 401, взаимодействующей непосредственно с физическими ресурсами 402, физические ресурсы 402 виртуализируются для операционной системы 401 посредством использования экземпляра 421 виртуальной машины и гипервизора 405. Поскольку информация состояния, используемая виртуальной машиной 421, согласована с информацией состояния, обнаруженной операционной системой 401, это изменение прозрачно для операционной системы 401 в некоторых вариантах осуществления.

В одном варианте осуществления виртуализация обеспечивается посредством абстрагирования виртуального процессора, которое имитирует режим работы физического процессора. Аналогично, она предоставляет виртуальный APIC, который имитирует режим работы физического APIC. Это достигается следующим образом:

1. Состояние виртуального процессора инициализируется полученным состоянием физического процессора.

2. Состояние виртуального APIC инициализируется полученным состоянием физического локального APIC.

3. Гипервизор устанавливает перехваты, чтобы не допустить осуществление доступа операционной системой к привилегированным физическим аппаратным ресурсам. Например, гостевой физический адрес, где локальный APIC ранее размещался до запуска гипервизора, помечается как отсутствующий, так что все обращения к локальному APIC отлавливаются гипервизором.

После того, как гипервизор запущен, гипервизор может запустить дополнительные операционные системы, либо экземпляры одной и той же операционной системы, либо экземпляры различных операционных систем. Например, ссылаясь на фиг.4C, операционные системы 412 и 413 среди потенциально других, как представлено посредством эллипсов 414, дополнительно могут быть запущены. Фиг.3 иллюстрирует блок-схему последовательности операций способа 300 виртуализации физических ресурсов также и для дополнительных операционных систем. Когда дополнительная операционная система должна быть запущена, гипервизор сначала запускает соответствующий экземпляр виртуальной машины (этап 301), посредством которого операционная система затем запускается (этап 302). Гипервизор использует соответствующий экземпляр виртуальной машины, чтобы виртуализировать физический ресурс(ы) соответствующей дополнительной операционной системе (этап 303).

Когда каждая операционная система выполняет обнаружение физических ресурсов при запуске операционной системы, различные запросы информации перехватываются соответствующим экземпляром виртуальной машины. Вместо нахождения фактической информации состояния, ассоциированной с физическими ресурсами, соответствующая виртуальная машина предоставляет виртуализированную информацию состояния операционной системе.

Иногда операционная система, которая запускает гипервизор, может быть в другом типе окружения. Например, возможно, операционная система работает в 32-битовом режиме, тогда как гипервизор, который должен быть запущен, должен работать в 64-битовом режиме, или наоборот. Аналогично, операционная система и гипервизор могут работать в различных режимах страничной организации. Некоторые варианты осуществления настоящего изобретения позволяют операционной системе запускать гипервизор, даже если операционная система и гипервизор работают в различных окружениях.

Фиг.5 иллюстрирует блок-схему последовательности операций способа 500 для входа операционной системы в окружение гипервизора при подготовке к запуску гипервизора. От этапа 201 на фиг.5, на котором операционная система запускается, операционная система сначала делает недействительными все немаскируемые прерывания (этап 501) и маскирует все маскируемые прерывания. Немаскируемые прерывания могут делаться недействительными рядом различных способов. В итоге, когда операционная система переходит в операционную систему гипервизора, необходимо обеспечить то, чтобы прерывания или исключения не возникали до того, как начальное состояние гипервизора загружено. Если прерывание или исключение возникает после выхода из окружения операционной системы, но до входа в окружение гипервизора, процессор, вероятно, не сможет обработать это прерывание или исключение, поскольку отсутствует таблица дескрипторов прерываний или стек. Большинства прерываний можно легко избежать, поскольку они инициируются программным обеспечением. Маскируемым аппаратным прерываниям можно препятствовать в ходе этого процесса посредством очистки бита IF в регистре RFLAGS.

Немаскируемым прерываниям (NM) можно препятствовать посредством одного из двух механизмов:

1. Самодоставка NMI и не исполнение инструкции IRET. Это может быть выполнено посредством временной модификации адреса обработчика NMI в таблице дескрипторов прерываний операционной системы так, чтобы указывать на другой обработчик. Далее NMI может доставляться в текущий процессор. Это предписывает процессору перейти к адресу, предоставляемому в качестве обработчика NMI. В обработчике NMI можно восстановить исходный адрес обработчика NMI и продолжить. Это должно эффективно замаскировать дополнительные NMI, поскольку в x86-архитектуре NMI маскируются после того, как NMI принимается, до тех пор, пока инструкция IRET не будет приведена в исполнение.

2. Выполнение всегда с допустимой таблицей дескрипторов прерываний (IDT) и стеком. Это может быть достигнуто посредством создания временной IDT и стека. Временные таблицы страниц позволяют привязывать временную IDT, обработку NMI и стек с их исходными виртуальными адресами и их соответствующими физическими адресами. Это обеспечивает то, что если NMI поступает, когда процессор работает с временными таблицами страниц, он будет корректно доставлен в обработчик.

После того как прерывания замаскированы или иным образом сделаны недействительными (этап 501), создается временный экземпляр виртуальной машины (этап 502). После этого операционная система инициализирует временный экземпляр виртуальной машины инструкцией, которая вызывает перехват (этап 503). Перехват - это передача управления от операционной системы гипервизору. Когда временный экземпляр виртуальной машины возобновил работу (этап 504), экземпляр виртуальной машины исполняет инструкции, которые вызывают перехват, и тем самым формируется перехват (этап 505). Следовательно, временный экземпляр виртуальной машины начинает выполнение, используя состояние гипервизора (этап 506), тем самым предписывая операционной системе продолжить работу в режиме гипервизора (этап 507). Операционная система затем может запустить гипервизор. В необязательном порядке, временный экземпляр виртуальной машины может быть удален (этап 508), поскольку он требовался только для того, чтобы перевести операционную систему в режим гипервизора, требуемый для запуска гипервизора.

Соответственно, варианты осуществления настоящего изобретения обеспечивают возможность запуска гипервизора даже после того, как уже есть работающая операционная система, представленная в вычислительной системе. В некоторых вариантах осуществления операционная система может запускать гипервизор, даже если операционная система и гипервизор находятся в различных окружениях.

Настоящее изобретение может быть реализовано в других конкретных формах без отступления от своего духа или важнейших характеристик. Описанные варианты осуществления должны рассматриваться во всех аспектах только как иллюстративные, а не ограничительные. Следовательно, объем изобретения определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые подпадают под смысл и диапазон эквивалентности формулы изобретения, должны охватываться определяемым ей объемом.

Класс G06F9/44 устройства для выполнения специальных программ

устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
устройство воспроизведения, способ воспроизведения, устройство записи, способ записи, программа и структура данных -  патент 2525482 (20.08.2014)
расширяемость для основывающейся на web визуализации диаграмм -  патент 2524855 (10.08.2014)
моделирующий коап -  патент 2516703 (20.05.2014)
устройство и способ предоставления информации, терминальное устройство и способ обработки информации, и программа -  патент 2515717 (20.05.2014)
способ и устройство для классификации контента -  патент 2509352 (10.03.2014)
конфигурируемое разделение для параллельных данных -  патент 2503997 (10.01.2014)
кэширование и предоставление данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты -  патент 2501074 (10.12.2013)
протокол коммутации смеси мультимедийных данных для управления мультимедийными данными -  патент 2501070 (10.12.2013)
синхронизация жизненных циклов виртуальной машины и приложения -  патент 2498394 (10.11.2013)
Наверх