私が理解しているように、Unixの特徴の1つは、高度にモジュール化されたファイルプロセスに作業を委任するマイクロカーネルがあることです。もしそうなら、Linuxがこれらの単一のカーネルアプローチから外れたなら、なぜそれでも「Unixに似た」と見なされますか?
答え1
私は「Unixファミリー」をどのように定義するかに答えがあると思います。 「Unixファミリー」のWikipediaエントリによれば、標準定義がないようです。1
Unixシリーズ(UN * Xまたは* nixとも呼ばれる)オペレーティングシステムは、Unixシステムのように動作しますが、必ずしもSingle UNIX仕様のすべてのバージョンに準拠したり、認証を受ける必要はないオペレーティングシステムです。
用語を定義する標準はなく、特定のオペレーティングシステムが「Unixに似た」方法についていくつかの意見の違いがあるかもしれません。
この用語は、Bell Labs Unixからインスピレーションを得た、またはその機能をエミュレートするように設計された無料のオープンソースオペレーティングシステム、商用および排他的に類似したオペレーティングシステム、さらにライセンスされているUNIXソースコードに基づくバージョン(十分に「Unixに似ています」)することができます)を含めることができます。 》「UNIX」の商標として認証およびラベル付けされています)。
最も明白な理由は、UNIXとMINIXがLinuxの前身であり、Linuxの誕生にインスピレーションを与えたことです。2
TorvaldsはMINIXでLinuxカーネルを開発し始め、MINIX用に書かれたアプリケーションもLinuxで使用されました。その後、Linuxは徐々に成熟し、LinuxシステムでLinuxカーネルの開発がさらに行われました。
Linus Torvaldsは、独自の発明を「free」、「freak」、および「x」(Unixの意味)の合成語であるFreaxと呼びたかったのです。
オペレーティングシステムを「Unixシリーズ」と呼ぶとき、システムがモノリシックシステムなのかマイクロカーネルなのかは考慮しないようです。少なくとも、システムがPOSIX規格であるか、それともほとんどPOSIX規格であるかと同じくらい頻繁ではありません。
答え2
「UNIX方式」とは、実際にユーザー体験を意味します。少数のユーティリティセットを組み合わせて、効率的なオペレーティングシステムのコマンドラインを構築できます。関連するメモでは、オペレーティングシステムユーティリティは決して「特別な」ものではなく、ユーザーが自分で書くプログラム以上の機能を持っていません。
今日、UNIXはこの分野で大きな成功を収めており、オペレーティングシステムがコマンドラインインタフェースを表示する方法になったため、これを言うのは難しいです。これは反例を通して最もよく説明されます。cp a.txt b.txt
IBMメインフレームで機能する方法は次のとおりです。
//COPY JOB ,CLASS=E,MSGCLASS=X,NOTIFY=&SYSUID
//cp EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSNAME=a.txt,DISP=SHR
//SYSUT2 DD DSNAME=b.txt,DISP=(NEW,CATLG),UNIT=SYSDA
すべての種類のファイルをコピーするわけではありません。
UNIXは、パフォーマンスを犠牲にして使いやすさを簡素化する多くの仮定をしています。ファイルチャネル1(stdin)、2(stdout)、および3(stderr)は端末を通過し、上記のJCLから多くの定型句を削除します。ファイルシステムは1つのデータ型(バイト)と1つのアクセスモード(順次)をサポートします(順次データを読み書きできるポインタは、一種の「ランダムアクセス」を達成するために移動できますが)。これは、システムユーティリティがすべてのファイルとデータ型を網羅するために1つの種類のファイルと1つの種類のデータのみを処理することを意味します。ファイルシステムには事前割り当ては必要ありません。オペレーティング・システムがファイル名を認識している場合、そのファイルは自動的にディレクトリーに追加されます(IBMメインフレームでは「ディスク・ディレクトリー」と呼ばれます)。
これらの仮定はあまりにも成功しており、今日私たちはもはや考慮しません。当時はファイルの最大サイズをあらかじめ知らせずにファイルシステムの膨大なオーバーヘッドを想像してみると放蕩に見えたはずです。
しかし、UNIXはここで停止しません。これはシステムユーティリティへの「ツールボックス」アプローチを促進します。メインフレームIEBGENERはファイルを印刷したり、レコードのフィールドを並べ替えたり、レコードを削除したり、空のレコードを作成したりできます。一方、UNIXでは、cpはファイルをコピーし、catはファイルの内容をリストし、cutはフィールドを処理します。コマンドの標準出力を次のファイルの標準入力に接続するすべてのきれいな構文が単一の端末ラインにあります。この「パイプライン」構文と小さなコマンドを使用すると、IEBGENERができることをすべて行うことができます。これはIEBGENERの作者が夢を見ていなかったことです。
KernighanとPlaugerは1976年にこのアプローチの影響力のある本を書いた。ソフトウェアツール- これは実際に「UNIX方式」の最初の表現でした。 KernighanとPikeは、1984年に本でこのアプローチを繰り返しました。UNIXプログラミング環境。
答え3
私の理解によると、「モノリシック」はLinuxを誤って表現したものです。全体とは広大で変わらないという意味だ。モジュールをカーネル空間に接続できるという事実は、単一の定義を壊します。私の考えでは、「モノリス」という名前は、Greg Kroah-Hartmanのスピーチで彼が使用した言葉が正しくないと言ったが、人々はLinuxがモノリシックであることを受け入れたと言った。マイクロカーネルとモノリスという用語はしばしば完全に反対していると見なされますが、実際にはそうではありません。 Linuxは非モノリシックカーネルですが、マイクロカーネルではありません。
答え4
私はいつもUNIXが商標であり技術仕様であると信じてきました。
黄金時代にはそのようなことは全くありませんでしたが、私は青年であり、SCO v IBMがそれを形成しました。
UNIX® - 興味深い名前のOpenGroupによって定義され承認されます。https://www.opengroup.org/unix%C2%AE-systems
POSIXは有用な仕様ですが、長年にわたってわずかに下落しており、過去数年間の苦痛な時期にもかかわらず、Microsoft Windows 2Kは必要な標準を達成しました。最新バージョンは4カ国に調和しており、Linux用のWindowsサブシステムv.2は、異機種間のサーバー資産を持つ多くの企業にとって魅力的なオプションです。
私が知っている限り、Linuxは「専門書で話す」よりも、システム管理者、開発者、エンドユーザーなど、「ユーザーに適したもの」の合意に常に独占的に近いです。