stringtranslate.com

vkernel

Виртуальная архитектура ядра ( vkernel ) — это парадигма виртуализации операционной системы , в которой код ядра может быть скомпилирован для запуска в пользовательском пространстве , например, для облегчения отладки различных компонентов уровня ядра, [3] [4] [5] в дополнение к универсальной виртуализации и разделению системных ресурсов . Она используется DragonFly BSD в своей реализации vkernel с DragonFly 1.7, [2] впервые представленной в сентябре 2006 года (18 лет назад) , [3] [6] и впервые выпущенной в стабильной ветке с DragonFly 1.8 в январе 2007 года (17 лет назад) . [1] [7] [8] [9] ( 2006-09 ) ( 2007-01 )

Долгосрочная цель, помимо упрощения разработки ядра, заключается в том, чтобы упростить поддержку подключенных к Интернету компьютерных кластеров без ущерба для локальной безопасности . [3] [4]

Похожие концепции существуют и в других операционных системах; в Linux похожая концепция виртуализации известна как Linux пользовательского режима ; [10] [7] тогда как в NetBSD с лета 2007 года она стала первоначальным фокусом инфраструктуры ядра rump . [11]

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

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

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

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

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

Ссылки

  1. ^ ab "Заметки о выпуске DragonFly 1.8.0". DragonFly BSD . 2007-01-30 . Получено 2019-04-08 .
  2. ^ ab Sascha Wildner (2007-01-08). "vkernel, vcd, vkd, vke — архитектура виртуального ядра". DragonFly Miscellaneous Information Manual . DragonFly BSD .
    • "vkernel, vcd, vkd, vke - архитектура виртуального ядра". Страницы руководства DragonFly On-Line.
  3. ^ abcd Мэтью Диллон (2006-09-02). "Когерентность кэша, кластеризация и виртуализация ядра". kernel@ (список рассылки). DragonFly BSD .
  4. ^ ab Jeremy C. Reed, ed. (2007-02-10). "Ответы Мэтта Диллона о виртуальном ядре DragonFly". BSD Newsletter .com . Reed Media .net. Архивировано из оригинала 2007-02-24.
  5. ^ Дэниел Лорч (10.06.2009). «Перенос файловой системы HAMMER на Linux» (PDF) . UML запускает ядро ​​Linux как процесс пользовательского пространства, аналогичный виртуальным ядрам DragonFly BSD… позволяет выполнять быстрый цикл перекомпиляции-перезапуска и может легко отлаживаться с помощью стандартного gdb.
    • Дэниел Лорх (10 июня 2009 г.). «Перенос файловой системы HAMMER на Linux» (PDF) . github .
  6. ^ Мэтью Диллон (2006). "sys/vkernel.h". BSD Cross Reference . DragonFly BSD .
  7. ^ abcd Дэвид Чисналл (2007-06-15). "DragonFly BSD: UNIX для кластеров?". InformIT . Prentice Hall Professional . Получено 2019-03-06 .
  8. ^ Аггелос Экономопулос (29.03.2010). "Взгляд на виртуальное ядро ​​DragonFly (часть 1)". LWN.net . Получено 08.04.2019 .
  9. ^ abc Aggelos Economopoulos (2010-04-16). "Взгляд на виртуальное ядро ​​DragonFly (часть 2)". LWN.net . Получено 2019-04-08 .
  10. ^ Koen Vervloesem (2010-04-21). "DragonFly BSD 2.6: на пути к свободной кластерной операционной системе". LWN.net . Получено 2019-03-07 .
  11. ^ Антти Канти (2007-08-05). "CVS commit: src/sys/rump". source-changes@ (список рассылки). NetBSD . Знакомство с RUMPs — исполняемыми метапрограммами пользовательского пространства
  12. ^ Джереми Эндрюс (2007-08-06). "Интервью: Мэтью Диллон". KernelTrap . Архивировано из оригинала 2012-02-07 . Получено 2019-03-03 .
  13. ^ Мэтью Диллон (2006). "vm/vm_vmspace.c § sys_vmspace_create()". Перекрестная ссылка BSD . DragonFly BSD .
  14. ^ "madvise, posix_madvise, mcontrol — дают советы по использованию памяти". Руководство по системным вызовам DragonFly . DragonFly BSD .
    • "madvise, posix_madvise, mcontrol - дают советы по использованию памяти". Страницы руководства DragonFly On-Line.
  15. ^ "kern/syscalls.master". Перекрестная ссылка BSD . DragonFly BSD .

Внешние ссылки