Wie beginne ich mit dem Aufbau eines Linux-Systems von Grund auf neu?

9

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.

Coder404
quelle
1
Sie können grub so konfigurieren, dass ein Linux-Kernel gestartet wird. Es gibt viele Orte, an denen Sie herausfinden können, wie das geht. Das maßgeblichste davon wäre das offizielle Handbuch ( gnu.org/software/grub/manual/grub.html ). Sobald der Kernel startet, versucht er, ein Programm zu starten, das sich unter befindet /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.
Shawn J. Goff
4
Die Website linuxfromscratch.org enthält viele Informationen zum Erstellen Ihrer eigenen Linux-Distribution.
Daniel Kullmann

Antworten:

15

Folgendes suchen Sie: http://www.linuxfromscratch.org/

tshubitz
quelle
2
Ich bin damit einverstanden, dass er dies tun SOLLTE, und ich gab ihm die +1. Ich denke, was er wirklich will, sind die Details des Ubuntu-Rebrandings, da es von Askubuntu migriert wurde.
RobotHumans
Auch wenn Sie versuchen, etwas anderes zu tun, ist Linux From Scratch mit Sicherheit der richtige Ausgangspunkt.
Vernon
LFS ist nicht zuletzt eine hervorragende Lernerfahrung.
Tshubitz
@tshubitz Ich habe mir LFS angesehen, aber es macht für mich keinen Sinn. Ist es ein vorgefertigtes Betriebssystem? Ist es eine Anleitung zum Erstellen eines Betriebssystems? Was ist es?
Coder404
LFS ist eine Anleitung zum Erstellen eines GNU / Linux-Betriebssystems von Grund auf. Diese Seite von der LFS-Site fasst es ziemlich gut zusammen: linuxfromscratch.org/lfs
tshubitz
4

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 menuconfigund 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 .configdann auszuführen make oldconfigund 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
3

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.

Ignacio Vazquez-Abrams
quelle