ハクソク

世界を動かす技術を、日本語で。

FreeBSDを愛する理由

概要

  • FreeBSD Handbookとの出会いが筆者のシステム設計観を変えた体験
  • Linuxとの比較で見えたFreeBSDの成熟性と安定性
  • 長年使い続けられる理由としての進化と保守性のバランス
  • FreeBSDコミュニティの魅力と他プロジェクトとの違い
  • **「The Power to Serve」**という理念への共感

FreeBSD Handbookとの出会いと衝撃

  • 2002年、初めてFreeBSD Handbookを読んだ時の驚き
  • それまで6年間使い続けたLinuxの断片的・古いドキュメントとの対比
  • FreeBSDは完全かつ最新の詳細なマニュアルを標準で提供
  • ドキュメントの質からOS自体の堅牢さを直感
  • デュアルブート不可のSony VaioにFreeBSDを単独インストールした決断

FreeBSDとLinuxの違い

  • UNIX系としての共通点がありつつ、設計思想や運用の違い
  • FreeBSDは成熟度・秩序・集中性が際立つ存在
  • ソースから全てをコンパイルする中で感じたハードウェア最適化と安定性
  • Linuxでは発生していた過熱・エラー・不安定動作がFreeBSDでは皆無
  • KDE環境でも一貫したパフォーマンスと安定性を実感
  • 唯一の欠点は全て自分でビルドする手間

FreeBSD Handbookから学んだこと

  • Handbookは大学の講義以上の知識と正しいアプローチを教示
  • 「まず理解し、次に行動」という姿勢の重要性
  • 印刷して手元に置きたくなるほどの価値あるドキュメント
  • 24年以上経っても基礎は変わらず有効
  • 「進化はしても、革命はしない」長期的視点の設計哲学

FreeBSDを使い続ける理由

  • デスクトップ用途からは離れたが、サーバ用途では今も最優先
  • 安定性・予測可能性が運用現場での最大の価値
  • イノベーションを追いかけず、本質を守る姿勢
  • 「The Power to Serve」効率・信頼・安全性を重視した理念
  • マイナーアップデートのみで長期運用が可能な堅牢性

FreeBSDの特徴的な機能

  • ネットワークインターフェース名の安定性(リブート・アップグレード時も変わらない)
  • Jail機能:外部パッケージ不要で完結するネイティブ仮想化
  • ZFSのネイティブサポート安全なブート環境
  • UFSの読み取り専用化もfstabの1文字変更で実現
  • bhyve:軽量で信頼性の高いハイパーバイザー
  • パフォーマンス・機能・信頼性への満足

FreeBSDコミュニティの魅力

  • 情熱・好奇心・実力を備えた参加者が多い
  • 他のOSSと比べて短期的な商業目的の人が少ない
  • 開発者・Foundation・企業エンジニアの一体感
  • Netflixなどの大手もFreeBSDに深く関与
  • イベント参加で感じる一体感と前向きな雰囲気
  • 長年関わるメンバーが今も熱意を持ち続ける
  • Foundationは強力だが、支配的・自己顕示的でない

FreeBSDが持つ哲学と価値

  • 人間のためのOSという一貫した思想
  • ドキュメント・一貫性・実用主義・職人気質が他のLinux系ディストリビューションと異なる
  • 一般ユーザーの声を積極的に取り入れる姿勢
  • 大企業の依存戦略ではなく、純粋なプロジェクトへの信念
  • 安定した運用・革新のバランス・人間性を重視

感謝とまとめ

  • 長年の情熱と信頼性を与えてくれたFreeBSDへの感謝
  • 流行を追わず、正しいことを追求する姿勢
  • コミュニティが生み出す人間的なつながり
  • **「The Power to Serve」**という理念の体現
  • FreeBSDは「最高・最強」を目指すのではなく、**「役立つこと」**を目指す存在

Hackerたちの意見

一週間前に、HDDが壊れたのでFreeBSDで自宅サーバーを立ててみることにしたんだ。設定はすごく簡単で、今のところすべてうまく動いてる。ただ、Linuxエコシステムを離れる価値があるのか、ちょっと悩んでる。もしDockerコンテナを動かしたい場合、Linuxでネイティブに動くソフトのポートをランダムな人に頼らなきゃいけないのか、自分でポートしなきゃいけないのか?FreeBSDは今のところ良さそうだけど、コミュニティとエコシステムは大事だよね。
誰も、Bhyve VMにLinuxをインストールしてそこでDockerを動かすのを止めてないよ。FreeBSDのBhyveハイパーバイザーのオーバーヘッドは約0.5%(ベンチマークで測定)だから、何も失わないよ。ここにFreeBSDのBhyveの簡単で完全なスタートガイドがあるよ:- https://vermaden.wordpress.com/2023/08/18/freebsd-bhyve-virt... よろしく、vermaden
他の質問には答えられないけど、私にとってはLinuxの方が良く動いてる。でも、この発言については:> Linuxでネイティブに動くソフトのポートをランダムな人に頼らなきゃいけないのか、自分でポートしなきゃいけないのか?これはちょっと問題だと思う。結局、オープンソースコードを書く人たちを信頼しなきゃいけないからね。大体はうまくいくけど、悪意のある人もいるし。xzバックドアの例を見てみて。あと、個人情報を盗もうとする国家的なアクターもいるし。年齢確認は、子供を守るためだと主張して法律を押し進めようとする現在の試みだけど、実際にはユーザーデータを盗むための足がかりになってるかも。> FreeBSDは今のところ良さそうだけど、コミュニティとエコシステムは大事だよね。まあ、Linuxユーザーはもっと多いからね。それが良いか悪いかは別として、事実だよ。
Dockerの便利さには全然及ばないけど、OSレベルの仮想化が必要ならFreeBSDのJailsがすごくクールだよ。
> Linuxエコシステムを離れる価値があるかどうかわからない。Dockerコンテナを動かしたい場合はどうするの?Linuxでネイティブに動くソフトウェアのポートをランダムな人に頼らなきゃいけないの?それとも自分でポートしなきゃいけないの?Linuxではすでにランダムな人を信頼してるし、Dockerを使うともっとランダムな人たちを信頼しなきゃいけなくなる。ポートはすでにかなりの量があるし、自分でポートするなら20分以上かかるか、ひどい目に遭うことになる。今のソフトウェアはますますLinux専用だと思う。FreeBSDは設定して放置するには最高だけど、定期的にやり取りする必要があるなら、あまり価値はない。デスクトップ用には絶対に価値がない。
Dockerは避けるべきだってのが明白な答えで、FreeBSDのjailsを好きになるべきだよ。
> 長年にわたって、FreeBSDは私にとって良いサポートをしてくれた。ある時点で、主なデスクトップとしては使わなくなったけど(部分的にはMacに切り替えたから、部分的にはサポートされていないハードウェアのせい)、サーバーや真剣な作業には常に第一選択の一つだった。愛の形とは言えないけどね。もしかしたら、そのハードウェアはLinuxでサポートされてたかも。サポートされていないハードウェアにイライラして、後でMacに切り替えるためにLinuxからFreeBSDに移行するのは、あまり良い提案じゃないよ。
100%。FreeBSDの開発者たちがダーヴィン時代にMacに移ったことを思い出すよ。彼らはアップストリームへの貢献をやめたら、Appleに見捨てられたんだ。
FreeBSDはMacOSよりもはるかに多くのハードウェアをサポートしてる。ハードウェアのサポートについて不満を言ってから、OSを切り替えてそのOS用の特定のハードウェアを買うのはちょっと変だよね。Realtek RTL8188CUSをサポートしてないからMacOSをやめるなんて想像してみて。
私の自宅サーバーはもう10年間FreeBSDを動かしてるけど、一度も失敗したことがないよ。ただ一度、/dev/speakerをいじって spontaneous reboot を引き起こしたことがあるけど、FreeBSDのせいなのかハードウェアのせいなのかはわからない。15.0がリリースされた後、アップグレードを遅らせてたけど、先週末やっとやったら、もっと早くやっておけばよかったと思ったよ。すごくスムーズに進んだから。FreeBSDができることって、Debianにはできないことがあるのかな?多分ないと思う(少なくとも今のところ思いつかない)。サーバーを立てるとき、ZFSが大きな魅力だったけど、最近はLinuxでもかなりうまく動くって聞いた。でも、信頼性や良いドキュメント、助けが必要なときのコミュニティには感謝してるよ。
今使ってるホームサーバーは秋に10年を迎えたけど、2000年くらいからFreeBSDをサーバーで使ってるんだ。主な不満は、DockerとかLinux特有のソフトウェアがあって、bhyveとかを使わないとネイティブで動かせないことかな。
> FreeBSDができることは、例えばDebianにはできないことはある?多分ないかな(少なくとも思いつかない)。ユーザーインターフェースの安定性とドキュメントの充実さ。
FreeBSDのZFSは最高だよ。4年前にシステムを廃止した後、5x 500GBの古いFreeNASのRAID z5アレイを確認したいと思って、ディスクを全部つないだ仮のマシンを組んだんだ。何もせずに、ライブのFreeBSDイメージがアレイを見つけて設定してくれた。すぐにファイルシステムを見たり、ほぼ手間なしで今のFreeBSDサーバーにダンプできたりした。これで完全に心を掴まれたよ。最近は小さなシステムと基本的なサービスを運用するのが好き。ウェブGUIやDockerイメージはもういらないな。
> FreeBSDができることは、例えばDebianにはできないことはある?ZFSのブート環境。OpenZFSのドキュメントガイドに従ってDebianのルートをZFSにインストールすることはできるけど、Debianプロジェクト自体からのサポートはないよ。Nitrux LinuxディストリビューションはDebianをベースにしていて、ブート環境に似た不変の機能を提供してるけど、その不変のブートイメージをFreeBSDのZFSデータセットのように扱うことはできないんだ。
> FreeBSDができることは、Debianにはできないことがあるの?逆に「DebianができることはFreeBSDにはできないことは?」と聞かれたら、もっと言うことがあるけど、ほとんどが「FreeBSDはLinuxじゃないけど…」で始まる。メンテナンスや点検が必要なときは、`lsblk`のようなコマンドの同等物を調べなきゃいけないし、他のシステムでは`/etc/`にあるものが`/usr/etc/...`にあるから、探すのが面倒。これはFreeBSDがほとんど手をかけなくても済む信頼性の結果でもあるし、私の限られた使用ケースにも関係してる。NASとしては素晴らしいけど、サイドでメモをフルテキスト検索しないと触れられない!それでも、約18ヶ月使って学んで頼ってきたことには後悔してないよ。
> リリース後に15.0へのアップグレードを遅らせてたけど、先週末やっとやったんだ。なんで早くやらなかったんだろうって思うくらい、スムーズに進んだよ。まだpkgbaseに切り替えたいと思ってるからやってないんだけど、それがちょっと不安。君はそのオプションにしたの、それともセットを使い続けたの?
> FreeBSDができて、Debianができないことってある?もちろん。IPFWとdummynetを使ってトラフィックの遅延をエミュレートできるよ。Linux(やOpenBSD、NetBSD)には同じ機能はない。ZFSの実装はバグが少ないしね。 [^1]: https://man.freebsd.org/cgi/man.cgi?dummynet
ホームサーバーをFreeBSDに移行したいんだけど、Immichを動かしたいんだよね。ImmichはDockerを前提にしてるから、bhyveのVMでIntel Quick Syncアクセラレーションを使ってLinuxを動かすのがうまくいかないんだ。
チェックしてみる価値ありそうだよ: https://github.com/immich-app/immich/discussions/24931
自分は同期するのが好き。
自分も似たような理由でOpenBSDが大好きなんだけど、今もメインのデスクトップや古いChromebookで使ってる。ほんとに動くんだよね。アップデートでのトラブルもなし。半年ごとにアップグレード。これがなかったらどうなってたか分からない。
ChromebookでNetBSDを動かす予定なんだけど、いいマニュアルある?それともやり方は?
ついに2台目のNUCに何をするか決めたよ:FreeBSD。今、家のインフラをモノコンポーズにまとめる作業をしてるんだけど、理由は面倒なことをしたくないから。設定して放置したいだけなんだ。技術の楽しさはコミュニケーションや体験にあって、何かがうまくいかない理由を抽象化の層を通じて探ることじゃないと思う。コンテナはその面倒さを取り除いてくれるって約束してたけど(仮想化の進化が常にそう言うように)、今はDockerのルートセキュリティ問題や、PodmanでOSを再構成してセキュリティを下げてコンテナが止まらないようにするか(あるいは、composeをsystemdファイルに変換してサービスにするか)、Kubernetesを使って企業向けのさまざまな補助サービスやCRDと連携させるか、どれかを選ばなきゃいけない。ここ2年間、BSDに対するラブレターのような意見がたくさんあって、技術への愛が再燃してる。コンピュータが何をしているか、どうやっているかを悩むのではなく、もっと生きる時間を増やすことが目的だったんだ。ソフトウェアをそのまま動かせる「ジェイル」の概念、抽象化なしで、ちゃんと動いてくれるって信頼できるのが素晴らしい。もっと学びたいな。だから、2台目のNUCをDocker/QEMUのフェイルオーバー用にDebian HAノードにする代わりに、FreeBSDをインストールして、Jailsを使ってワークロードを移行してみようと思ってる。最悪のシナリオでも新しいことを学べるし、最高のシナリオならやっと望んでいたことが実現して、本を読んだり映画や音楽を楽しんだりできるようになる。PlexやJellyfin、RSSアグリゲーターがまた動かなくなる理由をいじくり回す代わりにね。
家でのUnix-ishな旅の初め(約26年前)にFreeBSDを試してみた。すごくUnixっぽくて、まあ、実際そうなんだけど。オペレーティングシステムで、パーツの集合じゃない。あの時、Linuxの世界ではDebianが似た感じだった。でも、常にもっと機能を求められて、どんどん肥大化していく。Linuxの良いところは、ランダムなガジェットを接続すれば大抵は動くこと。数年前のノートパソコンには、ブータブルライブイメージからFedoraをインストールすれば動くし。セキュアブート、スリープ、Wi-Fi、キーボードの特別なボタンなどもね。でも、欠点は膨大な肥大化と、もうやりたくないような面倒な作業が多いこと。たとえば、Brotherのレーザープリンタのドライバが32ビットバイナリとしてしか提供されてなくて、特定の32ビット依存関係が自動インストールされないせいでインストーラーが静かに失敗することとか。FedoraでDisplaylink専用のインストーラーを動かさなきゃならないこともあった。でも、ここでは「メインストリーム」のUnix-ish OSがすべての最先端のものや肥大化を吸収している。FreeBSDが純粋でいられる自由を与え、ユーザーの平均的な質が高くなって、全体の雰囲気が決まる。昔のUsenetのような、"Eternal September"の前やCanter & Siegelの前の時代を思い出させるね。あの頃の感覚を覚えている人には。
> でも、欠点は膨大な肥大化だよ。Linuxが「膨大な肥大化」を持っていると思うなら、Windowsの肥大化は同じ基準で見ても恐ろしいほど巨大(しかも遅い!)。
FreeBSDはLinuxのWindowsに対するmacOSみたいなもんだね。もっと言うと、LinuxのAndroidに対するiOSって感じ。
FreeBSDを試したとき、マニュアルにも感動した。すごくシンプルで、高品質なドキュメントだった。特に気に入ったのは、現代のOS、LinuxやWindowsとは違って、一貫性があったこと。人気のあるOSの中では、macOSが最も一貫性があるかもしれない。
約10年間、FreeBSDのコロケーションサーバーを運用して、ハードウェアの世代を超えてきた。OSを好きになりたいんだけど、最もアピールされるネットワークスタックが、SupermicroサーバーのIntel NICを使っているときに一貫して信頼できなかった。負荷がかかると、mbufリソースが枯渇してオフラインになることが多かった。バグデータベースに投稿して、実験を行っても、結局原因がわからなかった。これも異なるサーバーハードウェアのバージョンで起こったから、同じ物理NICの問題ではなく、いろんな種類で発生してた。とにかく、ランダムなダウンタイムにはうんざりして、Linuxに切り替えたら問題が解決した。FreeBSDの一番の良いところは、freebsd-updateで、以前のmake worldの面倒くささから解放されたことだね。
u/cpercivaに敬礼!
俺は全てのサーバーをcolocateしてて、全部FreeBSDで動いてる。世代交代のハードウェアを使ってきたけど、RAIDカードが壊れた時以外は全く問題なし。ネットワークも安定してるし、ZFSも普通に動いてる。だけど、FreeBSD 8からcolocateしてた時の問題は何だったのかは分からないな。今は16-CURRENTをサーバーで使ってるけど、FreeBSDは俺の中では超安定。Dell R630が2台とCisco U220 M5が1台。 doublerabbit@cookie:~ $ uname -a && uptime FreeBSD cookie.server 12.2-BETA1 FreeBSD 12.2-BETA1 r365618 GENERIC amd64 10:39PM up 1752 days, 1:31, 1 user, load averages: 0.64, 1.30, 1.31
インテルはずっとFreeBSDとの関係が微妙だよね。仕方なくサポートしてるけど($理由で)、ちゃんと対応してるわけじゃない。FreeBSD 12-13の時点で、1ギガから現在の100ギガまでの主要な問題はほとんど解決されてると思う。ただ、2.5ギガのigcには変なバグがあって、一部のユーザーはインターフェースが止まっちゃうけど、Netgateみたいに問題なく大量に出荷してるところもあるんだよね。これがファームウェアの問題かどうか、まだ聞いてない。ソースとしては、ボランティアでいくつかのインテルドライバーを管理してて、以前はそれを使ってプロとして数Tbit/sをインターネットに送信してた。
あなたの問題はFreeBSDサーバーにとって典型的だとは思わないな。私は約30年間FreeBSDサーバーを使ってきたけど、ほとんどがインテルのNICを使ってたし、少なくとも5、6種類のSupermicroマザーボードをXeonとEpyc両方で使ってきた。大抵のサーバーは24/7で動いてて、数年も再起動せず、ハードウェアのアップグレードやカーネルのアップグレード以外はダウンタイムがなかったよ。あなたが言ってる問題があったのは疑わないけど、何か非常に珍しい状況が原因だと思う。あなたのマザーボードのSupermicro BIOSのバージョンに問題があったのかもしれないし、FreeBSD自体には問題がなかったのかも。もしくは、インテルのNICのバグのあるバージョンを使ってた可能性もあるね。LinuxがFreeBSDに対して持ってる一つの利点はあまり知られてないけど、Linuxはさまざまな周辺機器、特にEthernet NICの既知のバグの巨大なデータベースを持ってるんだ。もしその中のバグが認識されると、バグに対する回避策を適用するんだ。FreeBSDも他のオペレーティングシステムと同様に、既知のバグを持つ周辺インターフェースに対して回避策を実装してるけど、ユーザー数が少ない分、バグのデータベースも少なくて、通常はFreeBSDユーザーから報告されたものだけなんだ。だから、FreeBSDではうまく動かないハードウェアデバイスがあっても、Linuxではうまく動くことがあって、その理由はいつもLinuxが標準的な使い方をしないべきだと知っていて、バグに対する回避策を適用しているからなんだ。Windowsだけは、ハードウェアベンダーが自分たちでWindows用のデバイスドライバーを書いて、バグに対する必要な回避策を含めているから、バグによる問題から守られてるんだよね。
デスクトップとサーバーで何年もLinuxを使ってきた人間として、FreeBSDに入るためのベストな方法は何?デスクトップ用の具体的なおすすめとか、WaylandはFreeBSDで使えるの?
FreeBSDのドキュメントが大好き。Waylandについての質問に答えると、ここを見てみて:https://docs.freebsd.org/en/books/handbook/wayland/ もしグラフィカルな環境がすぐに使えるものが欲しいなら、FreeBSDをベースにしたGhostBSDをチェックしてみて。MATEが使えるよ:https://www.ghostbsd.org/