Académique Documents
Professionnel Documents
Culture Documents
Chap1 Unix
Chap1 Unix
Présentation de Linux/Unix
1.1 HISTORIQUE
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.
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
●
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
●
actuel en cas de problème ? Si la réponse est oui, je peux passer à la suite. Mon
●
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
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)
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)
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)
1.6.2 Inconvénients
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.
● le noyau Linux ;
● le serveur XWindow ;
1960
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.
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).
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.
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).
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
1984
1986
AT&T annonce la version 3 de System V qui supporte RFS (Remote File Sharing).
1987
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
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
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.