しかし、予想外のことが起こりました-読書の過程で洞察が私に伝わりました:OS Infernoはオペレーティングシステムではなく、開発環境であることに気付きました!
変に聞こえますか? はい Inferno Webサイトの最初の文が「Inferno is a compact operating system ...」であると考えると、特に奇妙です。 一番下の行は、「オペレーティングシステム」が最近発音されると、デスクトップWindowsとLinuxが人々の頭に現れ、他のOSがそれらと比較され始めるということです。 デスクトップOSに加えて、サーバーOSについて考える人はほとんどいません。 しかし、Infernoはサーバーにとっても十分ではないようです。デスクトップについては沈黙しています。 したがって、InfernoをWindowsおよびLinuxと比較すると、Infernoは愛らしいものの、「おもちゃ」のOSであるという結論に達します。 おそらく将来、bash、apache、mysql、perl、vi、mplayerがInfernoに表示されると、多かれ少なかれ使用可能になります...未来が来たのは、約5年前に最後にInfernoを選んだときなどです。 しかし、何も変わっていません。Infernoにはまだbash、apache、mysql、perl、vi、mplayerがありません!
私の洞察は次のように説明できます:InfernoはもはやOSのようなものではなく、 Styxプロトコルを使用してネットワーク上で実行されているコンピューターのリソースを共有する通常のサービスです 。
はい、これは控えめに言っても、Infernoの正確な説明ではありません... ;-)しかし、すべてが即座に変更されました:Infernoに馴染みのあるソフトウェアがないため、不快感がなくなりました-通常のVim( Limbo !)、Bash、mc、Infernoのソフトウェア開発担当!
さらに、Infernoとの数日間のハードワークの後、私は通常、InfernoをOSとしてではなく、...プログラミング言語として考えるようになり始めました! :)たとえば、Inferno / Limboと私のお気に入りのPerlを比較できます。 どちらの場合も、プログラムを作成し、バイトコードにコンパイルしてから、仮想マシン内で実行します。 私のプログラムは、高レベルの抽象化と低レベルのシステムコール(syscall)にアクセスできます。 そのため、どちらの場合でも、ほぼすべてのタスクを実装でき、ほとんどの場合、同等の速度で動作します(ちなみに、これを確認するいくつかの テストを実施しました)。 唯一の大きな違いは、私のプログラムが対話する環境です。
- Perlは、「複数の方法」、構造、オブジェクト指向、機能(map、grep、sort、...)プログラミングスタイルなどの高レベルなものを多数提供します。 スカラー変数、型チェックの欠如、およびプログラミングを快適にする他の多くのこと。
- Infernoは非常にシンプルでエレガントな環境を提供し、POSIX / Linuxカーネル/ Glibcのアーキテクチャと実装の悪夢から私を隠しています。 また、使用するリソースをはるかに制御します(perlは大量のメモリを使用するだけでなく、単に食べるだけです!)、低レベルでのプログラミングを強制せずに:free()を呼び出す、ペンで文字配列から文字列を作成する、関数を呼び出す文字列などを比較またはコピーする必要があるたびに
これらの「Infernoとは」の定義はすべて、もちろん、Infernoの定義ではありません-Infernoは「コンパクトなオペレーティングシステム」です。 これらの定義は、単にインフェルノとの関係を説明しようとしています。 「インフェルノとは」ではなく、「インフェルノの使い方」。 たとえば、InfernoとPerlの比較を開始するとき、これはアプリケーションを開発する必要があるときにInferno / LimboまたはLinux / Perlを使用できるためです。 高い確率で、コードのサイズ、開発および実行の速度は同等になります。 このタスクに最適なプラットフォームを選択する必要がある場合は、いLinuxアーキテクチャでは非常にリッチで柔軟なPerlを選択するか、Infernoの素晴らしいアーキテクチャではそれほどリッチで柔軟ではないが非常にシンプルなLimboを選択します。
たとえば、Webページパーサー、ログアナライザー、およびその他のワードプロセッシングアプリケーションを記述する必要がある場合、Perlはこれらのタスクに適しています。 しかし、たとえば、非同期I / Oを備えた複雑なサーバーなど、より低いレベルが必要な場合は、Inferno / Limboでそのようなことが簡単かつ快適に1桁で記述されます。
Infernoの既存のアプリケーション(ブラウザなど)に関しては、理解しているように、これらはアプリケーションの例であり、それ以上のものではありません。 これは、システムの機能のデモンストレーションにすぎず、デモの場合は非常に印象的です!
全体として、Infernoはツールです。 たとえば、プログラミング言語と同じです。 そして、このツールは長い間、実際の商用アプリケーションで使用する準備ができていました。 また、他のツールと同様に、一部のタスクでは他のタスクよりもはるかに優れています。 しかし、 次回については。