エンジニアでもない私はLinuxを普段使いしかしていませんが、ブログでLinuxについて書いている今、もう少しちゃんとLinuxを勉強したいと思い「Linux標準教科書」を手に入れ、勉強をはじめました。
今回は、「Linux標準教科書」の第1章の内容を「Linuxが動く構造について」書かれている部分をまとめて紹介します。
「Linux標準教科書」は、アンケートに答えれば無料で手に入りますし、amazonで300円で手に入ります。
この記事を読んでいる方はLinuxに興味があったり、Linuxの普段使いからのステップアップを考えていたりしている方だと思いますので、ぜひ「Linux標準教科書」を手に入れて、補助的に私の記事を利用していただけると幸いです。
「Linux標準教科書」がどんなものかや、入手方法などは以下の記事で紹介していますので、そちらもご覧ください。
Linux標準教科書(第1章)Linuxが動く構造について
今回紹介する「Linuxが動く構造について」は、Linux標準教科書ではほとんど文章で書かれており、細かく別れて説明していたため私では全体像がなかなか理解できなかったのですが、自分で以下のように図にしてみてやっと理解できました。
この図だけ見ても分かりづらいと思いますので、分解して説明していきたいと思います。
動作しているコンピュータは、大きく分けて「ハードウェア」と「ソフトウェア」の2つの部分があり、
「ハードウェア」はCPUやメモリ、ストレージなどの機械そのもののことを言い、
「ソフトウェア」はハードウェアで動作しているプログラムのことを言います。
「ソフトウェア」には「基本ソフトウェア」と「応用ソフトウェア」の2種類があり、
「基本ソフトウェア」はOS(Operating System)のことを言い、
「応用ソフトウェア」はOSの上で動くアプリケーションのことを言い、ブラウザやオフィスソフト、メーラーなどがこれに当たります。
「基本ソフトウェア(OS)」には、
応用ソフトウェアが使うであろう共通部品を提供する
コンピュータが提供できる機能・能力を管理する
という2種類の役割があります。
「基本ソフトウェア」には「カーネル」と「ユーザランド」の2つの領域があります。
「カーネル」はOSがハードウェアと直接やりとりするもっとも中心的な機能を持っており、プログラムがどのようなハードウェア上でも同じように動作する役割があり、
「ユーザランド」はデスクトップ環境やファイルシステム、デバイスドライバなどのOSが動作するのに必要なカーネル以外の部分を受け持つ基本的なソフトウェア群のことを言います。
なお、ここまで説明したもの以外に、ハードウェアのマザーボード側に「BIOS」、OS側に「ブートローダー」というプログラムがあり、これらはコンピューターに電源を入れた時に以下の順番で起動し、コンピューターをユーザーが使える状態にします。
- コンピューターの電源を入れる
- BIOSが起動
- BIOSの指示でブートローダーが起動
- ブートローダーの指示でOSが起動
いろいろと説明してきましたが、Linuxとは厳密にいうと「カーネル」のことだけを言い、これを「狭義のLinux」と言います。
そして、広い意味では図の全体、ハードウェアも含めた部分を「広義のLinux」と言います。
さらに、ソフトウェア側のBIOS以外の部分を「ディストリビューション」と言います。
以上で、最初に紹介した図の完成です。
シェル
Linuxの操作は基本的には「コマンド」入力です。
「コマンド」とは「命令」のことで、ユーザランドで動作します。
「コマンド」は「シェル」という対話型のコマンド入力環境(プログラム)が入力を受付け、受け付けたコマンドに応じた動作を実行します。
「シェル」には以下の2つの機能があります。
- 「コマンド」入力の受け付け
- 「シェルスクリプト」の実行
「シェルスクリプト」は「コマンド入力を自動化する」ために「コマンドの実行の流れをまとめた簡単なプログラム」で、拡張子が「.sh」のテキストファイルです。
このシェルスクリプトは自分で作成することも可能で、指定したタイミングや定期的に実行させることも可能です。
まとめ
今回は、「Linux標準教科書」の第1章の内容を「Linuxが動く構造について」書かれている部分をまとめて紹介しました。
あくまでも私が分かるようにまとめたものなので、内容を全て網羅しているわけではありませんし、今までで得た知識や追加で調べたこともちょっと織り交ぜてまとめています。
このため、「Linux標準教科書」の理解の補助として使っていただけると幸いです。
ぜひ「Linux標準教科書」を手に入れて、いっしょに勉強して行きましょう。