カーネル カーネル全体の設計方針

Weblio 辞書 > 同じ種類の言葉 > 言葉 > 場所 > 部分 > カーネルの解説 > カーネル全体の設計方針 

カーネル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/23 03:13 UTC 版)

カーネル全体の設計方針

もちろん、上述したタスク群や機能群の提供方法は設計や実装の面でさまざまである。

機構と方針の分離」の原則は、マイクロカーネルとモノリシックカーネルの哲学の間でかなり大きな相違がある[27][28]。ここで、「機構」はさまざまな「方針」の実装を可能とするものであり、「方針」は特定の「操作のモード」である。たとえば「機構」面では、ユーザーがログインしようとしたとき認証サーバを呼び出してアクセスを認めるべきか否かを決定するということが考えられる。一方「方針」面では、認証サーバがパスワードを要求し、データベース内の暗号化されたパスワードと照合するかもしれない。機構が汎用的であれば、機構と方針が同一モジュールに統合されている場合よりも方針の変更(たとえば、パスワードの代わりにセキュリティトークンを使うなど)がより容易になる。

最小のマイクロカーネルでは非常に基本的な方針のみが含まれ[28]、その機構はカーネル上で動作させるもの(OSの残りの部分やアプリケーション群)自身がどのような方針(メモリ管理、高度なプロセススケジューリング、ファイルシステム管理など)を採用するか決定することを可能にする[1][24]。一方モノリシックカーネルは方針の大部分をカーネル内に含む傾向があり、結果としてその上の部分の自由度は制限される。

Per Brinch Hansen は機構と方針の分離のための主張を展開した[1][24]。すなわち、この分離が不適切であることが既存のOSで本質的技術革新が見られないことの主要因だとし[1]、コンピュータアーキテクチャにおける共通課題だとした[29][30][31]。モノリシック設計は、従来の商用システムで一般的な保護技法である「カーネルモード」と「ユーザーモード」に分離するアーキテクチャ(いわゆるリングプロテクション)から生まれた[32]。そのアーキテクチャでは、保護(プロテクション)を必要とするモジュールを可能な限りカーネルに含めようとする[32]。このようなモノリシック設計と特権モードの関係が機構と方針の分離における重要な問題として再注目されている[1]。実際「特権モード」のアーキテクチャ技法は保護機構とセキュリティ方針を融合させる傾向があるが、これとは大きく異なるアーキテクチャ技法であるケイパビリティベースドアドレッシング英語版ではその2つを明確に区別し、自然にマイクロカーネル設計が可能となる[1]

モノリシックカーネルはカーネルの全コードを同じアドレス空間(カーネル空間)で実行するが、マイクロカーネルでは多くのサービスをユーザー空間で実行しようとし、コードベースの保守性とモジュール性を向上させようとしている[2]。多くのカーネルは明確にどちらかに分類できるわけではなく、その中間の実装ともいうべきハイブリッドカーネルになっている。さらに特殊な設計としてナノカーネルやエクソカーネルが研究されているが、広く使われるまでには至っていない。エクソカーネルの例としてXenハイパーバイザがある。

モノリシックカーネル

モノリシックカーネルの概念図

モノリシックカーネルでは、全OSサービスはひとつのカーネル空間内に存在し、カーネルスレッド上で実行される。この手法は強力なハードウェアアクセスを提供する。UNIXの開発者ケン・トンプソンは、モノリシックカーネルの方がマイクロカーネルより実装が容易だとしている[33]。主な欠点はシステム構成要素間の依存関係の複雑さである。たとえば、デバイスドライバにバグがあっただけでシステム全体がクラッシュするし、大きなカーネルは保守が非常に困難である。

Unix系OSが伝統的に採用してきたモノリシックカーネルは、OS中核機能とデバイスドライバを全て含んでいた。デバイスドライバ、スケジューラ、メモリ管理、ファイルシステム、ネットワークのプロトコルスタックなど、多くのプログラムが必要とするがライブラリとしてユーザー空間で実行することができない機能は、全てカーネル空間に置かれた。それら全サービスへのアクセスを可能にするため、数多くのシステムコールがアプリケーションに対して提供されている。

必要とされないサブシステムを伴って最初からロードされるモノリシックカーネルは、より汎用的な意味ではあるが、特定ハードウェア向けに設計されたものよりもチューニングが可能である。LinuxFreeBSDなどの現代のモノリシックカーネルはUnix系OSであり、実行時にモジュールをロードする機能を備えており、必要に応じて容易に機能を拡張でき、同時にカーネル空間で動作するコード量をなるべく最小に抑えることができる。モノリシックカーネルには次のような長所がある。

  • 関係するソフトウェアが少ないので、より高速である。
  • カーネルは1つのソフトウェアであるため、ソースコード量もコンパイル後の実行ファイルの大きさも小さくなる。
  • コードが少ないのでバグも少なく、結果としてセキュリティ問題も比較的少ない。

モノリシックカーネルはシステムコールの延長で動作する部分がほとんどである。システムコールは一般にテーブル構造で保持されるインタフェースであり、ディスク操作などのカーネル内サブシステムへのアクセスを行う。プログラム内でライブラリルーチンを呼び出すと、その中で要求をチェックしてコピーし、システムコールにわたす。したがって、それほど重い呼び出しではない。Linuxカーネルはモノリシックだがかなり小さくできる。これは、ローダブル・カーネル・モジュール機能と、カスタマイズが容易なためである。実際、フロッピーディスク1枚にカーネルだけでなく多数のユーティリティを搭載し、それだけで完動するOSとすることもできる(最も有名な例として muLinux英語版 がある)。このカーネルを小型化できる能力があるため、Linuxは組み込みシステムで急速に採用が増えている(組み込みLinux)。

このようなカーネルはOSの中核機能とデバイスドライバからなり、実行時にモジュールをロードする機能を備えている。それらによって、下層のハードウェアについての豊富で強力な抽象化を提供する。それらは単純なハードウェア抽象化の小さなセットを提供し、サーバと呼ばれるアプリケーションを使ってさらなる機能を提供する。この特定の手法でハードウェア上の高度な仮想インタフェースを定義し、プロセス管理、並行性管理、メモリ管理といったスーパーバイザモードで動作するいくつかのモジュールでOSサービスを実装し、システムコールでそれらを呼び出せるようにしている。しかし、このような設計には以下のような短所や制約がある。

  • カーネル内のコーディングは難しい。標準Cライブラリが使えず、デバッグにはGNUデバッガなどのソースレベルのデバッガを必要とするためである。そのため、開発中はコンピュータを頻繁にリブートする必要がある。これは単に開発者だけの問題ではない。デバッグが難しいということはバグをつぶすのが難しいということであり、カーネル内にバグが残存しやすいということでもある。
  • カーネル内のバグは重大な副作用を引き起こす。カーネル内の関数はどれも特権状態で動作するので、全く無関係なデータ構造を(カーネル空間内でもユーザー空間内でも)容易に壊すことができる。モジュール群は同一アドレス空間で動作するので、バグによってシステム全体をダウンさせることがある。
  • カーネルは肥大化しやすく、肥大化すると保守が困難になる。
  • コードの結合度が強く、モジュール化して分離したとしても、その分離を正しく行うのは困難である。
  • 移植性が低い。動作させるアーキテクチャごとに書き直しが必須となる。

マイクロカーネル

マイクロカーネル方式では、カーネルはサーバの実行に必要な最小限の機能をカーネルに持たせ、それ以外のカーネル機能(デバイスドライバ、GUIなど)はサーバという別個のプログラムで実装する。

マイクロカーネルとは、伝統的な「カーネル」から「サーバ」群に機能を移転するOS設計方針を意味し、最小化したカーネルだけをカーネル空間に残し、サーバ群を可能なかぎりユーザ空間で動作させる。マイクロカーネルでは、ハードウェアの単純な抽象化と最小のプリミティブ(システムコール)で最小のOSサービスを実装する(メモリ管理マルチタスクプロセス間通信など)。他の全てのサービス(ネットワークなど)は「サーバ」としてユーザ空間に実装される。マイクロカーネルはモノリシックカーネルよりも保守が容易だが、システムコール回数やコンテキストスイッチ回数が増大するために性能が低下する傾向がある。

どうしても特権モードでなければならない部分だけがカーネル空間に置かれる。それは、IPC(プロセス間通信)、基本スケジューラ(スケジューリング・プリミティブ)、基本メモリハンドラ、基本I/Oプリミティブなどである。スケジューラ本体やメモリ管理、ファイルシステム、ネットワークスタックといった大部分はユーザ空間で動作する。マイクロカーネルは、システム機能全体がプロセッサのシステムモードで動作する1つのプログラムになっているモノリシックカーネルの設計方針への反発から生まれた。マイクロカーネルを採用したOSとしては、QNXGNU Hurd がある。マイクロカーネルは基本的に次のような長所を持つ。

  • 保守は相対的に容易である。
  • パッチの評価が容易である。
  • すばやく開発でき、多くの場合カーネルを再起動しなくとも評価可能。
  • サーバで障害が発生しても、運用上のミラーで代行可能なことが多く、バグへの耐性が高い。

多くのマイクロカーネルは、何らかのメッセージパッシングシステムを採用しており、サーバからサーバへの要求の転送を行う。一般にマイクロカーネルがそのためのポートを用意している。たとえばメモリ追加要求を送ると、マイクロカーネルのあるポートが開き、そこを通して要求が転送される。マイクロカーネルにメッセージが受信されると、その後はシステムコールのように処理される。これによってシステムアーキテクチャのモジュール性が高まり、システムがより整理され、デバッグや動的変更が容易になり、ユーザーのニーズに従ったカスタマイズが可能となる。AIXBeOSHurdmacOSMINIXQNX といったOSは多かれ少なかれマイクロカーネルの設計方針を取り入れている。マイクロカーネル自体は非常に小さいが、システム機能全体を構成するコードを全て集めると、モノリシックカーネルよりも大きいことが多い。モノリシックカーネル支持派はまた、マイクロカーネル方式の2層構造によりOSの大部分がハードウェアと直接相互作用できなくなるため、決して小さくないコストが上乗せされ、システムの効率を低下させると主張している。マイクロカーネルは通常、アドレス空間定義部、プロセス間通信 (IPC)、プロセス管理といった最小限のサービスだけを提供する。ハードウェア処理といった他の機能はマイクロカーネルで直接扱うことはない。マイクロカーネル支持派は、モノリシックカーネルでのエラー(バグ)がシステム全体のクラッシュを引き起こすという欠点を指摘する。しかしマイクロカーネルでは、サーバがクラッシュしてもそのサービスを再起動することでシステム全体のクラッシュを防ぐ可能性がある。しかし、現にLinuxなどのモノリシックカーネルは年単位で安定動作している実績があり、このようなマイクロカーネルの利点がどれほど重要かは疑わしい。

ネットワーキングなどのカーネルサービスは「サーバ」と呼ばれるユーザ空間のプログラムとして実装される。サーバを停止・再起動するだけでOSを更新可能である。たとえばネットワークをサポートしていないマシンで、ネットワークサーバは起動する必要がない。サーバ群やカーネルの間でデータをやり取りする作業があるため、モノリシックカーネルにはないオーバヘッドが生じ、効率が低下する。

マイクロカーネルの短所はたとえば次のようなものがある。

  • 全体としてメモリをより多く使用する。
  • インタフェースを持つソフトウェアの数が多く、性能低下の可能性がある。
  • サーバ群とカーネル間のメッセージングにバグがあると、検出が困難である。
  • プロセス管理は一般に非常に複雑になりうる。
  • 使用状況によってはマイクロカーネルは不利になる。単一用途のシステムでは動作するプロセス数が小さいため、マイクロカーネルがよく機能し、プロセス管理の複雑さもあまり問題にならない。

マイクロカーネル方式では、OSの他の部分を通常のアプリケーションのように高水準言語で書くことができ、同一のカーネル上で異なるOS(のインタフェース)を使用することができる[24]。また動的にOSを切り換えたり、複数のOSを同時に使用することもできる[24]

モノリシックカーネルとマイクロカーネル

カーネルが巨大化するにつれて、さまざまな問題が明らかになってきた。最も明らかな問題はカーネルの大きさ(メモリ使用量)の増大である。これは仮想記憶をカーネル空間にも適用することである程度まで和らげられるが、全てのコンピュータ・アーキテクチャが仮想記憶をサポートできるわけではない[注釈 4]。カーネルのサイズを削減するため、不要なコードを削除するなどの改善が必要となるが、これはカーネルの各モジュール間の明らかにされていない依存関係があるために非常に困難である[注釈 5]

マイクロカーネルと比較したときのモノリシックカーネルのさまざまな欠点から、1990年代の初期までにモノリシックカーネルは時代遅れと考えられるに至った。結果としてLinuxがモノリシックカーネルを採用したことでリーナス・トーバルズアンドリュー・タネンバウムの間で有名な論争が発生した(アンドリュー・タネンバウムとリーナス・トーバルズの議論[34]。この議論では、両者の言い分にそれぞれメリットがある。

モノリシックカーネルは設計が容易で、マイクロカーネルよりも迅速に成長することが期待できる。しかし、モノリシックカーネル内のバグは一般にシステムクラッシュを引き起こすのに対して、マイクロカーネルでは一部のサーバに問題が限定される。モノリシックカーネルの支持者は、不正なコードがカーネルになければマイクロカーネルの利点はほとんどないと論じる。どちらの側にも成功例がある。マイクロカーネルはロボットや医療用システムで使われており、各コンポーネントが別々の保護されたメモリ空間で動作する。これは最新のモジュールロード方式であってもモノリシックカーネルには不可能であろう。モノリシックカーネルは共有型カーネルメモリを使用するよう最適化されていて、マイクロカーネルのような低速なメッセージわたしとは異なる。

性能

モノリシックカーネルはコード全体を同じアドレス空間(カーネル空間)に置くよう設計されており、一部の開発者はシステム性能向上に必須の特徴だとしている[35]。一部の開発者はうまく書けばモノリシックカーネルは極めて高効率になるとしている[35]

1980年代から1990年代初めにかけてのマイクロカーネルの性能は低かった[36][37]。そういった初期のマイクロカーネルの性能を実測する研究が行われたが、性能が低い原因を深く分析することはなかった[36]。そういったデータが一人歩きし、カーネルモードとユーザモードの切り替え回数が増え[36]プロセス間通信の回数が増え[36]コンテキストスイッチの回数が増えたためだ[36] とみなされた。

そして1995年、マイクロカーネルの性能が低い原因として以下のことが推測されている[36]

  1. マイクロカーネル「方式」全体が実際には非効率
  2. マイクロカーネルで実装された「コンセプト」が非効率
  3. それらコンセプトの特定の「実装」が非効率

この時点でマイクロカーネルを効率化する方法はまだ研究途上であり、正しい技法の構築が求められていた[36]

一方でモノリシックカーネルの設計の基盤となっている階層型プロテクション[32] でも、プロテクションの階層間でのやりとりには値(メッセージ)のコピーが必要であり、そのやりとりが増えるほど性能が低下することがわかっていた[38]

近年、L4[39]K42英語版といった新世代のマイクロカーネルが登場し、上述の性能問題をある程度解決している[要出典]

ハイブリッドカーネル

モノリシックカーネルの高速性・単純性とマイクロカーネルのモジュール性・拡張性を組み合わせたのがハイブリッドカーネルである。

Windows NT系などの商用OSでよく見られる。ApplemacOS も、カーネギーメロン大学MachFreeBSDモノリシックカーネルのコードをベースとしたXNUというハイブリッドカーネルを採用している。マイクロカーネルの性能オーバヘッドを削減するため一部のサービス(通信プロトコルスタックやファイルシステム)をカーネル空間で動作させるが、一部のカーネルコード(デバイスドライバなど)はサーバとしてユーザ空間で実行する。これは、純粋なマイクロカーネルが高性能を提供できると示される以前、妥協的に考案された技法であり、マイクロカーネルにモノリシックカーネルの特性を一部取り入れて拡張したものといえる。

ハイブリッドカーネルではカーネルがモジュール化されているが、モジュールの大部分は同じカーネル空間内にロードされる。そのため、バグを含むモジュールをロードするとカーネルの動作が不安定になる可能性がある。マイクロカーネルの場合、カーネルとは全く別の空間でモジュールを動作させることができ、安全に評価することができる。モノリシックカーネルと比較したハイブリッドカーネルの長所を以下に挙げる。

  • モジュールの開発期間が短い。(カーネルが不安定にならない限り)評価の際にリブートが不要である。カーネル全体の再コンパイルが不要である。
  • サードパーティーのテクノロジーを素早く統合できる。

モジュール群は何らかのモジュールインタフェースを使ってカーネルとやりとりする。そのインタフェースはOS固有ではあるが汎用化されており、常にモジュールとして分離実装できるわけではない。デバイスドライバにはモジュールインタフェース以上の柔軟性が必要なことが多い。基本的にモノリシックカーネルではカーネルとの呼び出しが1回で済むところを、ハイブリッドカーネルでは2回呼び出す必要がある。モジュール化の短所として次の事柄が挙げられる。

  • インタフェースを通る回数が増えるため、バグを作りこむ可能性も増加する(セキュリティホールも多い可能性がある)。
  • システム管理者はモジュール群の保守において混乱をきたす可能性がある。

ナノカーネル

ナノカーネルは全てのサービスをデバイスドライバとして分離する。これにはたとえば最も基本的な割り込みコントローラタイマーの制御も含まれる。これによりカーネルメモリはマイクロカーネルよりもさらに小さくなる[40]

エクソカーネル

エクソカーネル (exokernel) はまだ実験段階のOS設計技法である。他のカーネルとの違いは、物理ハードウェアのプロテクションと多重化に機能を限定している点で、アプリケーションに対して全くハードウェアの抽象化を提供しない。このようにハードウェアのプロテクションをハードウェア管理から分離することで、利用可能なハードウェアを最大限に生かすように個々のプログラムを開発できるという利点が生じる。

エクソカーネル自体は非常に小さい。しかし、通常のOSの持つ機能をアプリケーション開発者に提供するためのライブラリ型OSを伴う。エクソカーネル型システムの最大の利点は、このライブラリ型OS機能を複数用意できるという点で、それぞれが異なるAPIを提供できる。たとえば同じシステム上で、高度なUIを持つアプリケーションを開発し、同時にリアルタイムシステム制御を行うアプリケーションも開発できる。


注釈

  1. ^ a b 最上位の特権レベルは、スーパーバイザーモード、カーネルモード、CPL0、リング0など様々な呼称がある。
  2. ^ CPU時間は理論上無限だが、メモリ容量とそのアクセス速度は有限であることに注意すべきである。
  3. ^ デバイスドライバをカーネルの一部とみなさない考え方もあるが、たとえばリアルタイムクロックなどはカーネル自身が管理する。
  4. ^ 仮想アドレッシングは通常、メモリ管理ユニット (MMU) に内蔵された機能を使用して実現される。
  5. ^ そもそも何故カーネルが大きくなるとまずいのか? 一般にOSはある程度のハードウェアシリーズで動作するが、その最小メモリサイズは最も安価なハードウェアの最小構成まで考慮する必要があり、そのようなメモリ容量でもある程度の機能が動作しなければならない。このため、少なくとも一般的な構成のカーネルがその最小メモリ容量内に収まって、アプリケーションをそれなりの性能で実行できるだけの空きメモリ容量を確保しなければならないという事情があった。最近ではメモリチップの急速な大容量化によって、このような問題は減りつつある。

出典

  1. ^ a b c d e f g h i Wulf 1974, pp. 337–345
  2. ^ a b An overview of Monolithic and Micro Kernels, by K.J.
  3. ^ Roch 2004
  4. ^ Bona Fide OS Development - Bran's Kernel Development Tutorial, by Brandon Friesen
  5. ^ Levy 1984, p. 5
  6. ^ Needham, R.M., Wilkes, M. V. Domains of protection and the management of processes, Computer Journal, vol. 17, no. 2, May 1974, pp 117–120.
  7. ^ a b c Silberschatz 1991
  8. ^ http://www.answers.com/topic/operating-system
  9. ^ Tanenbaum, Andrew S. (2008). Modern Operating Systems (3rd ed.). Prentice Hall. pp. 50–51. ISBN 0-13-600663-9. ". . . nearly all system calls [are] invoked from C programs by calling a library procedure . . . The library procedure . . . executes a TRAP instruction to switch from user mode to kernel mode and start execution . . ." 
  10. ^ Denning 1976
  11. ^ Swift 2005, p. 29 quote: "isolation, resource control, decision verification (checking), and error recovery."
  12. ^ Schroeder 1972
  13. ^ a b Linden 1976
  14. ^ Stephane Eranian and David Mosberger, Virtual Memory in the IA-64 Linux Kernel, Prentice Hall PTR, 2002
  15. ^ Silberschatz 1993, pp. 445, 446
  16. ^ Hoch, Charles; J. C. Browne (University of Texas, Austin) (July 1980). “An implementation of capabilities on the PDP-11/45” (PDF). ACM SIGOPS Operating Systems Review 14 (3): 22–32. doi:10.1145/850697.850701. http://portal.acm.org/citation.cfm?id=850701&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618 2007年1月7日閲覧。. 
  17. ^ a b A Language-Based Approach to Security, Schneider F., Morrissett G. (Cornell University) and Harper R. (Carnegie Mellon University)
  18. ^ a b c P. A. Loscocco, S. D. Smalley, P. A. Muckelbauer, R. C. Taylor, S. J. Turner, and J. F. Farrell. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments. In Proceedings of the 21st National Information Systems Security Conference, pages 303–314, Oct. 1998.
  19. ^ J. Lepreau et al. The Persistent Relevance of the Local Operating System to Global Applications. Proceedings of the 7th ACM SIGOPS European workshop, 1996.
  20. ^ J. Anderson, Computer Security Technology Planning Study, Air Force Elect. Systems Div., ESD-TR-73-51, October 1972.
  21. ^ Jerry H. Saltzer, Mike D. Schroeder (September 1975). “The protection of information in computer systems”. Proceedings of the IEEE 63 (9): 1278–1308. doi:10.1109/PROC.1975.9939. http://web.mit.edu/Saltzer/www/publications/protection/. 
  22. ^ Jonathan S. Shapiro; Jonathan M. Smith; David J. Farber (1999). “EROS: a fast capability system”. Proceedings of the seventeenth ACM symposium on Operating systems principles 33 (5): 170–185. doi:10.1145/319344.319163. http://portal.acm.org/citation.cfm?doid=319151.319163. 
  23. ^ Dijkstra, E. W. Cooperating Sequential Processes. Math. Dep., Technological U., Eindhoven, Sept. 1965.
  24. ^ a b c d e f Hansen 1970, pp. 238–241
  25. ^ SHARER, a time sharing system for the CDC 6600”. 2007年1月7日閲覧。
  26. ^ Dynamic Supervisors – their design and construction”. 2007年1月7日閲覧。
  27. ^ Baiardi 1988
  28. ^ a b Levin 1975
  29. ^ Denning 1980
  30. ^ Jürgen Nehmer The Immortality of Operating Systems, or: Is Research in Operating Systems still Justified? Lecture Notes In Computer Science; Vol. 563. Proceedings of the International Workshop on Operating Systems of the 90s and Beyond. pp. 77–83 (1991) ISBN 3-540-54987-0 [1] quote: "The past 25 years have shown that research on operating system architecture had a minor effect on existing main stream systems." [2]
  31. ^ Levy 1984, p. 1 quote: "Although the complexity of computer applications increases yearly, the underlying hardware architecture for applications has remained unchanged for decades."
  32. ^ a b c Levy 1984, p. 1 quote: "Conventional architectures support a single privileged mode of operation. This structure leads to monolithic design; any module needing protection must be part of the single operating system kernel. If, instead, any module could execute within a protected domain, systems could be built as a collection of independent modules extensible by any user."
  33. ^ Open Sources: Voices from the Open Source Revolution
  34. ^ Linus vs. TanenbaumLINUX is obsolete - comp.os.minixAppendix A The Tanenbaum-Torvalds Debate に議論の記録がある
  35. ^ a b Matthew Russell. “What Is Darwin (and How It Powers Mac OS X)”. O'Reilly Media. 2012年9月30日閲覧。 quote: "The tightly coupled nature of a monolithic kernel allows it to make very efficient use of the underlying hardware [...] Microkernels, on the other hand, run a lot more of the core processes in userland. [...] Unfortunately, these benefits come at the cost of the microkernel having to pass a lot of information in and out of the kernel space through a process known as a context switch. Context switches introduce considerable overhead and therefore result in a performance penalty."
  36. ^ a b c d e f g Liedtke 1995
  37. ^ Härtig 1997
  38. ^ Hansen 1973, section 7.3 p.233 "interactions between different levels of protection require transmission of messages by value"
  39. ^ a b The L4 microkernel family – Overview
  40. ^ KeyKOS Nanokernel Architecture
  41. ^ Ball 2002, p. 129
  42. ^ Hansen 2001, pp. 17–18
  43. ^ BSTJ version of C.ACM Unix paper
  44. ^ Introduction and Overview of the Multics System, by F. J. Corbató and V. A. Vissotsky.
  45. ^ a b The UNIX System — The Single Unix Specification
  46. ^ Unix’s Revenge by Horace Dediu
  47. ^ Linux Kernel 2.6: It's Worth More!, by David A. Wheeler, 2004年10月12日。
  48. ^ XNU: The Kernel
  49. ^ Windows History: Windows Desktop Products History
  50. ^ The Fiasco microkernel - Overview
  51. ^ L4Ka - The L4 microkernel family and friends
  52. ^ QNX Realtime Operating System Overview


「カーネル」の続きの解説一覧




カーネルと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「カーネル」の関連用語

カーネルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



カーネルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのカーネル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS