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