Vous êtes sur la page 1sur 18

Chapitre 1

Présentation de Linux/Unix

1.1 HISTORIQUE

1.1.1 Au début : Unix


Unix est né, en 1969, dans les Bell Laboratories (AT&T) sous l’impulsion de deux
hommes, Ken Thompson et Dennis Ritchie. Il était destiné à fournir aux
programmeurs maison un environnement de développement auquel ils avaient goûté
avec Multics (MULTiplexed Information and Computing Service). Suite au
développement par Dennis Ritchie du langage C, adapté à ce type de programmation,
une nouvelle version d’Unix est réécrite, en grande partie en C, en 1973. Pour la
première fois, un système d’exploitation est écrit en langage non assembleur, et
devient donc portable, du moins en principe.
En 1974, la version 4 d’Unix est « donnée » à l’université de Berkeley, Californie,
qui commence alors son propre développement du système. C’est le début d’une
divergence entre les deux versions d’Unix : AT&T et BSD (Berkeley Software
Distribution). Le succès d’Unix devient alors considérable dans les universités
américaines : seul système d’exploitation disponible en source, sur mini-ordinateur
(PDP11), il est adopté par les départements de « computer science » des universités
pour la formation des étudiants en informatique système. Le nombre d’experts Unix
croît à une vitesse considérable.
De 1977 à 1979, Ken Thompson et Dennis Ritchie réécrivent Unix pour le rendre
réellement portable. Et en 1980 les premières licences de distribution d’Unix
System V d’AT&T sont délivrées aux constructeurs.
2 1 • Présentation de Linux/Unix

L’année 1984 voit la création du groupe X/Open, composé de constructeurs


informatiques ayant adopté Unix et se donnant pour but de normaliser les différentes
versions d’Unix.
Cette même année est créée par le MIT la norme X Window : système de
multifenêtrage graphique, indépendant d’Unix, mais qui contribuera au succès de ce
système.
En 1987, AT&T, propriétaire d’Unix, et Sun, un des leaders du marché des
stations de travail et utilisant la version BSD, concluent une alliance visant à une
convergence entre les deux systèmes.
En 1988 sont créés deux consortiums :
OSF (Open Software Fondation), (DEC, HP, IBM, …) travaillant à la normali-

sation d’un nouvel Unix baptisé OSF1 ;


Unix International (AT&T, Sun, …) cherchant à imposer Unix System V.

En 1992, Digital Equipment propose DEC/OSF1, première version


commercialement disponible d’OSF1, et Sun propose la première version commerciale
résultant de la convergence entre System V et BSD. Il y a encore plusieurs Unix, mais
les différences ne représentent plus une difficulté pour l’utilisateur.

Le succès d’Unix tient à plusieurs facteurs :


●Le plus important, à l’origine, est son adoption par les universités américaines
pour la formation des étudiants, ce qui a sans aucun doute permis de former
plus d’experts sur ce système que sur aucun autre.
●Un autre facteur déterminant est le besoin de standard exprimé par les utilisa-
teurs, qu’ils soient sociétés de développement de logiciel ou utilisateurs finaux.
Dans un monde où le changement de fournisseur avait toujours été catastro-
phique pour l’utilisateur, les systèmes ouverts offrent des perspectives d’évolu-
tion en douceur tout en maintenant une concurrence entre fournisseurs. Cette
pression des utilisateurs est un fait nouveau dans l’histoire de l’informatique.
La participation de groupes d’utilisateurs et d’éditeurs de logiciels aux consor-
tiums dirigeant l’évolution d’Unix n’a de réel équivalent pour aucun autre
système d’exploitation.
●Unix est le seul système d’exploitation multi-utilisateur disponible à faible
coût pour une société développant un système à base de processeur standard.

1.1.2 Linux
Unix est l’un des systèmes d’exploitation le plus populaire au monde, en raison du
grand nombre d’architectures qu’il supporte. Il existe des versions d’Unix pour tous les
types d’ordinateurs, y compris les ordinateurs personnels.

SCO Unix est le système le plus ancien sur cette plate-forme. Le premier package
Unix, de nom SCO Xenix System pour Intel 8086 et 8088, date de 1983. La société
SCO est maintenant propriétaire de la marque Unix, qu’elle a achetée à la société
Novell, qui l’avait elle-même achetée à une filiale d’ATT (Unix System Labs).
1.1 Historique 3

SCO Unix existe toujours. Unix est maintenant une marque déposée de l’Open-
Group.

L’idée d’un système d’exploitation libre est née en 1984 avec la Free Software
Foundation (FSF). Les bases de l’environnement ont été définies. Puis des outils, tels
des éditeurs, des compilateurs, des shells ... ont été développés.
Linux, système Unix libre sur plate-forme PC, était au départ un projet de loisirs
de Linus Torvalds, étudiant finlandais. Linux fut inspiré de Minix, un petit système
Unix développé par Andrew Tanenbaum. Les premières discussions autour de Linux
se passèrent sur le forum comp.os.minix. Ses débuts furent la maîtrise de la commu-
tation de tâches du mode protégé du processeur 80386, tout fut écrit en assembleur.
Le 5 octobre 1991, Linus Torvalds annonça la première version « officielle » de
Linux, la version 0.02. Après la version 0.03, Linus passa directement en version
0.10.
Linux a continué à évoluer grâce à Linus Torvalds et aussi aux efforts de
nombreux volontaires répartis aux 4 coins du monde, reliés entre eux par le réseau
Internet (chapitre 13). Sous la pression de ces co-développeurs, Linus Torvalds a
accepté que tout le code soit sous licence GPL (General Public Licence), créant ainsi
un noyau Unix totalement libre. Grâce à ce réseau, toute personne intéressée par le
développement de ce système peut aider : porter des programmes, écrire de la docu-
mentation, corriger des bogues… On compte actuellement plus de 18 millions
d’utilisateurs de Linux, et nombreux sont ceux qui contribuent d’une façon ou d’une
autre au développement de ce système et de son environnement.

À ce jour, Linux est un vrai système 32 bits, multitâches, multi-utilisateurs,


réseau et complet. Il s’installe sur la plupart des PC (avec ou sans autre système
d’exploitation). Il supporte une large gamme de programmes tels que X Window,
TCP/IP, C/C ++GNU et d’autres outils GNU, le courrier électronique, les news, des
outils dérivés de LateX (LyX), ou des outils de bureautique. Une machine sous
Linux est modulaire et paramétrable à souhait. Elle peut donc servir de station
personnelle ou de serveur (Web, ftp…).
Linux est une libre implémentation des spécifications POSIX, avec des exten-
sions System V et Berkeley. Ceci accélère la propagation de Linux au sein de
l’administration, qui exige la conformité POSIX de la plupart des systèmes qu’elle
utilise. Linux est un phénomène très important et peut devenir une alternative au
système Microsoft Windows, grâce notamment aux outils bureautiques…
Linux est le plus souvent diffusé sous forme d’une distribution, un ensemble de
programmes (noyau, sources des utilitaires, commandes, applications) formant
après installation un système complet. Par conséquent, il est de plus en plus utilisé dans
les sociétés commerciales comme station de travail et serveur.

Le succès de Linux tient à plusieurs facteurs :


●Le code source du système, ainsi que le noyau, les programmes utilisateurs, les
outils de développement sont librement distribuables (licence GPL, ou GNU),
4 1 • Présentation de Linux/Unix

● Linux est compatible avec un certain nombre de standards Unix au niveau du


code source, incluant les spécifications POSIX, system V et BSD,
● Un très grand nombre d’applications Unix gratuites disponibles sur Internet se
compilent sous Linux sans aucune modification,
● Le système Linux a été développé pour les processeurs Intel et utilise toutes les
fonctionnalités de ce processeur.

1.2 LES ORGANISMES DE NORMALISATION


ET LES GROUPES D’UTILISATEURS
L’évolution d’Unix, essentiellement technologique, n’allait pas vers une convergence
réelle des différentes branches (OSF, Berkeley, AT&T, IBM, Microsoft). Cela a amené
les utilisateurs à se regrouper afin d’exprimer leur indépendance vis-à-vis des
constructeurs et surtout d’essayer de définir une norme internationale pour ce système
d’exploitation (la première association d’utilisateurs fut /usr/group). Deux organismes de
normalisation ont ainsi émergé :
Le groupe X/Open (1984), association au départ européenne à laquelle se sont

joints les plus grands noms américains, s’est donné pour but d’améliorer
l’environnement du système, de fournir un guide de portabilité (XPGIII) pour
les concepteurs d’applications, de produire des utilitaires nouveaux.
Le groupe POSIX (Portable Open System Interface eXchange) qui fait partie

de l’association IEEE (Institute of Electrical and Electronic Engineers), est


divisé en sous-groupes de normalisation. Chacun de ces groupes a rédigé des
guides, langages et extensions pour Unix.
Ces deux groupes étaient devenus de véritables organismes de standardisation.
Mais les travaux du groupe POSIX sont devenus plus déterminants que ceux de
l’association X/Open.

D’autres groupes d’utilisateurs existent. Ils essaient d’être de véritables forums


d’échanges et de recherche sur Unix, mais contrairement aux précédents ils ne
travaillent pas sur des normes.
Il existe en France l’AFUU (Association Française des Utilisateurs d’Unix et des
systèmes ouverts). Cette association a été créée en 1982 par un petit groupe d’utilisa-
teurs pionniers dans le domaine des systèmes Unix. Ses objectifs sont de promouvoir,
de développer et de diffuser la « culture Unix » auprès des utilisateurs et ceci par le
biais des adhérents (organisation de manifestations dont la plus importante est la
« convention Unix », de séminaires, de conférences professionnelles, publication de
revues, de périodiques, comme « Tribunix », et d’ouvrages fondamentaux). L’asso-
ciation est représentée par des chercheurs, des informaticiens, des ingénieurs, … et
par ses groupes de travail (groupe Sécurité, groupe Portabilité, groupe Réseaux, …).
Au même titre, l’AFUL (Association Francophone des Utilisateurs de Linux et
des Logiciels Libres) est une association de loi 1901 dont l’objectif principal est de
1.3 Les distributions Linux 5

promouvoir, directement ou indirectement les logiciels libres, et en particulier les


systèmes d’exploitation libres principalement ceux basés sur les normes POSIX ou
dérivés, dont le plus connu est le système Linux muni de l’environnement GNU
(statut de l’association).
L’AFUL fonctionne par l’intermédiaire de groupes de travail : personnes souhaitant
discuter d’un sujet particulier lié aux logiciels libres, avec comme objectif de produire
des documents de synthèse diffusés publiquement.
L’AFUL est aussi représentée par «les groupes d’utilisateurs locaux de Linux/
Logiciels Libres », association d’utilisateurs localisés géographiquement. Ces asso-
ciations travaillent essentiellement par discussion sur des listes de diffusion et offrent
des serveurs Web fournis. En Alsace, le « Linux Users Group » est le représentant
régional très actif. Son serveur Web se trouve à l’adresse http://tux.u-strasbg.fr.

Les logiciels de la Free Software Foundation [FSF] de Richard Stallman


(utilitaires de développement [compilateurs C et Ansi C, C++, make, awk, emacs,
groff,…) sont distribués en code source. Vous pouvez les dupliquer, les distribuer et les
modifier comme bon vous semble. Cette philosophie procure à ces logiciels, par
opposition aux logiciels commerciaux, un taux d’utilisation et de distribution
extrêmement élevé. De très nombreuses personnes dans le monde entier travaillent sur
ces logiciels, les améliorent, corrigent les erreurs rencontrées. C’est en fait un
regroupement d’utilisateurs sans existence légale.
Linux est l’un de ces logiciels. Il est protégé par ce qui est connu sous le nom de
la General Public Licence (GPL). La GPL fut développée pour le projet GNU par
la FSF ; on parle ainsi de GNU-Linux comme de GNU-C, GNU-Emacs, ... Un
programme protégé par la GPL appartient à son ou ses auteurs, mais il peut être
distribué librement et gratuitement. La GPL autorise aussi les utilisateurs à modifier
les programmes et à en distribuer leur version, tout en gardant cette licence GPL. La
distribution de ces programmes peut aussi être payante, à la condition que les
sources y soient inclus. Cela peut paraître contradictoire, mais dans ce monde du
logiciel libre l’objectif est de développer et diffuser des programmes en permettant à
quiconque de les obtenir et de les utiliser.

1.3 LES DISTRIBUTIONS LINUX


GNU-Linux est un système Unix complet, avec un noyau maintenu par Linus
Torvalds et diverses applications liées au système. De nombreux outils, tels des
compilateurs, des éditeurs, des interfaces graphiques, existent.
Il serait très difficile pour beaucoup d’utilisateurs de construire un système
complet en partant du noyau, des sources des utilitaires, commandes, applications.
Linux est le plus souvent diffusé sous forme d’une distribution, un ensemble de
programmes (noyau, sources des utilitaires, commandes, applications) formant
après installation un système complet. Chacune des distributions a ses avantages et
6 1 • Présentation de Linux/Unix

ses inconvénients. Débuter avec Linux, c’est surtout choisir une distribution qui
corresponde avec les usages qu’on attend du système.

RedHat est la première société créée ayant pour objectif de rassembler tout ce
qui est nécessaire dans une distribution. Elle a été fondée en 1994 en Caroline du
Nord. Ses objectifs furent le développement de solutions logicielles, du support
téléphonique, du consulting sur site, des formations.
Pour les développeurs, RedHat met sa distribution à disposition sur Internet. Cette
société la vend aussi avec une documentation, c’est la version dite « Server
Enterprise ».
Parmi les distributions les plus utilisées, on trouve RedHat, Debian, Slackware
(toutes trois gratuites) et SuSE, Mandrake (toutes deux payantes).

Installation
L’installation de Linux sur une machine est une opération assez simple car interactive
dans chaque distribution. Toutefois, le meilleur conseil que nous pourrions donner
est de choisir une distribution accompagnée d’une documentation papier d’installation
complète. Il est également possible (et recommandé pour un débutant) d’acheter une
nouvelle machine avec Linux déjà installé. Si vous voulez installer Linux sur une
machine existante, avant de commencer, vous devriez savoir répondre aux quelques
questions suivantes :
Quel est le débit de ma connexion à l’Internet ? Si l’accès à l’Internet se fait par

un modem, même à 56K, une distribution gratuite téléchargée coûtera beau-


coup plus cher qu’un jeu de CD avec la documentation !
Mes sauvegardes me permettront-elles de remettre mon système dans son état

actuel en cas de problème ? Si la réponse est oui, je peux passer à la suite. Mon

système dispose-t-il d’un espace disque disponible d’au moins 1 Go ? Si


ce n’est pas le cas, il est inutile d’aller plus loin. Si cet espace disque disponible
se trouve dans des partitions déjà formatées et utilisées par ailleurs, il faudra
libérer cet espace en réduisant la taille des partitions (et ceci nous ramène à la
question précédente sur les sauvegardes). Linux aura besoin de ses propres
partitions. Le paragraphe 10.2.3 donne quelques conseils sur les partitions
disque pour Linux, indépendamment de tout autre système d’exploitation. ● Ce
système Linux sera-t-il autonome ou intégré à un réseau local ? Dans le
premier cas, préférer une installation de type « station de travail » alors que
dans le deuxième, une installation de type « serveur » sera peut-être plus
adaptée. Dans ce dernier cas, vous devrez toutefois acquérir des connaissances
d’administration Unix et réseau.
L’installation des différentes distributions de Linux est de plus en plus facile et
conviviale, et propose des configurations par défaut relativement propres.
Comme règles de base à l’installation d’un système linux, nous vous
conseillons :
1.3 Les distributions Linux 7

● de choisir une installation de type workstation ;


● si votre poste est à votre domicile et que vous utilisez une connexion ADSL,
mettre en place une protection dite « firewall moyen ».
Une fois l’installation terminée, il est important de créer un deuxième utilisateur.
Ce compte sera en fait votre compte de travail. Vous ne vous connecterez en tant
qu’administrateur système (root) que pour lancer des commandes purement
système.
Le présent ouvrage ne s’adresse pas à des administrateurs Unix confirmés et n’est pas
destiné à l’apprentissage de l’administration système. Il ne présente que les concepts
de base permettant d’utiliser Unix/Linux, c’est pourquoi nous n’entrerons pas plus en
détail dans l’installation.
Distributions et dérivés Linux Particularités

Debian Distribution avec un vaste choix de logiciels,


supporte les architectures 12 processeurs

Ubuntu Dérivé de Debian optimisé pour les ordinateurs


domestiques

Linux Mint Ramification d’Ubuntu conçue pour les


débutants, dispose de différents environnements
de bureau

Knoppix Première distribution live populaire (portable,


aucune installation nécessaire), vaste palette de
logiciels, dérivé de Debian

Gentoo Distribution Linux basée sur la source pour les


utilisateurs avancés, le système peut être
entièrement personnalisé

Red Hat Enterprise Linux (RHEL) Distribution de serveur Linux connue pour les
entreprises (actuellement leader du marché),
support complet grâce à des fabricants de
logiciels indépendants, payant, fait partie du
projet Fedora

Fedora Successeur direct de Red Hat Linux (RHL),


spécialisé dans les systèmes pour serveurs et de
bureau, remplace dans de nombreux cas RHL
dont le développement a été interrompu,
également conçu pour les débutants.

openSUSE Distribution Linux complète, particulièrement


diffusée en Allemagne et aux États-Unis, utilise
le gestionnaire de paquets RPM (système de
gestion de paquets gratuit), outil de configuration
8 1 • Présentation de Linux/Unix

1.4 NOTION DE SYSTÈME D’EXPLOITATION


Unix est un système d’exploitation, constitué du noyau Unix, d’un interpréteur de
commandes et d’un grand nombre d’utilitaires.
Le noyau assure la gestion des ressources physiques (processeur, mémoires, péri-
phériques) et logicielles (processus, fichiers…). L’interface entre les programmes
des utilisateurs et le noyau est définie par un ensemble de procédures et de fonctions,
soit directement au niveau du noyau, soit par l’intermédiaire de bibliothèques. Pour
ce qui concerne l’architecture du noyau proprement dit, les éléments caractéristi-
ques sont les suivants :
● Le noyau est constitué d’un ensemble de procédures et de fonctions écrites
pour l’essentiel en langage C
● La structure du noyau est monolithique et la notion de couche, contrairement à
d’autres systèmes, n’existe pas.

Comme c’est le cas avec tout système d’exploitation, l’utilisateur d’Unix


n’accède pas directement au noyau mais à un interpréteur de commandes : le shell (le
choix de ce terme indique qu’Unix est « caché » à l’intérieur de cette coquille qui en est
la seule partie visible par l’utilisateur).
Une différence importante entre Unix et les autres systèmes d’exploitation est
qu’il existe plusieurs shells différents : richesse incomparable, mais source de
confusion. Ce point sera abordé plus en détail au paragraphe 2.2 et au chapitre 6.

L’interface utilisateur d’Unix est donc constituée :


● D’un ensemble de programmes exécutables : les commandes.
● Du shell lui-même, interpréteur de commandes mais aussi, plus que dans
n’importe quel autre système d’exploitation, langage de commandes permet-
tant d’écrire des programmes d’une grande complexité. Ces programmes de
commandes, appelés scripts, seront développés au chapitre 8.
1.4 Notion de système d’exploitation 9

Parmi les utilitaires, on trouve :


●différents langages de programmation : C++, Fortran, Java, Perl, TCL/TK,
GTK;
●des utilitaires de développement et maintenance de logiciels : make, assem-
bleur, éditeurs de lien ;
●des outils de bureautique : messagerie, traitement de textes ; des

outils de mise au point de programmes ;


●des éditeurs de textes (sed, vi et vim, emacs, gnotepad) ; ●

des formateurs de textes ;


●un système de messagerie complet (courrier, conversation en temps réel…) ; un

analyseur syntaxique yacc, un générateur d’analyseur lexical lex ;


●un environnement graphique distribué : X11 ;
●les outils pour le Web (Apache, Netscape...)

1.5 VUE GÉNÉRALE D’UNIX


Unix est un système multi-utilisateur « temps partagé », c’est-à-dire qu’il est
possible de connecter sous Unix plusieurs utilisateurs simultanément. Chacun a à sa
disposition l’ensemble des ressources du système, le partage étant effectué par
découpage du temps et récupération des temps morts d’entrée-sortie. Comme tout
système multi-utilisateur, Unix comporte des mécanismes d’identification et de
protection permettant d’éviter toute interférence (accidentelle ou malveillante) entre
utilisateurs.
Unix est un système multitâche, c’est-à-dire qu’un utilisateur peut lancer
plusieurs tâches simultanément. Un processus (ou tâche) correspond à l’exécution
d’un programme à un instant donné, le programme étant en lui-même quelque
chose d’inerte rangé sur disque sous la forme d’un fichier ordinaire exécutable.
Le système de fichiers est un système hiérarchisé arborescent. Il se retrouve sur
beaucoup d’autres systèmes d’exploitation (GCOS, DOS, VMS…). Les
entrées-sorties sont généralisées. Les périphériques sont considérés, du point de vue de
l’utilisateur, comme des fichiers.
Le système est écrit à 99 % en C, ce qui facilite l’appel au noyau par des applica-
tions écrites en langage C. Ce système a été écrit de façon à être réellement
portable.

1.6 Unix vs Linux : avantages et inconvénients


1.6.1 Avantages
10 1 • Présentation de Linux/Unix

Avantages d’Unix Avantages de Linux

Environnement stable et sophistiqué OS polyvalent, particulièrement adapté au


principalement pour les serveurs et les marché des serveurs (des distributions
postes de travail Linux spécifiques aux serveurs sont
disponibles), de nombreux Cloud utilisent
Linux

Fonctionne sur de nombreuses plateformes Large support matériel, indépendant du


matérielles (portabilité), solutions sur fabricant (vaut pour les CPU, les serveurs,
mesure pour un ajustement optimal au les postes de travail, les PC, les mini-
matériel ordinateurs)

Les systèmes UNIX payants sont La plupart des distributions sont gratuites
continuellement développés, il est tenu (CD/DVD, téléchargement Internet)
compte des besoins du client

Sûr (par ex. restriction des droits Sûr (par ex. restriction des droits
d’utilisateur, chiffrement) d’utilisateur, chiffrement)

Scripting sophistiqué (Shell) Scripting sophistiqué (Shell)

Convient parfaitement aux programmeurs Convient parfaitement aux programmeurs


et aux administrateurs système et aux administrateurs système, davantage
d’IGU intuitives en particulier pour les
utilisateurs d’ordinateur de bureau

Vaste choix de programmes et d’outils (en Vaste choix de programmes et d’outils (en
grande partie déjà inclus dans l’OS) grande partie déjà inclus dans l’OS)

Particulièrement adapté aux domaines Mises à jour fréquentes, les failles de


commerciaux critiques sécurité sont rapidement corrigées

Grâce au standard POSIX, les applications Grâce au standard POSIX, les applications
Unix fonctionnent aussi sur Linux Linux fonctionnent aussi sur Unix
(migration possible) (migration possible)

Prérequis matériels peu importants, bonne


performance du système

Versions portables sans installation


disponible (par ex. sur DVD, clé USB)
1.6 Unix vs Linux 11

1.6.2 Inconvénients

Inconvénients d’Unix Inconvénients de Linux

Groupe cible limité, Un certain temps d’adaptation est


focalisation sur les utilisateurs nécessaire aux débutants avec
expérimentés et les Linux, les nouveaux utilisateurs
professionnels de doivent en partie renoncer à leurs
l’informatique logiciels habituels

De nombreuses solutions Sur le marché des serveurs, frais


(spécifiques) sur le marché d’assistance plus élevés le cas
des serveurs sont payantes et échéant en cas de distributions
liées à un matériel précis du Linux commerciales
fabricant

Prérequis matériels Linux a des failles de sécurité,


habituellement plus programmes malveillants (les
importants (en particulier serveurs sont particulièrement
dans le cas de systèmes menacés)
commerciaux basés sur une
licence)

Mises à jour plutôt rares et Les pilotes pour les nouveaux


développement lent matériels (PC, cartes graphiques)
sont publiés après un certain temps

Le nombre d’utilisateurs est Tendance à la fragmentation dans


en baisse, en partie à cause de le développement Linux (nombre
Linux (en particulier sur le important de distributions Linux)
marché des serveurs)

Pratiquement insignifiant sur Faible part de marché pour les


le marché des ordinateurs de ordinateurs de bureau et portables
bureau
12 1 • Présentation de Linux/Unix

1.7 Caractéristiques d’Unix

Une des premières caractéristiques d’Unix est son écriture (à hauteur de 95%) en
langage C, permettant ainsi une portabilité sur la plupart des architectures en allant des
micro-ordinateurs jusqu’aux supercalculateurs. Mais cet atout ne suffit pas à lui
seul à expliquer l’expansion d’Unix. Sa popularité est, en fait, due à sa
conception modulaire avec des interfaces bien définies ainsi que la disponibilité
d’outils simples qui coexistent entres elles. Alors que les autres systèmes
d’exploitation ressemblent à des ensembles monoblocs et relativement fermés, la
conception du système repose sur différents niveaux bien distincts: le noyau, un
interpréteur de commandes (le shell), des bibliothèques et un nombre important
d’utilitaires.

1.7.1 Le noyau

Le noyau est la partie centrale d’Unix. Il est résident, il se charge en mémoire au démarrage.
Sa structure est modulaire, ce qui rend aisées ses manipulations en termes de
portabilité et l’utilisation des services qu’il offre via les primitives (ou appels systèmes). Ce
fonctionnement par primitives permet de résoudre les problèmes d’accès concurrents
aux informations du système. En effet, les appels systèmes font entrer l’exécution en mode
noyau. Dans ce mode, le processus est assuré de garder le processeur jusqu’au retour au
mode utilisateur lorsque l’appel système est terminé. Les différents noyaux Unix ont
été réécrits afin de pouvoir s’adapter aux nouvelles machines multi-processeurs et de
supporter le travail en temps réel. Ils sont le plus souvent réécrits en couches: les différentes
fonctions du noyau sont implémentées dans des couches logicielles différentes qui
communiquent entre elles par messages. La tendance actuelle est également de garder le
moins de fonctions possibles dans le noyau afin de constituer un micro-noyau. Les fonctions
écartées sont rejetées dans les modules exécutés en mode utilisateur.
1.7 Caractéristiques d’Unix 13

L’interface entre le noyau Unix et les applications est définit par une bibliothèque
(libc.a pour le langage C par exemple). Elle contient les modules permettant d’utiliser
les primitives mais aussi des fonctions plus évoluées combinant plusieurs primitives.
D’autres bibliothèques sont utilisées pour des services spécialisés (fonctions
graphiques,...).

1.7.2 Le shell
L’interface utilisateur sous Unix est appelée shell. Lorsqu’un utilisateur tape des
commandes Unix, ces commandes sont reçues par le shell qui les interprète avant de
lancer l’exécution de cette commande. Le shell est une couche logicielle bien séparée du
noyau. Il joue un double rôle celui d’interpréteur de commandes et celui de langage de
programmation.
Ce dernier rôle semblant parfois hermétique à des néophytes. Il existe plusieurs shells
dont les plus répandus sont:
. le Bourne Shell (sh): le shell de base sous Unix A.T.&T.,
. le C-shell (csh): le shell Unix BSD,
. le Korn-Shell (ksh) qui est une extension du Bourne shell. Il possède toutes les com-
mandes de son prédécesseur, ainsi que des commandes qui facilitent le travail de
l’utilisateur comme des outils de gestion des historiques des commandes tapées...
. le Z-shell (zsh): extension de ksh, qui offre en particulier des modules de complétions
des nom de programme, de fichiers, de variables utilisateur et système, l’envoie de
message à l’utilisateur de correction en cas d’erreur de frappe.

L’utilisateur, à l’aide des commandes qu’il a à sa disposition, peut écrire ses propres
fonctions et programmes en langage shell, ce sont alors des shellscripts. Une fois
ceux-ci réalisés, ils peuvent être utilisés par l’utilisateur comme n’importe quelle
commande du shell lui même.

1.8 Architecture générale d’Unix

Un système GNU/Linux est structuré de la manière suivante :

● le noyau Linux ;

● les programmes en ligne de commande et le shell ;

● le serveur XWindow ;

● le gestionnaire de fenêtres et le gestionnaire de bureau ;

● les applications XWindow.

La figure suivante vous présente comment ces différentes couches logicielles


s'agencent les unes par rapport aux autres.
14 1 • Présentation de Linux/Unix

Cette architecture est, comme on peut le voir, très avantageuse :


● les systèmes Unix, donc Linux, sont très structurés, donc plus simples à utiliser, à
configurer, à maintenir et à développer ;
● ils sont très stables, car les composants de haut niveau n'interfèrent pas sur les
composants de bas niveau ;
●ils sont faciles à personnaliser, puisque l'utilisateur a le choix des outils à chaque
niveau ;
● Linux a de plus la particularité d'être parfaitement modifiable, puisque si l'on sait
programmer, on peut personnaliser les composants du système ou en rajouter à tous
les niveaux ;
● et il n'est pas propriétaire, c'est-à-dire que l'on n'est pas dépendant d'un éditeur de
logiciel pour résoudre un problème donné.

1.9 Quelques dates


1.9.1 UNIX
UNIX désigne une famille de systèmes d'exploitation dont le premier a été conçu aux
laboratoires Bell (Bell Laboratories). C'est un système qui est assez vieux (une bonne
trentaine d'années), utilisé tant pour les gros ordinateurs que pour les plus petits. Nous
le retrouvons sur les super-ordinateurs (Cray), sur les ordinateurs centraux, sur les
minis (VAX, HP), sur les postes de travail (HP, Apollo, Sun, SGI, ...) et bien sûr, sur
les micros (Linux).
1.9 Quelques dates 15

1960

Il y a beaucoup de débats sur les mérites des différents langages de programmation


(PL/1, APL, Simula, ALGOL 60, COBOL, FORTRAN, etc.). À l'Université de
Londres et de Cambridge, le langage BCPL (Basic Combined Programming
Language) est créé. Des recherches sur les concepts de temps partagé, de traitement
interactif (par opposition au traitement par lots), de pagination et de protection de la
mémoire, d'ordonnancement des travaux et de structure de fichiers sont débutées.

1967

Dennis Ritchie quitte Harvard pour travailler aux Laboratoires Bell dans le New
Jersey.

1968 Ken Thompson quitte Berkeley, où se faisaient déjà des recherches sur un
nouveau système d'exploitation (SDS930), pour se joindre à une équipe de spécialistes
qui avaient travaillé sur les systèmes Multics (Cambridge Multiple Access System) et
GE 645.

1969 Thompson et Ritchie produisent la première édition d'un système à usager


unique sur un PDP 7. C'est un système primitif qui ne comporte qu'un assembleur et
un chargeur.

1970 La primitive « fork » est ajoutée pour permettre la création de processus et des
programmes utilitaires pour la gestion des fichiers sont produits (deuxième édition).
Le système accepte alors deux usagers et Thompson le baptise UNIX. Ken Kernighan
avait, un jour, fait référence au système par: « Uniplexed Information and Computing
System » (UNICS) par opposition à MULTICS (Multiplexed Information and
Computing System).

1971 Le système est transporté sur un PDP 11/20 et un système de traitement de


textes (roff) est produit pour le service des brevets des Laboratoires Bell (le premier
utilisateur extérieur de UNIX). Thompson et Ritchie publient la première
documentation du système. C'est la troisième édition.

1972 UNIX est amélioré en lui ajoutant la notion de relais (pipe). Thompson
développe le langage B (un descendant de BCPL) et réécrit l'assembleur du système
en B. C'est un compilateur qui produit du code interprétable, peu performant et Ritchie
produit un générateur de code pour le PDP 11. C'est le langage C. Il existe à l'époque
environ 20 sites utilisant le système UNIX.
16 1 • Présentation de Linux/Unix

1973 UNIX est réécrit en langage C (quatrième édition). Il fonctionne alors sur un
ordinateur avec un disque rigide de 500K et peut supporter environ cinq usagers.

Thompson se charge de la gestion de processus tandis que Ritchie s'occupe de la


gestion des entrées/sorties.

1974 Plusieurs universités commencent à utiliser UNIX et la cinquième édition,


conçue spécialement pour des fins académiques, est introduite.

1975 La sixième édition de UNIX est produite et devient la première à être


commercialisée pour une somme modique par AT&T.

1977

Près de 500 sites utilisent UNIX. Une nouvelle version pour un ordinateur Interdata
8/32 est produite. Le langage C est aussi amélioré. John Reiser et Tom London, des
Laboratoires Bell, écriront UNIX 32V pour le VAX 11/780. C'est un descendant de
cette version qui est actuellement distribué par l'Université de Berkeley en Californie
(UCB).

À partir de ce moment, les versions de UNIX vont se multiplier; BSD4.2 de Berkeley,


A/UX de Apple Computer, HP-UX de Hewlett-Packard, AIX de IBM, Domain/IX de
Apollo Computer et SunOS de Sun Microsystems. C'est à cette époque que débute le
problème de standard.
1980

Il y a environ 100 000 sites UNIX! Le problème, c'est que personne ne supporte
vraiment ce système. Les détenteurs de licences sont laissés à eux-mêmes.

1983

AT&T annonce System V qui est complètement différent de la version de Berkeley.

1984

La cour des États-Unis brise le monopole de AT&T et l'oblige à se subdiviser. Sept


compagnies naîtront (les Baby Bells) et AT&T aura le droit de vendre des produits
informatiques (de la concurrence pour IBM). Elle décide de miser sur UNIX, produit
la version 2 de System V et offre un support complet pour le système d'exploitation et
les utilitaires.
1.9 Quelques dates 17

1986

AT&T annonce la version 3 de System V qui supporte RFS (Remote File Sharing).

1987

Une nouvelle version de UNIX compatible avec la version de AT&T, celle de


Berkeley, de Sun et XENIX de Microsoft est annoncée. C'est System V version 4.0
qui sera disponible à l'automne 1989. Donc deux versions vont subsister: System V
5.3 de AT&T et BSD 4.3 de Berkeley.

1988

Un mouvement se forme pour produire une version compétitrice de UNIX. C'est OSF
(Open Software Foundation) qui regroupe: IBM, Hewlett-Packard, BULL, SIEMENS
et Apollo.

1989

Au départ, toutes les sources de UNIX étaient disponibles, donc beaucoup de gens ont
pu contribuer à son expansion. Avec la commercialisation du système par AT&T, les
sources n'étaient offertes qu'à des prix exorbitants. Le projet GNU (GNU's not UNIX)
a pour objectif (entre autres) de remettre UNIX dans le domaine public. Sur une base
de volontariat, les participants au projet GNU produisent du code UNIX disponibles
gratuitement.

1.9.1 LINIX
1991

Linus Torvalds, étudiant à l'université d'Helsinki (Finlande) installe le système Minix


sur son i386. Le système s'avérant trop limité pour Linus, il décide d'aller plus loin sur
la base de ce qui existe... Linux (Linus' UNIX, l'UNIX de Linus) 0.0.1 est né au mois
d'août 1991. Linus lance alors un appel à contribution, et permet donc un libre accès
au code source.

Cette version permet de faire tourner quelques applications GNU (logiciels libres)
essentielles comme le compilateur gcc ou le shell bash. Linus prend la décision de
mettre le code source sous licence GPL : tout le monde peut alors participer au
développement de Linux.
18 1 • Présentation de Linux/Unix

1992-94

Le développement anarchique de Linux ne lui permet pas, au départ, de devenir un


système compétitif face aux autres systèmes du marché. Son point faible réside dans
son système de fichiers hérité de Minix. Seule l'intégration à Linux du Second
Extended Filesystem (ext2fs), conçu par Rémi Card à partir du système de fichiers de
BSD, permet d'en faire un système fiable. Ext2fs offre enfin les performances et les
services de systèmes de fichiers professionnels. Il devient naturellement un standard.

La présence dans le processus de développement de développeurs venant de nombreux


horizons permet à Linux d'exister sur de nombreuses plates-formes (Mac, Atari,
Amiga, Alpha) autres que sa plate-forme d'origine (Intel). Petit à petit, Linux devient
un système UNIX complet compatible avec les autres systèmes UNIX, offrant
toujours plus de services de qualité professionnelle au plus grand nombre.
1995

L'explosion d'Internet donne un second souffle au développement de Linux: non


seulement pour permettre à la communauté des développeurs de Linux de continuer à
s'étendre, mais aussi et surtout pour donner à Linux une existence réelle sur le marché
des systèmes d'exploitation. Ainsi, ses qualités d'OS libre (et gratuit), robuste et
performant font qu'il est choisi par de plus en plus de fournisseurs d'accès à Internet. Il
est ainsi devenu aujourd'hui le leader sur le marché de l'hébergement de sites Web.

Parallèlement, l'apparition et le développement de sociétés privées telles que RedHat,


Caldera ou VA Linux donne une envergure jusqu'alors inconnue à Linux: les
distributions deviennent de plus en plus conviviales et simples à installer, et des
services professionnels sont mis en place pour faciliter l'implantation de Linux dans
les entreprises.
1996

Linux commence à faire parler de lui dans les média. Red Hat Linux est élu meilleur
OS par InfoWorld. Début du projet KDE : on commence à développer des projets
conviviaux pour le grand public.

1999

Linux est présenté comme une alternative au système Windows de Microsoft dans le
domaine des serveurs. Linux est présent sur 35% des serveurs d'entreprises. Les salons
Linux se multiplient et l'on observe une multiplication des revues spécialisées.

Vous aimerez peut-être aussi