サーバ用のOSというと、最近はCentOS含むRedHat系やUbuntuやDebian系が多数派なんじゃないでしょうか。
わたくしもご多分に漏れず、CentOSをメインに使っておりました。
というのもここ10年以上RedHat系のOSを扱っておりまして、当時はというと、まだRHELは出ていなくて、ただのナンバリングだった頃ですね。yumもなかったはず。
その前はSunOSやFreeBSDなどもはさみつつ、最終的にはCentOSに落ち着いていたわけではあるのですが、まあわりと長い付き合いです。
そんなわたくしですが、少し前にメインOSを切り替えました。
それがArch Linuxです。
サーバ技術者でなければ「何それおいしいの」という名前かもしれません。
今日はみなさん名前だけでも覚えていってくださいね。
なんでそんなマイナーなOSを使うのか?と聞かれるかもしれませんが、そんなマイナーじゃないんですよ。
現時点でDistrowatch.comのランキングでも10位に入ってますし。(このランキングはデスクトップも含むので1位がMintだったりしていますが…)
Archの何がいいかというと、まず公式の冒頭にも掲げられている理念ですが:
https://www.archlinux.org/
Arch Linux, a lightweight and flexible Linux® distribution that tries to Keep It Simple.
構造・パッケージリストはじめ、すべてに優先する判断基準として「シンプルであること」が徹底されています。
ここでいうシンプルさとは、最低限のものしか用意されていないということでもあります。
つまり「サーバとかあんまり詳しくないけど今日中になんかサーバ1つ立てないといけない!いや勉強とかそういうのいいから!とにかく入れて動けばそれでいいんだよ!」という用途には全く向いていません。
ある程度わかってないと動かない場合が多いので「よくわかんないけど動いたからいいや」という事態はそもそも発生しませんし、何かおかしなことをしても自動的にリカバリしてくれたりはしません。
初期状態では、使おうとするものはほぼ何一つ入っていません。
いわばとてもハードコアなOSです。
しかしこれはまさに私が最近のOSに対して持っていた不満にビンゴだったわけです。
昔のOSの選定基準は「安定性」でした。今よりもっと壮絶にDIYな世界だったからですね。
いまはどうかというと、ほとんどのOSでは開発にQAチームが設置されて、ちゃんとチェックを入れてからリリースされているわけです。ですので、比べ物にならないくらい安定しています。
次の時代に、選定基準は「柔軟性」になりました。できれば手動ビルドせずにインストール/アンインストールできるとうれしいというわけです。
そこで、現在のOSのほとんどはパッケージ管理ツールが組み込まれているので、依存関係に悩まされたりする必要もなくなっています。
となるとどういう状況になるかというと、選択肢の幅がとても広くなっているということになります。
ここにDevOps的な影響も加わって、現在では公式パッケージの先進性や保守性、または汎用性がアピールポイントになっているように思います。
結果的に、とにかくモリモリいろいろ入ってていろいろ動いている、という状況になりました。
(インストール直後にいろいろ削っていくという作業をすることになります…)
ムーアの法則どおりにマシンパワーがどんどん得られていけば、そうした状況が生み出すコストは相殺されて何の問題にもならないかもしれません。
しかし現実には意外なトラップが潜んでいました。
パワーを得ることはできているものの、消費電力を抑えることが次の壁になってしまっているわけです。
メーカーが必死になって開発を進めてはいますが、現時点でアーキテクチャを変えることで対応するしかありません。
こうした動きにはもちろん、スマートフォンはじめいわゆるスマートデバイスの登場が大きく影響しています。
となると、OSにいま求められる新たな要素として、コンパクトさが登場したわけです。
しかし長らく使って慣れているものを変えるのは学習コストがかさむので、通常はゆるやかに移行していくのが常です。
ところが、そんなさなかに、ついにCentOSのSystemdへの移行が行われたわけです。
通常使用するコマンドラインの何割かが全く違う系統のものに置き換わったわけで、どのみち一から覚えなおしというわけですね。
であれば、覚え直すこと自体はしょうがないからやるんですけれども、他のディストリビューションを探すタイミングでもあるだろう、と考えたわけです。
ということで、具体的な話を全くしていませんが、それについては今後細かく書いていこうということでひとつよろしくお願いします。