Folgende noch experimentelle Situation:
1) Kleines Programm wird via incbin zunächst im Kernel eingeschleust, dann in die RAM Disk ins Filesystem eingeschleust
2) Beim Durchforsten des Filesystems wird der Name des Programms gesucht und das Programm beim Auffinden zunächst in eine Stack-Variable "geladen". Das könnte man bereits einen kleinen "Ladevorgang" nennen (RAM Disk --> Speicher).
3) Vom Stack sichere ich die Programm-Daten in ein statisches Array, das ich als globale Variable (im bss-Bereich bei 0x0000d800; Kernel beginnt ab 0x00008000) angelegt habe.
4) Dann greift ein im Multitasking erzeugter Prozess auf die Basisadresse bei 0x0000d800 zu und lässt dieses Programm laufen.
Solche RAM Disks werden ja offensichtlich verwendet, um primäre Gerätetreiber zu laden.
Dabei stelle ich mir die Frage, wo man solche kleinen Programme am besten hin bewegt und ausführt.
1) Kleines Programm wird via incbin zunächst im Kernel eingeschleust, dann in die RAM Disk ins Filesystem eingeschleust
2) Beim Durchforsten des Filesystems wird der Name des Programms gesucht und das Programm beim Auffinden zunächst in eine Stack-Variable "geladen". Das könnte man bereits einen kleinen "Ladevorgang" nennen (RAM Disk --> Speicher).
3) Vom Stack sichere ich die Programm-Daten in ein statisches Array, das ich als globale Variable (im bss-Bereich bei 0x0000d800; Kernel beginnt ab 0x00008000) angelegt habe.
4) Dann greift ein im Multitasking erzeugter Prozess auf die Basisadresse bei 0x0000d800 zu und lässt dieses Programm laufen.
Solche RAM Disks werden ja offensichtlich verwendet, um primäre Gerätetreiber zu laden.
Dabei stelle ich mir die Frage, wo man solche kleinen Programme am besten hin bewegt und ausführt.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken
Gespeichert



