あなたが知らないかもしれないUnixオペレーティングシステムの歴史

あなたが知らないかもしれないUnixオペレーティングシステムの歴史

Unix の開発は、間違いなく、コンピューティングの歴史のこの時期における最も重要なマイルストーンの 1 つです。 このオペレーティング システムは、階層構造のファイル システムなど、今日の情報技術における最も基本的な概念のいくつかを導入しただけでなく、Apple の macOS や iOS、オープン ソースの Linux など、他の多くのシステムの基盤にもなっています。 これにより、Ubuntu、Debian、モバイル Android など、数え切れないほどの派生製品が誕生しました。 しかし、Unix はどのようにして最も影響力のあるコンピュータ管理アプリケーションの 1 つになったのでしょうか。また、開発チームが初期のアイデアをすべて黒板とメモ帳に書き留めることができたのはなぜでしょうか。

Unixオペレーティングシステムの歴史

Multics共同プロジェクトが基礎を築く

1965 年、ワーキング グループが Joint Computer Conference で新しいオペレーティング システムのアイデアを発表しました。 このグループは、MIT、ゼネラル・エレクトリック、ベル研究所、またはAT&T(2016年からノキアの研究開発部門の一部)の従業員で構成されています。 彼らは、このオペレーティング システムを Multiplexed Information and Computing Service (略して Multics) と名付けました。 彼らは根本的に新しいアプローチを追求し、Multics は、基盤となるプロセッサの計算時間を共有することで複数のユーザーが 1 台のコンピュータで同時に作業できるようにした最初のシステムの 1 つとなりました。

Multics ワーキング グループは、プロジェクトを開始するために、特定の要件を満たすコンピューターを必要としていました。一方では、IBM が開発に使用していた高水準プログラミング言語である PL/I を使用できるように、明確にフォーマットされた命令を備えている必要がありました。 一方、メモリ管理におけるパフォーマンスの低下を最小限に抑えるには、スケジュールされたマルチユーザー操作と非同期作業をサポートする必要があります。 この目的のために、ゼネラル・エレクトリック社の GE-635 と、後に GE-645 が選ばれました。 この開発は、1960 年代に MIT で開発され、すでに稼働していたマルチユーザー システム CTSS 上で実行されました。 PL/I コンパイラ開発の遅れ、財政上のボトルネック、内部の意見の不一致、そして外部からの圧力の高まりにより、ベル研究所は最終的に 1969 年にプロジェクトから撤退しました。

Multics が Unix になる

Multics は MIT でさらに開発され、その後、ゼネラル・エレクトリック (GE) による買収後 (1986 年まで)、Honeywell International によって Honeywell 6180 マシン上で商用配布されました。 しかし、当時ベル研究所で働いていたコンピューター科学者のケン・トンプソンは、マルチユーザー システムを諦めることはできませんでした。彼は、デニス・リッチーと AT&T の小さなチームとともに、多変量物理学の原理に基づいた独自のシステムの計画を開始しました。 しかし、当初は適切なコンピュータの探索は無駄に終わりました。ベル研究所が適切なコピーの購入を拒否したため、開発者たちはメモや計画中のファイルシステムの進捗状況をメモ用紙や黒板に記録し始めたのです。

最終的に、計画されたプロジェクトのために、Digital Equipment Corporation (DEC) の中古 PDP-7 ミニコンピュータが購入されました。 このコンピュータ システムは、壁ユニットほどの大きさしかありませんでしたが、GECOS (General Electric Integrated Operating System) で動作し、それ以来開発プラットフォームとして機能してきました。 コマンドライン (SH) やエディター (ED) などの貴重なソフトウェア ツールは、既存の紙のファイル システムとともに急速に開発されました。当初はまだアセンブリ言語 (ハードウェア指向ですが、人間向けに簡略化されています) でした。 新しいオペレーティング システムでは、Multics とは異なり、同時に 2 人のユーザーしかプロセスで作業できないため、チームはテンプレートに基づいてそれを Unics と名付けました。 GECOS のファイル名の長さ制限のため、最終的には Unix を使用することが決定されました。

まずB、次にC: Unixに独自の高水準プログラミング言語が登場

ベル研究所のチームが Unix と他のいくつかの基本プログラムを作成した後、この目的で使用されるアセンブリ言語をより複雑でないバリエーションに置き換える時期が来ました。 しかし、既存の IBM 言語 Fortran を開発する計画はすぐに放棄されました。 代わりに、MIT で開発された PL/I (Multics 言語) と BCPL (Basic Combined Programming Language) を重視した独自の言語の開発が始まりました。 その後、リッチー氏とその同僚はシステムのツールの一部をこの言語で書き直し、1970 年にようやく新しい PDP-11 コンピューターを入手して、再び手法を再考せざるを得なくなりました。 これは、新しいシステム アーキテクチャが PDP-7 コンピュータやプログラミング言語 B のようなワード指向ではなく、バイト指向であるためです。

その後 2 年間で、ベル研究所は C の後継言語を開発しました。その構文やその他の機能は、C++、JavaScript、PHP、Perl などの多くの最新のプログラミング言語に採用されています。 1973 年に言語が十分に成熟すると、開発チームは Unix カーネル全体を C で書き直し始めました。この結果は 1970 年代半ばに Unix チームによって公開されました。 当時、AT&T は国営通信業界としてソフトウェアの販売を一切許可されていなかったため、同時に複数のプロセスも実行できるマルチユーザー システムである Unix (バージョン 6) が、関心のあるすべての大学に無料で提供されました。これには、システムをほぼすべてのプラットフォームで使用できるようにする C コンパイラも含まれていました。

ハードウェアフレンドリーでオープンソース: Unix が開発者シーンを制覇

当初はプログラミングの世界では単なるおもちゃに過ぎなかったこの新しいオペレーティング システムの成功は、教育機関向けの Unix ソフトウェアのリリースによってすぐに明らかになりました。 この間、IBM メインフレームおよび PDP マシン上の一般的なワークフローは、RSX-11、RT-11、IST などのローカル システム上で引き続き実行されていました。 しかし、開発者にとって、カーネルや個々のアプリケーションに付属するソース コードの価値は、単なる学習効果以上のものでした。Unix のハードウェア要件の低さと可用性の高さは、実験とさらなる開発を促し、特にカリフォルニア大学バークレー校 (トムソンの元出身校) で歓迎されました。ただし、1976 年に同校の新設コンピューター サイエンス部門で客員教授を務めていたことも重要な役割を果たした可能性があります。

当時の大学院生 2 人、ビル・ジョイとチャック・ヘイリーは、トンプソンが開発した Pascal システムを改良し、ex でまったく新しいテキスト エディターを作成しました。ex は vi の前身であり、現在でも Unix システムの標準インストールに含まれています。 1977 年、ジョイの指揮の下、それまでの改良とさらなる開発を組み込んだ Unix の修正版が登場しました。後に TCP/IP ネットワーク プロトコルを Unix の世界に統合し、独自の BSD ライセンスのおかげで初めてフリー オペレーティング システムの要件を満たすことができた Berkeley Software Distribution (BSD) は、現在までで最も重要な Unix の変更の 1 つと考えられています。

1980年代: 商業化とUnix戦争

その後数年間で、財務などの他の側面に焦点を当てたものも含め、さらに多くの改良が開発されました。 たとえば、Microsoft は 1979 年に、Intel や Motorola などのプロセッサ向けの移植版を開発するために Unix V7 のライセンスを取得しました。 翌年、同社は Xenix をリリースしました。これは当初、PC の標準オペレーティング システムとなる予定でしたが、最終的にはハードウェアに過大な要求を課すことになりました。 マイクロソフトは最終的に、OS/2 と MS-DOS のさらなる開発に注力するために、ソフトウェア メーカーの SCO (Santa Cruz Operation) にさらなる開発を引き継ぎました。

1982 年、ビル・ジョイが新しい会社であるサン・マイクロシステムズとともにグループに加わりました。サン・マイクロシステムズは、サーバーとワークステーション専用に設計された独自の BSD ベースのシステムである SunOS (Solaris の前身) を採用していました。

しかし、Unix ファンにとっての本当の戦いは、商用配布のライセンスを取得した AT&T と、多数のプログラマーのサポート基盤により価値ある革新を強調することができたバークレー大学との間で繰り広げられました。 AT&T は最初、Unix V7 をベースにした System III (1981) と System V の新しい最適化バージョン (1983) で市場を征服しようとしました。 その後、バークレーは同時に 4.3BSD をリリースし、18 か月以内に 1,000 のライセンスを発行しました。 このため、Berkeley 版の Fast File System (FFS) とネットワーク機能 (TCP/IP の統合による) が欠如していた有料版の System V よりも人気が高まりました。

System V の 4 番目のリリース (1988 年) で、AT&T はこれらと他の多くの BSD 機能、さらに Xenix と SunOF を実装し、多くのユーザーが商用オプションに切り替えました。

ありがとう、ペンギン: ​​Unix がサーバーソリューションになる

当初はさまざまな Unix システムが売上と顧客ロイヤルティを競い合っていましたが、Apple と Microsoft の競争はパーソナル コンピュータの分野で始まり、後にサーバー分野にまで広がりました。 マイクロソフトが家庭用 PC の競争に勝利した一方で、Unix コンセプトに基づくシステムが 1991 年に Linux とともに登場し、その後数年間でサーバー環境を制覇しました。 自由にライセンスされたカーネルと無料で入手できる GNU ソフトウェアのおかげで、開発者の Linus Torvalds は競争力のあるオープン ソース オペレーティング システムに対する願望を実現し、当時の市場を獲得しました。

現在でも、Debian、CentOS、Red Hat、Ubuntu などの多くの Unix Linux 派生製品が、さまざまなサーバーのシステム ソフトウェアとして使用されています。 特にUbuntuは家庭用PCの間で人気が高まっています。 これまでに 1 つの記事で取り上げた Linux は、今日のソフトウェアの世界における唯一の重要な Unix の後継ではありません。Mac OS X 10.0 または Mac OS X Server 1.0 以降、Apple のオペレーティング システムは、フリーの BSD バリアントである Darwin を基盤として使用しています。 Berkeley Unix 自体は、Free BSD、Open BSD、Net BSD など、他の多くのフリー派生製品の代用として何度も使用されてきました。

モバイル デバイスで最も広く使用されている 2 つのオペレーティング システム、iOS (macOS と同じシステム ベース) と Android (Linux カーネル ベース) も Unix ファミリーに属します。

Unix とは何ですか? システムの最も重要なマイルストーン機能

Unix が導入されたとき、その注目すべき機能の多くはまったく新しいものであり、Unix 系システムやディストリビューションの開発に影響を与えるだけでなく、競合他社の Apple や Microsoft のオペレーティング システムにも採用されることが意図されていました。 Unix に取り組んでいた Richie、Thompson、および彼らの同僚たちは、特に以下の特徴を考慮すると、当時の近代的なオペレーティング システムの先駆者でした。

  • 階層型汎用ファイルシステム

Unix の基本的な部分は、最初から階層的に編成されたファイル システムであり、これによりユーザーはファイルをフォルダーに構造化できます。 「/」でマークされたルート ディレクトリには、任意の数のサブディレクトリを割り当てることができます。 「すべてがファイルである」という基本原則に従い、Unix はドライブ、ハードディスク、端末、またはその他のコンピューターをファイル システム内のデバイス ファイルとしてマップします。 Linux を含む一部の派生製品では、プロセスとその属性を procfs 仮想ファイル システム内のファイルとしてラベル付けします。

  • マルチタスク

Unix の成功のもう一つの決定的な要因は、複数のプロセスまたはプログラムを互いに干渉することなく同時に実行できることです。 オペレーティング システムは、最初からプリエンプティブ マルチタスク アプローチに基づいていました。 このアプローチを使用すると、スケジューラ (オペレーティング システム カーネルの一部) は、優先度システムを通じて個々のプロセスを管理します。 Apple と Microsoft が同様のプロセス管理ソリューションの実装を開始したのは 1990 年代後半になってからでした。

  • マルチユーザーシステム

Multics の主な目標は、複数のユーザーが同時に作業できるシステムを作成することでした。 このため、各手順とプロセスには所有者が割り当てられます。 Unix はもともと 2 人のユーザーに制限されていましたが、この機能は最初からシステム ソフトウェア パッケージの一部でした。 このようなマルチユーザー システムの利点は、単一のプロセッサのパフォーマンスに同時にアクセスできるだけでなく、関連する権利管理も可能であることです。 管理者は、さまざまなユーザーのアクセス権と利用可能なリソースを定義できるようになりました。 ただし、最初は、それぞれのコンピューターに関係するハードウェアも前提条件となります。

  • ネットワーク機能

1983 年にリリースされた 4.2BSD により、Berkeley の Unix はインターネット プロトコル スタックを統合した最初のオペレーティング システムの 1 つとなり、インターネットの基盤とシンプルなネットワーク構成を提供し、クライアントまたはサーバーとして機能する機能を提供しました。 1980 年代後半には、System V の 4 番目のバージョン (すでに説明) も商用 AT&T システムの派生版となり、伝説的なプロトコル ファミリにカーネルが追加されました。 Windows は TCP/IP 3.11 (1993) と適切な拡張機能のみをサポートする必要があります。

  • プラットフォームの独立性

Unix が作成された当時、他のオペレーティング システムとそのアプリケーションは特定のプロセッサ タイプに合わせて調整されていましたが、ベル研究所のチームは最初からポータブル システム アプローチを追求しました。 最初の言語はアセンブリ言語でしたが、システム ソフトウェアの基本構造が作成されると、プロジェクトでは新しい高水準のプログラミング言語が作成されました。 この言語は、C 言語の歴史的な前身です。 C で書かれたコンポーネントは依然として PDP マシンのアーキテクチャに密接に結びついていましたが、リッチー氏とその同僚は、コンパイラを含めて、それを作業の基礎として使用しました。 しかし、最近では、Unix V7 (1979) のメジャー リビジョンにより、このオペレーティング システムは移植可能なシステムとしての評判を獲得しました。

  • Unix ツールボックスの原則とシェル

Unix システムには多数の便利なツールとコマンドが組み込まれていますが、これらは通常、いくつかの特殊なタスク専用に設計されています。 たとえば、Linux では GNU ツールが使用されます。 一般的な問題解決では、特定の新しい手順を開発するのではなく、標準的なツールの組み合わせで答えを探すことが原則です。 最も重要なツールは常に、幅広いプログラミング オプションを提供するテキスト指向のコマンド インタープリターであるシェル (SH) でした。 このクラシック ユーザー インターフェイスは、グラフィカル ユーザー インターフェイスがなくても使用できますが、そのようなインターフェイスを使用すると、ユーザーの快適度が自然に向上します。 ただし、このシェルは経験豊富なユーザーにとっていくつかの重要な利点を提供します。

  • インテリジェントな自動補完により操作が簡素化されます
  • コピー&ペースト機能
  • インタラクティブ(直接アクセス)と非インタラクティブ(スクリプト実行)の状態が利用可能
  • 個々のアプリケーション(ツール、コマンド)をほぼ自由に組み合わせることができるため、柔軟性が高まります。
  • 標準化された安定したユーザーインターフェース。GUIでは必ずしも実現できるわけではない。
  • スクリプトの作業パスを自動的に記録する
  • アプリケーションを迅速かつ簡単に実装

最後に:オペレーティングシステムの仕組みを理解したいなら、Unixを見てください。

マイクロソフトとアップルの台頭は、その創始者であるビル・ゲイツとスティーブ・ジョブズに直接結びついており、間違いなく比類のないものです。 しかし、これら 2 つの大きな成功物語の基礎は、1969 年から 1974 年にかけての Dennis Ritchie、Ken Thompson、およびその他の Unix チームによる先駆的な取り組みによって築かれました。 Unix は独自の派生を生み出しただけでなく、階層型ファイルシステム、強力なシェル、高い移植性などの概念を他のオペレーティングシステムにもたらしました。 後者を実現するために、コンピュータ史上最も影響力のあるプログラミング言語である C がほぼ偶然に開発されました。

言語の可能性と一般的なオペレーティング システムの機能を理解するには、Unix システムほど良い例はありません。 古典的なバージョンを使用する必要すらありません。Gentoo や Ubuntu などの Linux ディストリビューションは、システムを最大限に制御するなどの基本的な機能を放棄することなく、現代のニーズに適応しています。 強力な Unix 基盤と適切に設計されたグラフィカル ユーザー インターフェイスのバランスを巧みにとった、初心者に優しい macOS では、可能性はさらに制限されます。

<<:  Apple と Samsung の携帯電話、購入時にどのように選択すればいいのでしょうか。どちらが優れているのでしょうか。

>>:  インドではなぜ医薬品がこんなに安いのでしょうか?理由はここにあります!

推薦する

同大新金融端末公式オリジナル版丨最新バージョンダウンロード丨バージョン番号 7.641

Tongdaxin Financial Terminal は、専門的な金融データ分析ソフトウェアで...

AnExplorer Pro Android版(Androidファイルマネージャー)v5.6.5修正版

📱AnExplorer Pro は、シンプルで使いやすいインターフェースと豊富な機能を備えた強力な ...

Wondershare Filmora v13.6.13.9072 多言語ポータブル版

Wondershare Filmora9 は、豊富な機能と特徴を備え、ユーザーが簡単に魅力的なビデオ...

優れた完全なビジネスプランを素早く作成するにはどうすればよいでしょうか?

企業、起業家、フリーランサーが直面する最大の問題の 1 つは、顧客に自社の製品やサービスを購入しても...

Fluent Reader (オープンソースの優れた RSS リーダー) v1.1.4

Fluent Reader は、モダンなデザイン スタイルを採用し、Windows、MacOS、L...

AMS PhotoMontage (複数写真合成ソフトウェア) v4.1 ポータブル版

AMS PhotoMontage は、AMS Software が開発した写真コラージュ ソフトウェ...

プログラミング スキルを向上させる: Visual Studio Code の生産性向上に役立つ 10 のヒント

Visual Studio Code は、間違いなくプログラミングに最適なテキスト エディターです。...

Icecream スライドショーメーカー (スライドショー作成) Pro v5.16 多言語ポータブル版

Icecream Slideshow Maker は美しいスライドショーを作成するためのソフトウェア...

チキンシミュレーター Android版(アーケードゲームモバイルシミュレーター)v1.8.6 中国語版

📱Chicken Simulator アプリは、さまざまなアーケード ゲームをプレイできるモバイル ...

JetBrains PhpStorm (PHP統合開発ツール) 2024.3.3 直接インストールアクティベーションバージョン

JetBrains PhpStorm は、PHP プログラミング言語専用の統合開発環境 (IDE) ...

IntelliJ IDEA2024 中国語アクティベーションバージョン v2024.2.2 中国語グリーンバージョン

IntelliJ IDEA 2024.1.4 最新公式バージョン。最新バージョンの IDEA2024...

Textify (テキスト強制コピーツール) v1.10.4 中国語版

Textify はシンプルですが、使い方は簡単です。主に、テキストのコピーをサポートしていないさまざ...

010 エディター (プロフェッショナル 16 進エディター) v15.0.1 英語ポータブル版

010 エディターは、プログラマー、開発者、ハッカーなどのユーザー向けに多くの高度な機能を備えた強力...

Dr. Folder (フォルダアイコン変更) v2.9.2.0 クラック版

Dr. Folderはフォルダアイコンを変更するソフトウェアです。これにより、ユーザーはフォルダー ...

Adobe Audition 2023 (AU2023 最新バージョン) v23.6.6.1 クラック版

Adobe Audition 2023 クラック版 (AU2023 最新バージョン) は、プロフェッ...