Autor Thema: OsDev - Installer  (Gelesen 935 mal)

furesoft

  • Beiträge: 6
    • Profil anzeigen
Gespeichert
« am: 14. June 2018, 14:06 »
hallo ich habe mir ein kleines os geschrieben möchte aber nun möglich machen es auf die Festplatte zu installieren dass man keine cd mehr braucht zum booten.
Wie könnte ich das am besten anstellen?

Svenska

  • Beiträge: 1 778
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 14. June 2018, 18:07 »
Hi,

erkläre mal ausführlicher, was du bereits hast und was du möchtest.

Dein OS (in erster Linie also dein Kernel) wird von einem Bootloader geladen. Es hängt vom Bootloader ab, ob der deinen Kernel von einer CD, einer Diskette, einer Festplatte oder über das Netzwerk lädt. Die bekannten Bootloader (GRUB, Syslinux) können alles, also beschäftige dich am besten mit der Dokumentation deines verwendeten Bootloaders.

Nachdem dein Kernel gestartet ist, muss er natürlich auch irgendwie auf die Festplatte zugreifen können. Also brauchst du Treiber für die Festplatte, die Partitionstabellen und mindestens ein Dateisystem. Das gilt aber genauso, wenn du von CD startest.

Gruß,
Svenska

furesoft

  • Beiträge: 6
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 01. July 2018, 17:06 »
ich habe einen minimalen kernel mit dateisystemtreiber und möchte auf einer festplatte mein os installieren ohne das man ein anderes os benötigt. Also so wie es ander OS auch machen

Svenska

  • Beiträge: 1 778
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 02. July 2018, 13:41 »
Wenn du ein Betriebssystem von CD startest, dann laufen in vielen Betriebssystemen folgende Schritte ab:
1. Das BIOS (oder UEFI) lädt den Bootloader (z.B. ISOLINUX) von der CD und startet ihn.
2. Der Bootloader lädt deinen Kernel und eventuell weitere Module und startet den Kernel.
3. Der Kernel aktiviert die geladenen Module, findet die CD, aktiviert den Dateisystemtreiber und mountet dann das CD-Dateisystem.
4. Der Kernel sucht auf dem gemounteten Dateisystem nach einem oder mehreren Programmen und startet diese (unter UNIX ist das "init").
5. Das Betriebssystem ist dann aus der Sicht des Kernels fertig gestartet.

Einige Betriebssysteme benutzen eine andere Struktur, wo die Schrittfolge stattdessen so aussieht:
1. Das BIOS (oder UEFI) lädt den Bootloader (z.B. ISOLINUX) von der CD und startet ihn.
2. Der Bootloader lädt den Kernel und ein Image, eventuell weitere Module und startet den Kernel.
3. Der Kernel aktiviert die geladenen Module und erzeugt sich eine leere Ramdisk.
4. Der Kernel nimmt das geladene Image und erzeugt sich in der Ramdisk ein Dateisystem.
5. Der Kernel sucht in der Ramdisk nach einem oder mehreren Programmen und startet diese (unter UNIX ist das "init").
6. Das Betriebssystem ist dann aus der Sicht des Kernels fertig gestartet.

Etwas in der Art muss dein OS bereits können, sonst ist ein Installer nur wenig sinnvoll.

Dein Installer muss also die Festplatte so vorbereiten, dass die Schritte 1 und 2 beim Systemstart ausgeführt werden. Dabei gibt es bedeutende Unterschiede zwischen Systemen mit MBR (also der klassischen Partitionstabelle) und EFI (moderne Systeme). Ich beschreibe hier nur den klassischen Weg.

Das heißt im Extremfall, dass du einen Installer schreiben musst, der folgende Dinge tun kann:
1. einen Master Boot Record (MBR) installieren
2. eine Partitionstabelle und eine Partition erzeugen
3. diese Partition aktivieren und darauf ein leeres Dateisystem erzeugen
4. einen Bootloader auf diese Partition installieren und passend konfigurieren
5. deine Programme auf diese Partition zu kopieren (vor allem "init").

Willst du ein vorhandenes Betriebssystem nicht kaputtmachen, artet das schnell in sehr viel Arbeit aus. Außerdem hat es fast nichts mit deinem Kernel zu tun, also wenn du bisher nur einen Kernel hast, hast du noch einen langen Weg vor dir. Was du natürlich auch machen kannst ist, einen fertigen Bootloader wie GRUB zu benutzen. Damit ersparst du dir einigen Aufwand, aber wenn du kein Linux oder so für die Installation benutzen möchtest, ist das alles andere als einfach.

Beschreibe einfach mal, was du bisher hast und wie dein Betriebssystem bisher funktioniert. Dann lässt sich leichter herauskriegen, was ein vernünftiger Weg für dich ist.

 

Einloggen