1970 年代のこれら 5 つの Unix アイデアは、Linux が今でもうまく機能する理由です
人々は Linux を最新のオペレーティング システムだと考えていますが、Linux は 50 年以上前のアイデアを体現しています。ここでは、最も古いアイデアのいくつかと、それらが最新の Linux ディストリビューションに残っている理由を紹介します。
ディレクトリ構造
ファイルのツリー
ディレクトリ構造についてあまり深く考えないかもしれませんが、これは、「Unix タイムシェアリング システム」という論文がコンピュータ サイエンス ジャーナルに掲載されたときにコンピュータ科学者を驚かせたものの 1 つでした。 ACM の通信 ファイル システムは階層構造であり、今では日常的になっていますが、当時は画期的な概念でした。
ディレクトリ構造は、今日でも Linux を含む Unix 系システムの特徴となっています。ディレクトリは、木の枝が中央の幹から伸びるように、中央のルートまたは「https://www.howtogeek.com/」ディレクトリから扇状に広がります。 DOS や Windows とは異なり、ドライブ文字はありません。これは、ディレクトリ ツリーが物理ハード ドライブや SSD、固定ドライブと USB スティック、SSD や光ディスクなどの複数のデバイスにまたがることができることを意味します。これにより、ファイル システムに大きな柔軟性が与えられます。
プロセス
コマンドラインから異なるプロセスを同時に実行できます
MS-DOS などの他のシステムはシングルタスクでしたが、Unix が常に備えていたことの 1 つはマルチタスク機能です。マルチタスク機能により、ジョブ制御などが可能になりました。
ジョブをバックグラウンドに置くことができます。これは、時間がかかることがわかっている作業に便利です。
some_long_process &
このコマンドにより、some_long_process をバックグラウンドに置くことで、シェルを制御できるようになります。そうしないと、実行中に何もできなくなります。
シェルでプロセスを開始し、時間がかかる場合は、Ctrl+Z を押してプロセスを一時停止し、シェルを戻すことができます。 「bg」コマンドを使用して、一時停止したプロセスをバックグラウンドに移すことができます。
bg
ジョブ コントロールは元々、テキスト専用端末がより一般的だった時代に作成されました。 X11 のようなウィンドウ システムが普及すると、あまり使用されなくなりましたが、ターミナル ウィンドウを利用したい場合には依然として便利です。
パイプライン
想像もできなかった方法で入力と出力をリダイレクトする
「パイプライン」の概念は、Unix が Linux に与えた最も永続的な影響かもしれません。 Unix プログラムでは、入力と出力をシェルでリダイレクトできます。
プログラムは、システム上のすべてのプロセスをリストする ps プログラムなど、その出力をファイルに送信できます。
ps aux > allprocs
また、シェル スクリプトの実行など、ファイルからの入力をリダイレクトします。
sh > command_list.sh
しかし、パイプラインが最も重要かもしれません。あるコマンドの出力を別のコマンドの入力に送信します。私のお気に入りの 1 つは、fortune コマンドからの出力を虹色のテキストに変換する楽しいものです。
fortune | lolcat
C 言語の作成者の 1 人であるブライアン カーニハンが、1982 年のベル研究所のプロモーション フィルムで、既存のコマンドライン プログラムからスペル チェッカーを作成する様子を見ることができます。
C のオープンソース コード
C は複数のマシンで実行するための鍵です
Unix 自体はオープンソースではありませんでしたが、ベル研究所から Unix を入手した大学はソース コードにアクセスできることがよくありました。 Unix が他のオペレーティング システムと異なる点の 1 つは、主要コンポーネントが高級言語 (デニス リッチーによって作成され、C 言語) で書かれていることです。 C プログラミング言語、ブライアン・カーニハンとデニス・リッチーによる、略称「K&R」。
以前は、オペレーティング システムはアセンブリ言語で記述されていました。アセンブリ プログラムは高速ですが、プログラミングは面倒で、プログラムは特定のマシンまたはアーキテクチャに関連付けられています。 C はコンパイル言語であったため、C で書かれたプログラムを別のマシンで実行するには、そのマシン用のコンパイラを作成するだけで済みました。
理論上は移植性が向上しました。あるマシンで書かれた C プログラムをコンパイルして別のマシンで実行するのは比較的簡単でしたが、ほとんどの人は早い段階で Unix マシンで C プログラムを書いたため、Unix に関することを当然のことと考える傾向がありました。これにより、これらのプログラムは別のオペレーティング システムでは動作しなくなります。これを回避する 1 つの方法は、環境を新しいマシンに移行することでした。言い換えれば、そのマシンに Unix を移植します。 Cは高級言語なので、機種依存部分を変更するだけで実現できました。
ユーザーサポート
友人の少しの助けがあれば、Linux でやっていくことができます
Unix が開発されたとき、ベル研究所の親会社である AT&T は、米国における電話サービスの事実上の独占と引き換えに同意命令を受けていました。実際の結果は、AT&T は電話サービス以外の製品を販売できないということでした。これは、Unix を商業製品として合法的に販売できないことを意味します。 AT&T は、子会社の Western Electric 傘下で、テープの送付費用と同程度の料金で Unix を大学や研究機関に提供していました。
これは、AT&T がサポートを提供しないことも意味します。 Unix ユーザーは、修正とアップグレードで自分自身をサポートする必要があります。ユーザーは、有名な Usenix を含むユーザー グループを形成しました。Usenix は、単独で主要なコンピューター サイエンス カンファレンスに成長しました。コンピューター サイエンスの学部生と大学院生は、自分たちがその課題に取り組むことができることに気づきました。派生企業の 1 つは、1970 年代後半にカリフォルニア大学バークレー校で設立された BSD (Berkeley Software Distribution) です。
現在でも、ユーザー グループ、フォーラム、サブレディットを通じて直接のサポートを見つけることができます。
低電力ハードウェアの利用
PDP-7 ではないかもしれませんが、古いマシンを掘り出します。
Linux ユーザーの誇りの 1 つは、古いラップトップなどの古いハードウェアで Linux ディストリビューションを実行できることですが、この伝統は Unix 自体にも当てはまります。 Ken Thompson と Dennis Ritchie が Unix に取り組み始めたとき、それはベル研究所が当時の Windows Vista となる可能性がある MULTICS プロジェクトから撤退した直後でした。これは、現在「クラウド コンピューティング」と呼ばれるものを作成することを目的とした野心的なプロジェクトであり、電力や水道と同じようにアクセスでき、(少なくともアメリカでは) 信頼性の高いコンピューティング ユーティリティと同等のものを作成することを目的としていました。
MULTICS は予算を超過して遅れましたが、1970 年代にメインフレームに登場します。トンプソンとリッチーは、それほど強力ではないハードウェアにアクセスできました。彼らは、Digital Equipment Corporation の PDP-7 を強奪しました。これは、今日の古い PC を再利用するのと似ています。
Unix の伝統を継承する
階層ディレクトリ ツリーから移植可能な C コードに至るまで、Linux は Unix で開拓された多くの伝統を継承しています。過去の最良のものをベースにしながら、未来を見据えて構築されています。
このテーマについてさらに詳しく知りたい方は以下をご覧ください