kernel - What is the difference between an nanokernel and an exokernel? -


i understand both supposed small, key differences between two?

exokernel operating system mit (and class of it's variants) handles relatively little hardware abstraction. in exokernel, low-level responsibilities of controlling hardware (particularly memory allocation) left in hands of developer. many developers prefer have os take more responsibility of such low-level tasks, because developers writing applications.

an exokernel allocates physical hardware resources programs. allows program use library operating systems, linked in provide of abstraction exokernel isn't providing. developer can choose between abstraction models, or roll own. given application, may have great performance benefits. if don't know you're doing, can write programs explode when crash.

most kernels more abstract physical hardware resources kind of theoretical model. developer interfaces model, handles finer points of dealing hardware internally.

the term nanokernel used describe specific type of kernel. prefix "pico-", or "nano-", "micro-" denoting "size" of kernel.. bigger kernels more built more features, , handle more hardware abstraction. nanokernels relatively small kernels provide hardware abstraction, lack system services. modern microkernels lack system services, terms have become analogous.

the names of kernels stem specific batch of research yielded new kind of kernel, example kernel developed @ at carnegie mellon called "mach", 1 of first examples of modern "microkernel".

sidenote: real benefit of exokernel choice. of time, lot of abstraction means fewer catastrophic bugs. in applications, might want use different abstraction model, or might want handle yourself. if wanted scrap os abstraction particular project, we'd have cut out operating system , commit piece of hardware job. in case of exokernel, isn't necessary. can program directly "to metal", choose link in abstraction model whenever like. it's powerful concept.

sidenote: dealing memory on such low level unnecessary application developers. there several layers of operating system built on top of kernel, , application run on highest level of os. when writing in javascript, you're higher still, interfacing model implemented in application runs on operating system, etc. etc. addressing memory, while shouldn't ignored, might mean entirely different developer writing on such high level of abstraction.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -