Unix/Linux

Unix/Linux とは天下の「ベル研」エリート集団によって1969年から開発され続け、現代まで脈々と受け継がれてきた伝説的傑作OS/カーネル。仲良くなると人類最高部類のレバレッジ「CPU」を使って自分の能力を爆上げできる。

Unix直系のBSDはUnix伝説ハッカーの ビル・ジョイ によって、UnixクローンのLinuxはCPU溺愛ハッカー リーナス によって開発された。もともと「ハッカー」は「ずば抜けて優れた技術者」を意味し、「ハッキング」もソフトウェアやハードウェアを隅々まで知り尽くした技術者が行う洗練された行為を意味する。

把握する城

さくらで利用可能なVPSプラン

サーバとスマホ両分野をカバーでき将来も明るいLinux、その中でも文明の上流にいて世界的シェアも最高の「Debian系」を把握運用すれば学習コスパを最大化できる。Linux御三家を参照。

港マシン

  1. minato:Debian(石狩サーバ)

領内マシン

  1. pi:Debian(サーバbackup用)
  2. y-Pro:Darwin(自宅管制室、VM実験ラボ)
  3. y-Air:Darwin(どこでも開発/管制室)
  4. y-Kali:Kali(港マシン耐久テスト用)

マシン内では沢山のプロセスやサービスたちが稼働しているので、自分の「城」の事をしっかりと把握し適切に管理することが大切。それらに加え追加で導入できるモジュール群(ソフトウェアツール群)もたくさん待機しているので導入モジュール(ソフト)の取捨選択も重要。

ちなみに、本番環境で root 使って学習とか危なすぎるので、システムの挙動確認やテストは学習用港マシンか「VirtualBox」でやる。現に、y-COMEマシンで「dhclient」あたりのテストやってたらSSH動かなくなったし。

ざっくり仕組み

マシンの起動

マザボ流電 → 付属BIOS流電 → メモリ/ストレージ流電 → GRUBなどブートローダ(靴の準備)メモリへ → OSデータをメモリへ → OS/マシンを起動

SO本体を人に見立てて起動プログラムのことを「靴の準備」とか表現してるあたりが秀逸。

パーテーション作り

パーティションを分けることで、パーティション単位の効率的なバックアップや、ユーザ単位のディスク制限、ファイルシステム単位での障害修復が可能になる。ただ最近は昔と比べてストレージの質も高くクラウドにバックアップしたりするので出番は少ないかも。

ちなみに日本語では「パーテーション」とか「パーティション」とか言葉に揺れがあってダメ。

分割推奨パーティション 説明
/boot 靴。ブートプログラム
/home 自宅。容量が大きくなりやすく、バックアップ頻度も高い
/var 柔軟。急激なファイルサイズ増大によるディスクフルなどの危険性を回避
/tmp 一時しのぎ。一般ユーザの無茶な利用などによる危険性を考慮
/usr 利用者。容量が大きくなる可能性が高い
/opt オプション。容量が大きなアプリを追加で入れる可能性がある場合は独立パーティションに

パーティション管理コマンド 参照。

ストレージ新規追加の手順

  1. ストレージをマザーボードに接続
  2. lsblk。接続を確認
  3. パーティションの設計
  4. fdisk。パーティションを作成
  5. 各パーティションにファイルシステムを作成
  6. 作成したファイルシステムをツリーにマウント

Unixのディレクトリ構造とコマンド

MacOSのディレクトリ構造も参考までにざっと把握しておく。あと、MacOSに収録されている Unixコマンドは100(/bin, /sbin)+1200(/usr/bin, usr/sbin)程度なので気が向いた時に「Unixコマンド」ページにまとめとく。

Unix略語

昔はマシンリソースが非常に貧弱で文字1文字を表示させるためのリソースさえも節約の対象とされていた。ゆえにUnix文化ではコマンド名などの命名にとても短い略語が使われていた。

ld.so = Linkage eDitor Shared Object,