Processes - Intermec CK1 Programmer's Reference Manual

Intermec ck1: reference guide
Hide thumbs Also See for CK1:
Table of Contents

Advertisement

µ
Appendix A —
Clinux System
294
In 1991, when the Linux kernel was released, the academic research was
oriented to the microkernel approach of operating systems. As Linus was
designing the kernel structure, he noticed the advantages of the
modularized approach where all operating system layers are relatively
independent and the microkernel includes all the hardware dependencies.
Linus Torvalds introduced modules to the monolithic kernel structure,
which still enabled the monolithic roots to exist. Modules bring the
theoretical advantages of microkernel to the monolithic Linux kernel, by
allowing modules to be compiled as normal object files, but the actual
linking is not done to the kernel image until the runtime. The loaded
module or drivers act exactly as if it would have been compiled directly to
the kernel image, until they are unloaded. Linux can be said to be a hybrid
monolithic kernel. This approach still enables the kernel to be compiled as
a true monolithic kernel by not compiling anything as a module and by
not enabling the CONFIG_MODVERSIONS support.
The microkernel approach also provides easy portability. Originally, the
idea with Linux was not to be a portable operating system toward the
hardware, as it was with the applications. In a true monolithic kernel
approach, the code includes the low-level interaction with the hardware so
the kernel appears to be specific to a particular architecture. A microkernel
performs a much smaller set of operations, abstracting all the details so that
a port to another platform would require only minimal changes. Torvalds
noticed that in order for the code to be portable, the abstraction layer was
not necessarily needed. Instead the Linux kernel structure is layered, so all
the hardware dependencies can be implemented to the lowest level of the
kernel.

Processes

Linux is a multitasking operating system, which means that it allows many
programs to run at once by switching the CPU between several tasks.
When a program is executed, it generates an instance that is called a
process. Each of these processes is indicated with a unique process
identifier (PID), which is assigned a positive number usually between 2
and 32768. After this, Linux starts to recycle the lower unused PIDs. The
first PID is reserved for the init process, which is in charge of managing
other processes. Many times the PID is relevant in system administration
that may have to debug or terminate processes by referencing the PID.
The difference between programs and processes should be noticed. Several
processes can execute the same program simultaneously, while the same
process can execute several programs one after another. Each process also
has a user identifier (uid) and group identifier (gid). They are used to
control the processes access to the files and devices in the system.
The kernel in the multitasking environment is the one that is responsible
for the management of different processes. The multitasking is transparent
to user processes. Each different process can act as if it is the only process
on the computer, with exclusive use of main memory and other hardware
resources. The processes in monolithic systems are also written in such
CK1 SDK Programmer's Reference Manual

Advertisement

Table of Contents
loading

Table of Contents