Was ist der Unterschied zwischen einem Nanokernel und einem Exokernel?

StackOverflow https://stackoverflow.com/questions/172388

  •  05-07-2019
  •  | 
  •  

Frage

Ich verstehe, dass sie beide angeblich klein sein, aber was sind die wichtigsten Unterschiede zwischen den beiden?

War es hilfreich?

Lösung

Exokernel ist ein Betriebssystem vom MIT (und eine Klasse von ihm Varianten), die relativ wenig Hardware Abstraction behandelt. In Exokernel werden die Low-Level-Aufgaben der Steuerung der Hardware (insbesondere Speicherzuweisung ) in den Händen der Entwickler oft verlassen. Viele Entwickler würden es wahrscheinlich vorziehen, das Betriebssystem übernimmt mehr Verantwortung für solche Low-Level-Aufgaben zu haben, denn die meisten Entwickler sind nur Anwendungen zu schreiben.

Ein Exokernel nur ordnet physische Hardware-Ressourcen, um Programme . Dies ermöglicht die Programmbibliothek Betriebssysteme zu verwenden, die in verknüpft sind einige der Abstraktion zu schaffen, die die Exokernel nicht bereitstellt. Der Entwickler kann dann zwischen Abstraktion Modellen wählen oder ihre eigene Rolle. In Anbetracht der Anwendung kann diese große Leistungsvorteile haben. Wenn Sie nicht wissen, was Sie tun, können Sie auch Programme schreiben, die explodieren, wenn sie abstürzen.

Die meisten Kerne werden mehr auf abstrakte physische Hardware tun Ressourcen in eine Art theoretisches Modell . Ein Entwickler-Schnittstellen mit diesem Modell, das intern die Feinheiten im Umgang mit Hardware behandelt.

Der Ausdruck Nanokernel wird verwendet, um eine spezifische Art der Kernel zu beschreiben. Die Vorsilbe „Pico-“ oder „Nano“, „Mikro-“ ist in der Regel bezeichnet die „Größe“ des Kernels .. Bigger Kernel ist mehr mit mehr Funktionen gebaut und Griff mehr Hardware-Abstraktion . Nanokernels sind relativ kleine Kerne, die Hardware bieten Abstraktion , sondern Mangel Systemdienste . Moderne Mikrokerne fehlt es auch an Systemdienste, so haben sich die Bedingungen werden analog.

Namen von Kernel stammt in der Regel aus einer bestimmten Charge von Forschung, die eine neue Art von Kernel ergab, zum Beispiel des Kern an dem Carnegie Mellon entwickelt „Mach“ genannt, der einer der ersten war Beispiele eines modernen „Mikro-Kernel“.

Nebenbei bemerkt: Der eigentliche Vorteil von Exokernel ist Wahl. Die meiste Zeit, bedeutet eine Menge Abstraktion weniger katastrophalen Fehler. In einigen Anwendungen, mögen Sie vielleicht ein anderes Abstraktion Modell verwenden, oder Sie können alles selbst zu handhaben wollen. Wenn wir die OS Abstraktion für ein bestimmtes Projekt verschrotten wollten, würden wir das Betriebssystem ausgeschnitten haben und ein Stück Hardware, um den Job zu begehen. Im Fall von Exokernel, ist dies nicht notwendig. Wir können programmieren direkt „an das Metall“, sondern auch wählen, in einem Abstraktion Modell zu verbinden, wann immer wir wollen. Es ist ein sehr leistungsfähiges Konzept.

Nebenbei bemerkt : auf ein so niedriges Niveau mit Speicher Umgang ist nicht notwendig für die meisten Anwendungsentwickler. Es gibt in der Regel mehrere Schichten des Betriebssystems auf einem Kernel eingebaut, und Ihre Anwendung auf der höchsten Ebene des Betriebssystems ausgeführt wird. Wenn in Javascript zu schreiben, bist du immer noch höher, mit einem Modell in einer Anwendung implementiert eine Schnittstelle, die auf einem Betriebssystem läuft, etc. etc. Speicher adressiert, während sie nicht ignoriert werden sollen, könnte etwas ganz anderes zu einem Entwickler bedeuten die auf einem so hohen Abstraktionsebene schreibt.

Andere Tipps

fand ich einen Link, der zur Unterscheidung von monolithischem Mikro und Exokernel wirklich sehr hilfreich ist. Link ist --- http://www.scribd.com/doc/174682128 / Difference-between-monolithische-Microkernel-and-Exokernel

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top