Note that for the sake of clarity, many of these concepts have been over-simplified.
An operating system is a group of programs that help you operate your computer. It could be considered the "government" of your computer's internal society, the central program that tells the other programs what they may do and provides services they need. A computer might contain more than one operating system, but only one operating system at a time may be "in charge". The action of starting or loading the operating system is called "booting" the computer.
Windows 95 is one popular example of an operating system (though perhaps not the best example!). MS-DOS is (or was) also an operating system. Linux is an operating system as well. All of these systems perform similar tasks, and only one at a time can be in use.
An operating system normally consists of some basic parts. A kernel, a core program that controls the most essential hardware (the processor and memory, for example); some device drivers that control other system hardware (network cards, sound cards); and a shell, a program that communicates with the user and allows the user to manipulate the computer.
The shell is the only part of the operating system that a normal computer user will see. Each operating system shell presents a different user interface or operating environment. An Apple computer running MacOS will look different from a PC running Windows 95 or Linux, and the way the user goes about accomplishing tasks and giving instructions to the computer is also different. MS-DOS requires you to type commands at a text prompt to start programs, whereas in MacOS you must use the mouse to click on a picture to perform the same task.
A computer program is a list of instructions given to a computer to make it perform a specific task or series of tasks. Computers do not understand English (we all wish that they did!), so programmers must communicate these instructions to the computer in a language the computer understands. Computers, however, can only operate on numbers, which makes a computer's language very difficult for humans to understand.
The solution to this problem is to create an intermediate language that both humans and computers can understand. These are called programming languages. Programmers create a list of instructions for the computer in a programming language such as C, Pascal, or Fortran. This list of instructions is known as source code. It is textual in nature, and readable to humans (who speak the language). Programmers do all their work in this source code, changing the instructions to fix bugs, add features, or alter the appearance of a program.
When the programmer believes he has perfected the instructions for his program, he uses a special program called a compiler to translate his human readable text instructions into computer readable numbers that correspond to the same instructions. The resulting file is usable by computers but incomprehensible to humans. This is called object code. The resulting executable file is often called binary, after the number system used by the computer. This translation from source code into binary object code is a one-way process. It is impossible to translate a binary executable back into the original source code.
The binary executable is what you need if you want to run and use a program. This is commonly what you will receive when you purchase shrink-wrapped software from a retail store. The source code is what you need if you want to understand how a program works internally, or if you want to change, add to, or improve a program. If you have the source code and an appropriate compiler, you can produce the binary executable, but the reverse is not true.
Software that is available only in binary executable format is proprietary software. Software that is available in source code format is open software. If it meets certain criteria, it may also be Open Source.
© Copyright 1998-2010 by Vincent Veselosky.
Unless otherwise noted, the text content of this work is licensed under the Creative Commons Attribution-Share Alike 2.5 License.
Please see the Control-Escape License page
for details.