This article was reprinted from: 1190000002711544
The kernel is divided into two categories: the Microkernel (microkernel) and the macro kernel (macrokernel).
Microkernel is the ability to put a variety of service functions outside the kernel, itself is only a message to move, for the communication between the various functions.
The macro kernel is the integration of all service functions and is invoked directly when used.
PS: Service function has process management, memory management and so on.
The micro-core system has windownt,minix,mach,etc.
The macro kernel system has unix,linux,etc.
Take Minix (microkernel) and Linux (macro kernel) example below:
Minix and Linux to create a new process of the process can be seen in the difference between the two, Minix is built on the sub-module, the module between the information communication. Linux is also a sub-module, but at the time of operation, he is a separate binary large image, the communication between the modules by directly invoking the functions in other modules to achieve. Macro kernel and micro-kernel difference is here, micro-kernel is an information transfer station, its own to complete a few functions, mainly to pass a module on the function of another module request, and the macro core is a big supervisor, memory management, file management, and so a brain all take over.
Theoretically, the idea of micro-core is better, micro-core system is divided into small functional blocks, reducing the design difficulty, system maintenance and modification is easy, but the loss of efficiency of communication is a problem. The coupling between the function blocks of the macro core is too high for the cost of modification and maintenance, but in the current Linux is not a big problem, because Linux is not too complex, the macro kernel is directly called, so the efficiency is relatively high.
Micro kernel VS macro Kernel "Go"