カーネル以外のオペレーティングシステムにあるもの


43

私が理解しているように、カーネルはハードウェアとのすべてのやり取りを行い、メモリ、I / Oデバイスなどを管理します。したがって、カーネルはすべてを実行しますが、オペレーティングシステムの一部にすぎません。OSには他に何がありますか?バンドルされているアプリケーションだけですか?たとえば、Ubuntuにはカーネル以外に何がありますか?Gnome Desktop、および他のいくつかのアプリケーション?

回答:


54

もちろん、シェル。

そもそもこのために「カーネル」という言葉を得た元の比phorは、忘れられがちです。比phorは、オペレーティングシステムがシードまたはナッツであることです。シードの「カーネル」はオペレーティングシステムの中核であり、アプリケーションプログラムにオペレーティングシステムサービスを提供します。これは、ユーザーが外から見るものであるシードの「シェル」に囲まれています。

一部の人々は、「カーネル」(そして実際には「シェル」)をより具体的にするために結び付けたいと思っています。しかし、実際には、オペレーティングシステムにはさまざまなバリエーションがあります。少なくともこれらのバリエーションは「シェル」を構成するものであり(Solaris shからNetwareのコンソールコマンドインタープリター、OS / 2のWorkplace Shell、Windows NTのExplorerまで)、オペレーティングシステムごとに多くの違いがあります。 「カーネル」の一部であるものとそうでないもの(たとえば、ディスクI / Oを含む場合と含まない場合があります)。これらの用語はメタファーであることを覚えておくのが最善です。

他の用語があります。IBMメインフレームの用語では、シード/ナッツのメタファーの「カーネル」は制御プログラムと呼ばれます。他の名前には、スーパーバイザーモニターコア、およびエグゼクティブが含まれます。コアは、もう1つのかなり明白な生物学的隠phorです。それもまた別の名前であることが興味深い。ハーヴェイM. Deitelは、彼にオペレーティングシステム、制御プログラムを呼び出し、、および語ります

通常、核はオペレーティングシステム全体と一般に考えられているコードの小さな部分を表します[...]

「nucleus」という語はラテン語のnucleusに由来し、ナッツのを意味します(「nut」を意味するLatin nuxを参照)。したがって、制御プログラムを「中核」と呼ぶことでさえ、実際にはこれと同じオペレーティングシステムをナットとして類推しています。これは、単なるオペレーティングシステム以上のものに使用される類推です。たとえば、化学に精通している場合、原子核殻の中で電子に囲まれていることがわかります。

new123456以下の仮名の人が書いていることは、これらの比phorの起源を忘れることに起因する誤りを例示しており、ある部分を全体と間違え、カーネルをオペレーティングシステム全体と間違えています。「ユーザーランド」プログラムであることは、シェルをオペレーティングシステムの外側にすることも、カーネルを囲むシェルを小さくすることもありません。さらに、バージョン7以降のUnixには当てはまらないDOS専用のアイデアとはほど遠く、このアイデアはUnixの世界で広く普及しており、現在も行われています。

(それをnew123456DOSism と間違えるのは皮肉なことです。カーネル/シェルのメタファーは、初期のDOSにとってはかなり異質であり、CP / Mのコマンドプロセッサなどを好んでいました。基本ディスク・オペレーティング・システム(BDOS)、基本入出力システム(BIOS -いないシステムファームウェア、ノート)、コマンドプロセッサ、およびハウスキーピングユーティリティ。コードは、実際のファイルにこの道をparceledた。これは、別です。実際、たとえば、カーネル/シェルのメタファーが、多くのオペレーティングシステムの実際の区分を実際にカバーしていないか、完全に一致していない方法の例です。)

new123456核がオペレーティングシステム全体の一部であることについて、Deitelが書いたことを忘れています。オペレーティングシステムはカーネルとシェルの両方です。 つまり、結局のところ、メタファーです。 デイテルも一人ではありません。1980年代以降、Unix-as-a-nutの比theを説明する一連のUnix本があります。UrbanとTiemann が24時間でFreeBSDを教える(SAMS、ISBN 9780672324246)をお勧めします。54ページにオペレーティングシステムとしてのシードのメタファーを示す図があり、驚くべきことにそうするためのいくつかの本。

名前「nucleus」はおそらく古い名前です。確かにUnixよりも前のもので、これは今日(おそらくUnixのおかげで少なからず)カーネル/シェルの用語を支持し、より普及しています。Alan C. Shawの1974年の著書『オペレーティングシステムの論理設計(Prentice-Hall、ISBN 9780135401125)』には次のようなものがあります。

主記憶装置に永続的に常駐するシステムのその部分は、歴史的にニュークリアスと呼ばれていました。通常、ニュークリアスは、プロセス、リソース、および入出力を管理するための最小限のプリミティブとプロセスのセットで構成されます。
ショーにも図があります。☺


7
これは素晴らしい答えだと思います。単純に、それがメタファー「シェル」と「カーネル」の関係を思い起こさせたからです。私は両方を知っていた、私はそれらを接続したことはありません。私は質問に対する答えを知っていましたが、それでもこの答えから何かを学ぶことができました。したがって、賛成票。ありがとう!
アンドリューJ.ブレム

UNIXシェルはバージョン7以降、カーネル自体から抽象化されており、それ以来、あらゆる意味でのユーザーランドプログラムであるため、これを言うのをためらいます。しかし、あなたの言うことは、DOSに当てはまります(特に恐ろしいデザインの選択です)。
-new123456

よくやった、先生。ただし、@ユーザー名を記載するときは、応答キューに投稿されるようにどこかに残してください。
new123456

多くの興味深い歴史を持つこのような包括的な答えであることに賛成しました(私は、核をコンピューター用語として認識していませんでした-またはそのラテン語の語源)。ただし、別のユーザーの(現在削除されている)回答を明示的に参照していなければ、スタンドアロンの回答として読みやすくなると思います。
アンソニーG-モニカの正義

45

オペレーティングシステムの他の部分には、カーネルと対話するドライバーが含まれます。ユーザーインターフェイス、ネットワーキング、およびカーネルと実際のアプリケーションの間にあるOSの他のコア部分を処理するヘルパープログラムのいくつかの層があります。

例として、OS X構造を示しました。カーネル(水色)の上に「コア」機能、システムツール、サービス、およびAPI(アプリケーションプログラミングインターフェイス)のいくつかの層があることがわかります。実際のアプリケーション自体で通常使用するGUIにさえ到達します。

ここに画像の説明を入力してください

ほとんどのオペレーティングシステムの構造は似ていますが、実際にカーネルの一部であるかどうかに関しては、さまざまな違いがあります。比較については、マイクロカーネルに関するウィキペディアの記事を参照してください。

編集-あなたのコメントに答えるために(私のコメントは少し長くなりました)

Linuxカーネルだけを起動することもできますが、実際には多くを達成することはできません。すべてのインターフェイスを提供するのは、これらすべてのヘルパーアプリケーションです。

カーネルが起動(およびハードウェアを初期化)されると、それはのようなサービス(起動するための機能を提供するGNU / Linuxオペレーティング・システムの他の部分を切った手にしようとUDEVれを移入/devのようなものを使用するためのプログラムのrawデバイスインタフェースを持つがハードドライブやシリアルポートなど)およびネットワーク(dhcpcd)を設定するプログラムと、アプリケーションがGNOMEKDEなどのウィンドウマネージャーを使用してウィンドウやアイコンを表示できるようにするためのX.orgなどのAPI 。

しかし、はい、単にカーネル自体をブートすることができます。「ブートしました、今は何ですか?」促す。


それで、カーネルだけをブートでき、OSが通常持っている追加のものはどれもブートできないのでしょうか?
AnkurVj

理論的には、私は推測しますが、その上に他のプログラムがなけれ何もしませ。人々が楽しみのために作成した、カーネル、シェル、そしておそらくコンパイラーまたはアセンブラーにすぎない小さなオペレーティングシステムがあります(実際、Linuxはこのように始まったと思います)。
user55325

@AnkurVj答えに追加しました。
木梅

3
Linuxカーネルだけを起動できるとは思わない。カーネルがinitを呼び出すポイントに到達すると、システムはカーネルモードからユーザーモードに切り替わります。initが利用できない場合(またはbashのような偽のinit)、カーネルがパニックしてクラッシュします。そのため、パニックを回避するためにいくつかの初期化プロセスを実行する必要がありますが、この時点で実際に実行されるのはカーネルだけではありません。
ジョーインターネット

1
裸のカーネルを起動することもできますが、OSの残りがなければ、ユーザーはそれと対話できません。
ケルタリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.