next up previous
Next: Monolithic kernels and micro-kernels Up: The GNU Hurd Previous: The GNU Hurd

Subsections

Introduction

What is an operating system ?

Historical point of view

The first computers were so expensive that only one existed for a whole university or research department; and so slow that it was unthinkable to interact with it in real time. This was the era of batch processing, when programmers created self-running programs called ``batch''. Those programs usually took several hours to run, printing huge listing as output. Programs were run one after the other.

Then, computers became more efficient. They were still too expensive to allow each user to have his own computer, but there were powerful enough to allow several users to use the same computer at once. The concept of ``time-sharing'' appeared then. The ``time-sharing'' concept consists in having a specific program (the scheduler) which quickly gives the CPU to one program, and then to another, and so on, to simulate simultaneous execution. Those computers had to allow people to run several programs from different users at once, without allowing one user to crash the computer or read confidential data of another. The need of a ``supervisor'' program, controlling time-slice attribution and enforcing security rules was natural.

What does an operating system do ?

An operating system is the ``supervisor'' program (or set of programs) of a computer. An operating system runs other programs, providing services to them:

A hardware abstraction layer.
There is a large choice of hardware in the computer world. Even if we just speak of, say, storage devices, there are IDE disks, SCSI disks, floppy disks, tapes, USB devices, FireWire devices, parallel port devices, ... should every program know how to put into motion the floppy disk engine ? Providing an hardware abstraction layer is one of the major goals of operating systems.
Resource sharing.
Resources on a computer are limited. Be it main memory, CPU power, hard disk storage, screen area, networking connection, or sound output, those resources must be controlled by a supervisor program, allowing each of the programs to access to a part of it as needed.
Security infrastructure.
All modern operating systems can enforce several kinds of security. Security can be used to prevent a user from accessing confidential or private data of another user, to prevent accidental removal of critical files, or to limit the damages that a deficient program can do.

The GNU Project

What is Free Software ?

Free Software is software whose license gives users the four essential freedoms. Those freedoms are:

Freedom 0
Freedom to use the software without any constraints, for whatever purpose the user intent to.
Freedom 1
Freedom to understand the software, and to modify it to make it fit your needs.
Freedom 2
Freedom to distribute the software, since sharing and giving is not a crime, but a social act beneficial for the whole society.
Freedom 3
Freedom to distribute modified versions, giving you the ability to give back source code to the community.

We believe that those freedoms are essential, and that denying someone those freedoms is immoral. Software is knowledge, and knowledge belongs to the whole mankind and should be Free.

Please remember that Free Software doesn't deal with price or money, but with freedom from an ethical point of view.

The GNU project

The GNU Project was started by Richard M. Stallman in 1983. The goal of the project is to create a full operating system and all applications required to allow any user to be able to use only Free Software to perform whatever task he needs to use a computer for. GNU means ``GNU is Not Unix'', since GNU takes many ideas from Unix, but does not intend to be ``only'' a Free implementation of Unix, but to correct Unix flaws and weaknesses at the same time.


next up previous
Next: Monolithic kernels and micro-kernels Up: The GNU Hurd Previous: The GNU Hurd
Gael Le Mignot 2005-06-08