Intermec ck1 Reference Guide
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.
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.
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.
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