| 原作者 | マシュー・ディロン |
|---|---|
| 開発者 | ドラゴンフライBSD |
| 初回リリース | DragonFly BSD § 1.8 (2007年1月30日) [1] [2] |
| リポジトリ | sys/vkernel.h、dev/virtual/vkernel/、vm/vm_vmspace.c、… |
| 書かれた | C |
| オペレーティング·システム | ドラゴンフライBSD |
| タイプ | OSレベルの仮想化、仮想化されたユーザー空間カーネル |
| ライセンス | BSDライセンス |
| Webサイト | vカーネル(7) |
仮想カーネルアーキテクチャ(vkernel)は、カーネルコードをユーザー空間で実行するようにコンパイルできるオペレーティングシステムの 仮想化パラダイムであり、たとえば、さまざまなカーネルレベルのコンポーネントのデバッグを容易にしたり、[3] [4] [5]汎用的な仮想化とシステムリソースの区分化を行ったりすることができます。これは、DragonFly 1.7以来のDragonFly BSDのvkernel実装で使用されており、[2] 2006年9月に初めて公開され、[3] [6] 2007年1月にDragonFly 1.8で安定ブランチに初めてリリースされました。[1] [7] [8] [9]
長期的な目標は、カーネル開発を容易にすることに加えて、ローカルセキュリティを損なうことなく、インターネットに接続されたコンピュータクラスタのサポートを容易にすることです。[3] [4]
同様の概念は他のオペレーティングシステムにも存在します。Linuxでは、同様の仮想化概念はユーザーモードLinuxとして知られています。[10] [7]一方、NetBSDでは2007年夏以来、これが残りのカーネルインフラストラクチャの初期の焦点となってきました。[11]
仮想カーネルの概念は、ユニカーネルの概念とほぼ正反対です。vkernelでは、カーネル コンポーネントは、通常のオペレーティング システム カーネルによってサポートされ、カーネルの開発とデバッグを容易にするためにユーザー空間で実行されます。一方、 ユニカーネル では、ユーザー空間レベルのコンポーネントは、ベアメタル ハードウェアまたはハードウェア仮想化スタックによってサポートされ、パフォーマンスを高めるためにカーネル空間で直接実行されます。ただし、 vkernel と unikernel はどちらも、たとえば、オーバーヘッドの少ない仮想化環境にソフトウェアを自己完結させるなど、同様のタスクに使用することもできます。実際、NetBSD のrump kernel は、もともとカーネル コンポーネントをユーザー空間で実行することに重点を置いていましたが、その後、ユニカーネル空間にも移行しました (両方のパラダイムをサポートするためにanykernel という名前を採用しています)。
vkernelのコンセプトはFreeBSD jailとは異なり、jailはリソースの分離のみを目的としており、各jailが同じカーネルを共有しているため、ユーザーランドで新しいカーネル機能を開発およびテストするために使用することはできません。[7] (ただし、DragonFlyはFreeBSD jailもサポートしています。[7] )
DragonFlyでは、vkernelはi386やamd64に匹敵する第一級のコンピュータアーキテクチャと考えることができ、 2007年頃のMatthew Dillonによれば、DragonFly BSDを新しいアーキテクチャに移植するための出発点として使用できるとのことです。[12]
DragonFlyのvkernelは、仮想メモリアドレス空間( vmspace)の管理を支援する新しいシステムコール( [3] [9] [13])や、などの既存のシステムコールの拡張([9] [14] [15])を通じてホストカーネルによってサポートされています。vmspace_create()mmapmadvisemcontrol
参照
参考文献
- ^ ab 「DragonFly 1.8.0 リリースノート」。DragonFly BSD。2007年 1 月 30 日。2019 年 4 月 8 日閲覧。
- ^ ab Sascha Wildner (2007-01-08). 「vkernel、vcd、vkd、vke — 仮想カーネルアーキテクチャ」. DragonFly その他情報マニュアル. DragonFly BSD .
- 「vkernel、vcd、vkd、vke - 仮想カーネル アーキテクチャ」。DragonFly オンライン マニュアル ページ。
- ^ abcd Matthew Dillon (2006-09-02). 「キャッシュの一貫性、クラスタリング、およびカーネルの仮想化」. kernel@ (メーリング リスト). DragonFly BSD .
- ^ ab Jeremy C. Reed、編 (2007-02-10)。「DragonFly の仮想カーネルに関する Matt Dillon の回答」BSD Newsletter .com。Reed Media .net。2007-02-24 のオリジナルからアーカイブ。
- ^ Daniel Lorch (2009-06-10). 「HAMMER ファイル システムの Linux への移植」(PDF)。UML
は、DragonFly BSD の仮想カーネルと同様に、Linux カーネルをユーザー空間プロセスとして実行します。これにより、迅速な再コンパイルと再起動のサイクルが可能になり、標準の gdb を使用して簡単にデバッグできます。
- Daniel Lorch (2009 年 6 月 10 日)。「HAMMER ファイル システムの Linux への移植」( PDF) 。github。
- ^ Matthew Dillon (2006). 「sys/vkernel.h」. BSD 相互参照. DragonFly BSD .
- ^ abcd David Chisnall (2007-06-15). 「DragonFly BSD: クラスター向け UNIX?」InformIT . Prentice Hall Professional . 2019-03-06閲覧。
- ^ Aggelos Economopoulos (2010-03-29). 「DragonFly 仮想カーネルの概要 (パート 1)」. LWN.net . 2019-04-08閲覧。
- ^ abc Aggelos Economopoulos (2010-04-16). 「DragonFly 仮想カーネルの概要 (パート 2)」. LWN.net . 2019-04-08閲覧。
- ^ Koen Vervloesem (2010-04-21). 「DragonFly BSD 2.6: フリーなクラスタリングオペレーティングシステムに向けて」LWN.net . 2019-03-07閲覧。
- ^ Antti Kantee (2007-08-05). 「CVS コミット: src/sys/rump」. source-changes@ (メーリング リスト). NetBSD .
RUMP の導入 - 実行可能なユーザー空間メタプログラム
- ^ Jeremy Andrews (2007-08-06). 「インタビュー: Matthew Dillon」KernelTrap . 2012-02-07時点のオリジナルよりアーカイブ。2019-03-03閲覧。
- ^ Matthew Dillon (2006). 「vm/vm_vmspace.c § sys_vmspace_create()」. BSD 相互参照. DragonFly BSD .
- ^ 「madvise、posix_madvise、mcontrol — メモリの使用に関するアドバイスを提供します」。DragonFlyシステム コール マニュアル。DragonFly BSD。
- 「madvise、posix_madvise、mcontrol - メモリの使用に関するアドバイスを提供します」。DragonFly オンライン マニュアル ページ。
- ^ "kern/syscalls.master". BSD 相互参照. DragonFly BSD .
外部リンク
- vkernel(7) マニュアルページ
- DragonFly仮想カーネル
