Ein Startpunkt wäre Buildroot .
Was ist es? Es ist eine Reihe von Skripten / Makefiles, mit denen Sie ein Linux-System buchstäblich von Grund auf neu erstellen können. Es zieht alle relevanten Komponenten herunter und erstellt den Cross-Compiler auf dem Host. - so ziemlich alles.
Es ist in erster Linie für eingebettete Arbeiten konzipiert - als solches enthält es eher uclibc als glibc und es fehlen Build-Schritte für viele Komponenten, z. B. Gnome und einige Desktop-Umgebungen. Wenn Sie jedoch eine Live-CD erstellen, ist es absolut brillant. Natürlich nicht nur auf Live-CDs. Ich sage das - es kommt mit eingebettetem Qt.
Die neueste stabile Version enthält Grub 0.97, das möglicherweise nicht Ihren Anforderungen entspricht.
Ich erwähne dies, weil Linux From Scratch zwar großartig ist, weil es Ihnen sagt, wie Sie den gesamten Prozess abschließen können, aber langwierig, zeitaufwändig und viel Geduld erfordert. Buildroot kann so angepasst werden, dass es alles enthält, was Sie benötigen. Als Lernerfahrung ist die Fähigkeit, die Stilmenüs zu verwenden menuconfig
und etwas zu bekommen, das bootet und funktioniert, großartig. Sie können auch sehen, wie alles funktioniert, bevor Sie spätere Funktionen hinzufügen.
In Bezug auf die Konfiguration Ihres Kernels kann ich nicht empfehlen, Ihre vorhandene Konfiguration (normalerweise verfügbar in /boot
) in den Kernelbaum zu kopieren, um sie .config
dann auszuführen make oldconfig
und die neuen Optionen zu durchlaufen. Die Standardoptionen funktionieren garantiert von Ihrer Distribution aus. Wenn Sie absolut von vorne anfangen, können Sie etwas Unbrauchbares bauen.
/sbin/init
(sofern nicht anders konfiguriert). Dieses Programm kann alles tun, was Sie wollen. Es gibt einige gängige Optionen/sbin/init
, z. B. Upstart, sysvinit, systemd oder einfach nur Bash. Von dort aus hat das Programm die Kontrolle. Wenn es jemals beendet wird, stürzt der Kernel ab, sodass er in der Lage sein sollte, andere Programme zu starten.