Vkernel - Vkernel

vkernel
Оригинальный автор (ы)Мэтью Диллон
Разработчики)DragonFly BSD
изначальный выпускDragonFly BSD § 1.8 (30 января 2007 г.; 13 лет назад (2007-01-30))[1][2]
Репозиторийsys / vkernel.h, разработчик / виртуальный / vkernel /, vm / vm_vmspace.c, …
Написано вC
Операционная системаDragonFly BSD
ТипВиртуализация на уровне ОС, виртуализированное ядро ​​пользовательского пространства
ЛицензияЛицензия BSD
Интернет сайтvkernel (7)

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

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

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

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

Ядро DragonFly поддерживается ядром хоста через новые системные вызовы которые помогают управлять адресным пространством виртуальной памяти (vmspace) — vmspace_create () и другие.,[3][9][13] а также расширения для нескольких существующих системных вызовов, таких как mmapс Madvisemcontrol.[9][14][15]

Смотрите также

Рекомендации

  1. ^ а б «Примечания к выпуску DragonFly 1.8.0». DragonFly BSD. 2007-01-30. Получено 2019-04-08.
  2. ^ а б Саша Вильднер (2007-01-08). "vkernel, vcd, vkd, vke - архитектура виртуального ядра". Руководство по разной информации DragonFly. DragonFly BSD. Сложить резюме.
  3. ^ а б c d Мэтью Диллон (2006-09-02). «Согласованность кэша, кластеризация и виртуализация ядра». ядро @ (Список рассылки). DragonFly BSD.
  4. ^ а б Джереми К. Рид, изд. (2007-02-10). «Ответы Мэтта Диллона о виртуальном ядре DragonFly». Информационный бюллетень BSD .com. Reed Media .net. В архиве из оригинала от 24 февраля 2007 г.
  5. ^ Дэниел Лорч (10.06.2009). «Перенос файловой системы HAMMER на Linux» (PDF). Сложить резюме (PDF). UML запускает ядро ​​Linux как процесс пользовательского пространства, аналогичный виртуальным ядрам DragonFly BSD… позволяет выполнять быстрый цикл перекомпиляции-перезапуска и может быть легко отлажен с помощью стандартного gdb.
  6. ^ Мэтью Диллон (2006). "sys / vkernel.h". Перекрестная ссылка BSD. DragonFly BSD.
  7. ^ а б c d Дэвид Чизнолл (15.06.2007). "DragonFly BSD: UNIX для кластеров?". InformIT. Prentice Hall Professional. Получено 2019-03-06.
  8. ^ Аггелос Экономопулос (29 марта 2010 г.). «Взгляд на виртуальное ядро ​​DragonFly (часть 1)». LWN.net. Получено 2019-04-08.
  9. ^ а б c Аггелос Экономопулос (16 апреля 2010 г.). «Взгляд на виртуальное ядро ​​DragonFly (часть 2)». LWN.net. Получено 2019-04-08.
  10. ^ Коэн Вервлосем (21 апреля 2010 г.). «DragonFly BSD 2.6: на пути к бесплатной кластерной операционной системе». LWN.net. Получено 2019-03-07.
  11. ^ Антти Канти (2007-08-05). "CVS commit: src / sys / rump". источник-изменения @ (Список рассылки). NetBSD. Представляем RUMP - исполняемые мета-программы пользовательского пространства
  12. ^ Джереми Эндрюс (2007-08-06). «Интервью: Мэтью Диллон». KernelTrap. Получено 2019-03-03.
  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.

внешняя ссылка