The Easy Guide to Operating Systems by Larry Miller - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.
index-1_1.jpg

The Easy Guide To

Computer

Operating Systems

By Larry Miller

Table of Contents

Table of Contents.................................................................................................................2

INTRODUCTION...............................................................................................................2

WHAT IS AN OPERATING SYSTEM?............................................................................4

HISTORY OF OPERATING SYSTEMS...........................................................................8

WHAT AN OPERATING SYSTEM DOES.....................................................................13

MICROSOFT WINDOWS................................................................................................34

MAC OS............................................................................................................................46

UNIX..................................................................................................................................52

LINUX...............................................................................................................................55

GNU...................................................................................................................................58

OTHER OPERATING SYSTEMS...................................................................................60

INSTALLING AN OPERATING SYSTEM....................................................................63

DEFINING THE PROCESSES.........................................................................................67

CONCLUSION..................................................................................................................93

INTRODUCTION

Our body couldn’t function without our brains. The brain tells the various pieces of our body how to work and how to interact.

Without a brain, we wouldn’t be able to do anything at all.

An operating system is kind of like the brain of a computer. You have a bunch of hardware like the CPU tower, the monitor, and the keyboard, but without a CPU, they can’t do anything but power up and By Larry Miller

turn on. The operating system organizes files and lets the hardware know what it should do.

In the early days of computers, there was just one operating system. As computers progressed, the OS turned into MS-DOS, but computers really weren’t capable of doing much without software.

Then Bill Gates came along.

With the founding of Microsoft, the computer operating system came into its own and brought computers to new levels of functioning and technology. Although the brand names of operating systems are few, they do perform different tasks depending on the requirements of the computer user.

While the dominant OS today would be Microsoft Windows, there are other types of operating systems that offer different features.

Those would include Linux, UNIX, and OS X.

In our technological age, there are operating systems in more than just computers. Many of the sophisticated new cell phones have their own operating systems, and wireless access points have their own OS to provide wireless internet to customers. In fact, the computer in a cell phone today is more powerful than a computer was twenty years ago.

As you can see, the operating system technology has evolved and is continuing to evolve. It seems like Microsoft is always coming out with a new and better operating system which leads people to By Larry Miller

wonder whether or not the system they are currently using is really the best one.

It can be confusing. But it doesn’t have to be. In the pages of this book, we’ll explore operating system in depth. You’ll learn about what they do, how they work, and what needs specific systems can meet. Ultimately, the choice is a matter of preference, but it helps to be informed on what you are really getting when choosing an OS.

WHAT IS AN OPERATING SYSTEM?

An operating system – commonly referred to as an OS – is a set of computer programs that manage the hardware and software

resources of a computer. The OS processes electronic devices with a rational response to commands that are approved by the system.

By Larry Miller

At the foundation of all system software, an operating system performs basic tasks like controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating the network, and managing files. The OS can also provide a graphical user interface for higher functions. Essentially, the OS

forms a platform for other system software as well as application software.

The operating system is the most important program that runs on a computer. Without an operating system, your computer would not work. It would not be able to process requests for print, simple calculations, or any other function. It is really the brain that runs the equipment.

For larger system, the OS has great responsibilities than with a PC. In larger systems, the operating system is kind of like a traffic cop. It makes sure that different users and programs running at the same time on different systems don’t interfere with each other. It also acts as a security guard making sure that unauthorized users are not able to access the system.

There are four classifications of a computer operating system.

They are:

Multi-User: Allows two or more users to run programs at the same time. Some operating systems permit hundreds or even

By Larry Miller

thousands of concurrent users

Multi-Processing: Supports running a program on more than one CPU

Multi-Tasking: Allows more than one program to run

concurrently

Multi-Threading: Allows different parts of a single program to run concurrently

Real Time: Responds to input instantly. General-purpose operating systems, such as DOS and UNIX, are not real-time.

Operating systems provide a software platform on top of which other programs, called application programs , can run. The application programs must be written to run on top of a particular operating system.

Your choice of operating system, therefore, determines to a great extent the applications you can run. For PCs, the most popular operating systems are DOS, OS/2, and Windows, but others are available, such as Linux.

In any device that has an operating system, there's usually a way to make changes to how the device works. This is far from a happy accident; one of the reasons operating systems are made out of By Larry Miller

portable code rather than permanent physical circuits is so that they can be changed or modified without having to scrap the whole device.

For a desktop computer user, this means you can add a new

security update, system patch, new application or often even a new operating system entirely rather than junk your computer and start again with a new one when you need to make a change.

As long as you understand how an operating system works and know how to get at it, you can in many cases change some of the ways it behaves. And, it's as true of your cell phone as it is of your computer.

So, essentially, when you turn on your computer, the first

program is a set of instructions kept in the computer’s read only memory. These instructions examine the system hardware to make sure everything is functioning properly. This power-on self test check the CPU, the memory, and the basic input/output systems (BIOS) for errors and stores the result in a special memory location.

Once the test has successfully completed, the software loaded in ROM (sometimes called the BIOS or firmware) will begin to activate the computer's disk drives. In most modern computers, when the computer activates the hard disk drive, it finds the first piece of the operating system: the bootstrap loader.

The bootstrap loader is a small program that has a single

function: It loads the operating system into memory and allows it to begin operation. In the most basic form, the bootstrap loader sets up By Larry Miller

the small driver programs that interface with and control the various hardware subsystems of the computer.

It sets up the divisions of memory that hold the operating

system, user information and applications. It establishes the data structures that will hold the myriad signals, flags and semaphores that are used to communicate within and between the subsystems and applications of the computer. Then it turns control of the computer over to the operating system.

It might be helpful for you to know the history of operating systems.

HISTORY OF OPERATING SYSTEMS

By Larry Miller

The earliest of computers didn’t have an operating system. By the early 1960’s, commercial computer vendors were supplying quite extensive tools for streamlining the development, scheduling and execution of jobs on batch processing systems.

Through the 1960’s, several concepts were developed which

drove the development of operating systems. The IBM System 360

produced a family of mainframe computer that served consumers with differing capacities and prices. A single operating system was planned for these computers rather than developing generic programs for every individual model.

This concept of a single OS that will fit an entire product line was crucial for the success of System 360. In fact, IBM’s current mainframe operating systems are distant relatives of this original system. The advantage to this is that applications written for the OS

360 can still be run on modern machines.

The OS 360 system also contained another important advance

affecting today’s computers: the development of a hard disk permanent storage device which IBM called DASD.

A second key development was the concept of time sharing.

Time sharing involves sharing the resources of expensive computers among multiple computer users interacting in real time with the system. What that essentially means is that all of the users have the illusion of exclusive access to the machine. The most famous of time sharing system was called Multics.

By Larry Miller

Multics served as an inspiration to a number of operating

systems developed in the 1970’s. Most notably was the Unix system.

Another commercially popular mini-computer operating system was VMS.

The first microcomputers did not have the capacity or need for the elaborate operating systems that had originally been developed for mainframes and minis. Smaller operating systems were developed and often loaded from ROM and known as Monitors.

One notable early disk-based OS was CP/M which was supported on many early micro-computers and was largely cloned when MS-DOS

was created. MS-DOS became wildly popular as the operating system chosen for the IBM PC.

The successive operating systems that came from MS-DOS made Microsoft one of the most profitable companies in the world with the development of Windows. The only other alternative throughout the 1980’s was Mac OS which was tied intimately to the Apple McIntosh computer.

By the 1990s, the microcomputer had evolved to the point where it became increasingly desirable. Everyone wanted a home computer.

Microsoft had already come out with Windows 95 and 98, but people longed for more power and more options. Microsoft’s response to this change was the development of Windows NT which served as the basis for Microsoft’s desktop operating system line that launched in 2001.

By Larry Miller

Apple was also rebuilding their own operating system on top of Unix core as Mac OS X also released in 2001 developing one of the business world’s greatest rivalries.

Today, our operating systems usually have a graphical user

interface (GUI) which uses a pointing device such as a mouse of stylus for input in addition to the keyboard. Older systems – and we mean REALLY OLD – use a command line interface asking for commands to be entered via the keyboard.

Both models are centered on a “shell” which accepts and

processes commands from the user. The user may be asked to click on a button or type in a command upon an on-screen prompt.

By far, the most common operating system in use today is

Windows XP, but Microsoft has just released their newest Windows project – Windows Vista. Linux is also another popular OS as is Unix.

We’ll explore them later on in the book, but each offers its own particular advantages and disadvantages.

Considering the boom of the technology market, it’s really a surprise that there are so few operating systems in existence. There really isn’t an easy explanation for this, but it is a reality. It would only seem logical that with all of the different computer manufacturers out there, there would be more of a choice for an OS than what there is. It is certainly another anomaly in the world of computer technology.

By Larry Miller

So what exactly do operating systems do? Since they really are the “brain” of the computer, they do quite a bit!

By Larry Miller

WHAT AN OPERATING SYSTEM DOES

As a user, you normally interact with the operating system

through a set of commands. For example, the DOS operating system contains commands such as COPY and RENAME for copying files and changing the names of files, respectively.

The commands are accepted and executed by a part of the

operating system called the command processor or command line interpreter. Graphical user interfaces allow you to enter commands by pointing and clicking at objects that appear on the screen.

But that really doesn’t address the various ways that operating systems make your computer work easier and more efficiently. Their specific capacities are what make them help your computer operate as a user-friendly device. Let’s look specifically at what an operating system does.

Process Management

Every program running on a computer whether it is a

background service or an application is called a process. As long as von Neumann architecture is used to build a computer, only one process per CPU can be run at one time.

Older computer operating systems such as MS-DOS did not try to bypass this limit with the exception of interrupt processing and only one process could be run under them. Mainframe operating systems By Larry Miller

have had multi-tasking capabilities since the early 1960’s. Modern operating systems enable concurrent execution of many processes at once via multi-tasking even with one CPU.

Process management is an operating system’s way of dealing

with running multiple processes at once. Since most computers contain one processor with one core, multi-tasking is done by simply switching processes quickly. Depending on the operating system, as more processes run, either each time slice will become smaller or there will be a longer delay before each process given a chance to run.

Process management involves computing and distributing CPU

time as well as other resources. Most operating systems allow a process to be assigned a priority which affects its allocation of CPU

time. Interactive operating systems also employ some level of feedback in which the task with which the user is working receives higher priority.

Interrupt driven processes will normally run at a very high priority. In many systems, there is a background process such as the System Idle Process in Windows which will run when no other process is waiting for the CPU.

It's tempting to think of a process as an application, but that gives an incomplete picture of how processes relate to the operating system and hardware. The application you see (word processor, spreadsheet or game) is, indeed, a process, but that application may By Larry Miller

cause several other processes to begin, for tasks like communications with other devices or other computers.

There are also numerous processes that run without giving you direct evidence that they ever exist. For example, Windows XP and UNIX can have dozens of background processes running to handle the network, memory management, disk management, virus checking and so on.

A process, then, is software that performs some action and can be controlled -- by a user, by other applications or by the operating system.

It is processes, rather than applications, that the operating system controls and schedules for execution by the CPU. In a single-tasking system, the schedule is straightforward. The operating system allows the application to begin running, suspending the execution only long enough to deal with interrupts and user input.

Interrupts are special signals sent by hardware or software to the CPU. It's as if some part of the computer suddenly raised its hand to ask for the CPU's attention in a lively meeting. Sometimes the operating system will schedule the priority of processes so that interrupts are masked -- that is, the operating system will ignore the interrupts from some sources so that a particular job can be finished as quickly as possible.

By Larry Miller

There are some interrupts such as those from error conditions or problems with memory that are so important that they can't be ignored. These non-maskable interrupts (NMIs) must be dealt with immediately, regardless of the other tasks at hand.

While interrupts add some complication to the execution of

processes in a single-tasking system, the job of the operating system becomes much more complicated in a multi-tasking system. Now, the operating system must arrange the execution of applications so that you believe that there are several things happening at once.

This is complicated because the CPU can only do one thing at a time. In order to give the appearance of lots of things happening at the same time, the operating system has to switch between different processes thousands of times a second. Here's how it happens:

A process occupies a certain amount of RAM. It also makes

use of registers, stacks and queues within the CPU and operating-system memory space.

When two processes are multi-tasking, the operating system

allots a certain number of CPU execution cycles to one program.

After that number of cycles, the operating system makes

copies of all the registers, stacks and queues used by the processes and note the point at which the process paused in its execution.

By Larry Miller

It then loads all the registers, stacks and queues used by the second process and allow it a certain number of CPU cycles.

When those are complete, it makes copies of all the registers, stacks and queues used by the second program, and load the first program.

All of the information needed to keep track of a process when switching is kept in a data package called a process control block. The process control block typically contains:

An ID number that identifies the process

Pointers to the locations in the program and its data where processing last occurred

Register contents

States of various flags and switches

Pointers to the upper and lower bounds of the memory

required for the process

A list of files opened by the process

The priority of the process

By Larry Miller

The status of all I/O devices needed by the process

Each process has a status associated with it. Many processes consume no CPU time until they get some sort of input. For example, a process might be waiting on a keystroke from the user. While it is waiting for the keystroke, it uses no CPU time. While it is waiting, it is

“suspended”.

When the keystroke arrives, the OS changes its status. When the status of the process changes, from pending to active, for example, or from suspended to running, the information in the process control block must be used like the data in any other program to direct execution of the task-switching portion of the operating system.

This process swapping happens without direct user interference, and each process gets enough CPU cycles to accomplish its task in a reasonable amount of time. Trouble can come, though, if the user tries to have too many processes functioning at the same time. The operating system itself requires some CPU cycles to perform the saving and swapping of all the registers, queues and stacks of the application processes.

If enough processes are started, and if the operating system hasn't been carefully designed, the system can begin to use the vast majority of its available CPU cycles to swap between processes rather than run processes. When this happens, it's called thrashing, and it By Larry Miller

usually requires some sort of direct user intervention to stop processes and bring order back to the system.

One way that operating-system designers reduce the chance of thrashing is by reducing the need for new processes to perform various tasks. Some operating systems allow for a “process lite” called a thread that can deal with all the CPU-intensive work of a normal process, but generally does not deal with the various types of I/O and does not establish structures requiring the extensive process control block of a regular process. A process may start many threads or other processes, but a thread cannot start a process.

So far, all the scheduling we've discussed has concerned a single CPU. In a system with two or more CPUs, the operating system must divide the workload among the CPUs, trying to balance the demands of the required processes with the available cycles on the different CPUs.

Asymmetric operating systems use one CPU for their own needs and divide application processes among the remaining CPUs.

Symmetric operating systems divide themselves among the various CPUs, balancing demand versus CPU availability even when the operating system itself is all that's running.

Even if the operating system is the only software with execution needs, the CPU is not the only resource to be scheduled. Memory management is the next crucial step in making sure that all processes run smoothly.

By Larry Miller

Memory Management

The way computers are built, the memory is arranged in a

hierarchal way. It starts with the fastest registers, the CPU cache, random access memory, and disk storage. An operating system’s memory manager coordinates the use of these various memory types by tracking which one is available, which one should be allocated or de-allocated and how to move data between them.

This function is referred to as virtual memory management and increases the amount of memory available for each process by making the disk storage seem like main memory. There is a speed penalty associated with using disks or other slower storage as memory. If running processes requires significantly more RAM than is available, the system may start “thrashing” or slowing down.

This can happen either because one process requires a large amount of RAM or because two or more processes compete for a larger amount of memory than is available. This then leads to constant transfer of each process’s data to slower storage.

Another important part of memory management is managing

virtual addresses. If multiple processes are in the memory at the same time, they must be stopped from interfering with each other’s memory unless there is an explicit request to utilize shared memory.

This is achieved by having separate address spaces.

By Larry Miller

Each process sees the whole virtual address space, typically from address 0 up to the maximum size of virtual memory as uniquely assigned to it. The operating system maintains a page tables that matches virtual addresses to physical addresses. These memory allocations are tracked so that when a process ends, all memory used by that process can be made available for other processes.

The operating system can also write inactive memory pages to secondary storage. This process is called “paging” or “swapping”. The terminology varies between operating system.

It is also typical for operating systems to employ otherwise unused physical memory as a page cache. The page cache contains requests data from a slower device and can be retained in memory to improve performance. The OS can also pre-load the in-memory cache with data that may be requested by the user in the near future.

The first task of memory management requires the operating

system to set up memory boundaries for types of software and for individual applications.

As an example, let's look at an imaginary small system with 1

megabyte (1,000 kilobytes) of RAM. During the boot process, the operating system of our imaginary computer is designed to go to the top of available memory and then "back up" far enough to meet the needs of the operating system itself.

By Larry Miller

Let's say that the operating system needs 300 kilobytes to run.

Now, the operating system goes to the bottom of the pool of RAM and starts building up with the various driver software required to control the hardware subsystems of the computer. In our imaginary computer, the drivers take up 200 kilobytes. So after getting the operating system completely loaded, there are 500 kilobytes remaining for application processes.

When applications begin to be loaded into memory, they are

loaded in block sizes determined by the operating system. If the block size is 2 kilobytes, then every process that is loaded will be given a chunk of memory that is a multiple of 2 kilobytes in size. Applications will be loaded in these fixed block sizes, with the blocks starting and ending on boundaries established by words of 4 or 8 bytes.

These blocks and boundaries help to ensure that applications won't be loaded on top of one another's space by a poorly calculated bit or two. With that ensured, the larger question is what to do when the 500-kilobyte application space is filled.

In most computers, it's possible to add memory beyond the

original capacity. For example, you might expand RAM from 1 to 2

megabytes. This works fine, but tends to be relatively expensive. It also ignores a fundamental fact of computing -- most of the information that an application stores in memory is not being used at By Larry Miller

any given moment.

A processor can only access memory one location at a time, so the vast majority of RAM is unused at any moment. Since disk space is cheap compared to RAM, then moving information in RAM to hard disk can greatly expand RAM space at no cost. This technique is called virtual memory management.

Disk storage is only one of the memory types that must be

managed by the operating system, and is the slowest. Ranked in order of speed, the types of memory in a computer system are:

High-speed cache - This is fast, relatively small amounts of memory that are available to the CPU through the fastest

connections. Cache controllers predict which pieces of data the CPU

will need next and pull it from main memory into high-speed cache to speed up system performance.

Main memory - This is the RAM that you see measured in megabytes when you buy a computer.

Secondary memory - This is most often some sort of

rotating magnetic storage that keeps applications and data available to be used, and serves as virtual RAM under the control of the operating system.

By Larry Miller

The operating system must balance the needs of the various

processes with the availability of the different types of memory, moving data in blocks (called pages) between available memory as the schedule of processes dictates.

Disk and File Systems

All operating systems include support for a variety of file systems. Modern file systems are made up of directories. While the idea is similar in concept across all general purpose file systems, some differences in implementation exist.

Two examples of this are the character that is used to separate directories and case sensitivity. By default, Microsoft Windows separates its path components with a backslash and its file names are not case sensitive.

However, UNIX and Linux derived operating systems along with Mac OS use the forward slash and their file names are generally case sensitive. Some versions of Mac OS (those prior to OS X) use a color for a path separator.

File systems are either journaled or non-journaled. A journaled file system is a safer alternative in the event of a system crash. If a system comes to an abrupt stop in a crash scenario, the non-journaled system will need to be examined by the system check utilities. On the other hand, a journaled file systems recovery is automatic.

By Larry Miller

The file systems vary between operating systems, but common to all these is support for file systems typically found on removable media like CDs, DVDs, and floppy disks. They also provide for the rewriting of CDs and DVDs as storage mediums.

Networking

Another aspect of an operating system has to do with the

networking capabilities contained in each. The network links separate computers together from different locations.

Most current operating systems are capable of using the TCP/IP

networking protocols. That means that one system can appear on a network of the other and share resources such as files, printers, and scanners using either wired or wireless connections.

Security

Security is important in any computer system. The operating system provides a level of security that can protect your computer and the data on it. System security is based on two principles:

• That the operating system provides access to many resources either directly or indirectly. That could mean files on a local disk, privileged system calls, person information about user, and By Larry Miller

the services offered by the programs running on the system.

• That the operating system is capable of distinguishing between those who are allowed to access the resource and those who are forbidden to do so. While some systems may simply distinguish between “privileged” and “non-privileged”, most commonly have a form of register identity such as a user name.

Requesters of information are further divided into two

categories:

• Internal security in an already running program. On some systems, once a program is running, it has no limitations, but commonly, the program has an identity which it keeps. That identity is used to check all of its requests for resources.

• External security as in a new request from outside the computer.

This could be in the form of a new request from outside the system such as a login at a connected console or some kind of network connection. To establish identity, there may be a

process of authentication.

Often a username must be entered and every username should

have a password. Other methods of authentication such as

magnetic cards or biometric data may be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all.

By Larry Miller

In addition to the allow/disallow model of security, a system with a high level of security will also offer auditing options. These would allow tracking of requests for access to resources as in “who has been reading this file?”

Operating system security has long been a concern of

programmers because of highly sensitive data held on some

computers. This is both of a commercial and a military nature.

The US Government Department of Defense created their own

criteria of standards that sets basic requirement for assessing the effectiveness of OS security. This became of vital importance to operating system makers because this system was used to classify and select system being considered for the processing, storage ad retrieval of sensitive or classified information.

Internal Security

Internal security can be thought of as a way to protect the computer’s resources from the programs concurrently running on the system. Most operating systems set programs running natively on the computer’s processor. That brings on the problem of how to stop these programs from doing the same task and having the same privileges as the operating system which is just a program too.

By Larry Miller

Processors used for general purpose operating systems are

automatically blocked from using certain hardware instructions such as those to read or write from external devices like disks. Instead, they have to ask the privileged program, or operating system kernel) to read to write. The operating system, therefore, gets the chance to check the program’s identity and allow or refused the request.

An alternative strategy available in systems that don’t meet pre-set requirements is the operating will not run user programs as native code. Instead, they either emulate a processor or provide a host for a

“p-Code” based system such as Java.

Internal security is especially important with multi-user systems as it allows each user of the system to have private files that the other users cannot tamper with or read. Internal security is also vital if auditing is to be of any use since a program can potentially bypass the operating system without bypass auditing.

External Security

Typically, an operating system offers various services to other network computers and users. These services are usually provided through ports or numbered access points beyond the operating systems network address. These services include offerings such as file sharing, print services, e-mail, web sites, and file transfer protocols (FTP).

By Larry Miller

At the front line of security are hardware devices known as firewalls. At the operating system level, there are a number of software firewalls available. Most modern operating systems include a software firewall which is enabled by default.

A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system. Therefore, one can install and be running an insecure service such as Telnet or FTP and not have to be threatened by a security breach because the firewall would deny all traffic trying to connect to the service on that port.

Graphical User Interfaces

Today, most modern operating systems contain Graphical User Interfaces (GUIs). A few of the older ones tightly integrated the GUI to the kernel – one of the central components of the operating system.

More modern operating systems are modular separating the graphics subsystem from the kernel.

A GUI is basically the pictures you see on the screen that help you navigate your computer. They include the icons and the menus.

Many operating systems allow the user to install or create any user interface they desire.

By Larry Miller

Graphical user interfaces tend to change and evolve over time.

For example, Windows has modified its user interface almost every time a new version of Windows is released. The Mac OS GUI changed dramatically with the introduction of Mac OS X in 2001.

Device Drivers

A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically, this constitutes an interface for communicating with the device through the specific computer bus or communications subsystem that the hardware is connected to.

Device drivers provide commands to and/or receiving data from the device and on the other end, the requisite interfaces to the operating system and software applications.

You cannot have a CD-ROM drive, for example, without a device driver for that specific piece of equipment. You have drivers for a printer, scanner, and even your mouse.

It is a specialized hardware-dependent program which is also operating system specific that enables another program – typically an operating system or applications software package or computer program running under the operating system kernel.

By Larry Miller

This allows the system to interact transparently with the

hardware device and usually provides the requisite interrupt handling necessary for any time-dependent hardware interfacing needs.

The key design goal of device drivers is abstraction. Every model of hardware is different. Newer models also are released by manufacturers that provide more reliable or better performance and these newer models are often controlled differently.

Computers and their operating systems cannot be expected to know how to control every device both now and in the future. To solve this problem, operating systems essentially dictate how every type of device should be controlled. The function of the device driver is then to translate these OS mandated function calls into device specific calls.

In theory, a new device which is controlled in a new manner should function correctly is a suitable driver is available. This new driver will insure that the device appears to operate as usual from the operating system’s point of view for any person.

Some operating systems come with pre-installed drivers or a variety of common drivers to choose from. When you buy a new piece of hardware such as a joy stick, they will often come with a disk that contains the device driver that you can install. Other drivers or updated drivers are available online at the manufacturer’s website.

By Larry Miller

Application Interface

Just as drivers provide a way for applications to make use of hardware subsystems without having to know every detail of the hardware's operation, application program interfaces (APIs) let application programmers use functions of the computer and operating system without having to directly keep track of all the details in the CPU's operation. Let's look at the example of creating a hard disk file for holding data to see why this can be important.

A programmer writing an application to record data from a

scientific instrument might want to allow the scientist to specify the name of the file created. The operating system might provide an API function named MakeFile for creating files. When writing the program, the programmer would insert a line that looks like this:

MakeFile [1, %Name, 2]

In this example, the instruction tells the operating system to create a file that will allow random access to its data (signified by the 1 -- the other option might be 0 for a serial file), will have a name typed in by the user (%Name) and will be a size that varies depending on how much data is stored in the file (signified by the 2 -- other options might be zero for a fixed size, and 1 for a file that grows as data is added but does not shrink when data is removed). Now, let's look at what the operating system does to turn the instruction into action.

By Larry Miller

The operating system sends a query to the disk drive to get the location of the first available free storage location.

With that information, the operating system creates an entry in the file system showing the beginning and ending locations of the file, the name of the file, the file type, whether the file has been archived, which users have permission to look at or modify the file, and the date and time of the file's creation.

The operating system writes information at the beginning of the file that identifies the file, sets up the type of access possible and includes other information that ties the file to the application. In all of this information, the queries to the disk drive and addresses of the beginning and ending point of the file are in formats heavily dependent on the manufacturer and model of the disk drive.

Because the programmer has written the program to use the API for disk storage, the programmer doesn't have to keep up with the instruction codes, data types and response codes for every possible hard disk and tape drive. The operating system - connected to drivers for the various hardware subsystems - deals with the changing details of the hardware -- the programmer must simply write code for the API and trust the operating system to do the rest.

APIs have become one of the most hotly contested areas of the computer industry in recent years. Companies realize that

programmers using their API will ultimately translate this into the By Larry Miller

ability to control and profit from a particular part of the industry. This is one of the reasons that so many companies have been willing to provide applications like readers or viewers to the public at no charge.

They know consumers will request that programs take

advantage of the free readers, and application companies will be ready to pay royalties to allow their software to provide the functions requested by the consumers.

As we’ve stated before, there are operating systems in all sorts of products – not just computers. Cell phones, DVD recorders, and TiVo players also have operating systems, however, those OSs are not readily noticeable to the consumer and they do not have any control over them.

This might be a good time to review some of the computer

operating systems that are on the market today.

MICROSOFT WINDOWS

Back in the late 1970’s, two enterprising young computer

programmers named Paul Allen and Bill Gates developed an adaptation for the BASIC computer language that would help run newly created personal computer just coming on the technology market. As with any technology, their original creation changed and grew.

By Larry Miller

The two friends decided they had the product and the capability to become successful, so they formed a company now known as Microsoft. Over the years, Microsoft has grown to a giant in the computer industry with successes never before seen by a “from scratch” endeavor.

Microsoft was responsible for the development of not only

several computer languages like COBOL and PASCAL, but also for the development of the earliest operating system MS-DOS. In partnership with IBM, who was just introducing the personal computer to the individual consumer, all of the IBM computers used MS-DOS on their systems. The year was 1981.

Even though originally, the Apple Corporation was in competition with Microsoft and IBM, the company eventually began working on developing an operating system for the company’s Macintosh personal computers.

Then, in 1985, an industry changing product was starting to evolve. This new operating system would perform many functions already in MS-DOS, but the difference would be that this new product would focus on “gooeys” Graphical User Interfaces.

The development of the GUI would change the world of

computers making it easier for the everyday consumer to navigate their personal computer. The industry was changing – and it was changing fast!

By Larry Miller

Windows operating system made the world of personal

computing accessible and easy for the everyday Joe. Now, even students in the schools were able to use personal computers for their school work and in class. No one knew just how far this new OS would take the world of computing technology.

Just like with any computer technology, changes are constantly being made to improve on the product. After the initial launch of Windows, several other versions evolved each one offering new options and new features and each with their own bugs and problems.

Some people weren’t big fans of Windows because at times it seemed as if Microsoft would release the product prior to fully testing it. It became famed for crashes and bugs that would cause the system to behave erratically, but Microsoft addressed each problem promptly and Windows continued to be THE operating system on the market.

The release of Windows 3.1 operating system was revolutionary in that it offered users more options that couldn’t be found with its predecessor MS-DOS. One of the most helpful innovations was adding the use of a mouse to navigate and manipulate data with one hand simply and easily. 3.1 also gave users the convenience of not having to memorize MS-DOS commands.

Windows 3.1 was the first product to fully utilize graphical user interface for ease of controlling what the computer would do.

Windows also now allowed the user to multitask, meaning the user By Larry Miller

could now run multiple applications at once without having to close out of each program before running another.

The next major Windows product to hit the market was Windows 95 released in 1995 hence the name! New features included the following:

Plug and Play - Allows hardware devices to be automatically installed into the computer with the proper software. Does not require jumpers to be played with

32 Bit - 32-Bit operating system allowing the computer to run faster and more efficiently

Registry - Combines the power of multiple configuration files into two files, allowing the system configurations to be located easier

Memory - Windows 95 had an improved memory handling

processes compared to Windows 3.11

Right mouse click - Allows you new access and text

manipulation by utilizing both buttons instead of one

CD-Player - Enhanced CD-Player with improved usability and AutoPlay feature.

By Larry Miller

Windows 95 also had some extra software included Windows

Explorer, Paint, Scan Disk, and Sound Recorder. Games were added as were system tools that would de-fragment the hard drive and allow you to back up files for use later.

Windows 95 was succeeded by Windows 98 released in – you

guessed it – 1998! While the release of this OS wasn’t as big as 95, the 98 version still contained some significant updates, fixes, and support for new peripherals.

Protection - Windows 98 included additional protection for important files on your computer such as backing up your

registry automatically.

Improved support - Improved support for new devices such as AGP, DirectX, DVD, USB, MMX, etc.

FAT32 - Windows 98 had the capability of converting your drive to FAT32 without losing any information.

Interface - Users of Windows 95 and NT would enjoy the same easy interface.

PnP - Improved PnP support, to detect devices even better than Windows 95.

Internet Explorer 4.0 - Included Internet Explorer 4.0

By Larry Miller

Customizable Taskbar - Windows added many nice new features to the taskbar which 95 and NT did not have.

Plus! - Included features only found in Microsoft Plus! free.

Active Desktop - Included Active Desktop which allowed for users to customize their desktop with the look of the Internet.

Windows 98 also upgraded some of its security features and

added Dr. Watson which is a diagnostic tool that will look for problems on your computer and then offer up a resolution automatically. They also added a maintenance wizard that allows you schedule certain maintenance tasks such as Scan Disk to be run once a week.

In keeping with the theme of naming versions of Windows after the year it was released, the next version was Windows 2000.

Windows 2000 was known as the professional version and was geared toward business use. So, it was often referred to as Windows Professional.

Features of this new operating system included:

Support for FAT16, FAT32 and NTFS.

By Larry Miller

Increased uptime of the system and significantly fewer OS

reboot scenarios.

Windows Installer tracks applications and recognizes and

replaces missing components.

Protects memory of individual apps and processes to avoid a single app bringing the system down

Encrypted File Systems protects sensitive data.

Secure Virtual Private Networking (VPN) supports tunneling in to private LAN over public Internet.

Personalized menus adapt to the way you work

Multilingual version allows for User Interface and help to switch, based on logon.

Includes broader support for high-speed networking devices, including Native ATM and cable modems.

Supports Universal Serial Bus (USB) and IEEE 1394 for greater bandwidth devices.

By Larry Miller

While that might not sound significant to the everyday computer user, these new advancements made for a smoother running system with more capabilities than other Windows versions.

The year 2000 also saw the release of Windows ME or Windows Millennium. This version was meant as an upgrade for Windows 95

and 98 and was designed with end users in mind. Overall, Windows ME has the look and feel of Windows 98 with some additional fixes and features not available in previous operating systems.

While Windows ME includes some of the latest fixes and updates and some enticing new features, this update was recommended only for users that may find or want some of the new features or for users who are purchasing a new computer with this operating system included.

Key updated features include:

Revert back to backup of computer - Windows ME allowed the user to automatically restore an old backup in case files are corrupted or deleted.

Protect important system files - Windows Me allowed the user to protect important system files and would not allow these files to be modified by any type of other software.

By Larry Miller

Movie editor - Allowed users to edit and or combine Microsoft movie files. Importing movies required additional hardware.

Windows Media Player - Included Media Player 7, which enabled users a more advanced way of listening and organizing their media files.

And the next year – 2001 – saw the release of Windows XP

which is the version most users have to date. The XP stands for experienced and combined the two major Windows operating systems into one. It is available in both a home as well as a professional edition.

Windows XP is designed more for users who may not be familiar with all of Windows features and has several new abilities to make the Windows experience easier for those users.

Windows XP includes various new features not found in previous versions of Microsoft Windows. Below is a listing of some of these new features.

New interface - a completely new look and ability to change the look.

Updates - new feature that automatically obtains updates from the Internet.

By Larry Miller

Internet Explorer 6 - Includes internet explorer 6 and new IM.

Multilingual support - added support for different languages.

In addition to the above features, Windows XP does increase reliability when compared to previous versions of Microsoft Windows.

Finally, the most recent upgrade of Windows was just released in 2007. Called Windows Vista, this new version is intended as an upgrade to XP and 2000 users. While it does have many new features, this version is intended to give computer users an overall better experience with a dramatic new look.

Added features over previous Windows versions include:

W

indows Aero , a completely new GUI and unlike any previous version of Windows.

• Basic file backup and restore.

• Improved DVD support with the ability to easily create custom DVD movies.

• Easy transfer, a feature that allows you to easily transfer files from an older computer to the new computer.

By Larry Miller

• File encryption.

• Instant search available through all Explorer windows.

• Support for DirectX 10.

• Self-healing, the ability to automatically detect and correct problems that may be encountered on the computer.

• Shadow copy, a feature that allows you to recover deleted files.

• Improved photo gallery and control of photographs.

• Windows Sidebar and gadgets that allows you to add an almost endless list of different gadgets.

• More parental control.

• Improved Windows Calendar, with the ability to set tasks and appointments.

• And much more.

Some people who are Windows enthusiasts hail this new product as a step into a new technological era. Windows Vista is flashy, pretty, and impressive, but it comes with its own unique faults as well.

Reviewers report that there are many device drivers lacking in the By Larry Miller

software and that its size requires a large amount of memory which can cause your computer to run slower and less efficiently.

All versions of Windows do come with the original MS-DOS

operating system included in the background for those “old-schoolers”

who will want to enter their own computer commands. All versions also come with a basic word processing program and Internet Explorer for surfing the net. You will find standard games such as solitaire in Windows as well.

Most computers today are outfitted with Windows XP as their operating system, but with the release of Vista, that will probably change in the near future. The Microsoft Windows operating system is the most popular choice among computer users today, but there are other operating systems.

Let’s take a look at the most popular operating system for Apple Macintosh computers.

By Larry Miller

MAC OS

In 1984, Apple Computer introduced the Apple Macintosh

personal computer. The first version was the Macintosh 128K model which came bundled with the Mac OS operating system then known as the “System Software”. The Mac is often credited with popularizing the graphical user interface (GUI).

The Mac OS has been pre-installed on almost every Macintosh computer ever sold. The operating system is also sold separately from the computer just as with Microsoft Windows. The original Mac OS

was heavily based on the Lisa OS previously released by Apple for the Lisa computer in 1983. It also used concepts from other operating systems previewed by Apple executives.

In 1984, Apple partnered with Microsoft in an agreement that would have Microsoft creating versions of Word and Excel for the Mac OS. For the majority of the 1980’s, the Mac OS lacked a large amount of compatible software, however, the introduction of System 7 saw more software becoming available for the platform.

System 6 was the first major revision of the operating system, although the Mac OS kernel was kept the same from the System 7

revision until Mac OS 9.

The Macintosh project started in early 1979 with Jeff Raskin who envisioned an easy-to-use low-cost computer for the average By Larry Miller

consumer. In September of ’79, Raskin was given permission to start hiring for the project.

In January of 1981, Steve Jobs completely took over the

Macintosh project. Jobs and a number of Apple engineers visited Xerox PARC in December of 1979 which was three months after the Lisa and Macintosh project had begun.

After hearing about the pioneering GUI technology being

developed at Xerox PARC from former employees like Raskin, Jobs negotiated a visit to see the Xerox Alto computer and Smalltalk development tools in exchange for stock options. This was probably one of the best business moves Jobs had ever made.

The final Lisa and Macintosh operating systems used concepts from the Xerox Alto, but many elements of the GUI were creating by Apple including a menu bar and pop-up menus. Specifically, the click and drag concept was developed by Jeff Raskin.

Unlike the IBM PC which used 8 KB of system ROM for power-on self test and basic input/output chores, the Mac ROM was significantly larger at 64 KB and held key OS code. Andy Hertzfeld was responsible for most of the original coding. He was able to conserve some of the ROM space by interweaving some of the assembly language code.

In addition to coding the ROM, he also coded the kernel, the Macintosh Toolbox, and some of the desktop accessories as well. The icons of the operating system which represented folders and application software were designed by Susan Kare who later designed the icons for Microsoft Windows 3.0.

By Larry Miller

Apple was very strong in advertising this new machine. After it was created, they actually bought out all thirty-nine pages of advertisement space in Newsweek Magazine’s November/December, 1984 edition. It worked incredibly well and the investment paid off as Macs began flying off the shelves.

The first version of Mac OS along with subsequent updates were different from other operating systems in that this OS didn’t use command line interface but rather user friendly interface. Many people think that Windows was the first to employ GUI, but Mac had them beat.

Updates to the OS mostly focused on changes to the “finder”

which is an application for file management which also displays the desktop. Prior to version 5, the finder could only run one application at a time. When version 5 was released, it contained multi-finder which could run several applications at once.

Time was given to background applications only when the

foreground running applications gave it up in co-operative

multitasking, but in fact most of them did via a clever change in the operating system’s event handling.

System 5 also brought Color Quick Draw to the Mac II. This significantly altered the extent and design of the underlying graphics architecture but it is a credit to Apple that most users, and perhaps more importantly existing code, were largely unaware of this.

By Larry Miller

System Software 5 was also the first MAC operating system to be given a unified system software version number as opposed to the numbers used for the system and finder files.

In 1991, System 7 was released. It was the second major

upgrade to the Mac OS adding a significant user interface overhaul, new applications, stability improvement, and many new features.

The most visible change was a new full-color user interface.

Although this feature made for a visually appealing interface, it was optional. On machines not capable of displaying color or those with their display preferences set to monochrome, the interface defaulted back to the black and white of previous versions. Only some interface elements were colorized: scrollbars had a new look but push buttons remained in black and white.

The biggest feature added in system 7 included the built-in co-operative multitasking. In system 6, this function was optional through the multi finder. System 7 also introduced aliases which are similar to shortcuts that were introduced in later versions of Windows.

System extensions were enhanced by being moved to their own subfolder. A subfolder in the system folder was also created for the control panels. A smaller update – dubbed system 7.5 – included the extensions manager, a previously third party program which simplified the process of enabling and disabling extensions.

System 7 moved the Mac to true 32-bit memory addressing

necessary for the every-increasing amounts of RAM available. Earlier systems used the lower 24 bits for addressing and the upper 8 bits for By Larry Miller

flags. This was an effective solution for earlier Mac models with very limited amounts of RAM, but it became a liability later. Virtual memory support was also added as a separate, optional feature.

The Apple menu, home only to desk accessories in system 6 was made more general purpose: the user could now make often-used folders and applications – or anything else they desired – appear in the menu by placing aliases to them in an “Apple Menu Items” subfolder of the system folder.

The trash folder, under system 6 and earlier, would empty itself automatically when shutting down the computer or, if multi-finder were not running, when launching an application. System 7 re-implemented the trash as a special hidden folder allowing files to remain in it across reboots until the user deliberately chose the “Empty Trash” command.

There were some other “high level” additions in system 7. Many people felt that Apple dropped the ball on some of these additions and accused the company of not fully thinking through these updates.

Microsoft was accused of the same thing with earlier versions of Windows as well.

One of the most confusing aspects of the Mac OS was the

reliance on countless System Enablers to support new hardware which would prove to plague the Mac OS all the way to version 8 after which iMac introduced its “New World” architecture. Although the iMac itself requires a system enabler with OS 8 as other Macs released at that time, Macs released after the iMac do not require a system enabler.

By Larry Miller

Another problem encountered was that various system update

extensions with inconsistent version numbering schemes. Overall stability and performance of the Mac OS gradually worsened during this time which introduced Power PC support and 68K emulation.