Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Архитектура виртуального ядра ( VKernel ) представляет собой операционную систему виртуализации парадигмы , где код ядра может быть собран для запуска в пользовательском пространстве , например, для облегчения отладки различных компонентов уровня ядра, [3] [4] [5] , в дополнении к универсальной виртуализации и разделению системных ресурсов . Он используется DragonFly BSD в своей реализации vkernel, начиная с DragonFly 1.7, [2] впервые был представлен в сентябре 2006 года (14 лет назад) , [3] [6] ( 2006-09 )и впервые выпущен в стабильной ветке с DragonFly 1.8 в январе 2007 года (14 лет назад) . [1] [7] [8] [9] Долгосрочная цель, помимо упрощения разработки ядра, состоит в том, чтобы упростить поддержку подключенных к Интернету компьютерных кластеров без ущерба для локальной безопасности . [3] [4] Подобные концепции существуют и в других операционных системах; в Linux аналогичная концепция виртуализации известна как Linux пользовательского режима ; [10] [7] в то время как в NetBSD с лета 2007 года он был в центре внимания основной инфраструктуры ядра . [11] ( 2007-01 )

Виртуальное ядро понятие почти точная противоположность unikernel концепции - с VKernel , компоненты ядер получают для работы в пользовательском пространстве для разработки ядра и простоты отладки, поддерживается регулярным ядром операционной системы; тогда как с unikernel компоненты уровня пользовательского пространства запускаются непосредственно в пространстве ядра для дополнительной производительности, поддерживаемой аппаратным обеспечением baremetal или стеком аппаратной виртуализации. Однако и vkernel, и unikernels могут использоваться для аналогичных задач, например, для автономного программного обеспечения в виртуализированной среде с низкими накладными расходами. Фактически ядро NetBSD, изначально ориентированный на запуск компонентов ядра в пользовательском пространстве, с тех пор также переместился в пространство unikernel ( следуя прозвищу anykernel для поддержки обеих парадигм).

Концепция vkernel отличается от тюрьмы FreeBSD тем, что она предназначена только для изоляции ресурсов и не может использоваться для разработки и тестирования новых функций ядра в пользовательской среде, поскольку каждая тюрьма использует одно и то же ядро. [7] (Тем не менее, DragonFly по-прежнему поддерживает джейл FreeBSD . [7] )

В DragonFly vkernel можно рассматривать как первоклассную компьютерную архитектуру , сравнимую с i386 или amd64, и, согласно Мэтью Диллону около 2007 года, можно использовать в качестве отправной точки для переноса DragonFly BSD на новые архитектуры. [12]

Виртуальное ядро ​​DragonFly поддерживается ядром хоста посредством новых системных вызовов, которые помогают управлять адресным пространством виртуальной памяти ( vmspace ) - vmspace_create()и др., [3] [9] [13], а также расширениями некоторых существующих системных вызовов, таких как mmap's madvise- mcontrol. [9] [14] [15]

См. Также [ править ]

  • пользовательский режим Linux
  • крупа

Ссылки [ править ]

  1. ^ a b «Примечания к выпуску DragonFly 1.8.0» . DragonFly BSD . 2007-01-30 . Проверено 8 апреля 2019 .
  2. ^ a b Саша Вильднер (2007-01-08). «vkernel, vcd, vkd, vke - архитектура виртуального ядра» . Руководство по разной информации DragonFly . DragonFly BSD . Выложите резюме .
  3. ^ a b c d Мэтью Диллон (02.09.2006). «Согласованность кэша, кластеризация и виртуализация ядра» . kernel @ (Список рассылки). DragonFly BSD .
  4. ^ а б Джереми К. Рид, изд. (2007-02-10). «Ответы Мэтта Диллона о виртуальном ядре DragonFly» . Информационный бюллетень BSD .com . Reed Media .net. Архивировано 24 февраля 2007 года.
  5. ^ Дэниел Лорч (2009-06-10). «Перенос файловой системы HAMMER на Linux» (PDF) . Текстовое резюме (PDF) . UML запускает ядро ​​Linux как процесс пользовательского пространства, аналогичный виртуальным ядрам DragonFly BSD ... позволяет выполнить быстрый цикл перекомпиляции-перезапуска и может быть легко отлажен с помощью стандартного gdb.
  6. ^ Мэттью Диллон (2006). "sys / vkernel.h" . Перекрестная ссылка BSD . DragonFly BSD .
  7. ^ а б в г Дэвид Чиснолл (2007-06-15). "DragonFly BSD: UNIX для кластеров?" . InformIT . Prentice Hall Professional . Проверено 6 марта 2019 .
  8. ^ Aggelos Economopoulos (2010-03-29). «Взгляд на виртуальное ядро ​​DragonFly (часть 1)» . LWN.net . Проверено 8 апреля 2019 .
  9. ^ a b c Аггелос Экономопулос (16 апреля 2010 г.). «Взгляд на виртуальное ядро ​​DragonFly (часть 2)» . LWN.net . Проверено 8 апреля 2019 .
  10. ^ Koen Vervloesem (2010-04-21). «DragonFly BSD 2.6: к свободной кластерной операционной системе» . LWN.net . Проверено 7 марта 2019 .
  11. ^ Антти Канти (2007-08-05). "CVS commit: src / sys / rump" . source-changes @ (Список рассылки). NetBSD . Представляем RUMP - исполняемые мета-программы пользовательского пространства
  12. ^ Джереми Эндрюс (2007-08-06). «Интервью: Мэтью Диллон» . KernelTrap . Проверено 3 марта 2019 .
  13. ^ Мэттью Диллон (2006). "vm / vm_vmspace.c § sys_vmspace_create ()" . Перекрестная ссылка BSD . DragonFly BSD .
  14. ^ "madvise, posix_madvise, mcontrol - дать совет по использованию памяти" . Руководство по системным вызовам DragonFly . DragonFly BSD . Выложите резюме .
  15. ^ "kern / syscalls.master" . Перекрестная ссылка BSD . DragonFly BSD .

Внешние ссылки [ править ]

  • vkernel (7) справочная страница
  • Виртуальные ядра DragonFly