Linuxをゼロからソースコードだけで構築する「Linux From Scratch」
Linux From Scratch(LFS)は、ソースコードのみから独自のLinuxシステムを構築するための手順書を提供するプロジェクト。LFS本体に加え、拡張版のBLFS、自動化ツールのALFS、32ビットバイナリ対応のMLFS、ゲーミング向けのGLFSなど多数のサブプロジェクトが存在する。
Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.
HNでの議論
108- rando103747202
LFSは間違ったアプローチだと思う。何日かかけて手動でやったことがある。パッケージのコンパイルを待つ苦痛に耐えれば、なぜか賢くなれるんじゃないかと期待していたんだ。そうはならなかった。大して学べなかった。まるでベーキングのレシピをなぞるようなものだった。卵と砂糖を指定された比率で入れなきゃいけないのはわかるけど、なぜその比率がうまくいくのか説明しろと言われたらお手上げだ。
一度に詰め込みすぎなんだよ。まずクロスコンパイルツールチェーンを構築するところから始めるけど…なぜ? しかもブートローダーは最後の最後に追加する。Linuxマシンを起動したときに最初に目にするものなのに?
もっと良いアプローチは、必要になったものだけを段階的に追加しながらステップバイステップで構築することだと思う。まずブートローダーを動かして、次に実際にinitramfsとカーネルをロードできるようにして、などなど…dracutなどを追加する前に、自分で超シンプルなinitramfsを作ることだってできる…
こうすれば、できるだけ早く起動して遊べるシステムにたどり着ける。そして探求と実験を通じて、なぜこれらのものが必要なのかをゆっくりと発見していけるんだ。
- lukeify
ランディングページのUXを見れば、どこから読み始めればいいのかすぐにはわからないから、本物のLinuxユーザーが書いたものだとわかる。
- phlipski
組み込みLinuxのビルドについて学ぼうと頭を壁にぶつけながらyoctoのドキュメントを読み漁っていた4年後、Udemyで「Embedded Linux Step by Step Using Beaglebone Black」というコースを見つけた。カーネル、ファイルシステム、ブートローダーなどを順を追って説明してくれて完璧だった…当時ですら少し古かったので、Beagleボード用の適切なLinuxソースバージョンを見つけるのに少し手間がかかったけど、全部動かして、Beagleボード用にLinuxディストロをゼロからクロスコンパイルし、フラッシュして、起動して、シリアルポート経由で通信できた。このコースを強くお勧めする。
- nobleach
自分にとっては、BSDとPortageが「コンパイルの仕方を学ぶ必要があるぞ」への入り口だった。でも本当のLinuxのブートストラップ入門はGentoo Stage 1だった。その時点で6年ほど使っていた。(RedHat/Mandrake/TurboLinux/Caldera/Slackware/Debian系など)パーティションを切ったディスクだけから始めるのはクレイジーに感じた。でもたくさん学んだおかげで、今ではLinuxの領域で怖いものはほとんどない。おかげで2011年にArchをインストールするのは公園散歩みたいなものだった。
- tugback
かつて週末プロジェクトとしてやったことがある。めちゃくちゃ過酷だったけど、OSの内部についてたくさん学べる。
- Marchant_hq
LFSが初めて起動したときのことは今でも覚えている。ただのシェルだったとしても、真の魔法使いになった気分だった。
- bmenrigh
長い間(おそらく2002年から2010年まで)LFSをやりたくて仕方なかった。でも2004年からGentooを使っていて、この約22年間で、LFSが与えてくれたであろうほとんどすべて、いやそれ以上のことまで経験してきた。それでも昔やらなかったことを後悔している。やっていたら、もっと少ない問題で済んだだろうに。
- cmrx64
LFSシステムを数ヶ月間動かし続けた(現代の基準ではひどくお粗末なCeleronの「ネットトップ」で)。やがてシステムアップグレード中に手に負えない混乱を招いてしまった。これのおかげで、後にOCamlベースの分散システム(mina)のマルチプラットフォームビルドシステムを担当するようなことを成し遂げるための、純粋な意志の力が身についた。