Ich habe versucht, ein Betriebssystem mit meinem benutzerdefinierten Kernel zu erstellen. Es hat nicht so gut geklappt. Ich benutze Ubuntu und habe Linux 3.2.7 von kernel.org heruntergeladen. Ich versuche nicht, den Kernel in meinem Ubuntu-System zu ändern. Ich möchte mein eigenes Betriebssystem mit Grub, dem Linux-Kernel, erstellen und dieses Homebrew-Betriebssystem in einem Dateityp (z. B. ISO) haben, den ich auf eine CD legen und auf einem anderen Computer booten kann. Meine Frage ist: Was genau brauche ich, um dieses Betriebssystem zu erstellen? Kommentare oder Tutorials wären hilfreich.
9
/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.Antworten:
Folgendes suchen Sie: http://www.linuxfromscratch.org/
quelle
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ührenmake 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.quelle
Das absolute Minimum, das Sie benötigen, ist der Kernel und ein Prozess, den Sie als Init ausführen können, sowie alle für den Init-Prozess erforderlichen Loader und Bibliotheken. Sie booten den Kernel und weisen ihn an, den Init-Prozess auszuführen, und wo er von dort aus hingeht, ist Ihr Unternehmen.
quelle