Vkernel

vkernel
Originalautor (en) Matthew Dillon
Entwickler (en) Libelle BSD
Erstveröffentlichung Dragonfly BSD § 1.8 (30. Januar 2007; vor 15 Jahren)[1][2]
Repository sys/vkernel.h, dev/virtual/vkernel/, vm/vm_vmspace.c,…
Geschrieben in C
Betriebssystem Libelle BSD
Typ OS-Level-Virtualisierung, virtualisierter Benutzerspace -Kernel
Lizenz BSD -Lizenz
Webseite vkernel (7)

A Virtuelle Kernelarchitektur (vkernel) ist ein Betriebssystem Virtualisierung Paradigma, bei dem Kernelcode kompiliert werden kann, um in der Ausführung zu laufen BenutzerraumZum Beispiel, um das Debuggen verschiedener Komponenten auf Kernelebene zu erleichtern,[3][4][5] Zusätzlich zur allgemeinen Virtualisierung und Kompartimentierung von Systemressourcen.Es wird von verwendet von Libelle BSD in seiner VKERNEL -Implementierung seit Dragonfly 1.7,[2] Nachdem er erstmals im September 2006 enthüllt wurde (vor 15 Jahren),[3][6] und erstmals in der stabilen Niederlassung mit Dragonfly 1.8 im Januar 2007 veröffentlicht (vor 15 Jahren).[1][7][8][9] Das langfristige Ziel ist es, die Entwicklung von Kernel zusätzlich zu erleichtern Computercluster ohne lokal zu kompromittieren Sicherheit.[3][4] Ähnliche Konzepte existieren auch in anderen Betriebssystemen. Unter Linux ist ein ähnliches Virtualisierungskonzept als bekannt als User-Mode Linux;[10][7] wohingegen in Netbsd Seit dem Sommer 2007 war es der anfängliche Schwerpunkt der Rump -Kernel Infrastruktur.[11]

Das Virtueller Kernel Konzept ist fast das genaue Gegenteil der Unikernel Konzept - mit vkernel, Kernel -Komponenten können im Userspace ausgeführt werden, um die Kernelentwicklung und -Debuggierung zu erleichtern, unterstützt von einem regulären Kernel des Betriebssystems. während mit a Unikernel, Userspace-Level-Komponenten können direkt im Kernel-Bereich für zusätzliche Leistung ausgeführt werden, unterstützt von Baremetal-Hardware oder einem Hardware-Virtualisierungsstapel. Sowohl Vkernels als auch Unikernels können jedoch auch für ähnliche Aufgaben verwendet werden, um Software in eine virtualisierte Umgebung mit geringem Aufwand zu selbst in Einklang zu bringen. In der Tat NetBsd's Rump -KernelSie hat ursprünglich einen Schwerpunkt auf dem Ausführen von Kernelkomponenten im UserSpace, hat sich seitdem auch in den Unikernel -Raum verschoben (nach dem Nachfolger Anykernel Spitzname für die Unterstützung beider Paradigmen).

Das Vkernel -Konzept unterscheidet sich von Freebsd Gefängnis In diesem Gefängnis ist nur für die Ressourcenisolation gedacht und kann nicht zur Entwicklung und Testen neuer Kernelfunktionen im Userland verwendet werden, da jedes Gefängnis denselben Kernel teilt.[7] (Dragonfly hat jedoch immer noch Freebsd Gefängnis Unterstützung auch.[7]))

In Dragonfly kann der Vkernel als erstklassig angesehen werden Rechnerarchitektur, vergleichbar mit i386 oder AMD64 und, nach Matthew Dillon Circa 2007 kann als Ausgangspunkt für die Portierung von Dragonfly BSD auf neue Architekturen verwendet werden.[12]

Vkernel von Dragonfly wird vom Gastkernel durch neue unterstützt Systemaufrufe Dadurch können Sie den virtuellen Speicherplatz der virtuellen Speicheradresse verwalten (vmspace) - vmspace_create () et al.,[3][9][13] sowie Erweiterungen zu mehreren vorhandenen Systemaufrufen wie wie MMAP's Madvisemcontrol.[9][14][15]

Siehe auch

Verweise

  1. ^ a b "Versionshinweise für Dragonfly 1.8.0". Libelle BSD. 2007-01-30. Abgerufen 2019-04-08.
  2. ^ a b Sascha Wildner (2007-01-08). "Vkernel, VCD, VKD, VKE - Virtuelle Kernelarchitektur". Dragonfly Verschiedenes Informationshandbuch. Libelle BSD.
  3. ^ a b c d Matthew Dillon (2006-09-02). "Cache -Kohärenz, Clustering und Kernelvirtualisierung". Kernel@ (Mailingliste). Libelle BSD.
  4. ^ a b Jeremy C. Reed, hrsg. (2007-02-10). "Antworten von Matt Dillon über Dragonflys virtuelles Kernel". BSD Newsletter .com. Reed Media .net. Archiviert vom Original am 2007-02-24.
  5. ^ Daniel Lorch (2009-06-10). "Portion des Hammer -Dateisystems auf Linux" (PDF). UML führt den Linux-Kernel als Benutzerspace-Prozess aus, analog zu den virtuellen Kerneln von Dragonfly BSD… Ermöglichen Sie einen schnellen Neukompilieren-Restart-Zyklus und können leicht mit Standard-GDB debuggen.
  6. ^ Matthew Dillon (2006). "sys/vkernel.h". BSD Cross Referenz. Libelle BSD.
  7. ^ a b c d David Chisnall (2007-06-15). "Dragonfly BSD: Unix für Cluster?". Informit. Prentice Hall Professional. Abgerufen 2019-03-06.
  8. ^ Aggelos Economopoulos (2010-03-29). "Ein Blick auf den virtuellen Kernel der Libelle (Teil 1)". Lwn.net. Abgerufen 2019-04-08.
  9. ^ a b c Aggelos Economopoulos (2010-04-16). "Ein Blick auf den virtuellen Kernel der Libelle (Teil 2)". Lwn.net. Abgerufen 2019-04-08.
  10. ^ Koen Vervloesem (2010-04-21). "Dragonfly BSD 2.6: Auf dem Weg zu einem kostenlosen Clustering -Betriebssystem". Lwn.net. Abgerufen 2019-03-07.
  11. ^ Antti Kantee (2007-08-05). "CVS Commit: SRC/Sys/Rump". Quellwechsel@ (Mailingliste). Netbsd. Führen Sie Rumps - Runnable UserSpace -Metaprogramme ein
  12. ^ Jeremy Andrews (2007-08-06). "Interview: Matthew Dillon". Kerneltrap. Archiviert von das Original Am 2012-02-07. Abgerufen 2019-03-03.
  13. ^ Matthew Dillon (2006). "vm/vm_vmspace.c § sys_vmspace_create ()". BSD Cross Referenz. Libelle BSD.
  14. ^ "Madvise, posix_madvise, mcontrol - Ratschläge zur Verwendung des Speichers geben". Dragonfly System Call Manual. Libelle BSD.
  15. ^ "Kern/syscalls.master". BSD Cross Referenz. Libelle BSD.

Externe Links