Advanced Programming in the UNIX® Environment

(lily) #1
ptg10805159

1


UNIX System Over view


1.1 Introduction


All operating systems provide services for programs they run. Typical services include
executing a new program, opening a file, reading a file, allocating a region of memory,
getting the current time of day,and so on. The focus of this text is to describe the
services provided by various versions of the UNIX operating system.
Describing the UNIX System in a strictly linear fashion, without any forward
references to terms that haven’t been described yet, is nearly impossible (and would
probably be boring). This chapter provides a whirlwind tour of the UNIX System from
aprogrammer ’s perspective. We’ll give some brief descriptions and examples of terms
and concepts that appear throughout the text.We describe these features in much more
detail in later chapters. This chapter also provides an introduction to and overview of
the services provided by the UNIX System for programmers new to this environment.

1.2 UNIX Architecture


In a strict sense, an operating system can be defined as the softwarethat controls the
hardwareresources of the computer and provides an environment under which
programs can run. Generally, we call this softwarethekernel,since it is relatively small
and resides at the coreofthe environment. Figure1.1 shows a diagram of the UNIX
System architecture.
The interface to the kernel is a layer of softwarecalled thesystem calls(the shaded
portion in Figure1.1). Libraries of common functions arebuilt on top of the system call

1
Free download pdf