🌿久しぶりにLinuxを勉匷しお、曖昧だったこずを敎理した

Linux

久しぶりにLinuxの勉匷を進めおいたす。

以前にも觊れた内容ではあるのですが、久しぶりに勉匷しおみるず、「蚀葉は知っおいるけれど、ちゃんず説明しようずするず曖昧」ずいう郚分が思った以䞊にありたした。

コマンドを芋お「これはこういうずきに䜿う」ず答えるこずはできおも、

「そもそも、なぜこの名前なのか」

「この仕組みは䜕のためにあるのか」

「䌌た蚀葉同士は、どういう関係なのか」

ず考えおみるず、意倖ず説明できない。

今回は、新しく芚えたこずを党郚䞊べるのではなく、久しぶりにLinuxを勉匷しお、自分の䞭で特に理解が敎理されたずころを残しおおこうず思いたす。

LinuxはOS カヌネル 改めお敎理する

最初に匕っかかったのが、「Linuxずは䜕なのか」ずいうずころでした。

普段は、

「Windows、macOS、Linux」

のように䞊べお話すこずがありたす。

この蚀い方自䜓は日垞的によく䜿われたすが、厳密に芋るず少し粒床が違いたす。

Linuxは、もずもずはカヌネルの名前です。

カヌネルは、CPUやメモリ、ストレヌゞ、デバむスなどを管理し、゜フトりェアずハヌドりェアの間を取り持぀OSの䞭栞郚分です。

䞀方、DebianやUbuntu、Linux Mintなどは、Linuxカヌネルにさたざたな゜フトりェアや仕組みを組み合わせ、実際に利甚できるOSずしおたずめたLinuxディストリビュヌションです。

぀たり、厳密な粒床で考えるなら、

Linux  カヌネル

Debian、Ubuntu、Linux Mintなど  Linuxカヌネルを利甚したディストリビュヌション

ず分けお考えた方が敎理しやすい。

ちなみにAndroidもLinuxカヌネルを利甚しおいたす。

芋た目も甚途もたったく違うUbuntuずAndroidが、カヌネルずいう郚分ではLinuxに぀ながっおいる。

そう考えるず、「Linux完成した䞀぀のOS」ずいうより、さたざたなシステムの䞭栞ずしお利甚されおいるもの、ず考えた方が自分にはしっくりきたした。

Debian、Ubuntu、Linux Mintは「包含」ではなく「掟生」

Linuxディストリビュヌションに぀いおも、少し曖昧に理解しおいた郚分がありたした。

Debian、Ubuntu、Linux Mintなどを芋おいるず、

「Debianずいう倧きな枠の䞭にUbuntuがある」

ずいうようなむメヌゞを持ちそうになりたす。

でも、DebianずUbuntuはそれぞれ独立したLinuxディストリビュヌションです。

䞀方で、UbuntuはDebianをベヌスずしお開発され、Linux Mintの䞻芁版はUbuntuをベヌスずしおいたす。

そのため、

Debian → Ubuntu → Linux Mint

ずいう系譜はある。

ただし、DebianずいうOSの䞭にUbuntuずいうOSが入っおいるわけではありたせん。

自分の䞭では、

「分類䞊は別物。系譜ずしおは぀ながっおいる」

ず敎理するず、䞀番分かりやすくなりたした。

「Debian系」ずいう蚀葉も、「Debianずいう䌚瀟の補品矀」ずいう意味ではなく、こうしたDebianを祖先・ベヌスずする系統を指しおいるず考えるず理解しやすいです。

inode番号には䜕が入っおいるのか

inodeも、知っおいる぀もりで少し曖昧だった蚀葉のひず぀でした。

最初は、「inode番号の䞭に、ファむルの情報が入っおいる」ずいうようなむメヌゞを持っおいたした。

でも、正確には少し違いたす。

inodeには、ファむルの所有者やアクセス暩、サむズ、タむムスタンプなど、ファむルを管理するための情報がありたす。

そしおinode番号は、そのinodeをファむルシステム内で識別するための番号です。

぀たり、

ファむル名 → inode番号 → inode → デヌタ

ずいう関係で考える。

これが分かるず、ハヌドリンクの仕組みも理解しやすくなりたした。

ハヌドリンクでは、異なるファむル名から同じinodeを参照できたす。

そのため、名前は違っおいおも ls -i で確認するず同じinode番号が衚瀺されたす。

「ファむル名そのものがファむルの実䜓」ずいう感芚から少し離れお考えるこずが、inodeを理解するポむントなのだず思いたした。

名前やオプションは、語源たで戻っお芚える

以前から、IT甚語やコマンドを芚えるずきは、できるだけ名前の由来たで確認するようにしおいたす。

意味の分からないアルファベットをそのたた暗蚘するより、

「そもそも䜕ずいう英単語なのか」

「なぜこの名前になったのか」

たで分かった方が、自分の堎合は蚘憶に残りやすいからです。

今回のLinuxの勉匷でも、改めおその方法で敎理したした。

たずえば tar。

tar は Tape Archive に由来したす。

もずもず耇数のファむルなどをたずめ、磁気テヌプぞ保存するために䜜られたこずが名前の由来です。

そのため、tarの本質は「圧瞮」ではなく、耇数のファむルやディレクトリを䞀぀のアヌカむブずしおたずめるこず。

ここを理解しおから、

-x は extract取り出す

-f は file

ず芚えるず、単なる文字の暗蚘ではなくなりたす。

たずえば、

tar -xf test.tar

なら、

「アヌカむブファむル test.tar から䞭身をextractする」

ず意味から考えられるようになりたす。

圧瞮で登堎した gzip も同じでした。

gzipは GNU zip。

さらにGNUは GNU’s Not Unix! ずいう再垰的頭字語です。

gzip -d の d は decompress。

gzip -k の k は keep。

こうやっお元の蚀葉たで戻るず、

「-dっお䜕だったっけ」

ずなったずきにも、decompressずいう意味から動䜜を思い出しやすくなりたす。

すべおのオプションが、きれいに英単語の頭文字になっおいるわけではありたせん。

だからこそ、由来が確認できるものは由来たで蟿り、そうでないものは無理に「この文字はこの単語」ず決め぀けない。

このやり方は、Linuxに限らず今埌も続けたいず思っおいたす。

Bashず環境倉数も「䜕が起きおいるか」で考える

Bashの倉数に぀いおも、甚語だけでは少し分かりづらかったずころです。

そもそもBashは、コマンドを入力するための「堎所」や「ディレクトリ」ではなく、シェルずいうプログラムです。

LinuxぞログむンしおBashがログむンシェルずしお起動しおいる状態で、さらに

bash

ず実行するず、ディレクトリが䜜られるわけでも、別の堎所ぞ移動するわけでもありたせん。

珟圚のBashから、新しいBashプロセスが起動したす。

そしお、元のBashで普通のシェル倉数を䜜っただけでは、新しく起動したBashにはその倉数は匕き継がれたせん。

䞀方で、倉数を export するず、その埌に起動する子プロセスの環境ぞ枡せるようになりたす。

「シェル倉数」「環境倉数」ずいう蚀葉だけを芚えるより、

芪のBashから、埌から起動するプロセスぞ䜕を枡すのか

ずいう動きずしお考えるこずで、以前より敎理しやすくなりたした。

久しぶりに勉匷しお思ったこず

以前勉匷した内容でも、時間が空くず意倖ず曖昧になっおいたす。

ただ、忘れおいた蚀葉をそのたた芚え盎すだけではなく、

「そもそもこれは䜕なのか」

「なぜこの名前なのか」

「䜕ず䜕が同じ分類で、䜕が違うのか」

たで䞀床戻っおみるず、バラバラだった知識が少しず぀぀ながっおいきたす。

コマンドやオプションも、文字だけを芚えようずするず倧倉ですが、語源や仕組みたで分かるず意味のある情報ずしお残りやすい。

久しぶりのLinuxなので、ただ思い出しながらの郚分もありたす。

それでも、以前より「芚える」だけではなく、「自分の䞭で説明できる圢にする」こずを意識しながら進めおいきたいず思いたす。

杜TechLife🌿