3.4. Track of files
The hard disk is comprised of a large number of sequentially numbered sectors. As files are created, free sectors are allocated to hold the file contents and marked as allocated. To keep track of the sectors and whether they are allocated or free, and to which file they belong, the operating system maintains a number of tables.
3.5. Root file system
When the operating system is first installed, it creates a root file system on the disk that specifies how many sectors are available and how they will be allocated. The root file system is a table of entries like a directory. In general, this is a fixed size, and once full, no more entries can be added. Each entry can be either a file or another directory table. The following table depicts this structure (Figure 3.4).
3.4. ábra - Figure 3.4: File Root System
3.6. File systems supported by Windows operating systems
The Windows operating system supports the following file systems:
FAT
|
The MS-DOS operating system introduced the File Allocation Table system of keeping track of file entries and free clusters. Filenames where restricted to eight characters with an addition three characters signifying the file type. The FAT tables were stored at the beginning of the storage space.
|
FAT32
|
An updated version of the FAT system designed for Windows 98. It supports file compression and long filenames.
|
NTFS
|
Windows NT introduced the NT File System, designed to be more efficient at handling files than the FAT system. It spreads file tables throughout the disk, beginning at the center of the storage space. It supports file compression and long filenames.
|
3.7. Access-control lists and file permissions
In multi-user operating systems, files may be accessed by multiple users. Permission rights associated with folders (directories) and files are used to protect or restrict access to files. In UNIX these rights are known as Read, Write and Execute. In Windows NT and Windows 2000 (using the NTFS file-system), additional file permissions are available.
3.8. Symbolic ulink or shortcut
A symbol ulink is a filename that ulinks to another file. Consider the case on a UNIX box where three different mail packages are available. The administrator only wants to reference the mail using the command “mail”, so the filename is made to point to (or reference) the desired mail package. When the administrator runs the command “mail”, the appropriate mail package that is referenced by the symbolic ulink runs. In Windows, a similar capability is known as a shortcut.
4. The Windows Operating System
Windows (from Windows 2000 onward) is a significant example of what has become the new wave in microcomputer operating systems (other examples are Linux and MacOS). Windows was driven by a need to exploit the processing capabilities of today’s 32-bit and 64-bit microprocessors, which rival mainframes of just a few years ago in speed, hardware sophistication, and memory capacity. One of the most significant features of these new operating systems is that, although they are still intended for support of a single interactive user, they are multitasking operating systems. Two main developments have triggered the need for multitasking on personal computers, workstations, and servers. First, with the increased speed and memory capacity of microprocessors, together with the support for virtual memory, applications have become more complex and interrelated. For example, a user may wish to employ a word processor, a drawing program, and a spreadsheet application simultaneously to produce a document.Without multitasking, if a user wishes to create a drawing and paste it into a word processing document, the following steps are required:
-
Open the drawing program;
-
Create the drawing and save it in a file or on a temporary clipboard;
-
Close the drawing program;
-
Open the word processing program;
-
Insert the drawing in the correct location.
If any changes are desired, the user must close the word processing program, open the drawing program, edit the graphic image, save it, close the drawing program, open the word processing program, and insert the updated image. This becomes tedious very quickly. As the services and capabilities available to users become more powerful and varied, the single-task environment becomes more clumsy and user unfriendly. In a multitasking environment, the user opens each application as needed, and leaves it open. Information can be moved around among a number of applications easily. Each application has one or more open windows, and a graphical interface with a pointing device such as a mouse allows the user to navigate quickly in this environment. A second motivation for multitasking is the growth of client/server computing. With client/server computing, a personal computer or workstation (client) and a host system (server) are used jointly to accomplish a particular application. The two are ulinked, and each is assigned that part of the job that suits its capabilities. Client/server can be achieved in a local area network of personal computers and servers or by means of a ulink between a user system and a large host such as a mainframe. An application may involve one or more personal computers and one or more server devices.To provide the required responsiveness, the OS needs to support high-speed networking interfaces and the associated communications protocols and data transfer architectures while at the same time supporting ongoing user interaction. The foregoing remarks apply to the desktop versions of Windows. The Server versions are also multitasking but may support multiple users. They support multiple local server connections as well as providing shared services used by multiple users on the network. As an Internet server, Windows may support thousands of simultaneous Web connections.
4.1. Architecture
Its modular structure gives Windows considerable flexibility. It is designed to executeon a variety of hardware platforms and supports applications written for a variety of other operating systems. As of this writing, desktop Windows is only implemented on the Intel x86 and AMD64 hardware platforms. Windows server also supports the Intel IA64 (Itanium).
As with virtually all operating systems, Windows separates applicationoriented software from the core OS software. The latter, which includes the Executive, the Kernel, device drivers, and the hardware abstraction layer, runs in kernel mode. Kernel mode software has access to system data and to the hardware. The remaining software, running in user mode, has limited access to system data.
4.2. Operating System Organization
Windows has a highly modular architecture. Each system function is managed by just one component of the OS. The rest of the OS and all applications access that function through the responsible component using standard interfaces. Key system data can only be accessed through the appropriate function. In principle, any module can be removed, upgraded, or replaced without rewriting the entire system or its standard application program interface (APIs). The kernel-mode components of Windows are the following:
-
Executive: Contains the base OS services, such as memory management, process and thread management, security, I/O, and interprocess communication.
-
Kernel: Controls execution of the processor(s). The Kernel manages thread scheduling, process switching, exception and interrupt handling, and multiprocessor synchronization. Unlike the rest of the Executive and the user level, the Kernel’s own code does not run in threads.
-
Hardware abstraction layer (HAL): Maps between generic hardware commands and responses and those unique to a specific platform. It isolates the OS from platform-specific hardware differences. The HAL makes each computer’s system bus, direct memory access (DMA) controller, interrupt controller, system timers, and memory module look the same to the Executive and Kernel components. It also delivers the support needed for symmetric multiprocessing (SMP), explained subsequently.
-
Device drivers: Dynamic libraries that extend the functionality of the Executive. These include hardware device drivers that translate user I/O function calls into specific hardware device I/O requests and software components for implementing file systems, network protocols, and any other system extensions that need to run in kernel mode.
-
Windowing and graphics system: Implements the graphical user interface (GUI) functions, such as dealing with windows, user interface controls, and drawing. The Windows Executive includes components for specific system functions and provides an API for user-mode software. Following is a brief description of each of the Executive modules.
-
I/O manager: Provides a framework through which I/O devices are accessible to applications, and is responsible for dispatching to the appropriate device drivers for further processing. The I/O manager implements all the Windows I/O APIs and enforces security and naming for devices, network protocols, and file systems (using the object manager).
-
Cache manager: Improves the performance of file-based I/O by causing recently referenced file data to reside in main memory for quick access, and by deferring disk writes by holding the updates in memory for a short time before sending them to the disk.
-
Object manager: Creates, manages, and deletes Windows Executive objects and abstract data types that are used to represent resources such as processes, threads, and synchronization objects. It enforces uniform rules for retaining, naming, and setting the security of objects. The object manager also creates object handles, which consist of access control information and a pointer to the object.Windows objects are discussed later in this section.
-
Plug-and-play manager: Determines which drivers are required to support a particular device and loads those drivers.
-
Power manager: Coordinates power management among various devices and can be configured to reduce power consumption by shutting down idle devices, putting the processor to sleep, and even writing all of memory to disk and shutting off power to the entire system.
-
Security reference monitor: Enforces access-validation and audit-generation rules.The Windows object-oriented model allows for a consistent and uniform view of security, right down to the fundamental entities that make up the Executive. Thus, Windows uses the same routines for access validation and for audit checks for all protected objects, including files, processes, address spaces, and I/O devices.
-
Virtual memory manager: Manages virtual addresses, physical memory, and the paging files on disk. Controls the memory management hardware and data structures which map virtual addresses in the process’s address space to physical pages in the computer’s memory.
-
Process/thread manager: Creates, manages, and deletes process and thread objects.
-
Configuration manager: Responsible for implementing and managing the system registry, which is the repository for both system wide and per-user settings of various parameters.
-
Local procedure call (LPC) facility: Implements an efficient cross-process procedure call mechanism for communication between local processes implementing services and subsystems. Similar to the remote procedure call (RPC) facility used for distributed processing.
4.3. User-Mode Processes
Four basic types of user-mode processes are supported by Windows:
-
Special system processes: User mode services needed to manage the system, such as the session manager, the authentication subsystem, the service manager, and the logon process
-
Service processes: The printer spooler, the event logger, user mode components that cooperate with device drivers, various network services, and many, many others. Services are used by both Microsoft and external software developers to extend system functionality as they are the only way to run background user mode activity on a Windows system.
-
Environment subsystems: Provide different OS personalities (environments). The supported subsystems are Win32/WinFX and POSIX. Each environment subsystem includes a subsystem process shared among all applications using the subsystem and dynamic ulink libraries (DLLs) that convert the user application calls to LPC calls on the subsystem process, and/or native Windows calls.
-
User applications: Executables (EXEs) and DLLs that provide the functionality users run to make use of the system. EXEs and DLLs are generally targeted at specific environment subsystems; although some of the programs that are provided as part of the OS use the native system interfaces (NTAPI).
Windows is structured to support applications written for multiple OS personalities. Windows provides this support using a common set of kernel mode components that underlie the protected environment subsystems. The implementation of each subsystem includes a separate process, which contains the shared data structures, privileges, and Executive object handles needed to implement a particular personality. The process is started by the Windows Session Manager when the first application of that type is started. The subsystem process runs as a system user, so the Executive will protect its address space from processes run by ordinary users. A protected subsystem provides a graphical or command-line user interface that defines the look and feel of the OS for a user. In addition, each protected subsystem provides the API for that particular operating environment. This means that applications created for a particular operating environment may run unchanged on Windows, because the OS interface that they see is the same as that for which they were written. The most important subsystem is Win32. Win32 is the API implemented on both Windows NT and Windows 95 and later releases of Windows 9x. Many Win32 applications written for the Windows 9x line of operating systems run on NT systems unchanged. At the release of Windows XP, Microsoft focused on improving compatibility with Windows 9x so that enough applications (and device drivers) would run that they could cease any further support for 9x and focus on NT. The most recent programming API for Windows is WinFX, which is based on Microsoft’s .NET programming model. WinFX is implemented in Windows as a layer on top of Win32 and not as a distinct subsystem type
4.4. Client/Server Model
The Windows operating system services, the protected subsystems, and the applications are structured using the client/server computing model, which is a common model for distributed computing and which is discussed in Part Six. This same architecture can be adopted for use internal to a single system, as is the case with Windows. The native NT API is a set of kernel-based services which provide the core abstractions used by the system, such as processes, threads, virtual memory, I/O, and communication. Windows provides a far richer set of services by using the client/server model to implement functionality in user-mode processes. Both the environment subsystems and the Windows user-mode services are implemented as processes that communicate with clients via RPC. Each server process waits for a request from a client for one of its services (for example, memory services, process creation services, or networking services). A client, which can be an application program or another server program, requests a service by sending a message. The message is routed through the Executive to the appropriate server. The server performs the requested operation and returns the results or status information by means of another message, which is routed through the Executive back to the client.
Advantages of a client/server architecture include the following:
-
It simplifies the Executive. It is possible to construct a variety of APIs implemented in user-mode servers without any conflicts or duplications in the Executive. New APIs can be added easily.
-
It improves reliability. Each new server runs outside of the kernel, with its own partition of memory, protected from other servers. A single server can fail without crashing or corrupting the rest of the OS.
-
It provides a uniform means for applications to communicate with services via RPCs without restricting flexibility. The message-passing process is hidden from the client applications by function stubs, which are small pieces of code which wrap the RPC call. When an application makes an API call to an environment subsystem or service, the stub in the client application packages the parameters for the call and sends them as a message to a server subsystem that implements the call.
-
It provides a suitable base for distributed computing. Typically, distributed computing makes use of a client/server model, with remote procedure calls implemented using distributed client and server modules and the exchange of messages between clients and servers. With Windows, a local server can pass a message on to a remote server for processing on behalf of local client applications. Clients need not know whether a request is serviced locally or remotely. Indeed, whether a request is serviced locally or remotely can change dynamically based on current load conditions and on dynamic configuration changes.
5. The Unix Operating System
This was the first hint that UNIX would be an operating system for all computers. The next important milestone was the rewriting of UNIX in the programming language C. This was an unheard-of strategy at the time. It was generally felt that something as complex as an operating system, which must deal with timecritical events, had to be written exclusively in assembly language. Reasons for this attitude include the following:
-
Memory (both RAM and secondary store) was small and expensive by today’s standards, so effective use was important. This included various techniques for overlaying memory with different code and data segments, and self-modifying code.
-
Even though compilers had been available since the 1950s, the computer industry was generally skeptical of the quality of automatically generated code. With resource capacity small, efficient code, both in terms of time and space, was essential.
-
Processor and bus speeds were relatively slow, so saving clock cycles could make a substantial difference in execution time.
-
The C implementation demonstrated the advantages of using a high-level language for most if not all of the system code.Today, virtually all UNIX implementations are written in C.
These early versions of UNIX were popular within Bell Labs. In 1974, the UNIX system was described in a technical journal for the first time [RITC74]. This spurred great interest in the system. Licenses for UNIX were provided to commercial institutions as well as universities.The first widely available version outside Bell Labs was Version 6, in 1976. The follow-on Version 7, released in 1978, is the ancestor.
General UNIX Architecture
Of most modern UNIX systems. The most important of the non-AT&T systems to be developed was done at the University of California at Berkeley, called UNIX BSD (Berkeley Software Distribution), running first on PDP and then VAX computers. AT&T continued to develop and refine the system. By 1982, Bell Labs had combined several AT&T variants of UNIX into a single system, marketed commercially as UNIX System III. A number of features was later added to the operating system to produce UNIX System V.
The OS is often called the system kernel, or simply the kernel, to emphasize its isolation from the user and applications. It is the UNIX kernel that we will be concerned with in our use of UNIX as an example in this book. UNIX also comes equipped with a number of user services and interfaces that are considered part of the system.
5.1. Modern Unix Systems
As UNIX evolved, the number of different implementations proliferated, each providing some useful features. There was a need to produce a new implementation that unified many of the important innovations, added other modern OS design features, and produced a more modular architecture.
5.2. System V Release 4 (SVR4)
SVR4, developed jointly by AT&T and Sun Microsystems, combines features from SVR3, 4.3BSD, Microsoft Xenix System V, and SunOS. It was almost a total rewrite Common facilities of the System V kernel and produced a clean, if complex, implementation. New features in the release include real-time processing support, process scheduling classes, dynamically allocated data structures, virtual memory management, virtual file system, and a preemptive kernel. SVR4 draws on the efforts of both commercial and academic designers and was developed to provide a uniform platform for commercial UNIX deployment. It has succeeded in this objective and is perhaps the most important UNIX variant. It incorporates most of the important features ever developed on any UNIX system and does so in an integrated, commercially viable fashion. SVR4 runs on processors ranging from 32-bit microprocessors up to supercomputers.
5.3. BSD
The Berkeley Software Distribution (BSD) series of UNIX releases have played a key role in the development of OS design theory. 4.xBSD is widely used in academic installations and has served as the basis of a number of commercial UNIX products. It is probably safe to say that BSD is responsible for much of the popularity of UNIX and that most enhancements to UNIX first appeared in BSD versions. 4.4BSD was the final version of BSD to be released by Berkeley, with the design and implementation organization subsequently dissolved. It is a major upgrade to 4.3BSD and includes a new virtual memory system, changes in the kernel structure, and a long list of other feature enhancements. One of the most widely used and best documented versions of BSD is FreeBSD. FreeBSD is popular for Internet-based servers and firewalls and is used in a number of embedded systems. The latest version of the Macintosh operating system, Mac OS X, is based on FreeBSD 5.0 and the Mach 3.0 microkernel.
5.4. Solaris 10
Solaris is Sun’s SVR4-based UNIX release, with the latest version being 10. Solaris provides all of the features of SVR4 plus a number of more advanced features, such as a fully preemptable, multithreaded kernel, full support for SMP, and an objectoriented interface to file systems. Solaris is the most widely used and most successful commercial UNIX implementation.
UNIX System V makes use of a simple but powerful process facility that is highly visible to the user. UNIX follows the model, in which most of the OS executes within the environment of a user process. UNIX uses two categories of processes: system processes and user processes. System processes run in kernel mode and execute operating system code to perform administrative and housekeeping functions, such as allocation of memory and process swapping. User processes operate in user mode to execute user programs and utilities and in kernel mode to execute instructions that belong to the kernel. A user process enters kernel mode by issuing a system call, when an exception (fault) is generated, or when an interrupt occurs.
6. The Linux Operating System
An operating system (OS) is actually a collection of programs that gives a computer the critical functionality that lets you use it for work and entertainment. This book will explore the common operating systems used on microcomputers, but before we do, let’s answer a few general questions you may have: What is a microcomputer? What’s inside a microcomputer? What types of microcomputers are in use today? This section answers these questions. A microcomputer is a computer built around a microprocessor, a special integrated circuit (IC) that performs the calculations, or processing, of the computer. An IC, commonly called a chip, is a small electronic component made up of transistors (tiny switches) and other miniaturized parts. The first patents for integrated circuits were issued in 1959 to Jack Kilby of Texas Instruments and Robert Noyce of Fairchild Semiconductor Corporation. Today there are many ICs in a computer in addition to the microprocessor or central processing unit (CPU), also simply called a processor. A microcomputer is small enough and cheap enough to be dedicated to the use of a single person. This was a revolutionary idea in the 1970s, when microcomputers first became available; in the previous decades, computers were physically very large because bulky vacuum tubes served the purpose that microscopic transistors now serve.
6.1. Inside a Microcomputer
Our friend Brianna uses a PC at work and a Macintosh at home, and she will soon take night classes in which she will use a laptop PC that she carries to and from school. She wants to learn more about the computers that she uses each day, beginning with the hardware.
6.2. The Basic PC
Each computer that Brianna and the rest of us use is a metal and plastic hardware contraption composed of many components, some of which allow us to interact with the computer. In computerese, we call interaction with a computer input/output (I/O). When you send something into the computer – for instance, when you enter information via the keyboard or have your word processing program read a file from a disk – it is being input. When something comes out of the computer, such as the text and graphics you see on the display screen or the printed results on paper, it is being output from the computer.
Regardless of the brand of microcomputer you use, the common hardware components are basically the same. In general, they include at least one CPU per computer, a central circuit board called a motherboard, and randomaccess memory (RAM) that acts as the main memory for holding active programs and their data. There are one or more chips called ROM BIOS, a keyboard, a pointing device (mouse or some sort of touch pad), disk drives, and other peripheral devices such as printers, scanners, and cameras.
6.3. More About ROM BIOS
Central to any motherboard, and as critical to the operation of a PC as the CPU, is the system ROM BIOS (read only memory basic input output system). System ROM BIOS contains the program code that informs the processor of the devices present and how to communicate with them. Additionally, most components and peripherals have their own ROM BIOS with program code for operating that component. The ROM BIOS for most components is limited to small programs for basic communication between the operating system and the component. Supplementing or replacing the ROM BIOS – even parts of the central system ROM BIOS – are device drivers, special programs installed into an operating system. Each device driver contains code for controlling a component. These are an extension of BIOS, usually allowing much more control of a device than the small programs stored in that device’s ROM BIOS.
You can see evidence of the system ROM BIOS and other BIOSs in a PC if you carefully watch the screen as you power up the computer. Each ROM BIOS that powers up with the computer will perform a test. The system ROM BIOS test is known as the power on self-test (POST) and much of the information you see on the screen is the result of the POST and the tests of additional ROM BIOSs on the computer’s components.
7. Types of Microcomputers
In the 1970s, very few computers were small enough to sit on a desk. One computer, the Control Data 160A, actually was the desk! But people wanted computers on their desks, so what they used was a dumb terminal consisting of a CRT (cathode-ray tube) and a keyboard connected to a large mainframe computer. (Large stand-alone computers are called mainframes.) In the late 1970s, when computers became small enough to sit on a desk, someone coined the word microcomputer and it became widely used to describe the early forms of these computers. We’re now more likely to use the term personal computer (PC), which applies to computers that comply with hardware standards set and supported by Microsoft, Intel (the largest computer chip manufacturer), and to a lesser extent, other companies. We call these the Microsoft/Intel standards (also called Wintel). However, many important microcomputers don’t comply with these standards most notably, those from Apple and the small handheld computers such as smartphones that are so popular today.
7.1. Desktops and Laptops
A desktop computer is a computer designed to spend its useful life in one location on a desk. A portable computer is designed to be easily carried from one location to another. There are many sizes and types of portable computers. Our discussion of operating systems in this book is limited to the most common operating systems that run on modern desktop and laptop computers. They include Windows and Linux, both of which run on PCs, and Mac OS X, which runs on Apple computers. Early Macintosh computers came with sophisticated graphics abilities that made them attractive to users requiring high-quality graphical and multimedia support. Part of Apple’s early marketing plans simply gave computers to schools, so today the Macintosh has ardent supporters in education and in the graphics businesses. Eventually Microsoft/Intel compatible computers closed the gap in graphics and multimedia capabilities. In the decades since the introduction of the IBM PC, the majority of desktop and laptop computers used in private and public organizations complied with the Microsoft/Intel standard, with Macintosh computers a distant second. In recent years Apple desktop and portable computers have made great gains in market share. In fact, according to IDC, a market research firm, Apple is third in portable computer sales if you count the company’s iPad models along with the MacBook laptop models. If you exclude iPads, Apple is fourth in sales.
7.2. Servers
You can also use a PC or Mac as a server, a computer that plays several important roles in a network. In all of these roles, it provides services to other computers, which is why it is called a server. We call a computer on the receiving end of these services a client. We may base server functions on the same hardware components found in desktop computers, but they are beefed up considerably for a server to which hundreds or thousands of users must connect – resulting in the computer equivalent of a heavyweight versus a lightweight boxer. The cost, which can run in the thousands of dollars for a server versus only a few hundred dollars for an average PC, reflects this difference. What kind of services does a server provide? When we use a server to store all of the data files of the users in a department or company, we call it a file server. If a server has one or more printers connected to it that it shares with users on the network, we call it a print server. We call a server doing both tasks a file and print server, and even though it sounds like two services, they combine into one service called a file and print service. Note that one server can offer multiple services at the same time. Other servers may offer messaging services (e-mail and fax), Web services, and many, many others. It takes specialized software to provide each type of server service, and complementary client software to request each type of service.
7.3. Handheld Devices
Computers today include a long list of various devices that don’t have computer in their name, such as handheld devices, games, stoves, refrigerators, TVs, and DVD and Blu-ray players. Many handheld devices, often proprietary, comply with no, or very few, standards in their design, but they are still computers because they contain processors. They include a wide variety of products ranging from simple handheld computers to multifunction mobile devices, such as the devices used in grocery stores to track inventory. Many handheld devices run proprietary OSs, while others run scaled-down versions of desktop OSs. The most popular handheld devices are wireless phones, called smartphones, that not only allow voice communications, but also let you connect to the Internet, view your e-mail, and do many other things on their small color screens. Examples of smartphones are Apple Computer’s iPhone, RIM’s BlackBerry, Microsoft’s Windows Phone, and various models by Palm, Nokia, HTC, Samsung, LG, and others. Operating systems designed specifically for use on smartphones include Google’s Android, Palm’s webOS, Apple’s iOS, and Windows Mobile.
7.4. Smartphones
Although you will not really study handheld devices in this book, to satisfy your curiosity about smartphones try this:
-
Use an Internet search engine, such as www.google.com, and search on the term “smartphones.” Browse through the sites you find in the search engine. Results will vary, but some likely sites are www.htc.com, www.apple.com/iphone, and www.blackberry.com.
-
What OSs do the latest smartphones use?
The functions of an operating system for an operating system between an application and the hardware, since the single-purpose software interacted with all of the hardware of the system. When programmers (also known as “developers”) write an application, they design the application to interact with the operating system and make all requests for hardware services through the operating system. To do this, they must write the program to use the correct commands to request operating system services. The operating system, in turn, interacts with the hardware on behalf of the application and fulfills the requests the application made. Today, because our computers are no longer such dedicated systems, the operating system performs several functions. We’ll study them next.
8. >Functions of Operating Systems
Justin works part-time in a legal office and is a full-time student at a community college, where he is in the computer information systems (CIS) track. Recently, he took a Saturday community education class in computer graphics. At work, he has Windows 7 on his desktop computer; at home he uses Windows XP; and in his graphics class, he used a Macintosh. His next class at the community college will involve working with Linux. Although Justin’s experience might seem extreme, it illustrates that you are likely to encounter different desktop operating systems at work, school, and home. In addition, as computers proliferate, it becomes more important to learn the common characteristics that they share. Justin spends most of his time on each computer he uses working in one or another specific application, such as a word processor, a graphical drawing program, or an Internet browser. However, he must also perform tasks outside of these applications, such as logging onto the computer, launching each application, managing files, and even troubleshooting the occasional problem that may arise with the computer. But each of these different computers requires different ways of doing things so he wants to gain a better understanding of the OSs so that he can both perform better on the job and feel more comfortable while working on the various computers. He wants to learn what an OS is and what functions it performs, as the following sections describe. An operating system is the software (or group of programs) that acts as the central control program for the computer. As such, it is loaded (or “booted up,” a derivation of the adage “lifting yourself by your own bootstraps”) when the computer is turned on. Its main component, the kernel, always remains in memory while the computer is running, managing low-level (close-to-the-hardware) OS tasks. The operating system acts as an intermediary between the applications and the hardware. Until we made the transition from single-purpose machines to multipurpose machines, there was no need.
8.1. User Interface
The user interface is the software layer, sometimes called the shell, through which the user communicates with the OS. The OS, in turn, communicates with the computer. Thus, the user interface includes the command processor, which loads programs into memory, as well as the many visual components of the operating system (what you see when you look at the display). On a computer running DOS or Linux (without a graphical shell), this visual component consists of a character-based command line that provides only sparse amounts of information. This is the command-line interface (CLI). On the other hand, Apple’s Mac and Microsoft’s Windows operating systems provide an information-rich graphical user interface (GUI), fully integrated into the operating system. It is through this GUI that you communicate with the OS and the computer. The GUI offers menus and graphical icons (small graphics) that allow you to use a pointing device to select programs to run and to perform many other tasks, such as opening a word processor file. Although you do not have to memorize arcane commands, working within a GUI does require you to learn the meaning of the various graphical pieces that make up the GUI and how to navigate among these pieces to find your programs and data. In addition, you must learn how to make a program become active (to start it running) so that you can get your work or play done. Notice the icons and other graphical components, such as the bar at the bottom containing the button showing the Microsoft logo and the cursor. In a GUI the cursor is sometimes replaced by a graphical pointer that can have a variety of shapes that you can move around by manipulating a pointing device – usually a mouse, trackball, or touch pad (on a laptop). The pointer allows you to select or manipulate objects in the GUI, which serves as a metaphor for commands. For example, to delete an item, you pick it up and put it into the recycle bin. By contrast, in a CLI, you would type a command such as “delete myfile.txt.”
8.2. Job Management
Job management is an operating system function that controls the order and time in which programs are run. Two examples of programs that may perform this function are a scheduling program that schedules other programs or batch files to run on a certain day and time, and a print program that manages and prioritizes multiple print jobs.
8.3. Task Management
Task management is an operating system function found in multitasking operating systems. Multitasking implies that a computer is simultaneously running two or more programs (tasks) at the same time. In reality, a computer cannot run more tasks simultaneously than the number of processors that exist within the computer. Until recently, most desktop and laptop computers had only a single processor, switching between tasks so fast that it seems to be executing a number of tasks at the same time. New processors can have multiple CPUs within a single chip, so they have true multitasking. Task management controls the focus (where the system’s attention is at any given moment). It also allows the user to switch between tasks by giving the focus to the application the user brings to the foreground. In Windows, this application runs in the current window – the window that is on top of other windows on the screen and the window that receives input from the keyboard when the user types.
8.4. Memory Management
Memory management is an operating system function that manages the placement of programs and data in memory, while keeping track of where it put them. In the case of advanced operating systems, such as Windows XP and later Windows versions, this involves a scheme for making optimal use of memory. Virtual memory allows more code and data to be in memory than what the actual physical system memory can hold. Using a memory management OS component called the virtual memory manager, these operating systems move code and data, as necessary, to a portion of the disk defined as virtual memory, meaning that this disk space is used as if it were memory, not just disk storage space. The OS performs this transfer for code and data that are part of any program that currently does not have the user’s attention because this unneeded-now information does not have to be kept in RAM for immediate use, so other programs that do need to use the memory now can do so.
8.5. File Management
File management, also referred to as data management, is an operating system function that allows the operating system to read, write, and modify data, while managing the logical storage of the data. Each operating system has at least one scheme of logical organization, called a file system. A file system is the logical structure used on a storage device for the purpose of storing files, as well as the code within an operating system that allows the OS to store and manage files on a storage device. The logical structure is written to a storage device when an operating system uses a technique called formatting. The operating system maps the logical organization of the file system to physical locations on the storage device, most often a conventional hard disk drive or solid state drive so that it can store and retrieve the data. The logical structure of a file system stores metadata, which is data about the stored files.
Normally, a single storage device will have only a single file system, residing in a single area defined as a partition, but most operating systems allow a storage device to have more than one partition. A partition may be an entire drive volume or just a portion of a drive, and it is assigned some identifier, for example, a drive letter like C. In DOS and Windows, the drive letter is followed by a colon, so that a complete drive name may be C:. We often call this a logical drive. Within the logical structure of a file system, data is organized into entities called files that are saved to storage devices (usually disks). File management also allows users to organize their files, using other special files that act as containers. These special files, called folders or directories, can contain files as well as other folders. There are file systems for magnetic media (hard drives), file systems for optical media, and special file systems for working over the network. Each of the operating systems discussed in this book supports several types of file systems. Examples of file systems for magnetic media include the FAT file system that originated with both PC DOS and MS-DOS; the ext2, ext3, JFS, VFS, and ReiserFs file systems for Linux; the FAT32 and NTFS file systems for Windows; and the Mac OS files systems, HFS and HFS+.
8.6. Device Management
The device management function controls hardware devices by using special software called device drivers, which are installed in the operating system. Device drivers are unique to the device and the manufacturer of the device creates them to work with a specific operating system. For instance, a printer or video adapter will come with drivers for several different operating systems. The device driver contains the commands understood by the device and uses these commands to control the device in response to requests it receives from the operating system. You need a component-specific device driver for each unique hardware component with which the operating system interacts.
8.7. Security
The security function of an operating system provides password-protected authentication of the user before allowing access to the local computer and may restrict what someone can do on a computer. For example, Rachel is the accounting clerk in a small company. She has confidential information on her computer, and she doesn’t want just anyone to be able to walk up to her computer and access the information stored there. Rachel can set up her computer so that anyone getting into it must log on with a user name and password from a user account. A user account is nothing more than a name and an associated password stored inside the PC.
9. Categories of Operating Systems
Operating systems are organized into four categories, three of which are based on the number of simultaneous tasks and the number of simultaneous users that can be served, while one category, real-time, is based on an entirely different set of characteristics. The categories are:
-
Single-user/single-tasking;
-
Single-user/multitasking;
-
Multiuser/multitasking;
-
Real-time.
We’ll discuss each in turn.
9.1. Single-User/Single-Tasking
A single-user/single-tasking operating system is one that allows only a single user to perform a single task at a time. A task is a function such as reading a file from disk, performing a math calculation, printing a document, or sending a request over the Internet to a Web server. Small and simple OSs can only manage a single task at a time.
Examples of single-tasking OSs are MS-DOS and the Palm OS, used on the palmOne handheld computers. Because they take up very little space on disk or in memory when they are running, a single-tasking OS does not require a powerful and expensive computer. The current OSs on the iPhone and the iPad fall into this category because they only allow a user to run one user application at a time.
9.2. Single-User/Multitasking
An operating system that allows a single user to perform two or more functions at once is a single-user/multitasking operating system. Early versions of both Microsoft Windows and the Macintosh operating systems were examples of this category. Thanks to these OSs and the applications that run on them, people could accomplish more in less time, increasing their productivity. For instance, a single user can have two or more programs open, share data between programs, and can instantly switch between them.
9.3. Multiuser/Multitasking Operating Systems
A multiuser/multitasking operating system allows multiple users to run programs simultaneously. We have had such operating systems for decades on mainframes and on today’s network servers, sometimes called terminal servers. This is not at all the same as connecting to a network server for the sake of accessing files and printers. When a computer connects to a file and print server to access document files to edit, the client computer performs the processing work locally. Not so with a multiuser server OS that gives each user a complete operating environment on the server that is separate from all other users. A terminal client is software on the user’s computer that establishes a connection to the terminal server. In a multiuser/multitasking operating system server environment, all or most of the computing occurs at the server. When connected to a multiuser/multitasking server, each user may have either a full-fledged PC or a thin client (a minimally configured PC). The terminal client runs software under Windows, Mac OS, or Linux, but with far lower hardware requirements than it would need if it ran all the processes locally. The terminal server providing a multiuser/multitasking OS to client computers may be a Unix, Linux, NetWare, or a special version of Microsoft Windows server. The multiuser capabilities of today’s OSs carry over to the user environment. Multiple users can have accounts on a single computer – desktop or server – and when each user logs on he sees his desktop with all his favorite gadgets and other settings, and he has access to his files and installed programs.
The desktop operating systems we survey in this book – Windows XP, Windows Vista, Windows 7, Linux, and Mac OS X – all are multiuser/multitasking operating systems with one caveat: only one user at a time can interactively log into the computer. However, a logged on user can simply log out, and leave their entire session of open applications and windows intact, and another user can log in and run a separate session, thus switching the current user. Therefore, Windows OSs support multiple but not simultaneous interactive users. All of the desktop OSs surveyed in this course support multiple simultaneous user connections over a network.
9.4. Real-Time Operating Systems
A real-time operating system (RTOS) is a very fast and relatively small OS. Often embedded, meaning it is built into the circuitry of a device and not normally loaded from a disk drive, a real-time operating system runs real-time applications. It may support multiple simultaneous tasks or it may only support single tasking. A real-time application responds to certain inputs extremely quickly – thousandths or millionths of a second (milliseconds or microseconds, respectively). They run medical diagnostics equipment, life-support systems, machinery, scientific instruments, and industrial systems. Real-time OSs are used in aviation and aerospace where the code must run within the allotted time. Output must be provided in time to make a course correction (in the case of aviation software), make a flow correction (in the case of a ventilator), or provide a warning to an operator. Examples of real-time operating systems include BlueCat Linux by LynuxWorks, QNX Neutrino by QNX Software Systems, Operating System Embedded (OSE), pSOS, and Windows CE. Real-time embedded systems are everywhere. Devices with real-time embedded systems control the movement of surveillance cameras suspended by cables over a sports arena. Other devices gather data from racecars and transmit the data and live video images of the race from each car. Real-time embedded systems are also used in unmanned military ground vehicles, and you’ll find real-time embedded systems in very large-scale machines, such as the huge sack, parcel, and large parcel sorting machines found in U.S. Postal Service bulk mail centers. A real-time operating system’s speed and ability to work with special real-time application programs defines it.
9.5. 16-, 32-, and 64-Bit OSs
We call an operating system that can take advantage of the addressing and processing features of a processor an x-bit OS. The original MS-DOS was a 16-bit OS, as was Windows 3.0 and its sub-versions. Windows 95, Windows 98, and Windows Millennium Edition were really hybrids, with mostly 32-bit pieces but some 16-bit pieces for downward compatibility. Windows XP had a 64-bit version, but it was not widely used, and you are unlikely to encounter it in the wild. The Windows versions, Mac OS X, and Linux OSs we discuss in this book are available in both 32-bit and 64-bit versions. All things being equal, the 64-bit version of an operating system will be faster than its 32-bit counterpart, but the biggest difference between the 32-bit and 64-bit versions of Windows is in the address space used by both system RAM and other RAM and ROM in your computer (see Table 1.1). Windows 64-bit does not use the maximum theoretical address space of a 64-bit CPU, which is 264, or 9.2 quintillion (nine followed by 18 digits). A 64-bit operating system requires 64-bit applications, although Microsoft has offered ways to support older applications in each upgrade of Windows, as described in this book. To determine if a Windows Vista or Windows 7 computer is running a 32-bit or 64-bit version, type “system” in the Start menu’s Start Search box (simply Search in Windows 7) and select “System” from the resulting list of Programs. The System Type field will say “32-bit Operating System” or “64-bit Operating System.” If you purchase a new computer today with either Windows or the Mac OS preinstalled, it is most likely to be a 64-bit OS.
9.6. Yesterday’s Operating Systems
Sometimes people think that they can simply take the newest and best computer or other gadget and make it work without understanding anything about how it came to be. Well, they can. But they probably can’t fix it, modify it, or use it effectively without understanding how and why it came to be in the form it’s in now. One really can’t understand current PC technology without having a grasp of older PC technology. In other words, studying history is important to understand how we arrived at today. We’ll begin with arguably the oldest OS still in use today, with beginnings that predate microcomputers. Then we’ll explore the history of computers leading to today’s PCs and Mac desktop computers and the operating systems that evolved for each of these hardware platforms.
9.7. UNIX – The OS for All Platforms
In the context of this book, we have put UNIX under Yesterday’s Desktop OSs because UNIX has a longer history than any other popular operating system. It grew out of an operating system developed for an early Digital Equipment Corporation (DEC) computer and went through several generations of changes before it emerged from the Bell Labs Computing Science Research Center (Bell Labs) as UNIX version 6 in 1975. This was a portable operating system for minicomputers and mainframe computers distributed via government and commercial licenses and inexpensive academic licenses. A portable operating system is one that you can use on a variety of computer system platforms, with only minor alterations required for the underlying architecture. The University of California at Berkeley licensed UNIX, modified it, and distributed it to other schools as Berkeley Software Distribution (BSD) version 4.2. Later versions have followed. The schools paid licensing fees to Bell Labs. Students and others improved on and added to UNIX, freely sharing their code with each other. This tradition still prevails today with such versions of UNIX as Free BSD, Net BSD, Open BDS, and Open Solaris. Commercial versions of UNIX today include AIX, OpenServer (derived from SCO UNIX), and HP/UX. In certain environments UNIX is still very much alive. The current commercial versions of UNIX include Sun Microsystems’ Solaris, Hewlett-Packard’s HP-UX, IBM’s AIX, and Compaq’s Tru64 UNIX. These versions are high-end server applications and quite expensive, as are the computers they run on. There are also many open source versions of UNIX, including Free BSD and NetBSD. Open source is a certification standard of the Open Source Initiative (OSI) through which a program’s source code (the original language in which a program is written) is made available free of charge to the general public. Learn more about open source at www.opensource.org. Even with these free versions available, however, it is worthwhile to buy one of the modestly priced packages from companies that charge small fees just for the value they have added to the OS in the form of additional software, installation and configuration instructions, and documentation. In addition to portability to many computer platforms, UNIX supports time-sharing and multiuser systems, and some versions run on personal computers. UNIX can be found today on very large computer systems (still referred to as mainframes) and on Intel desktop systems, as well as on a variety of midsize computers. Most versions of UNIX also offer several different user interfaces. Some use character mode, like the traditional shells, such as the Bourne shell and the C shell. Others use a graphical interface such as GNOME or KDE. Even fierce UNIX advocates do not see UNIX taking over the desktop any time soon. However, it is an excellent server operating system, because it uses resources carefully, allowing you to load only the services currently needed. It is also very secure, and versions of UNIX are present on many of the world’s Internet servers.
9.8. Today’s Desktop OSs
Today’s desktop operating systems include Windows Vista, Windows 7, Mac OS X, and Linux. The latest versions of all of these OSs are multiuser/multitasking operating systems, with support for virtual memory and security, and each comes in editions that support either 32-bit or 64-bit processors.
9.9. Windows Vista
Microsoft released the first retail version of Windows Vista early in 2007. Seen more as an upgrade of Windows XP, it included improvements in how Windows handles graphics, files, and communications. The GUI has a new look compared to previous versions of Windows, and, on computers that can support it, a feature called Aero, which provides translucent windows, live thumbnails, live icons, and other enhancements, further enhances the GUI. Windows Vista was not widely adopted due to problems with speed, high hardware requirements, and the annoyance of a new security feature, called User Account Control (UAC).
9.10. Windows 7
Released in October 2009 Windows 7 is the best version of Windows to date. It includes several improvements to Windows Vista – correcting the shortcomings that kept Windows Vista from being widely accepted. Windows 7 is faster than Windows Vista in several ways, from starting up, to going into and out of sleep mode, to recognizing new devices when you connect them. Windows 7 has many new features. The short list includes a redesigned desktop with a new taskbar that has many new features of its own, such as jump lists.
9.11. Windows 8
At this writing, the next version of Windows, rumored to be named Windows 8, is projected to come out in late 2011 or early 2012. While all is speculation, the expected new features include improved support for wireless connectivity and other new features such as stereoscopic 3-D, facial detection, USB 3, and hardware acceleration. Experts expect Windows 8 to support virtualization – perhaps with a built-in hypervisor, which is software that provides the simulated hardware of a virtual machine. It may use virtualization of applications to separate running applications from the core of the OS. Applications virtualized remotely on a server could leave the OS with a much smaller footprint on the desktop. While 32- and 64-bit support is a given, some speculate that Windows 8 may go further with 128-bit support. Windows File Systems Depending on the version of Windows you use, you can select from two or three supported file systems when you format a disk. The main file systems supported for hard drives today are FAT32 and NTFS. Windows recognizes several formats for optical drives.
10. Questions
-
What is an operating system?
-
What are the goals of an operating systems?
-
What are the components of a computer system?
-
What does it mean a batch system?
-
Describe a personal computer system!
-
Give examples for distributed computing systems!
Share with your friends: |