Difference between revisions of "Kernel"
m (+cat) |
(link microkernel; move ukernel content there) |
||
Line 5: | Line 5: | ||
In more complex systems such as [[Multics]], there are 'layers' within the kernel, so e.g. only some of the kernel might be always resident in main memory (e.g. [[interrupt]] handlers, and the code to handle 'page [[trap|fault]]s' with virtual memory); other parts of the kernel might be 'paged'. Generally, even the higher layers will still have access to operations which ordinary user code is not allowed to use. | In more complex systems such as [[Multics]], there are 'layers' within the kernel, so e.g. only some of the kernel might be always resident in main memory (e.g. [[interrupt]] handlers, and the code to handle 'page [[trap|fault]]s' with virtual memory); other parts of the kernel might be 'paged'. Generally, even the higher layers will still have access to operations which ordinary user code is not allowed to use. | ||
− | A recent trend is OS work is the | + | A recent trend is OS work is the [[microkernel]], where only the most limited functionality is in the kernel; other functionality which is normally considered part of the kernel (e.g. the [[file system]]) might be run in some other environment. These sub-systems are only loaded, and started, once the microkernel is loaded and running. |
− | |||
− | |||
[[Category: OS Basics]] | [[Category: OS Basics]] |
Latest revision as of 13:11, 29 January 2022
The kernel is the core of an operating system (in the modern, expansive sense of that term); it is usually permanently resident in main memory, and in time-sharing systems (which almost all OS's now are), it usually uses a special mode in the CPU which allows some operations (e.g. changing the configuration of the virtual memory hardware) which are forbidden to 'ordinary' user programs (usually running in processes).
In simple systems, such as early versions of UNIX, the kernel is a single monolithic program, which is completely loaded when the system is booted.
In more complex systems such as Multics, there are 'layers' within the kernel, so e.g. only some of the kernel might be always resident in main memory (e.g. interrupt handlers, and the code to handle 'page faults' with virtual memory); other parts of the kernel might be 'paged'. Generally, even the higher layers will still have access to operations which ordinary user code is not allowed to use.
A recent trend is OS work is the microkernel, where only the most limited functionality is in the kernel; other functionality which is normally considered part of the kernel (e.g. the file system) might be run in some other environment. These sub-systems are only loaded, and started, once the microkernel is loaded and running.