KernelとShellを1つにまとめずに分離させた理由ってなんですか?

Linux系35閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

~まとめ~(共感したもののみ) ・Kernelに直に操作できる可能性が生まれセキュリティホールがあったらその部分をハッキングされるから ・クラッシュした時に分離しておくと被害がShellで留まりKernelから被害を無くす事ができるから ・不具合が見つかってもKernelを入れ替える必要がなくメンテナンスが楽だから ・Kernelが受け付けた入力の管理をしない事でKernelの軽量を図っているから

お礼日時:6/21 18:00

その他の回答(5件)

0

> terminal上での入力をKernelが分かるように作れば > Shellの機能を無くしても良くないって思いませんか? そうなったらターミナルがシェルって言われるようになるだけでは。 そもそもコマンドラインシェルだけがシェルではありません。 グラフィカルシェルという概念もあります。 Windowsのスタートメニューとかはその機能に含まれます。 カーネルとのユーザーインターフェイスを担う部分がシェルです。 ユーザーインターフェイス部分はユーザー空間で動作するので カーネル空間で動作するカーネルと一緒にするのは無理です。

質問の仕方が悪かったです。 コマンドラインシェルの機能の「入力を受け付ける」という能力をKernelは有していないため、その機能をなぜKernelに組み込まなかったのか教えてください。

0

Kernelが持つ機能はとてもシンプルです。シェルと一体化させたらシェルの機能を強化する度にカーネルごと改修してリリースしなくてはなりません。利用者も頻繁にアップデートしなくちゃいけないですね。それが本人とし都合が悪くても、システムリソースに関わる改善やセキュリティーアップデートが含まれていたらアップデートせざるを得ません。 人間が直接触る部分は、人の都合に合わせて改善したいし、カーネルはシステムの都合に合わせて改善したいじゃないですか。 だったら分けるのは自然だと思いませんか?今風に言えばエコシステムが違うから別れるのは必然だと思います。

0

別物だから shellはアプリプログラムです。 開発する人が全く別です shell なんて使わないシステムもあるし独自の物を使うこともできる

前提としてLinuxの話でお願いします。 Shellはterminalからの入力をKernelに渡し、Kernelが処理した結果をShellを通じてterminalに出力しますね。 何でいちいち機能を分離させたのかって話です。