[linux-l] kernels, lilo und ide

Peter Ross Peter.Ross at alumni.tu-berlin.de
Mo Jan 26 09:42:34 CET 2004


On Mon, 26 Jan 2004, Jan-Benedict Glaw wrote:

> Nicht ganz. Von dieser Seite betrachtet besteht Linux aus zwei
> Komponenten. Einmal ist da der Protected-Mode-Teil, den man so kennt;
> dann ist da aber auch noch ein kleines Stückchen Code, daß vom
> Boot-Loader gestartet wird (und letztlich den Protected Mode
> einschaltet).

Ja. Wenn die Antwort hiess, FreeBSD koenne die BIOS-Plattengeometrie nicht
mehr lesen, heisst das wahrscheinlich, dass FreeBSD die nicht rettet. Ob's
Linux tut, sagt uns der Quellcode;-) Ich konnte mir auch vorstellen,
dass man diesen BIOS-Ruf beim Booten gar nicht macht, um sich nicht durch
wirre BIOSe zum Haengen zu bringen. PC-Hardware ist schliesslich bekannt
durch seine Zuverlaessigkeit, die BIOSe sowieso. Die Zahl der Bemerkungen
und Workarounds beim Booten laesst much vermuten, dass die
Bootcode-Entwickler diesen Teil moeglichst schnell hinter sich bringen
wollen..

Mal eine Frage aus dem Nebel (bin gerade heute durch eine Buchhandlung
gestolpert und suchte vergebens was zur 80x86-Literatur):

Da alles, was >=386 ist, vier "Ringe" besitzt und derzeit nur Ring 0
(Kernelspace) und 3 (Userspace) benutzt werden.. waere es moeglich, einen
kleineren Teil des Kernels z.B. mit ein paar sysctls, die man aus
Sicherheitsgruenden nach Initialisierung nicht mehr schreiben will, in
Ring 0 zu legen, den Rest des Kernels in 1 oder 2? Alternativ in Level 0
einen Mikrokern installieren, der diese sysctls im "grossen Kernel'
ueberwacht und Alarm schlaegt, wenn die geaendert werden?

Ich kann leider derzeit nicht sagen, was Level 0 von 1 und 2
unterscheidet, oder ob es fuer einen abgegrenzten Kernelspace nur wichtig
ist, in einem Ring<Userlevelring zu liegen.

Wenn dann die Kernelrufe nur in Level 1 oder 2 gehen und es keinen Ruf
nach Level 0 gibt, waere dieser Teil halt durch die Prozessorhardware
abgeschottet, so meine Ueberlegung. Dort wuerde halt z.B. eine
"Ueberwachungstask", ausgeloest von einem Timer, laufen. Oder es gibt nur
lesende Rufe fuer die sysctls.

Gruss
Peter




Mehr Informationen über die Mailingliste linux-l