[Excerpt] microkernel with big kernel ---- "to write their own embedded operating system."

       Microkernel kernel is different with the big two operating system design idea, which is similar to the design of the CPU RISC and CISC architecture. Wherein the micro-kernel is thought, to minimize the operating system mechanisms be implemented in the kernel module, and the operating system functions as much as possible so as to achieve a separate process or thread, which facilitates extension of the operating system architecture. For example, a common design idea is, the inter-process (or thread) scheduling, interprocess communication mechanisms (IPC) and synchronization, timing functions, memory management, interrupt scheduling functionality into the kernel to achieve, because the code for these functions need volume is not large, it is possible that the small core size. In addition, the operating system must implement a file system, device drivers, network protocol stack, IO Manager functions as a separate process or task to achieve, user applications when needed these functions, IPC mechanism through the core provided ( such as messaging mechanism) makes a request to the service process, that is a typical client - server mechanism.

        This realization of ideas microkernel has obvious advantages, such as architecture clearer, scalability, etc., and because the core is kept small, portable (transplantation between different CPU) is also very strong. But this idea also has great disadvantages, one of the biggest drawbacks is the relatively low efficiency, because the system calls and other services are indirectly achieved through the IPC mechanism, if the server process is busy, for customer requests may not respond in a timely manner. So this microkernel design approach, not suitable for embedded operating system design, embedded operating system because the efficiency is the most important goal to pursue.
 
       It is a big kernel design ideas contrary, this idea was put as many operating system functions to get the kernel module to achieve, when the operating system is loaded, the system loads the kernel modules into space. Since these systems are static code functions, not as a process implemented as a microkernel, and directly in the space of the calling process to the code, sending a message does not exist, to wait for message processing, message processing result returned delay the like, and therefore call these function code, particularly efficient. Therefore, in the pursuit of efficiency embedded operating system development, such a large core model is appropriate.

        But the big kernel, there are some drawbacks, the most obvious is the kernel too large, sometimes it makes its poor scalability (which can be partially solved by a dynamically loadable module). But in the embedded operating system development, the drawbacks of this performance was not very obvious. Figure 1-4 illustrates the development of ideological core.

                       

 

Released nine original articles · won praise 3 · views 10000 +

Guess you like

Origin blog.csdn.net/zerfew/article/details/104308982