Intermec ck1 Reference Guide

Page of 390
Appendix A — 
µClinux System 
CK1 SDK Programmer’s Reference Manual 
293 
descriptor table, saves system parameters, and detects the processor model. 
At the end, it jumps to init/main.c and in there the start_kernel() function, 
which completes the initialization of the Linux kernel by calling different 
external functions defined in the appropriate kernel subsystem. 
General Purpose Linux Kernel Architecture 
The Linux kernel, like most commercial Unix variants, is monolithic, 
which means that it enables you to have all operating system services 
running within the privileged mode of the processor. The privileged mode 
services are said to be running on a Kernel mode where the actual kernel 
code is loaded and where memory is allocated for kernel-level operations. 
In contrast, the applications run on a user mode and are isolated from the 
operating system. When the user mode application calls a system service 
through a limited set of interfaces, the processor traps the call and makes a 
kernel level service. Generally, this action makes the kernel simpler and 
faster because it does not have to switch between privileged to non-
privileged mode. The problem with a true monolithic system is that the 
whole kernel has to be compiled together in a single executable, which 
makes expansion of the kernel more difficult.  
Microkernel architecture approaches this problem by implementing a 
smaller set of operations in a more limited form. It runs several system 
processes on the top of the microkernel, which handles the other operating 
system-layer functions like file, memory, and process manager. This 
attends to be less hardware specific as many of the system specifics are 
pushed into user space but slower as it requires more messages passing 
between the different layers. The microkernel version also tends to have 
more complex structure than in monolithic ones.  
Hardware
Operating 
System
Drivers
Hardware
Hardware
Hardware
Memory 
Management
Process 
Manager
Microkernel
...
 
Monolithic Kernel Versus Microkernel