Linux オペレーティング システムの概要と紹介

Linux オペレーティング システムの概要と紹介

はじめに: コンピュータ分野の知識を学ぶ前の数年間、私は知識そのもののいくつかの基本的な要素について考えることに慣れていました: **1. それは何なのか; 2. それはどこから来るのか; 3. それは何ができるのか。 **また、私は、どんな技術を学ぶ前にも、これらの質問について考え、これらの質問を念頭に置いて学習を始める必要があるとますます感じています。そうしないと、誤解に陥ったり、目標が持てなかったり、混乱したり、始めから諦めるまでの時間をかけて学んだことを忘れたりしやすくなります。
したがって、Linux を学ぶ前に、まず Linux とは何か、その起源と特徴 (これを理解せず、学ぶだけで十分だ、なぜ起源を知る必要があるのか​​と考える友人もいるかもしれません。実際、私も最初はそう思っていましたが、どんなものにも背景があり、その背景の下で何らかの必要性や推進力から生まれるものであることがわかりました。では、なぜ他の技術ではなく、この技術が生まれたのかを考えてみましょう)、そして Linux の役割は何であるかを理解する必要があります。

1. オペレーティングシステムとは何か

Linux は、Windows に似たコンピュータ オペレーティング システムであり、システム ソフトウェアです。誰もがよく知っているオペレーティングシステムには、コンピュータオペレーティングシステムとして Windows、Linux、Mac OS などがあります。モバイルデバイスオペレーティングシステムとしてもっと有名なのは、Android、IOS、そして Huawei が最近リリースした Hongmeng です。

ここに画像の説明を挿入

オペレーティング システムの概念を理解するにはどうすればよいでしょうか?私たちは人生経験からコンピュータ システムの階層構造を理解しています。

シナリオ: コンピューターで QQ を使用して友人とチャットしたい場合、経験豊富なプログラマーがハードウェアを購入してベアメタル マシンを構成し、ベアメタル マシンに Linux オペレーティング システムをインストールし、QQ アプリケーションをインストールして、最後に QQ にログインして友人とチャットします。
ここに画像の説明を挿入
上記のシナリオのインストール プロセスでは、基盤となるハードウェア、オペレーティング システム、アプリケーション ソフトウェアなど、コンピュータ システムのボトムアップ階層構造について説明します。オペレーティング システムは、上位レベルと下位レベルをつなぐリンクです。ハードウェアやソフトウェア リソースなどのコンピュータ リソースを管理および調整し、上位レベルのアプリケーション ソフトウェアやユーザーにアドバイス サービスを提供します。したがって、オペレーティング システムはシステム ソフトウェアであり、基盤となるハードウェアに最も近いソフトウェアです。最も初期のオペレーティング システムは、アセンブリ言語または C 言語で記述されていました。

注: ユーザーとオペレーティング システム間の直接対話のためのインターフェイスは、シェル コマンドです。このバッチ コマンド インターフェイスにより、ユーザーは直接使用できます。

上記の説明に基づいて、オペレーティングシステムの定義を次に示します。オペレーティングシステム (OS) は、コンピュータシステム全体のハードウェアとソフトウェアのリソースを制御および管理し、コンピュータの作業とリソースの割り当てを合理的に整理およびスケジュールして、ユーザーと他のソフトウェアに便利なインターフェイスと環境を提供します。これは、コンピュータシステムで最も基本的なシステムソフトウェアです。


2. Linuxの起源

昔(1960 年代)、コンピュータはまだ普及しておらず、使用できるのはごく少数の人だけでした。当時のコンピュータ システムはすべてバッチ処理のオペレーティング システムでした。バッチ処理とは、一連のタスクを一度にコンピューターに送信し、計算結果を待つ間、その処理中にコンピューターを操作することができないプロセスです。一度に使用できるのは 1 人のユーザーのみであり、ジョブの I/O 入力の準備には長い時間がかかるため、コンピューター リソースが大量に浪費されます。

その後、1965 年にベル研究所、マサチューセッツ工科大学、ゼネラル エレクトリックが共同で Multics プロジェクトを開始し、当時広く使用されていたバッチ処理オペレーティング システムに代わる、マルチプログラミング機能を備えた対話型のタイムシェアリング オペレーティング システムを設計および開発しました。

タイムシェアリング オペレーティング システムを使用すると、コンピューターは同時に複数のユーザーにサービスを提供できます。コンピューターに接続している端末ユーザーは対話的にコマンドを発行し、オペレーティング システムはユーザーのサービス要求をタイム スライスのローテーション方式で処理し、結果を端末に表示します (オペレーティング システムは CPU 時間をタイム スライスと呼ばれる複数のセグメントに分割します)。オペレーティング システムはタイム スライスを単位として使用し、各端末ユーザーに 1 度に 1 つのタイム スライスずつ順番にサービスを提供します。

プロジェクトが失敗したのは、目標が大きすぎて複雑だったため、開発者が何をすべきか分からなかったためです。この経験に基づいて、ケン・トンプソンとデニス・リッチーは 1969 年にタイムシェアリング オペレーティング システムのプロトタイプを実装しました。1970 年に、このシステムは正式に「小さくて合理化された」という意味の UNIX と命名されました。


ここに画像の説明を挿入

デニス・リッチーとは誰ですか? C 言語に詳しい学生なら、彼が研究室でコンピュータ ゲーム「Around the World」をプレイするのが好きだったために C 言語を発明し、C 言語の父として称賛されたことを知っているはずです。これは、システム ソフトウェアの作成に適した高級言語です。その誕生は、UNIX システムの開発における重要なマイルストーンです。アセンブリ言語がオペレーティング システムの開発における主要な言語ではなくなったことを宣言しています。 1973 年に、Unix システムのソース コードの大部分が C 言語で書き直され、Unix システムの移植性が向上しました。

初期の UNIX システムのドキュメントとコンテンツから、UNIX の開発は UNIX をより良くすることに全力を尽くした無料のオープン ソース プロセスであることが明らかです。このプロセスにより、コードが共有され (ベル研究所内外の両方で)、高品質の UNIX オペレーティング システムが迅速に開発できるようになりました。

米国政府は、すでに電話業界を独占していた AT&T が再びコンピュータ業界を独占するのではないかと懸念したため、AT&T はコンピュータ システムの販売を禁止されました。 AT&T は資産分割前には消費者にコンピュータを直接販売することを厳しく制限されていたため、UNIX ソース コードは教育および研究目的で大学にライセンス供与され、わずかな料金が請求されていました。

FreeBSD は、1970 年代にカリフォルニア大学バークレー校で開発された UNIX のバージョンです。世界中のボランティアによって開発および保守されており、さまざまなアーキテクチャのコンピュータ システムにさまざまなレベルのサポートを提供します。 BSD システムを皮切りに、大手の商業企業は自社のハードウェア アーキテクチャと BSD システムをベースにした Unix システムの開発を開始し、SUN の Solaris、IBM の AIX、HP の HP UNIX など、さまざまなバージョンの Unix システムを生み出し、サービス料金を請求しました。AT&T は、このことを考えると激怒しているに違いありません。これは、他人のためにウェディング ドレスを作っているだけではないでしょうか。私にお金を稼がせないなら、あなたもお金を稼ぐことはできません。

1970 年代後半、Unix は別の大きな問題に直面しました。AT&T が突然著作権を取り戻し、特に Unix システムのソース コードを学生に提供することを禁止するという要件を主張したのです。AT&T は著作権を取り戻し、オープンソースにしなくなりました。このような問題は当時 Unix 業界でパニックを引き起こし、ビジネス上の紛争にもつながりました。引き続き使用したい場合は、ライセンスを購入する必要がありますが、その費用は 40,000 ドルです。 ! !

多くのユーザーは Unix の使用に慣れていますが、突然料金を支払わなければならなくなると、多くの人が非常に不満を抱きます。 ! !その一人がリチャード・ストールマンで、彼はフリーソフトウェア運動を立ち上げ、共産主義の警鐘を鳴らし(GUN運動を立ち上げ)、ソフトウェア業界の共産主義宣言(GPL協定)を発表し、この運動は多くの人々に認知されました。

いわゆるフリーソフトウェアの自由とは、自由な使用、自由な研究と改変、自由な配布、そして派生版の自由な作成を意味します。

1985 年、GNU リチャード・ストールマンは、GNU プロジェクトに技術的、法的、および財政的なサポートを提供するためにフリーソフトウェア財団を設立しました。諺にあるように、お金があれば物事は簡単になります。

1990 年までに、GNU プロジェクトによって開発されたソフトウェアには、強力なテキスト エディター Emacs、C 言語コンパイラ GCC、および UNIX システム用のほとんどのプログラム ライブラリとツールが含まれていました。未完成のまま残っている唯一の主要コンポーネントは、オペレーティング システム カーネルです。実際、歴史は誰かの出現を待っていたようで、そして彼が現れたのです!

1991年、フィンランドのヘルシンキ大学の学生だったリーナス・トーバルズが個人的な興味から作成しました。当時、教育用に使用されていたUNIXオペレーティングシステムのミニバージョンであるMinixは使いにくすぎると感じたため、自分でオペレーティングシステムを開発することを決意しました。最初のバージョンは 1991 年 9 月にリリースされ、わずか 10,000 行のコードで構成されていました。 Linux は構造が明確で機能がシンプルという特徴があるため、多くの大学生や科学研究機関の研究者が学習や研究の対象として選択しています。

ここに画像の説明を挿入

リチャード・ストールマンはすぐにリーナスを招集し、1994 年 3 月に 17 万行のコードを含む Linux 1.0 がリリースされました。当時は完全にフリーな契約のもとでリリースされ、その後正式に GPL 契約を採用しました。

Linux ロゴの起源は非常に興味深いトピックです。それはペンギンです。なぜペンギンを選んだのでしょうか?

ここに画像の説明を挿入

この点に関して、筆者は情報を収集し、以下の記述が最も信頼できるものであることを発見した。ペンギンは南極の象徴的な動物です。国際条約によれば、南極は全人類の所有物であり、世界のどの国にも属していません。どの国も南極を自国の領土に含める権利はありません。 Linux はペンギンのパターンをロゴとして選択しました。これは、オープンソースの Linux が全人類の所有物であり、どの企業もそれを私的に所有する権利がないことを意味します。


3. Linuxの基本機能

  • プログラムは小さく、焦点を絞ったものにする必要があります。プログラムはできる限り小さく、1 つのことだけに焦点を当てるべきです。便利そうに見えても 90% のケースでは使用されない機能を開発しないでください。
  • Linux は完全に無料のオペレーティングシステムであり、オープンソースであるため、誰でも自由にソースコードを変更できます。
  • Linux は複数のユーザーをサポートしており、各ユーザーは自分のファイル デバイスに対して独自の特別な権限を持っているため、ユーザー同士が影響し合うことはありません。マルチタスクは、現代のコンピュータの最も重要な機能の 1 つです。Linux では、複数のプログラムを同時に、また独立して実行できます。
  • Linux は安全で信頼性が高く、非常に安定しています。Linux コードはオープンソースなので、誰でも脆弱性の修正に参加できます。 Web サーバー プロジェクトの展開タスクによく使用されます。
  • ほとんどのオープンソース ソフトウェアの主な適応プラットフォームは Linux であるため、Linux で使用できる無料のオープンソース ソフトウェア ツールが多数あります。ほぼすべてのネットワークプロトコルと開発言語をサポート

4. Linuxアプリケーション

  • 世界中のスーパーコンピューターの 100% が Linux 上で動作しています。 NASA のクラスターも含まれます。
  • SpaceX は、Merlin ロケット エンジンに特別なフォールト トレラント設計の Linux を使用しています。このように、Linux は 32 の宇宙ミッションの完了に貢献しました。
  • 映画「タイタニック」は Linux サーバーで撮影された最初の映画でした。
  • 現在、インターネット上のウェブサイト サーバーの 90% 以上が Linux バックエンド サーバーを使用しています。ビッグ データ時代の到来により、分散コンピューティング、並列コンピューティング、組み込み、人工知能の第一選択肢は Linux になります。

以上が Linux オペレーティングシステムの詳細な概要と紹介です。Linux の紹介の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Linuxディレクトリ構造の詳細な紹介
  • Linuxでよく使われるコマンド パフォーマンスコマンド
  • Linux のファイル システム タイプの表示方法の例

<<:  固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

>>:  Vue双方向バインディングの詳細な説明

推薦する

マークアップ言語 - Web アプリケーション CSS スタイル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Linux システムでの Selenium クローラー プログラムの導入の概要

目次序文1. セレンとは何ですか? 2. 使用手順1. ライブラリをインポートする2. テストコード...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...

MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...

js を使用して QR コードを生成するサンプル コード

以前、プロジェクトでQRコードをスキャンして情報を表示する機能を開発する必要がありました。インターネ...

VUE + OPENLAYERSがリアルタイムポジショニング機能を実現

目次序文1. ラベルスタイルを定義する2. GeoJSONデータのシミュレーション3. Vercto...

CentOS7 は rpm パッケージを使用して mysql 5.7.18 をインストールします

例示するこの記事は、2017 年 5 月 20 日に MySQL-5.7.18 を使用して作成されま...

Linux での mysql-5.7.28 インストール チュートリアル

1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...

ログインフォームを実装するためのReactサンプルコード

Vue ユーザーとして、React を拡張する時が来ました。antd の導入、less と rout...

vsftp を使用して Linux で FTP サーバーを構築する (パラメータの説明付き)

導入この章では、主に Linux で FTP サーバーを構築するプロセスを紹介します。習得すべき重要...

CSSを使用してTDのINPUTの幅を設定する

最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...

webpack イメージを base64 に変換する例

url-loader をダウンロード 糸を追加 -D URLローダー モジュール: { ルール: {...

CSS レイアウト チュートリアル: 垂直方向の中央揃えを実現する方法

序文最近、フロントエンドの知識をまとめており、いくつかのインタビューにも参加しました。インタビュー中...

MySQL FAQ シリーズ: ibdata1 ファイルのサイズが突然増加しないようにする方法

0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...