OSカーネルとは?オペレーティングシステムとどう違うのですか?[閉まっている]


147

カーネルとオペレーティングシステムの違いを理解できません。両者に違いはありません。カーネルはオペレーティングシステムですか?

回答:


74

オペレーティングシステムの技術的な定義は、「アプリケーションを構築して相互に対話するための特定のライブラリセットとインフラストラクチャで構成されるプラットフォーム」です。その意味で、カーネルはオペレーティングシステムです。

エンドユーザー定義は通常、「デスクトップ、アプリケーションへのショートカット、Webブラウザー、およびメディアプレーヤーを提供するソフトウェアパッケージ」に関連するものです。カーネルがその定義と一致しません。

したがって、エンドユーザーにとってはLinuxディストリビューション(Ubuntuなど)がオペレーティングシステムであり、プログラマにとってはLinuxカーネル自体が、達成しようとしていることに応じて完全に有効なOSです。たとえば、組み込みシステムはほとんどが単なるカーネルであり、その上で実行される特殊なプロセスはごくわずかです。その場合、カーネル自体がOS自体になります。

そのOS上で実行されているアプリケーションの大部分が必要とするものに線を引くことができると思います。それらのほとんどがカーネルのみを必要とする場合、カーネルはOSです。それらのほとんどがX Window Systemの実行を必要とする場合、OSはX +カーネルになります。


6
エンドユーザー定義は通常、「デスクトップ、アプリケーションへのショートカット、Webブラウザー、およびメディアプレーヤーを提供するソフトウェアパッケージ」に関連するものです。カーネルがその定義と一致しません。誰かがオペレーティングシステムとは何かを知らないからといって、その定義が有効であるとは限りません。
DIMMSum

1
@dimmsumこれは口語的な定義ではありません。オペレーティングシステムは販売され、ユーザーに販売されています。
セダットカパノグル

そのようなマーケティングについて教えていただけませんか。OSベンダーが、そのようなすべてのタイプのプログラムを実行できるプラットフォームを提供していると言うのを見ることができましたが、OSにはそれらのプログラムが含まれていません。2つを融合すると、文字通りシステム全体について話しているので、定義はその意味を失います。
DIMMSum 2018年

1
@dimmsum私はあなたの要点を理解しているので、2つの異なる定義を提供しました。たぶん、私はそれを「理解」と呼ぶべきでしたか?エンドユーザーは、特にオペレーティングシステムが箱入りで販売された時代には、オペレーティングシステムとは何かに対する理解が異なり、オペレーティングシステムのコモディティ化に直接関連していると思います。Windows XPボックスは、技術的な定義とはまったく異なるトランザクションを約束しました。それが私が指摘したかったことです。
セダットカパノグル

1
@dimmsumなので、コンピュータサイエンスにはオペレーティングシステムがあり、テックストアの棚には別のオペレーティングシステムがあります。どちらも異なる視点から見たオペレーティングシステムです。その違いを強調したかったのです。
セダットカパノグル

73

カーネルが仲介するには、システムリソースにアクセスすることをオペレーティングシステムの一部です。CPU、メモリ、ディスクI / O、およびネットワークへのアクセスを制御することにより、複数のアプリケーションがハードウェアを効果的に共有できるようにします。

オペレーティングシステムは、カーネルプラス(すなわち、コンパイラ、テキストエディタ、ウィンドウマネージャ、など)何かを成し遂げるためにユーザを可能にするアプリケーションです。


18
コンパイラとテキストエディタは本当にオペレーティングシステムの一部ですか?Wordは栄光のテキストエディターです-それはOSの一部ですか?
jon-hanson、2010年

6
「オペレーティングシステムはカーネルとアプリケーションの組み合わせです」というメッセージが表示されないのですが、アプリケーションをインストールした場合(Word Perfectなど)、オペレーティングシステムの一部としてはカウントされません。
Celeritas 2013年

7
@Celeritasパーティーには少し遅れますが、インストールされているアプリケーションはオペレーティングシステムの一部としてカウントされません。「アプリケーション」は、実際にはオペレーティングシステムに付属するシステムユーティリティです。インストールする他のすべてのソフトウェア/アプリケーションは、この上の層にあります。
hashcode55

第2段落で括弧で囲まれたコメントを書くまでは、順調でした。オペレーティングシステムは、これらのアプリケーションからの要求を処理して、ハードウェアを制御します。したがって、OSには、カーネル、デバイスドライバー、およびハードウェアを最低レベルで具体的に制御するその他のソフトウェア/ファームウェアが含まれます。
Bob

42

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

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

これらの用語は比喩であることを覚えておくことをお勧めします。

参考文献


いいね。しかし、あなたの答えは「更なる読み物」から逐語的に取られたものです。これで、コピーと貼り付けによって多くの賛成票を取得する方法がわかりました。笑。それでもなお役に立ちます。
lacostenycoder

18

さて、カーネルとOSには違いがあります。上記のカーネルはOSの中心であり、OSのコア機能を管理しますが、有用なアプリケーションやユーティリティをカーネルに追加すると、完全なパッケージがOSになります。したがって、オペレーティングシステムはカーネルスペースとユーザースペースで構成されていると簡単に言えます。

したがって、Linuxはファイルシステムユーティリティ、ウィンドウシステム、グラフィカルデスクトップ、システム管理者コマンド、テキストエディタ、コンパイラなどのアプリケーションを含まないため、カーネルであると言えます。したがって、さまざまな企業がこれらの種類のアプリケーションをLinuxカーネルに追加していますそして、ubuntu、suse、centOS、redHatなどのオペレーティングシステムを提供します。


9

オペレーティングシステムである、一般的なシステム全体を構成する要素(ユーザー・インタフェース、ライブラリ、リソース)の全てに与えられた名前。

カーネルはオペレーティングシステムの「頭脳」であり、ハードディスクへのアクセスからメモリ管理まですべてを制御します。あなたが何かをしたいときはいつでも、それはカーネルを通過します。


8

カーネルはオペレーティングシステムの一部ですが、オペレーティングシステム自体ではありません。カーネルが行うことのすべてを説明するのではなく、ウィキペディアのページ http://en.wikipedia.org/wiki/Kernel_%28computing%29を使用します。素晴らしい、完全な概要。


3
えっと、代わりにen.wikipedia.org/wiki/Operating_systemの最初の文を試してください。オペレーティングシステムは、限られたリソース(コンピューター上のほぼすべて)へのアクセスを仲介することを正式に課されており、モノリシックカーネルはそれを正確に実行します(マイクロカーネルはその作業の一部をプロセスにダンプしますが、カーネルと共に配布されます)。プログラマーから見て、カーネル OSです。ユーザーはシェルや他のインターフェースを頼りにするかもしれませんが、それはユーザーです。OSは、スーパーコンピューターから、2つのことを実行する必要のある組み込みウィジェットまで、あらゆるもので実行されることに注意してください。
dmckee ---元モデレーターの子猫2010

つまり、SOMEオペレーティングシステム自体がカーネルである、またはユーザーが操作するOSの一部がOSの一部ではないということです。
danben

また、「en.wikipedia.org/wiki/Operating_systemの最初の文」は「オペレーティングシステム(OS)はハードウェアとユーザー間のインターフェースです...」と言っているので、何を区別しているのか理解できません。ユーザーが操作し、残りの部分を操作します。
danben

7

カーネルはオペレーティングシステムの一部であり、ブートローダーがCPUにロードする最初の部分(ほとんどのオペレーティングシステムの場合)であり、ハードウェアとインターフェイスする部分であり、プログラムが実行できることも管理します。ハードウェア、それは本当にosの中心部分です、それはドライバーで構成されています。ドライバーは特定のハードウェアの一部とインターフェイスするプログラムです。たとえば、私がコンピューター用のデジタルカメラを作ったら、それのドライバー、ドライバーはコンピューターの入力と出力を制御できる唯一のプログラムです


3

簡単な答え

カーネルはオペレーティングシステムの中核部分です。それ自体は必ずしもオペレーティングシステムではありません。

他のすべてはそれを中心に構築されています。

精巧な定義

カーネル(コンピューティング)-ウィキペディア


それでは、カーネルオペレーティングシステムはドライバーなしですか?
Xinus

1
いいえ...ほとんどのカーネルは、(ドライバだけでなく)オペレーティングシステムのさまざまな部分を結び付けています。
Justin Niessner、2010年

2

コンピューティングでは、「カーネル」はほとんどのコンピュータオペレーティングシステムの中心的なコンポーネントです。これは、アプリケーションとハードウェアレベルで行われる実際のデータ処理の間の橋渡しです。カーネルの責任には、システムのリソース(ハードウェアコンポーネントとソフトウェアコンポーネント間の通信)の管理が含まれます。通常、カーネルはオペレーティングシステムの基本コンポーネントとして、アプリケーションソフトウェアがその機能を実行するために制御する必要があるリソース(特にプロセッサとI / Oデバイス)の最低レベルの抽象化レイヤーを提供できます。通常、これらの機能は、プロセス間通信メカニズムとシステムコールを介してアプリケーションプロセスで利用できます。


2

カーネルはオペレーティングシステムである場合と、オペレーティングシステムの一部である場合があります。Linuxでは、カーネルが最初にロードされて実行されます。次に、OSの他のビット(initなど)を起動して、システムを使いやすくします。

これは、特にマイクロカーネル環境に当てはまります。カーネルの機能は最小限です。ファイルシステムやTCP / IPなど、その他はすべてユーザープロセスとして実行されます。


Rubyのようなスクリプト言語のカーネルはどうですか?たとえば、Rubyがインストールされている場合、これを* nix端末から実行ruby -e "puts Kernel.methods"すると、多くのメソッドが定義されていることがわかります。
lacostenycoder

2

カーネルはOSに常駐します。実際には、OS機能を処理するために特別に提供されるメモリ空間です。OSがシステムのリソースを処理し、カーネルがOSの心臓部であり、OSのiekeepトラックを管理するものとも言われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.