シェル(UNIX)のイメージのよくある誤解

「シェル」って「カーネルを貝殻(shell)のように包んでユーザとの間を取り持つ」ってことでイメージが作られてるけど、その中身結構テキトーだよね、というちょっとしたまとめ。
25

「赤字」ってのは、strace の抜粋の方のことね。念のため

angel (as ㌵㌤の猫) @angel_p_57

※コマンド読み込みとか、メッセージ出力もカーネルがもろ関係するけど、そこまで絵に入れるとごちゃごちゃするので、そこはめっちゃ簡単に

2020-04-20 22:07:39
angel (as ㌵㌤の猫) @angel_p_57

ということで、「シェルがなんでも中継するよ」って絵は、( まじめに動きを見てたらそんな解釈はできないわけで ) 完全に空想の産物と分かる、と。

2020-04-20 22:10:18
angel (as ㌵㌤の猫) @angel_p_57

…いや、ここらへんはモデルを示す方が検証して推敲して作るもので、空想を否定するためになんか調査してみせるって、はっきりいってナンセンスなんだけど。

2020-04-20 22:11:47
angel (as ㌵㌤の猫) @angel_p_57

なので、カーネルはあくまで「シェルに限らず」色々なアプリからの処理依頼をこなすものだし、シェルはなんでもかんでも中継するような役回りじゃなくて、主にアプリ起動に特化した存在。

2020-04-20 22:08:59
angel (as ㌵㌤の猫) @angel_p_57

で、シェルのことを「機器を操作するためのインターフェースになりますよ」くらいに抑えて言っておけば全然ウソじゃないし、有用な情報だと思うんだけど、「カーネルとの間を取り持ちます」なんて言っちゃうと、もうデマになってしまう。

2020-04-20 22:13:18
angel (as ㌵㌤の猫) @angel_p_57

「なんとなく詳しく説明してる風の方が分かり易いだろう」は害ね。 ちょうど「蛇足」という故事があるけど、むしろ単なる「にょろんとした線」なら詳しくないけど蛇と言い張れるものの、足をつけちゃうと、どんなに緻密に書いててもニセの蛇になる。

2020-04-20 22:15:14
angel (as ㌵㌤の猫) @angel_p_57

概要を説明するときは、ちゃんと実態から逸れないよう要約できているか、常に気を使わないといけない。 ※むしろ私は細かく書きすぎるきらいがあるのでまだまだだと思う。 「初学者向けなんだから」と正当化するのは、自身の無理解を棚に上げた言い訳でしかないと思う。

2020-04-20 22:17:56