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.
Antworten:
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.
quelle
Um Jasons Vortrag zu veranschaulichen, sehen Sie hier den Unterschied zwischen Mikro-Hybrid- und Monolith-Kernel:
Lesbare Bildquelldatei auf Wikipedia .
quelle