Information Technology Reference
In-Depth Information
OS Kernel Structure
window manager
networking
file system
virtual memory
device drivers
system calls
exceptions
interrupts
buffer allocation
processor scheduling/synchronization
Hardware Abstraction Layer
Figure3.13:Interprocess communication between a client process and a server
process.
Hardware abstraction layer
A key goal of operating systems is to be portable across a wide variety of hard-
ware platforms. To accomplish this, especially within a monolithic system,
requires careful design of the hardware abstraction layer . The hardware abstrac-
Definition: hardware
abstraction layer
tion layer (HAL) is a portable interface to machine-specific operations within
the kernel. For example, almost all general-purpose operating systems perform
process and thread context switches, but the specific implementation of those
routines will vary depending on the processor architecture. The exception, in-
terrupt, and system call trap handling is also machine-specific; all systems have
those functions, but the specific implementation will vary. As we will see in
a later chapter, machines differ quite a bit in their architecture for managing
virtual address spaces; most kernels provide portable abstractions on top of the
machine-dependent routines, such as to translate virtual addresses to physical
addresses or to copy memory from applications to kernel memory and vice versa.
With a well-defined hardware abstraction layer in place, most of the oper-
ating system is machine-independent. Thus, porting an operating system to a
new processor architecture is just a matter of creating new implementations of
these low level HAL routines, and recompiling.
Dynamically installed device drivers
A similar consideration leads to operating systems that can easily accommodate
a wide variety of physical I/O devices.
Although there are only a handful of
 
Search WWH ::




Custom Search