The most important programs on a computer are the collection of programs that make up the Operating System (OS). Most computers require an operating system, the collection of files and utilities responsible for performing the most basic tasks such as recognizing input from the keyboard or sending output to the screen and other devices. The OS keeps track of files and directories on the disks and controls devices such as disk drives, printers and other input/output devices. The purpose of an operating system is to organize and control configuration of the hardware and software allowing it to behave in a flexible and predictable manner.
For networked computer systems, the operating system has even more responsibility and power. It is the traffic control system making sure that programs and users working at the same time do not interfere with each other. The operating system is responsible for security and ensuring that unauthorized users cannot access the system.
Operating systems provide a software layer enabling the use of other programs known as application programs. Application programs must be written to run on a particular operating system. Your choice of operating system determines which applications you can use. The most common and popular operating system available for personal computers is Windows although there are others available such as Linux.
As a computer user, you normally interact with an operating system through a set of commands. For example, DOS (disk operating system) contains commands such as copy and rename for copying and renaming files. The commands are input using the keyboad and then are executed by a portion of the operating system called the command processor, command line interpreter or command line interface (CLI). Graphical user interfaces (GUI) allow commands to be executed by pointing and clicking objects that appear on the screen.
If you use a computer, then you have heard about operating systems. Any desktop or laptop PC that you buy normally comes pre-loaded with Windows (XP or Vista) while Macintosh computers come pre-loaded with OS X. Many corporate servers use the Linux or UNIX operating systems, both of which are network operating systems with multithreading, multitasking, multiprocessing, and multi-user capabilities. The OS is the first thing loaded onto a computer as without the operating system, the computer is useless.
Operating systems have now started to appear in smaller devices such as cell phones. Many of our modern electronic devices are now computerized. Computer circuitry used in these devices has become so powerful that they are now more powerful than a computer from 20 years ago. As these electronic devices increase in power and capability, so must the OS, therefore this progression makes sense and is a natural development of our continually increasing technology. In any device that utilizes an operating system, there is normally a means of making changes to the configuration of exactly how the device functions. This is not an accident; one of the purposes of an operating system is to allow changes and modifications to the configuration of the device without having to re-invent the device.
Not all computers require operating systems; the computer circuitry in a microwave oven, for example, doesn't need an operating system. It has one set of tasks to perform; very limited input to expect and simple, unchanging hardware to control. For a device such as this, an operating system would introduce complexity, costing significantly more while adding unnecessary complexity.
For a desktop computer user, this means that you can add new capabilities, new application or even a new operating system rather than replace the computer with a new one when you wish to make changes. If you understand the operating system and know how to access the configuration, you can, in many cases modify the way it behaves. Today, this is as true of your cell phone as it is of your computer.
All desktop and network server computers however, require an operating system. The most common OS in use for desktop and laptop computers is Microsoft Windows (XP or Vista). Apple computers use OS X instead of the Microsoft Windows line of operating systems and for the larger, network server computers, the OSes of choice include the Linux or UNIX family of operating systems. Additionally, there are hundreds of special purpose operating systems available for special-purpose applications such as robotics, manufacturing, and real-time control systems.
An operating system manages the hardware and software resources of the system. In a desktop computer, these resources include such things as the processor, memory, disk space, etc. On a cell phone, they include the keypad, screen, applications, battery and network connectivity. The OS also provides a consistent method for applications to interface with hardware without knowing every detail of every possible piece of hardware.
Providing a consistent application interface is especially important if there is to be more than one of a particular type of hardware utilizing the system, or if any of the hardware is open to change. A consistent application program interface (API) allows software developers to write applications on one computer and have confidence that it will operate on other computers of the same general type.
An operating system can ensure that applications will continue to operate efficiently after completing upgrades and/or updates. This is because the operating system, not the application manages the hardware and the allocation of resources. One recent challenge to developers is maintaining flexibility with the thousands of vendors manufacturing computer devices. Today's computers can accommodate thousands of printer and disk drive models as well as the nearly infinite possible combinations of peripheral devices.
Operating systems can be classified as shown:
- disk operating system : Responsible for reading/writing information to/from disks.
- single-user, single task : As the name implies, this operating system is designed to manage a computer so that one user can effectively do one thing at a time. The Palm OS for Palm handheld computers is an example.
- single-user, multi-task : Allows one user to run several programs simultaneously. A user could type a letter in a word processor, download a file from the Internet and print an e-mail message simultaneously. Microsoft Windows and Apple MacOS fall into this category.
- multi-user, : Allows two or more users to run programs simultaneously. Some operating systems can handle hundreds or thousands of simultaneous users. The operating system must balance the requirements of users so that each program in use has sufficient resources as to not adversely affect other users. Unix, VMS and MVS are examples of multi-user operating systems.
- network operating system : Primarily responsible for reading/writing information to/from other networked computers.
- real-time : Allows real-time control of machinery, scientific instruments and/or industrial systems. A real-time operating system (RTOS) typically has very little user-interface capability and no end-user utilities, the system will be a "sealed box" when delivered for use. An RTOS must manage resources in exactly the same amount of time each and every time it occurs. In complex equipment, responding more quickly because of readily available resources may be just as problematic as not responding because the system is busy.
Operating systems often fit into more than one classification. Due to these classifications and other factors that may be unique to a specific OS, an operating system may have advantages that make it more suitable for specific applications. An OS that is especially suitable for use by an individual may be quite different from an OS especially suited as a web server. Not only do these differences make for advantages/disadvantages as widely different as a web server and a personal work station, there are also differences in similar uses making for advantages between web servers utilizing different technologies and for work stations used for differing uses. A secretary that primarily uses the computer for word processing may have very different needs than a professional photographer. A musician may have even more different needs.
Chances are that you use a version of Windows as your development platform although just about any OS is suitable. Personally, I use Windows XP the most but will sometimes work on a computer that operates on Linux. All of the applications needed to create the components of a web page are available for just about any OS that you prefer to work with. The primary tools are a text editor, a graphics editor, a file transfer program, and as many different web browsers as you can install. For adding fancy stuff, you'll need other things such as a flash development program or a multi-media file creator. These standard programs are available for most OSes. As your web development skills increase, you'll find some things that are not available with all OSes or that use particular implementations of a method. It is these particular implementations that may cause you to choose one server OS over another.
The server OSes that you will have to choose from are mainly Windows and *nix. Windows XP, Windows Vista, Windows NT, and Windows 2003 make up the Windows versions that can be used while *nix includes the many OSes that make up the Linux and Unix worlds. To be even more specific, programs make up the web server software; for Windows, the primary web server program is called IIS (Internet Information Services). This software runs only on Windows. Another program (based from original server software) used to turn a computer into a web server is called Apache. There are versions of Apache that run on *nix AND Windows.
If using any of the Windows only programming languages to interface with the server, you'll need to select Windows as your OS of choice. If not using any of the Windows only programs or languages, Linux or Unix is the better choice. I personnally prefer Linux as it has better security built in than most of the Unix "flavors" or Windows. For creating a database driven website (information stored in a database), your server OS must be compatible with the database that you wish to use. MySQL is a database server that works on many OSes while Microsoft SQL server runs only on a Windows server.
The .NET (ASP.NET, VB.NET & C#.NET) programming languages are Windows only programming languages so if you were to learn how to write programs using one of these and wanted to use one of these programming languages to develop a website, you would need to use a Windows server. A Windows server is only necessary to utilize one of these specialized programming languages or programs. ActiveX is another programming method available only with Windows. My server which you will use for your website is a Linux system and does not support the Windows methods; instead you will learn the more common general systems that work with either type of server; Windows or *nix.
Another thing to consider when selecting an OS to host your website is cost. Windows servers typically will cost more as there are costs for purchasing the server OS and software. There are also extra costs involved with maintenance and security on a Windows system. Linux, on the other hand is free as is the server software that runs on Linux.
When using the term "*nix" as I have, the * (asterisk or star) is a wildcard meaning that nearly anything can preceed nix. Unix is an OS created in the early 60s at Bell Labs. After 30+ years, Unix is still regarded as one of the most powerful and flexible OSes available. Unix was designed to allow a number of users to access the computer at the same time so it was an obvious choice for networking computers when networking arrived on the scene. Unix was rewritten and modified by various computer manufacturers to work with their computers, Unix was especially useful with computers destined to operate as part of a network as it already met the requirements of a network operating system (NOS) already including the abilities of Multitasking and Multiuser capabilities. Unix was also very portable (able to work with various hardware) from the start. Over time, there came to be many Unices, each with their particular modifications and methods.
In 1991, a new OS was created by Linus Torvald loosely patterned after Unix. Linus named his new OS based upon his name and Unix combined; Linux (pronounced leenux). Linus licensed his new OS under the GNU public licensing making the OS free to use, copy and distribute.
Licenses for most software is designed to take away the freedom to share and modify the work. By contrast, the GNU (General Public License) is intended to guarantee the freedom to share and modify all versions of a program; to make sure it remains free for all. The FSF (Free Software Foundation) uses GNU for most of their software; it applies also to any other work released under the GNU by its authors. You may also apply it to your programs. Linux, and most software written to run on Linux is released under the GNU making it very economical.
With the freely available OS and software, Linux quickly became the OS of choice for web servers. Although difficult to confirm, most resources report that approximately 2 thirds of all web sites use the Apache web server software whether using Windows or Linux as the OS. It is unlikely that you will need to know how to install and configure the OS or web server software as there are many (web) hosting companies that take care of that for you. It is important, however to understand the differences mentioned in this section so that you can make an informed decision as to which type of server will best suit the needs of your website.