Monolithischer vs Mikrokernel

8

Was sind die Unterschiede zwischen einem monolithischen Kernel und einem Mikrokernel in Bezug auf Struktur und Sicherheit? Mein Freund sagte mir, dass Linux-Systeme einen monolithischen Kernel haben und daher nicht einfacher zu hacken sind, aber ich glaube nicht, dass er tatsächlich richtig war.

Jemand bitte kläre mich auf.

Prasoon Saurav
quelle
Für ein wenig historischen Hintergrund können Sie die Tanenbaum-Torvalds-Debatte von 1992 lesen .
Bis auf weiteres angehalten.

Antworten:

6

Der grundlegende Unterschied besteht darin, dass ein Mikrokernel (MK) sehr klein ist und nur sehr wenige Dienste bereitstellt. Der Großteil der normalerweise als Betriebssystemdienste geltenden Dienste wird von separaten Prozessen bereitgestellt, die außerhalb des Kernels und in einem weniger privilegierten Modus ausgeführt werden. Diese Prozesse müssen über einige von IPC kommunizieren, anstatt nur in die Datenstruktur zu lesen / schreiben, auf die sie zugreifen möchten.

MKs sind in der Regel recht einfach zu portieren, da der Kernel klein und der Portierungsaufwand gering ist.

Da viele der bereitgestellten Dienste möglicherweise im Benutzerbereich anstatt im Kernelbereich ausgeführt werden, können sie andere Prozesse nicht einfach in den Papierkorb verschieben. Dies ist ein Sicherheitsplus.

Angenommen, der Teil des Netzwerkstapels befand sich im Benutzerbereich und wurde kompromittiert, sodass andere Prozesse / Aufgaben möglicherweise nicht gestört werden können. Wenn derselbe Teil des Netzwerkstapels in einem monolithischen Kernel möglicherweise im Kernelbereich ausgeführt wird, kann er bei einer Kompromittierung andere Prozesse in den Papierkorb werfen, da er privilegiert wäre.

Jason Tan
quelle
1

Um Jasons Vortrag zu veranschaulichen, sehen Sie hier den Unterschied zwischen Mikro-Hybrid- und Monolith-Kernel:

Kernel

Lesbare Bildquelldatei auf Wikipedia .

Studer
quelle