Information Technology Reference
In-Depth Information
window
manager
App
user
mode
login
OS lib
kernel
mode
Operating System Kernel
Figure3.1: Operating system functionality can be implemented in user-level
programs, in user-level libraries, in the kernel itself, or in a user-level server
invoked by the kernel.
We can put the functionality in the operating system kernel, accessed
through a system call. In Windows and UNIX, low level process manage-
ment, the file system and the network stack are all implemented in the
kernel.
We can access the function through a system call, but implement the
function in a standalone server process invoked by the kernel. In many
systems, the window manager is implemented as a separate server process.
How do we make this choice? It is important to realize that the choice can
be (mostly) transparent to both the user and the application programmer. The
user wants a system that works; the programmer wants a clean, convenient
interface that does the job. As long as the operating system provides that
interface, where each function is implemented is up to the operating system,
based on a tradeoff between flexibility, reliability, performance and safety.
Flexibility. It is much easier to change operating system code that lives
outside of the kernel, without breaking applications using the old interface.
If we create a new version of a library, we can just link that library in with
new applications, and over time convert old applications to use the new
interface. However, if we need to change the system call interface, we
must either simultaneously change both the kernel and all applications,
or we must continue to support both the old and the new versions until
all old applications have been converted. Since many applications may be
written by third party developers, outside of the control of the operating
 
Search WWH ::




Custom Search