To avoid any confusion, it is worth stating certainly that in this blog, as in computer science generally metric units are used instead of traditional English units (the furlong-stone-fortnight system). The principal metric prefixes are listed in the following figure. The prefixes are normally abbreviated by their first letters, with the units greater than 1 capitalized. Thus a 1-TB database occupies 1012 bytes of storage and a 100 psec (or 100 ps) clock ticks every 10-10 seconds. Since rnilli and micro both begin with the letter "m", a choice had to be made. Normally, "m" is for rnilli and "" (the Greek letter mu) is for micro.

The principal metric prefixes.

It is also worth pointing out that for measuring memory sizes, in common industry practice, the units have a little different meanings. There Kilo means 210 (1024) rather than 103 (1000) because memories are always a power of two. Thus a 1-KB memory contains 1024 bytes, not 1000 bytes. Similarly, a 1-MB memory contains 220 (1,048,576) bytes and a 1-GB memory contains 230 (1,073,741,824) bytes. However, a 1-Kbps communication line transmits 1000 bits per second and a 10-Mbps LAN runs at 10,000,000 bits/sec because these speeds are not powers of two. Unluckily, many people tend to mix up these two systems, particularly for disk sizes. To avoid uncertainty, in this blog, we will use the symbols KB, MB, and GB for 210, 220, and 230 bytes respectively, and the symbols Kbps, Mbps, and Gbps for 103 , 106 and 109 bits/sec,  respectively.


Operating systems can be viewed from two viewpoints: resource managers and extended machines. In the resource manager view, the  operating system's job is to manage the different parts of the system efficiently. In the extended machine view, the job of the system is to provide the users with abstractions that are more convenient to use than the actual machine. These include processes, address spaces, and files.

Operating systems have a long history, starting from the days when they replaced the operator, to modern multiprogramming systems. Highlights include early batch systems, multiprogramming systems, and personal computer systems.

Since operating systems interact closely with the hardware, some knowledge of computer hardware is helpful to understanding them. Computers  are built up of processors, memories, and I/O devices. These parts are connected by buses.

The main concepts on which all operating systems are built are processes, memory management, I/O management, the file system, and security. Each of these will be treated in a subsequent section.

The heart of any operating system is the set of system calls that it can handle. These tell what the operating system really does. For UNIX, we have looked at four groups of system calls. The first group of system calls relates to process creation and termination. The second group is for reading and writing files. The third group is for directory management. The fourth group contains miscellaneous calls.

Operating systems can be prepared in verious ways. The most common ones are as a monolithic system, a hierarchy of layers, rnicrokernel,  client-server, virtual machine, or exokernel.


i/o devices, batch system, file system