Tuesday, September 16, 2008

The entire salt in the nucleus! About nuclei operating systems.

The term "core operating system" can be especially often hear from fans POSIX-systems. However, you can see, this does not mean that the same, for example, Windows, the kernel does not as such. What is the operating system kernel? What are they for? What are the nucleus of different OS? Here's to these questions we are with you and try to find answers.

Why kernel?

It would be logical to assume that the kernel - this is a central and in so doing fairly important part of the operating system. In general, this is true - the operating system kernel called by analogy with the atomic nucleus, which is the most important part of any atom. However, the atomic nucleus simultaneously and most massive of the atom, but the operating system kernel, by virtue of their design features, the largest part of the whole OS is not an option.

So, what is a kernel? This is part of the operating system permanently located in RAM and a dedicated processing system interruptions. That treatment interruptions is the most important functions of the nucleus, because it will ultimately get virtually all other OS functionality. The core exercises, however, only pre-processing interruptions, passing them on the further processing of running processes in the system. This allows you to handle interrupts quickly enough, and the kernel can quickly respond to each new interruption.

However, treatment interruptions - not only from all the functions performed by the nucleus of the operating system. Of course, developers additionally navesheno the kernel many other obligations that it is also obliged to perform the job of substantive work. First, there is pressure to work with the processes: the allocation of resources between the two machines, their creation and destruction, synchronization, etc. Secondly, the kernel is the fact that singles out and picks up blocks of memory needed by applications for the job. And thirdly, the kernel provides system and running it processes user access to the functions of input-output. In addition, the core can also engage in providing applications functions file system and many other functions that OS developers deem critical to work under it launches applications.

You can ask whether any operating system is the nucleus. The question, despite the seeming naivety, it is quite legitimate and logical. However, the answer will be brief: Yes, all. In any operating system is the part that has not been involved in bitter struggle for system resources - simply because of this loaded into RAM and always has the advantage in access to CPU time. It is this part and is the core.

However, of course, depending on the operating system and its purpose, the nucleus differ - and even very. Which ones? Now we are with you and get that talk about the kinds of operating systems kernels.

What are the nucleus?

Types of kernels of operating systems, in fact, not so much, but because a relatively concise list of characteristics of each of them is not complexity.

To begin, perhaps, with such interesting things as monolithic kernel. As the name of this type operating systems kernels, they are highly integrated components of the nucleus, which leads to a number of characteristics of his work - a higher speed and relatively simple to develop. But, the truth, if there is a negative, that if any of the kernel modules will not function correctly, it could lead to incorrect work of the whole kernel (read, to the collapse of the operating system). All components of this nucleus are working in the same address space - there is every kernel is the one great program. Older operating systems were all exclusively with the monolithic kernel and demanded recompiling the kernel when changing the configuration hardware, which worked with the operating system. Modern operating systems with a monolithic kernel is also not completely cured of this disease: when changes in the equipment you need to change some modules in the nucleus and then re-implement the whole kernel. Is it convenient? Hardly. But, nevertheless, thanks to the simplicity of establishing such a nucleus, monolithic architecture enjoys large popularity among systems programmers. POSIX-system (at least most of them), including BSD-systems, using the same architecture as the old UNIX 's, and MS-DOS - it is monolithic kernel. Therefore, users need to BSD-kernel systems collect every time a new when they add a new device in the system. However, this is not all BSD-systems - they are quite a lot.

Despite the fact that users of BSD-systems continue to play with his beloved monolithic kernel architecture, progressive mankind has gone ahead and invented such nuclear architecture, which eliminates a number of shortcomings monolithic kernel. One such solution is modular kernel.

Modular architecture allows the kernel changes in hardware configuration of the computer that operates the operating system did not perform recompiling the most important part of the whole operating system. What a way to do it? In fact, everything is easy. The nuclei of this type allow to work with external loadable modules that provide support for various devices - drivers. Since external modules, then you change equipment enough to change the set of these modules, and the nucleus has not necessarily touch. This, incidentally, and very convenient for developers - drivers for operating systems with a modular architecture nuclear easier to write and debug. However, modularity not eliminates the need to have a nucleus of some of the resident, which can not be accomplished in the form of plug-in. The modular architecture of the kernel used in more advanced, compared to the old UNIX 's, the operating system Linux, and that much of its popularity among users POSIX-systems. Modular kernels are also working in one address space, allowing them to continue to work quickly, but still imposes restrictions on mass drivers. Therefore, the modular kernel does not become the latest stage in the development of operating systems kernels.

Microkernel - it is already more advanced version of nuclear architecture. It provides the very core of relatively short list of options, which comprises normally only work with the processes of hardware and operating system abstraction. The rest functionality of the operating system introduced in the special processes that have the status of custom and called, typically services. This approach to organizing the operating system kernel has several advantages compared with monolithic and modular kernel. Thanks to the address space for many processes, more stable nucleus to mistakes in the service processes, but to "talk" between the process itself spent quite a lot of computer resources - at least the same CPU time. Therefore mikroyadernye operating systems have already emerged when the power of computers can not lose in performance issues during such a scheme organizations operating system kernel. Microkernel convenient for users who can change drivers directly in the process of the OS, and system programmers who do not need to climb into the kernel to add some functionality into the operating system: it is enough to realize service, which will work as a simple user application. Systems with micronuclei - is MacOS X, QNX, Symbian OS and some other, lesser known.

As you can see, the list of operating systems with any of the above-mentioned types of nuclei were not the most common operating system in the world - sirech Windows (meaning ruler NT - NT 4.0, 2000, XP, 2003, Vista, 2008). The reason for this, as you have probably guessed, is the kernel of Windows is a special type - this hybrid kernel. For this name - a hybrid of micronuclei and monolithic kernel. Many theorists build operating systems by Microsoft for swearing at the nucleus of its OS, but the architecture of the most efficient in terms of a combination of reliability and performance. Of course, apart from the merits of both architectures, it unites and their shortcomings, but year after year is becoming less, because there is no such difficulties that Microsoft would not overcome the sake of money. The components of Windows kernel work in the same address space (which, as you see, comes from older operating systems with monolithic kernel), but that interact with each other directly, but through messaging (this is true for mikroyader).

There are other types of nuclei - for example, nanoyadro, which only handles interrupts, or ekzoyadro, which in addition to interrupt only organizes interaction processes and distributes memory. But the kernel does not demand too, because modern hardware allows for a "normal" kernel architecture, even in embedded operating systems (such as in the case of the same QNX).


As you can see, nothing conceptually complex in the nuclei of operating systems do not. This part should be for each operating system, because without the nucleus lost meaning in the OS. In doing so, depending on the tasks in the creation of an operating system kernel it can have its architecture. What exactly - decide developers already operating system itself, but the nuclei of all the most famous and popular operating systems, we talked with you.

If you decide to write an operating system with its core (and this is quite difficult), the information contained in the article, you will not even be enough to simply proceed to the direct-writing software code. Well, here, as they say, Google in aid. Information on the kernels of operating systems on the Internet a lot, some of it before it even in Russian, so that finding, I think the special problems should not arise.

1) "Get Money for Clicks" NameDrive.com - Fastest Growing Domain Parking Company in the World.
2) Search your domain name wishing to have! FREE DOMAINS - yourname.co.cc

No comments:

Post a Comment