Frage von JamesOffice, 27

Unterschied ladbares Kernelmodul und Server in einer Microkernel-Architektur?

Guten Tag, gibt es ein Unterschied zwischen ein ladbares Kernelmodul (z.B unter Linux) und einem Server in einer Microkernel-Architektur (z.B unter Minix) ? wenn ja welches? hat er dann Auswirkungen auf die Stabilität der Beiden Kernelarchitekturen? Herzlichen Dank im Voraus!

Antwort
von GWBln, 12

Das läuft auf die Diskussion „monolitischer Kernel“ vs „modularer Kernel“ hinaus.

Darüber hat sich Prof. Tanenbaum heftig mit den Kernel-Entwicklern von Linux gestritten.

Ein „modularer Kernel“ kann ganz anders mit dem RAM umgehen, weil nicht benötigte Teile entladen werden. Damit kann eine etwas bessere Stabilität einhergehen, muß aber nicht zwangsläufig!

Der Linux-Kernel ist teilweise modular.

Zum Thema schau auch mal den Artikel

Gekapselt und überschaubar: Minix 3 strebt nach Sicherheit

von Rüdiger Weis, erschienen im Linux-Magazin 2009/01

Kommentar von JamesOffice ,

Das läuft auf die Diskussion „monolitischer Kernel“ vs „modularer Kernel“ hinaus.

Danke aber jetzt bin ich bissle verwirt und zwar ist der "Modularer Kernel" das gleiche wie "Microkernel" ?

Kommentar von GWBln ,

nein.

Der Micro-Kernel ist nicht teilbar und hat eine feste Größe im RAM ... je kleiner um so besser. Trotzdem können noch Module nachgeladen werden.

Ein Modularer Kernel schwankt in seinem RAM-Bedarf über die Zeit ... abhängig davon, welches Modul gebraucht wird ... inaktive werden entladen

Grob vereinfacht könnte man sagen:

Modularer Kernel = Micro-Kernel + ladbare Module.

Kommentar von JamesOffice ,

Ein „modularer Kernel“ kann ganz anders mit dem RAM umgehen, weil nicht benötigte Teile entladen werden. Damit kann eine etwas bessere Stabilität einhergehen, muß aber nicht zwangsläufig!

Danke noch mal für die Erklärung :) aber ich wollte eigentlich wissen, wie der Unterschied zwischen ladbares kernel Modul und Server in der Microkernel-Architektur auf die Stabilität der Beiden Kernelarchitekturen auswirkt und nicht von Modularer Kernel! Könntest du mir bitte das mal erklären!
Ich danke dir im Voraus!

Kommentar von GWBln ,

Ich habe es doch schon erklärt!

Was verstehst du unter

Server in der Microkernel-Architektur

Welche Aufgabe ein Kernel samt Modulen hat, ist überhaupt nicht relevant!

Ob das ein „Server“ oder ein Benutzer-PC ist: egal!

Es geht nur um die Stabilität!

Mir scheint, du hast die gar nicht mal die Mühe gemacht, meinen Tipp umzusetzen?

Hier solltest du lesen:

www.linux-magazin.de/Ausgaben/2009/01/Mit-Schutzmantel

und hier

https://de.wikipedia.org/wiki/Andrew_S._Tanenbaum

die dort gelieferten Informationen sind zu umfangreich für einen Beitrag hier!

Meine Kenntnis beruht zu einem großen Teil auf solchen Beiträgen

Kommentar von JamesOffice ,

Modular Kernel

Advantages

The most obvious is that the kernel doesn't have to load everything at boot time; it can be expanded as needed. This can decrease boot time, as some drivers won't be loaded unless the hardware they run is used (NOTE: This boot time decrease can be negligible depending on what drivers are modules, how they're loaded, etc.)The core kernel isn't as bigIf you need a new module, you don't have to recompile.

Disadvantages

It may lose stability

. If there is a module that does something bad, the kernel can crash, as modules should have full permissions....and therefore security is compromised. A module can do anything, so one could easily write an evil module to crash things. (Some OSs, like

 

Linux, only allow modules to be loaded by the root user.)Coding can be more difficult, as the module cannot reference kernel procedures without kernel symbols.

Also in dem Artikel von dem Prof Tanenbaum gehts um Monolithischer VS Microkernel...

Und das was du geschrieben hast, dass durch den Modularen Kernel eine bessere Stabilität erreicht werden kann, stimmt nicht, da man das durch den Microkernel erreichen kann!

Quelle : 

http://wiki.osdev.org/Modular_Kernel#Advantages

Kommentar von GWBln ,

was soll ich mit deiner Aussage

... durch den Modularen Kernel eine bessere Stabilität erreicht werden kann, stimmt nicht, da man das durch den Microkernel erreichen kann!

abgesehen davon daß ich diese Aussage nicht gemacht habe, ist auch deine Aussage falsch!

Wenn du dir die genannten Artikel durchgelesen hättest, wäre dir das klar geworden!

Schau dir auch einmal das Schema an (Artikel über Tanenbaum):

https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/Simplified_Structure_o...

Welches Konzept wirklich und endgültig stabiler ist, kann nicht mit Sicherheit gesagt werden, weil:

Wenn der Mikro-Kernel wirklich sauber programmiert ist, und ALLE peripheren Komponenten als Module vorliegen, besteht die Chance, daß dieser Mikro-Kernel die Blockade erkennt und das Modul entlädt ... ein Bedienerhandgriff ist u.U. nicht möglich!

Sollte die Ursache der Blockade aber im Ansprechen eines peripheren Gerätes liegen, nutzt das Neustarten des Moduls nichts ... es kommt erneut zur Blockade! Nachzulesen in den genannten Artikeln!

Andererseits könnte eine Komponente in einem modularen Kernel (aber NUR innerhalb diesem) eher das ganze System lahm legen ... nachgeladene Module kann man auch händisch stoppen, solange es noch eine Bedienbarkeit gibt ... zu Not remote, also per ssh-Sitzung!

Habe das selbst schon mal erlebt: Lokale Tastatur klemmt, remote konnte man noch etwas machen.

Antwort
von JamesOffice, 16

hat sich erledigt! Ladbares Kernel Modul befindet sich im UserMode, Server im KernelMode... ansosnten nix :)

Kommentar von GWBln ,

@JamesOffice: diese Aussage ist so nicht richtig!

Ladbare Kernel-Module, wie z.B. Netzwerktreiber sind System-Module!

Du verwechselst das wohl mit Modulen, die der Benutzer selbst erstellen kann?

Solche Module haben keine Priorisierung und keine erweiterten Rechte!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten