OSの最強科学普及入門(Unix/Linux記事)

皆さんこんにちは、シャオザオ・ジュンです。

今日の記事では、オペレーティング システム ( Operating System )について話しましょう。

オペレーティング システムに関しては、誰もがよく知っています。私たちは毎日オペレーティング システムと接触しています。デスクトップ コンピューターやラップトップ コンピューターでは Windows と macOS システムを使用し、携帯電話やタブレットでは Android (Android) と iOS システムを使用します。

情報通信業界に従事している場合、ubuntu、CentOS、Fedora などの Linux システムを扱うことがよくあります。

実際、オペレーティング システムには、私たちが知っているよりもはるかに多くの種類があります。

使用シナリオの観点から、オペレーティング システムは、デスクトップ オペレーティング システム、サーバー オペレーティング システム、モバイル端末オペレーティング システム、組み込みオペレーティング システム、モノのインターネット オペレーティング システム、およびクラウド オペレーティング システムに大別できます。

以下の表に示すように:

081c3fbd8178677f9f14f6bf23d56fb3.png

では、オペレーティング システムとは一体何でしょうか?

本質的に、オペレーティング システムは実際にはソフトウェアのセットです。

基盤となるソフトウェアに属し、大きな家政婦とも言えます。すべてのハードウェアと上位レベルのソフトウェア (ミドルウェア、データベース、アプリケーションなど) を管理および接続し、割り当てられたタスクを完了するためにリソースを展開する責任があります。ユーザーによる。

10b0876770ef054bb366ce6675d06607.png

オペレーティング システムは、基礎となる多くの複雑なタスクを処理するため、アプリケーション ソフトウェア開発の困難さが大幅に簡素化されます。

たとえば、ビデオ プレーヤーを開発する場合、基礎となるハードウェア コードを記述する必要はありません。

オペレーティング システムのもう 1 つの重要な機能は、ユーザーの使用を容易にすることです。

オペレーティング システムを使用すると、ユーザーはコンピューターをより適切に管理し、人間とコンピューターの対話 (コマンドの発行、クエリ結果およびステータス) を実行できるようになります。

初心者がオペレーティング システムを学習する際に最も面倒なことは、名前とカテゴリを認識することです。次に、Xiao Zao 氏は、オペレーティング システムのすべての関係をタイムラインの観点から整理しました。

█ オペレーティングシステムの誕生

OSはコンピュータが誕生したときに存在していたものではありません。

1946年2月、アメリカのペンシルバニア大学で世界初の電子コンピュータが誕生し、その名はENIAC(エニアック)といいました。

ENIACは多数の電子管(真空管)で構成されており、面積170平方メートル、重さ30トン、消費電力174キロワットと非常にかさばります。計算能力に関しては、1 秒あたり 5000 回の加算演算を達成できます。

09a9b62cf150967fd343dd5097dceb4a.jpeg

この初期のコンピューターにはモニターもキーボードもマウスもなく、すべて手動で操作されました。

使用時には、専用のオペレーターが計算情報をパンチカセットに記録します。システムが起動すると、カセット情報を読み取り、計算を実行し、最終的に結果を出力します。

2f3d77a35039afe2bc1af152d01595d1.jpeg

パンチカセット

コンピューターは速いですが、人間は遅いです。したがって、コンピュータは常に待機状態にあり、オペレータからの入力を待ちます。

これにより、コンピューティング効率が大幅に遅れ、時間とお金 (電気代) が無駄になります。そこで 1950 年代になるとバッチ処理システム(バッチ処理)が登場し始めました。

バッチ処理システムでは、オペレータは、ユーザが投入したジョブを分類し、一連のジョブを「ジョブの実行順序」にまとめます。ジョブの各バッチは、特別に用意された監視プログラム (モニター) によって自動的かつ順次処理されます。

この「監視プログラム」がオペレーティングシステムの原型となります。これはオペレーティング システムの誕生を示しました (1955 年)。

バッチ処理システムを最初に採用したのは第2世代汎用コンピュータであり、代表的な製品はIBMの1401や7094であった。

2ba8a2d784983c917b39474349b75629.jpeg

バッチ処理は効率を向上させますが、依然として欠陥があります。

たとえば、ジョブが I/O (入力/出力) を実行している場合、ホストは操作が完了するまで待機し、アイドル状態のままになります。別の例として、コンピューターは同時に 1 つのバッチ処理タスクしか実行できませんが、効率は依然として低すぎます。

1960 年代には、集積回路技術が急速に発展し、より高速なプロセッサ、より大きなメモリ、より豊富な I/O デバイスが登場しました。同時に、チャネルおよび割り込みテクノロジが登場し、システムが「ハング」操作を実行できるようになりました。

したがって、「マルチプログラミング システム」が存在します。

簡単に言うと、コンピュータ システムはシリアルからパラレルに変わり、複数のタスクを同時に実行できるようになりました (複数のプログラムがメモリに配置され、CPU で交互に実行され、ハードウェアとソフトウェアのリソースが共有されます)。

マルチプログラミングシステムによりコンピュータの作業効率が大幅に向上しました。その後、システムは複数のユーザーの同時使用をサポートしました。したがって、「マルチユーザー+マルチタスク」のシステムとなり、これを「タイムシェアリングシステム」と呼ぶ。

「タイムシェアリング」は、通信分野における「時分割多重化」に似ており、プロセッサの実行時間を非常に短いタイムスライスに分割し、タイムスライスに従って各ジョブに順番に割り当てます。

その後もテクノロジーは進化を続けました。最後に、より時間に敏感な「リアルタイム オペレーティング システム」が登場しました。このシステムは、現代のオペレーティング システムの概念に非常に近いものです。

0bb31c0f3ef7f01e282cdedf17888d88.png

UNIXの誕生

1964 年、American Telephone and Telegraph Company (AT&T)、General Electric Company (GE)、およびマサチューセッツ工科大学 (MIT) は協力して、スーパー タイムシェアリング オペレーティング システムの開発計画を提案しました。

このプランは Multics OS と呼ばれます。Multicsとは「MULTiplexed Information and Coputing System(多重化情報計算システム)」を意味します。

当時、彼らはこのシステムを使用して、1,000 台の端末を接続し、同時に 300 人をオンラインで満足させることができるコンピューターを構築することを計画していました。

この計画は 5 年間続きましたが、設定された目標を達成できませんでした。そのため、1969年にAT&T社傘下のベル研究所(ベル研究所)が撤退を発表した。

ベル研究所が撤退した後、関連するプロジェクト チームのメンバーは暇になってしまいました。そのうちの1人はケン・トンプソンでした。

30e56196ae468f781a6e1a1582e6257f.jpeg

Ken Thompson は以前、Multics で「Space Travel」というゲームを開発しました。Multics プロジェクトを辞めた後、Ken Thompson はゲームをプレイし続けることができなくなりました。

そこで、彼は気まぐれに、このゲームを実行するために、アイドル状態の PDP-7 (DEC が製造した非常に性能の低い小型コンピュータ) 上で簡単なオペレーティング システムを開発することを計画しました。

1969 年 8 月、ケン トンプソンは妻が親戚を訪問するために帰省しているのを利用し、アセンブリ言語を使用して 1 か月間かけて Multics システムの簡略版を作成しました (カーネル プログラムのセット、いくつかのカーネル ツール プログラム、および小規模なプログラムを含む)。ファイルシステム)。

研究室の同僚はこのシステムをユニックスと名付けました。接頭語としての Uni は「単一の、1 つの」を意味します。Unics は Multics に対応し、「一方向の情報およびコンピューティング システム」を意味します。

その後、誰もがその同音異義語を採用し、それを直接「Unix」と呼びました。

7221eedade36aa3e90230b3e2288d3c8.jpeg

仕事中にチェスをするケン・トンプソン

アセンブリ言語に基づいて記述された Unics はハードウェアの汎用性が低く、移植して他のマシンで実行することはできません。そこで、Ken Thompson 氏は BCPL、PASCAL 言語を使って書き換えることを試みました。ただし、その効果は理想的なものではありません。

このとき、同僚のデニス・リッチー(Dennis Ritchie)が前に出ました。

5a6cb73e1dfb85b6e62d03a1c06ea0a8.png

デニス・リッチーは、後のC 言語である BCPL 言語 (つまり、B 言語) に基づいて新しい言語を開発しました(アルファベット順では、B の後に C が続きます)。

その後すぐに、デニス・リッチーが C 言語で Unics を書き直すことに成功しました。このようにして、Unix オペレーティング システムが正式に誕生しました。

a549cf4ee9c681f733d10c90be23b0d1.jpeg

DEC PDP-11 コンピューターの操作

ケン・トンプソン(座っている)とデニス・リッチー(立っている)

1973 年、デニス リッチとケン トンプソンは Unix の存在を発表する論文を正式に発表しました。このニュースは大きな反響を呼び、多くの人が Unix を学び、研究することを期待しました。

ベル研究所 (AT&T) が Unix を発売した後、米国政府による独占禁止法制裁のため販売できなくなりました。したがって、彼らは Unix をすべての人に無料で提供することしかできません。

しばらくして、AT&T は Unix システムのバージョン 5 をリリースし、教育機関にライセンスを供与しました。1975 年に、彼らは最初に Unix バージョン 6 を企業に 20,000 ドルでライセンス供与しました。

この時期、多くの企業や機関が Unix について検討し始めました。

1977 年、バークレー大学の大学院生であるビル ジョイは、Unix プログラムをテープに編成し、BSD バージョンを開始しました。BSD は、Berkeley Software Distribution (バークレー ソフトウェア ディストリビューション) です。

1978 年に、SCO (サーバー システム ソフトウェア ベンダー) が Unix の商用版をパッケージ化してリリースしました。

現在認識されている最も完璧なバージョンは、1979 年にリリースされた System V7 です。このバージョンは、Unix プレイヤーからは「最後の本物の UNIX」とも呼ばれています。

1980 年、米国国防高等研究計画局 (DARPA) は TCP/IP プロトコルの策定を準備し、BSD と協力することを選択しました。これは Unix の開発と人気を大いに刺激しました。

その後、デニス・リッチとケン・トンプソンは Unix の父、そして C 言語の父として称賛されました。1983年、両者はチューリング賞を受賞した。

017365ebe8ac6bd04e982d293af446e8.jpeg

System V7 の発売後、AT&T は Unix ソース コードを私有化するために新しい使用条件を発行しました。Unix は商用クローズド ソースに向けて動き始めました。

多くの企業が Unix システムの独自のブランチを立ち上げています。有名なものではSunのSolaris、IBMのAIX、Hewlett-PackardのHP-UX、BSD版から開発されたFreeBSDなどがあります。

Xiaozao 氏は Solaris システムに精通しています。当時、私は Solaris を通じて Unix を学びました。安定性が非常に高く、主にSUNのサーバー(V240/V440など)で採用されており、SPARCと呼ばれる全く別のCPUとなっています。

FreeBSD の適用範囲はさらに広いです。BSD ライセンス契約に基づいて公開されており、世界中のボランティアによって開発および保守されており、誰でも自由に使用および配布できます (著作権およびライセンス契約情報を保持することを前提としています)。

Apple の OS X は FreeBSD をベースにしています。

Unix のクローズドソース ブランチの詳細についてはこれ以上述べませんが、写真を掲載します。以下を参照してください。

0eab5ef5659222152722c96adec86593.jpeg

Linuxの誕生

Unix が課金を開始し、商用ソースを閉鎖した後、おじさんからの不満が生じました。この叔父の名前はリチャード・マシュー・ストールマン(リチャード・マシュー・ストールマン)です。

14ca5859b662d642594d76cf1fa1f794.jpeg

リチャード・マシュー・ストールマン

1984 年に、彼はフリー ソフトウェア システム GNU (GNU は Unix ではありません) を開始し、Unix のインターフェイスと使用法を模倣し、オープン ソース バージョンを再開発しました。また、FSF(Free Software Foundation、フリーソフトウェア財団)の設立を組織し、GPL(General Public License、一般公衆利用許諾書)の起草も行った。

4ba60b7b7af839ad93a9a6c85de0e2d4.png

GNU の有名な雄牛の頭のロゴ

ストールマン氏のアプローチは画期的な意義を持つ。彼はオープンソース ソフトウェアの黄金時代をもたらしました。

GPL 契約に基づくすべてのフリー ソフトウェアは、「コピーレフト (非著作権)」原則に従わなければなりません—

つまり、ユーザーが自由にコピー、改変、販売できるフリーソフトウェアです。ただし、ソース コードに変更を加えた場合は、すべてのユーザーに公開する必要があります。

1990 年代初頭までに、GNU プロジェクトは、有名な emacs 編集システム、bash シェル プログラム、gcc シリーズ コンパイラー、gdb デバッグ プログラムなどを含む、多くの高品質なフリー ソフトウェアを開発しました。

これらはすべて、後に Linux が誕生する条件を作り出しました。

Unix ソースコードが民営化されてからは、大学で Unix ソースコードを使用することは許可されなくなりました。

1987 年、オランダのアムステルダム自由大学コンピュータ学部のアンドリュー S. タネンバウム教授 (アンドリュー S. タネンバウム、タン ニンバンとも訳される) は、AT&T ソース コードを一切使用せずに教室でオペレーティング システムのコースを教えることにしまし。自社開発の Unix 互換オペレーティング システム。

32b2196af2947f41c2059956de5e7b3e.png

アンドリュー・タネンバウム

彼はこのシステムをMini-UNIX (小さな UNIX) を意味するMINIXと呼びました。

MINIX の主な動作プラットフォームは、IBM PC とその互換マシンです。この PC には、Intel の 16 ビット プロセッサ、Intel 8080 が搭載されていました。

MINIX を開発した後、タネンバウム教授はそれを大々的に推進しませんでした。さらに、このシステムは教育目的でのみ使用されるため、それ以上の開発は行われていないと彼は考えています。

彼は他人がコードを追加することすら許可していない(おそらく Unix への侵害を恐れて)ので、MINIX の開発と普及はさらに制限されている。

1991 年、フィンランドのヘルシンキ大学に留学していた Linus Torvalds はUnix に非常に興味を持ち MINIX を使用して日常業務を遂行しようとしました。

MINIX の機能は Linus のニーズを満たすには弱すぎます。そこで、彼は開発環境として GNU bash を、コンパイル ツールとして gcc を使用し、 10,000 行のコードを含むLinux カーネル (Linux カーネル)を記述することに成功しました。

この時、ライナスはまだ21歳でした。

80584fedc78d69eb8754559659cd535e.jpeg

ライナス・トーバルズ

Linus の Linux カーネルは、POSIX (コンピューティング システム用ポータブル オペレーティング システム インターフェイス) 標準に基づいており、ほとんどの Unix オペレーティング システムと互換性があります。

彼はそれをリリースするときに、GPL 契約と GNU の目的に従うことを選択したため、正式にリリースされたときは「GNU/linux」という名前が付けられました。

3b69f240986be6b81ad12d1776e5f693.png

Linuxのマスコットはペンギン(英語名:Tux)

ライナスは子供の頃にペンギンに噛まれたのでとても感動していました

 Linux と Unix の関係

ここでは特に Linux と Unix の関係について説明したいと思います。

多くの人が Linux を Unix だと思っていますが、それは明らかに間違っています。上記の紹介から、Linux はオープンソースのフリー ソフトウェアであるのに対し、Unix はソース コードの知的財産保護を実装する伝統的な商用ソフトウェアであることがわかります。両者は全く別のものです。

では、Linux は Unix に似た (Unix のような) システムなのでしょうか?

厳密に言えば、いいえ。

Linux はスタイル的には Unix に似ていますが、Unix コードは含まれていません。UNIX のソース コードは SCO が所有しています。UNIXの商標権および規格識別権はOPENGROUPに帰属します。


本当の意味での Unix ライクなシステムは、公式の認証に合格する必要があります (Apple の MacOS など)。Linux はそうではありません。

 Linux ディストリビューション

皆さん注意してください、Linus が 1991 年に開発したのはオペレーティング システムではなく、カーネルでした。

その後、世界的な開発者 (オープンソース コミュニティ、企業、個人など) がカーネル コードに多くの変更と補足を加え、GUI (グラフィカル インターフェイス)、アプリケーション、その他の部分を追加して、対応する Linux オペレーティング システム ディストリビューションを形成しました。は、実際の Linux オペレーティングシステムです。

これらのディストリビューションは、コミュニティ エディションと商用エディションに分かれています。コミュニティ エディションが多数あり、開発と保守の主体はオープンソース コミュニティです。商用版の数は少なく、コミュニティ版をベースにさらに最適化されています。

リリース間には複雑な派生関係もあることに言及する価値があります。つまり、ディストリビューションは別のディストリビューションの上に構築できます。

よく知られているディストリビューションには、Ubuntu、Debian、Centos、Fedora、Redhat Linux、Slackware、Turbolinux、Mandrake、SUSE、Red Flag、Kirin などがあります。

5463d723a38aa51df6363ec41011bb8b.png

Slackware と Debian の 2 つは、1993 年に作成された最も古いディストリビューションです。

d504b7adbe6721b1a2840449e3c8c0f8.png

Debian の子孫ブランチは比較的大規模です。Debian 自体に加えて、このブランチの主な代表例は、Ubuntu (Debian 上に構築)、LinuxMint (Ubuntu 上に構築)、Kali Linux です。

26df262ea2672ad5be5935d7667dd4d4.png

Redhat、つまり皆さんご存知のRed Hatシリーズです。その主要なディストリビューションは、企業顧客を対象とした Red Hat Enterprise Linux (RHEL) です。

40ea0acb4c10f68794471556f80b45ca.png

CentOS は RHEL ソース コードを再コンパイルした製品であり、多くのバグが修正され、より安定しています。

f1dd7ce39cf432f8c2af4b7f9b3a8d23.png

RHEL に加えて、Redhat はコミュニティに別の無料ディストリビューション、つまり Fedora も提供しています。

f7946948d1362d0cca08fd9e2697d8db.png

これらのリリースの具体的な関係とリリース時期を次の図に示します。

c4ae4a41a20b8f7825ab257bb490a775.jpeg

Xiaozao氏は基本的に上記のOSを使用してきました。2005 年に初めて仕事を始めたとき、Debian、RHEL、Solaris を使用していました。その後、Fedora を使い始めました。その後、CentOSになりました。使い始めは違和感があって不快でした。でも慣れてしまえばとても気持ちいいです。

2020年末、Red HatはCentOSのメンテナンスを次々と終了し、今後は正式なアップグレードやパッチが入手できなくなると発表した。残念ではありますが、後述する国産OSにとってもチャンスをもたらします。

 続きます...

そうは言っても、誰もが Unix および Linux オペレーティング システムのファミリー コンテキストについて基本的な理解を持っている必要があります。

次の記事では、Xiaozao 氏がWindowsmacOSの分野に焦点を当てます乞うご期待!

この記事が良いと思ったら、たくさん転送してください!ありがとう!

a86f8fdd6b3a86022d1773c5c213ee1b.jpeg

おすすめ

転載: blog.csdn.net/qq_38987057/article/details/130633404