Hallo. Ist es möglich nur den Linux-Kernel auf einen PC zu installieren, der dann ein selbstgeschriebenes Programm ausführt? Wenn ja, wie funktioniert es? mfg Max
Max schrieb: > Ist es möglich nur den Linux-Kernel auf einen PC zu installieren, der > dann ein selbstgeschriebenes Programm ausführt? > Wenn ja, wie funktioniert es? einfach den Paramter init übergeben "kernel init=/bin/programm" Dann startet nur dein Programm mehr nicht.
Max schrieb: > Hallo. > Ist es möglich nur den Linux-Kernel auf einen PC zu installieren, der > dann ein selbstgeschriebenes Programm ausführt? > Wenn ja, wie funktioniert es? > > mfg Max Was soll es denn genau werden? Wenn es eine kleine einfachst-Anwendung ist, dann bietet es sich an, die Anwendung in die initrd einzubauen. Ansonsten dem Kernel
1 | init=/pfad/zu/deiner/anwendung |
beim booten mit auf den Weg geben. Wenn sich die Anwendung dann beendet, gibt's ne kernel panic. Falls deine Anwendung noch einige andere Daemons zum Funktionieren benötigt, dann sorge dafür, dass init diese Anwendung startet. Wie das geht, steht im Handbuch der Distro.
D.h. so wäre es möglich ein kleines "eigenes" Linux-basierendes Betriebssystem zu erstellen... :D Es ging um das Verständnis, wie der Kernel arbeitet ;) Vielen Dank. mfg Max
Am besten noch einen Emulator oder Virtualisierer installieren, um sowas auszuprobieren ohne dauerndes Neustarten. Per initrd ist sowas gut möglich, ohne dass man eine Partition auf der Platte für Linux reservieren müsste, die initrd wird vom Bootloader mitgeladen und von Linux in ein tmpfs (ein RAM Dateisystem) geladen und darauf dann das Programm /init ausgeführt. Nur: Ohne eine existierende Linux-Installation als Entwicklungsumgebung wird es sehr umständlich. Sonst zur Vorgehensweise: Man wird meist noch irgendwie mit dem Kernel irgendwas machen müssen (andere Dateisysteme mounten, Netzwerk konfigurieren) und da man das kaum alles noch mal implementieren will, nimmt man die BusyBox, die einen riesigen Haufen Tools in einem Programm vereint und so Platz spart. Eine initrd ist ein cpio-Archiv im newc-Format, generell noch gzip-komprimiert. Wird bei embedded-Boxen die auf eine Anwendung spezialisiert sind gern so gemacht, also auch bei ganz vielen von den DSL-Routern für zuhause.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.