毎日プログラミング奮闘

日々進化するプログラミングの学習ブログ

Linuxが少し好きになった

Linuxってむずかしい。
自己紹介でも書いたが、私は大学時代にLinuxがわからなすぎて挫折した人間だ。

naotaka-blog.hatenablog.com

でも、ラズパイを触ってみたり、LinuxCentOSを触ることで、少しずつ使えるようになってきた。 そして、この本「Unixという考え方」を読んで、Linuxの理解がさらに進んだ。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

  • 作者:Mike Gancarz
  • 発売日: 2001/02/01
  • メディア: 単行本

この本はイントロダクションと第1章が肝心。

UNIXの創造者たちは、ある極端なコンセプトから始めた。ユーザーは初めからコンピュータを使えるとみなしたのだ。UNIXは「ユーザーは自分が何をしているかをわかっている」との前提に立っている。(中略)UNIXの設計者たちは「何をしているか分からないのなら、ここにいるべきではない」という不適切きわまりないアプローチを選んだ。

そう。
この文章からわかるように、Unixは玄人向けに設計されている。だから、遊ぶために大学に通っていた僕に、Unixの兄弟みたいなLinuxがわかるはずがなかったのだ。
そして、Unixの9つの定理で成り立っている。(他にも重要度の低い定理が10つある)

  1. スモール・イズ・ビューティフル(小さいものは美しい)
  2. 一つのプログラムには一つのことをうまくやらせる
  3. できるだけ早く試作する
  4. 効率よりも移植性を優先する
  5. 数値データはASCIIフラットファイルに保存する
  6. ソフトウェアを梃子(てこ)として使う
  7. シェルスクリプトによって梃子の効果と移植性を高める
  8. 過度の対話的インターフェースを避ける
  9. すべてのプログラムをフィルタとして設計する

この中の第3章はおすすめである。

すべてのシステムは、若年期から始まり、成熟期を経て、老年期に達して一生を終える。
・ 第一のシステムは追いつめられた人間が作る。
・ 第二のシステムは委員会が設計する。
・ 第三のシステムは第二のシステムで「火傷」した人が作る

この引用した項目を説明している内容が非常にためになった。



話は少し変わるが「スモール・イズ・ビューティフル」や「一つのプログラムには一つのことをうまくやらせる」のようなUnixの設計思想は、Node.jsに受け継がれている。これはO'REILLYのNode.jsデザインパターンに記載されている。

Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版


最近、UnixLinuxの考え方がわかり、ターミナル操作が苦にならなくなった。