Yesterday Huawei officially announced the Hongmeng operating system at the Huawei Developers Conference in Songshan Lake. One of the highlights of this system is —— microkernel. Huawei claims that the enabling of the microkernel has greatly increased its speed and revolutionized the security. The microkernel breaks the root of the macro kernel and can obtain all the permissions of the user, which greatly improves the security.
What is a microkernel?
The microkernel structure consists of a very simple hardware abstraction layer and a set of more critical primitives or system calls; these primitives only include the necessary parts to build a system; such as thread management, address space, and interprocess communication. Wait.
The goal of the microkernel is to separate the implementation of system services from the basic operational rules of the system. For example, a process's input/output lockout service can be provided by a service component running outside of the microkernel. These very modular user-mode servers are used to perform more advanced operations in the operating system. This design makes the design of the most kernel part of the kernel simpler. The failure of a service component does not cause the entire system to crash. What the kernel needs to do is to restart the component without affecting other parts.
The microkernel puts many OS services into separate processes, such as file systems, device drivers, and processes call OS services through messaging. The microkernel architecture must be multithreaded, the first generation of microkernels, which provide more in the kernel. The service is therefore called 'fat microkernel'. Its typical representative is MACH. It is both the GNU HURD and the core of APPLE SERVER OS. It can be said that it is booming. The second generation microkernel only provides the most basic OS services, typical. The OS is QNX, which is well known in the theoretical world and is considered an advanced OS.
Operating system with microkernel design
The microkernel is not a new concept. It has a long history. The following operating systems are designed based on the microkernel structure:
Knowing that someone has made a conclusion about the microkernel:
The Micro-kernel has failed. In commercial-grade operating systems (including open source operating systems that can be used for mission critical), L4 is still struggling to keep a small share, without any micro-kernel market.
The first generation of micro-kernel solved a wrong problem in a wrong way. The second generation micro-kernel solved the wrong problem in the right way.
The original can be seenHttps://www.zhihu.com/question/19716757
Is Linux a single-core or micro-kernel?
Linux is a single-core architecture that takes advantage of the microkernel: modular design that supports dynamic loading of kernel modules. Linux also avoids the flaws in microkernel design, letting everything run in kernel mode, calling functions directly, without the need for messaging.
As early as 1992, Linus had a famous debate with Tanenbaum about the choice of operating system kernel. Tanenbaum believes that an operating system designed with a microkernel architecture is theoretically superior to a macro-core architecture, and that Linux should be redesigned with a microkernel architecture. However, Linus countered the development practice and stated why Linux chose the macro kernel architecture for development and compared the performance differences between Minix and Linux. You can learn about this debate through Wikipedia.Full details.
Tanenbaum —— Distinguished technical writer, educator and researcher, IEEE Senior Member, ACM Senior Member, Royal Academy of Arts and Sciences, Royal ACM Karl V. Karlstrom Distinguished Education Award, 1997 ACM Computer Science Education Outstanding Contribution The award, the 2002 Texty Excellence in Teaching Materials Award, the 10th ACM Operating System Principles Workshop Outstanding Paper Award, was included in the “Who's Who in the World” directory.
The following figure is a simple architecture diagram of the macro kernel (left) and microkernel (right) structure:
Of course, for the end user, we don't care what kind of solution. From a realistic perspective, the microkernel seems to have a long way to go.
We are very much looking forward to the early delivery of services to end users.