Linux標準教科書を読んだので、まとめます!(知識の整理のため)
間違っている部分があったらごめんなさい><
#1. ソフトウェアの種類
コンピュータは、ハードウェアとソフトウェアの大きく2つに分かれます。
ハードウェアとは、コンピュータの機械そのもの。
ソフトウェアとは、ハードウェア上で動作するプログラム。
ソフトウェアも、基本ソフトウェアと応用ソフトウェアと2つに分かれます。
基本ソフトウェアとはOperating System(OS)のことで、
応用ソフトウェアはその上で動くアプリケーションのことです。
WindowsやLinux、Mac OS Xは基本ソフトウェアであり、
WordやExcel、PowerPointは応用ソフトウェアです。
###▪ 基本ソフトウェアの役割
基本ソフトウェアは、応用ソフトウェアが動作するために必要な部品を提供します。
例えば、応用ソフトウェアにはウィンドウがあり、メニューやツールアイコン、
保存する際に出てくる確認メッセージなどがあります。
このような機能を応用ソフトウェアに持たせようとすると、作成が大変になります。
なので代わりに基本ソフトウェアが共通部品を提供する役割を担っています。
それ以外にも、「資源を管理する」という役割があります。
例えば、ワープロや表計算などのソフトウェアは同時に動かすことができます。
しかし、コンピュータは1つの処理しかできません。
これは基本ソフトウェアが、各ソフトウェアを高速で切り替えているから実現できます。
#2. Linuxとは
UNIXを元にして作られた、UNIX互換のOS。
1991年、当時フィンランドの大学生である「Linus Torvalds」によって作られました。
LinuxのプログラムはGPL(GNU General Public License: GNU 一般公衆利用許諾)という
ライセンス形式が採用されています。以下の特徴を含みます。
・プログラムを実行する自由
・ソースの改変の自由
・利用・再配布の自由
・改良したプログラムをリリースする権利
LinuxがGPLを採用したため、Linuxは多くのディストリビューター(※1)により開発され、
多くのユーザーに使われるようになりました。GPLを条件に受領したソフトウェアを一般に
頒布する場合、ソースコードを提供しなければいけません。しかし、このライセンス形式が
良いように働いた結果、Linuxは一部の個人や組織に独占されることなく、全利用者が
その恩恵を受けて発展させていくというスタイルができました。
※1:コトバンクでは以下のように説明されている。
ディストリビューター
パソコンのソフトウェアやハードウェアの卸売りを専門に行う業者のこと。最近では、Linuxディストリビューションを配布する業者のことを指す言葉として使われることが多い。
#3. Linuxの特徴
基本ソフトウェアはさらに2つの領域に分かれます。
それらを「カーネル」と「ユーザランド」といいます。
###▪ カーネル
カーネルはオペレーティングシステムの中核となる部分で、ハードウェアと直接やりとり
するなど、中心的な機能を受け持つ部分。カーネルはハードウェアの違いを吸収して、
プログラムがどのハードウェア上でも同じように動作させる役割があります。
###▪️ ユーザランド
OSが動作するのに必要な、カーネル以外の部分のことです。
ファイルシステムやファイル操作コマンド、シェルなどの基本的なソフトウェア群を指します。
###▪️ シェル
「Linuxはコマンドで操作する」ことができます。コマンドとは文字通り「命令」のことです。
Linuxにはシェルと呼ばれる、対話型のコマンド入力環境が用意されています。
シェルには大きく2つの機能があります。
1つ目の機能は、入力されたコマンドを理解し、実行します。
2つ目の機能は、シェルスクリプトの実行にあります。
シェルスクリプトとは、「コマンドの入力を自動化する」ためのものです。1つのファイルに
コマンドを1行ずつ記述して作成します。作成したシェルスクリプトを実行することで、
コマンドの実行を自動化できます。
#4. ディストリビューション
###▪️ ディストリビューションの誕生
当初のLinuxはインストール作業が非常に困難で、一部のユーザーしか
使うことができませんでした。
Linuxディストリビューションとは、Linuxを使う上で必要なプログラムを
まとめ、簡単な手順で手軽にインストールできるようにすることです。
代表的なLinuxディストリビューターとして、Red HatやDebianProject、
Ubuntuを開発しているCanonicalなどがあり、さまざまな団体によって
「Linux」はリリースされ続けています。
###▪️ パッケージ
Linuxに対して追加機能を提供するもの。
###▪️ パッケージマネージャ
応用ソフトウェアの導入は、依存するソフトウェアやライブラリが
必要となる場合があります。
これらは正しい場所に、正しい順序でインストールしなくてはいけません。
パッケージマネージャは、パッケージを簡単にインストールしたり、
アップデートしてくれたりすることで、上記の役割を担ってくれます。