Autor Thema: Microkernel besser ?  (Gelesen 15936 mal)

Below Zero

  • Beiträge: 18
    • Profil anzeigen
Gespeichert
« am: 20. November 2004, 15:22 »
Hallo.
Hab da mal eine Fragen habe in einem Buch gelesen, dass monolithische Kernel veraltet seien... stimmt das? Linux und Windows besitzen einen monolithischen Kernel oder?

Außerdem habe ich in einem Buch von Andrew S. Tannenbaum gelesen, das moderne Betriebssystemarchitekturen auf Microkernel setzen oder zumindest sollten...

Nun möchte ich fragen ob ein Microkernel besser ist? Kleiner ist er ja.
Noch dazu kommt, das der Microkernel ja eine Art Verbesserung des monolithischen Kernels ist, zumindest wurde mir mal erklärt es seien Dinge wie Interfaces besser gelöst.

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #1 am: 20. November 2004, 15:33 »
Naja nen Microkernel is halt schwerer zu realisieren...
Ich würde dir vorschlagen nen monolithischen Kernel zu entwerfen..

Was ich für am besten halte is ein Mix aus monolithischen und microkernel.
Linux entwickelt sich auch dahin.

Du musst dir halt folgendes überlegen ein monolithischer Kernel müsste aufjedenfall schneller sein als ein Microkernel weil z.B. die Treiber direkt in den Kernel kompiliert sind und du deshalb kein Interface für sowas implementieren musst was wieder etwas an Perfomance bringt, dafür is ein monolithischer Kernel natürlich sehr unflexibel.
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #2 am: 20. November 2004, 16:19 »
Also Win2k/XP haben als Basis einen Mikrokernel wenn ich das richtig in erinnerung habe.

Für alles zusätzliche haben die da extra Treiber (oder Server wie die es da nennen) geschrieben.

Der Kernel selbst stellt eigentlich nur die Grundlegenden dinge zur Verfügung um die Treiber (Server) zu laden und das diese untereinander kommunizieren können.

Da hat natürlich den Vorteil das du alles getrennt voneinander entwickeln kannst. Das macht evtl die Fehlersuche einfacher. Auch kannst du später einfacher alte Server gegen neue austauschen.

Der Nachteil ist halt, das es viel logisitk erfordert und eine gute Planung. Du musst ja natürlich strenge Regeln aufstellen nach denen die Server entworfen werden und wie diese miteinander kommunizieren.
----------------------
Redakteur bei LowLevel

Stack

  • Beiträge: 12
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 20. November 2004, 17:02 »
Windows hat sich von seinen "Mikrokernel-Wurzeln"  weit entfernt. Der eigentliche Zweck eines Mikrokernels ist es ja, wie es schon erklärt wurde, möglichst alles im Benutzermodus laufen zu lassen. Jedoch wurde seit NT 4.0 aus Performancegründen vieles zurück in den Kernmodus verlagert.

Echte Mikrokernel-Systeme gibt es heute nur noch sehr wenige. Das liegt unter anderem daran, dass der x86 für monolithische Betriebssysteme entwickelt und optimiert wurde, und die vielen Kontextwechsel eines Mikrokernels das System dann unheimlich verlangsamen. So konnten Mikrokernel der ersten Generation, wie z.B. Mach, mit streng monolithischen Systemen wie Linux kaum mithalten und haben einen schlechten Ruf bekommen.

Die Mikrokernel der zweiten Generation, wie der L4, geben aber Hoffnung auf schnellere Mikrokernel-Systeme. Spätestens wenn GNU/Hurd rauskommt, kennen wir dann die Antwort :-)

Es wäre für dich auch eine Möglichkeit, einen fertigen freien Mikrokernel zu nehmen, und darauf dein System aufzusetzen.

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 20. November 2004, 20:50 »
Nunja, da man bei Linux auch schon Module hat, gibt es auch hier schon tendenzen die sich etwas vom puren-mono-prinzip entfernen.
Windows ist einfach nur noch komisch vom Aufbau, wenn ihr mich fragt :)
Es gibt ja auch noch andere Konzepte Hybrid-Kernel z.B.

Stack

  • Beiträge: 12
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 20. November 2004, 22:26 »
Wer glaubt, das Modul-Konzept von Linux hätte irgendetwas mit einem Mikrokernel zu tun, der irrt. Die Module dienen nur dazu, nicht benötigten Kernelcode auszulagern, um den Speicher frei zu halten. Wenn er geladen wird, läuft der Programmcode der Module aber ganz normal im Kernelmodus. Ein Modul kann das System also genausoschnell zum Absturz bringen, wie fest einkompilierter Code.

Linus hält nämlich, wie man z.B. in seiner Autobiografie nachlesen kann, nicht viel von Mikrokerneln.

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 20. November 2004, 23:16 »
Aber es entfernt sich vom Mono-Konzept da die Module dynamisch nachgeladen werden können...

Linux ist gut, keine Frage aber ich denke Torvalds ist hier einfach einer Ansicht die man natürlich akzeptieren soll, dennoch denke ich das Linux nicht gerade ein Beispiel an guter Planung für ein OS ist...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #7 am: 21. November 2004, 02:05 »
Bei dem ständigen wachsen des Linuxkernels wäre eine Mikrokernelarchitektur wohl besser gewesen.

Naja jedem das seine.

Auch wenn Linux (meiner Meinung nach zumindest f+r Server) sehr gut geeignet ist, weil man den Ressourcenfressenden GUI weglassen kann, halte ich es für ein Deskto-OS für nicht sonderlich gut.

Es werden jetzt viele das Gegenteil behaupten, aber auch nur deshalb weil das alles mehr oder weniger "Freaks" sind die sich geraume Zeit mit Linux auseinandersetzen.

Man muss aber mal klar festhalten, das ein OS dazu da ist es dem Anwender LEICHT zu machen einen PC zu bedienen.

Linux verfehlt dieses Ziel jedoch um längen. Alleine das erst konfigurieren und kompilieren der Programme um sie zum laufen zu bekommen ist schon irgendwo etwas dämlich und nicht gerade förderlich.

SUSe und Konsorten haben das erkannt und bieten mit Tools wie Yast wenigstens schonmal helbwegs gut funktionierende Tools an um den PC wenigstens in den Grundzügen zu konfigurieren.
Auch das Installieren von Treibern und zum laufen bringen von Hardware ist viel zu umständlich für einen normalsterblichen.

Daher ist es kein Wunder das Windows nach wie vor im Desktopbereich Vorzug hat.

Ich bin selbst nicht ganz unbeholfen was PCs angeht. Aber als ich mal Linux aufm Rechner hatte hatte ich shcon einiges zum knabbern um dort beispielsweise mal Sound zum laufen zu bringen....und das kanns einfach nit sein.

So long :)
----------------------
Redakteur bei LowLevel

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 21. November 2004, 09:54 »
Natürlich, SourceMage oder auch einfacheres wie ArchLinux sind vielleicht nichts für den 0815-Anwender aber ich habe nun schon einige Windows User zu SuSE 9.1 Personal (damals war 9.2 noch nicht draußen) "konventiert" und die behaupten einstimmig SuSE wäre einfacher als Windows 98/2000/XP (Me Anwender waren keine dabei^^)

Stack

  • Beiträge: 12
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 21. November 2004, 11:59 »
Ein 08/15 Anwender hat aber genauso wenig Erfolg damit, einen Treiber unter Windows zu installieren. Jeder kennt das wohl, als bekannter "PC-Freak" wird man regelmäßig von Bekannten darum gebeten, deren WLAN (etc.) einzurichten. So leicht scheint das unter Windows also auch nicht zu sein.

Diese Diskussion hat aber nichts mit der internen Kernelarchitektur zu tun, also zurück zum Topic.

 

Einloggen