Vous êtes sur la page 1sur 7

Architectures des systmes UNIX, Linux et *BSD

Principes de base qui ont guid son dveloppement (UNIX)


Tout est fichier.
Gestion des processus.
Un programme doit faire au mieux ce pour quoi il est crit.
Tout ce qui n'est pas explicitement autoris est interdit.
Redirection des entres sorties.
Les sockets ont t ajouts plus tard pour TCP/IP.

Les concepts fondamentaux d'UNIX (*)


+ Systme multiutilisateurs : plusieurs utilisateurs peuvent tre actifs en mme temps
+ Systme multitches : excute plusieurs programmes en mme temps
+ Permet la rpartition des ressources (mmoire, processeurs, espace disque, imprimantes,
programmes et utilitaires) entre les utilisateurs et les tches.
+ Chaque utilisateur peut excuter plusieurs programmes simultanment.
+ Fournit des primitives pour construire des applications complexes partir d'autres plus simples
+ Il est possible de rediriger les entres et sorties des processus
+ Un mcanisme de communication par tubes permet de synchroniser des processus et de leur faire
changer des informations.
+ Un systme UNIX est administr par un super utilisateur ou administrateur systme.

Architecture du systme UNIX

Les couches dans un systme UNIX


User Interface
Users
Call System Interface
Tools Programs : shell, vi, emacs, gcc ...
User mode
Library Interface Standard library : open, close, read, write, fork ...
OS UNIX : process and memory management, FS, E/S ... Kernel mode
Hardware : UC, RAM, Hard Disk, terminal ...
Le systme comprend :
* un ensemble de fonctions de base appel ;
* l'enchanement des tches ou processus ;
* un systme de gestion de fichiers hirarchis ;
* des interprteurs de commandes (shell, C-shell, Korn-shell, ...) disposant d'instructions et de
structures de contrle ;
* des utilitaires : compilateur C, diteurs, logiciels rseau, gnrateurs d'analyseurs lexicaux et
syntaxiques, ... ;
* un mcanisme d'interactions entre processus : les signaux ;
* un systme de messagerie lectronique.

(*) Note : quelques points ngatifs demeurent dans UNIX, tels que les cots de dveloppement
encore levs. Il reste cantonn dans le monde des mini-ordinateurs jusqu'au milieu des annes 90,
o la puissance est devenue suffisante sur PC et stations base de RISC.

Diffrences et volutions dans Linux et *BSD


Le noyau Linux :
Architecture d'origine compltement monolithique (noyau en un seul fichier excutable) :
obsolte, du fait de l'intgration d'un nombre de plus en plus important de pilotes (drivers),
souffre d'obsit en plus d'tre confront des limites de maintenabilit et d'volutivit.

Evolution vers un modle d'architecture hybride partir du noyau 2.0 :


le noyau monolithique/hybride est constitu du strict ncessaire pour dmarrer, s'initialiser et a la
capacit de charger des modules, il est de type LKM, Loadable Kernel Module,
caractristiques : intraction directe avec du matriel, encombrement mmoire faible, portabilit
importante, fiabilit, souplesse, scurit limite.
multiplate-formes : fonctionne avec diffrents types de processeurs (Intel, Sparc, Alpha, PPC ...)
Noyau modules

Le kernel est toujours constitu d'un seul fichier noyau hybride ou modulaire contenant le code
pouvant s'excuter en kernel space et peut-tre li statiquement ou dynamiquement d'autres
fichiers son, ppp, impression ....
Kernel Linux 2.0

Le noyau 2.6 a t conu pour fonctionner sur des architectures diamtralement opposes :
optimis pour les trs grosses architectures massivement multiprocesseurs (norme serveur ultra-
puissant et possdant beaucoup de mmoire) llectronique embarque. Il peut ainsi travailler
sur une plus grande chelle de matriel (scalability).
premptif, cest dire qu'il peut arrt une tche en cours d'excution pour en excuter une autre
considre prioritaire.
interactivit amliore notamment avec l'ordonnanceur (scheduler), la partie qui choisit dattribuer
un temps processeur, un programme.
bibliothque optimise de gestion de threads POSIX : NPTL, Native Posix Threads Linux.
support de beaucoup plus de priphriques, cest dire le branchement chaud de priphriques
(hotplug). Le systme daccs aux disques durs permet de meilleures performances.
support de plusieurs nouveaux systmes de fichiers, des systmes de fichier rseau non distribus
(comme NFSv4) et distribus (comme Intermezzo).
support du multimdia en gnral notamment avec le son : un systme de pilotes pour les cartes,
plus performants, offrant plus de possibilits : ALSA, Abstract Layer Sound Architecture.

Constations et amliorations du noyau 2.6 :


Un nombre croissant d'amlioration du noyau (kernel) et son adaption diffrentes architectures
matrielles permet Linux d'tre intgr dans de nombreux appareils. (ordinateur, calculateur, PDA,
tlphone, satellite, robot, etc ...). Parmi les domaines dans lesquels excelle le noyau Linux, il y a
incontestablement le rseau et il est un des systmes d'exploitation le plus interoprable du march.
Linux 2.6 inclut galement un support amlior pour le domaine relativement nouveau des systmes
de fichiers rseau distribus, systme o les fichiers sur un volume logique unique peuvent tre
dcoups sur de multiples noeuds. En plus du systme de fichiers CODA introduit dans Linux 2.4,
Linux possde maintenant un support pour deux autres systmes de fichiers distribus : AFS et
InterMezzo. AFS, le systme de fichiers d'Andrew (ainsi nomm parce qu'il tait originellement
dvelopp CMU), est pour l'instant trs limit et restreint des oprations de lecture seule (une
version plus complte d'AFS est disponible en dehors du noyau). Le second systme de fichiers
support, InterMezzo (galement dvelopp CMU) est aussi nouvellement support sous Linux 2.6
et il possde des caractristiques plus avances telles que l'opration de dconnexion (donc vous
travaillez sur des fichiers locaux mis en cache) et est adapt des applications nessitant une haute
disponibilit, o vous avez besoin de garantir que le stockage n'est jamais indisponible (o simul si
absent). Il prsente galement des applications pour garder des donnss synchronisss entre
plusieurs ordinateurs, tels qu'un portable ou un PDA et un ordinateur de bureau. Plusieurs des projets
fournissant un support pour ces nouveaux types de systmes de fichiers sont initialement dvelopps
sur Linux, permettant Linux d'tre trs en avance sur le support de ces nouvelles fonctionnalits.

Fonctionnalits diverses et scurit :


Un autre gros changement dans Linux 2.6 qui n'a pas reu assez d'attention est la richesse des
nouvelles modifications lies la scurit. Plus fondamentalement, la totalit de la scurit base sur
le noyau (la puissance du super-utilisateur sous les systmes d'exploitation de la famille UNIX) a t
modularise pour n'tre plus qu'un module de scurit parmi une multitude d'alternatives potentielles
(cependant le seul modle de scurit offert ce jour est celui par dfaut et un exemple pour faire le
vtre). Pour ce changement, toutes les parties du noyau ont t mises jour afin de baser tous les
accs utilisateur sur un systme fin de capacits, plutt que le vieux systme superuser. Presque
tous les systmes Linux continueront d'avoir un compte root avec un accs complet, mais ceci
permet un systme Linux-like d'ignorer cette supposition fondamentale. Un autre changement
connexe la scurit est que les modules binaires (par exemple, les pilotes vendus par un fabricant
de matriel) ne peuvent plus surcharger des appels systme avec les leurs et ne peuvent plus ni lire
ni modifier la table d'appels systme. Ceci limite de manire significative la quantit d'accs que les
modules non open source peuvent faire dans le noyau et rgle probablement quelques failles lgales
autour de la GPL. Le dernier changement quelque peu li la scurit est que le nouveau noyau
Linux peut maintenant utiliser des gnrateurs de nombres alatoires matriels (tels que ceux
prsents dans quelques nouveaux processeurs), plutt que de compter sur le pool d'entropie (tout
fait bon il est vrai) bas sur des fluctuations alatoires de matriel.
Le noyau BSD :
Le noyau BSD a une typologie diffrente de Linux, et il hrite directement des versions d'UNIX (noyau
monolythique). Nanmoins le noyau de la distribution FreeBSD est comparable celui de Linux et
prsente des similitudes avec son architecture hybride (noyau modulaire).

Le systme BSD, Berkeley Software Distribution, galement appel BSD/OS, fut dvelopp la fin
des annes 70 par le Computer System Research Group l'Universit amricaine de Berkeley. Il se
situe comme l'un des descendants de l'UNIX d'AT&T. Une partie de ce BSD/OS est toujours utilise
par les diffrents systme UNIX dont Linux (ex : API socket BSD). L'essor des logiciels libres a en
effet permis divers groupes de dveloppeurs de nouveaux systmes bass sur BSD.
Ces systmes sont tous de vritables UNIX, ils sont les descendants directs de BSD 4.4. Ces OS
sont connus pour tre trs stable et trs rapide. Tout comme Linux, ils sont disponibles librement.

FreeBSD, le plus rpandu :


Disponible pour plate-formes i386 et Alpha, FreeBSD dispose de nombreux atouts, et notamment de
performances trs impressionnantes lorsqu'il est utilis comme serveur Web.
Il gre en partie ou totalit certains sites gnrant beaucoup de trafic, comme Yahoo!, Hotmail et le
serveur du site Apache. De plus, FreeBSD supporte bien mieux les lourdes charges (abondances de
requtes) que Linux. Par exemple, un site hberg par une seule machine a transfr plus de 2 Tra
octets en une journe. FreeBSD peut tre utilis comme station de travail grce aux environnements
GNOME et KDE. Il est actuellement le seul des 3 *BSD a supporter le clustering et le SMP. Cette
situation devrait cependant bientt changer car le support de ces fonctions sont actuellement en
dveloppement pour NetBSD et OpenBSD.

NetBSD, le plus htrogne :


Le principal objectif de NetBSD : le portabilit du systme. Il existe pas moins d'une trentaine
d'architectures supportes par NetBSD des VAX au Alpha en passant par l'Amiga, l'Atari ou le i386 et
mme les processeur MIPS des PocketPC. Si vous avez des machines "exotiques" ou relativement
anciennes, que vous dsirez malgr tout faire fonctionner sous un UNIX de type BSD. Si vous avez,
dans vos placards, plusieurs stations de travail Sun ou de vieux modles Silicon Graphics ou encore
des Macintosh, alors NetBSD est certainement la meilleure solution pour vous ! Vous pourrez ainsi
donner un second souffle vos vieilles machines.

OpenBSD, les plus sr des OS libres :


OpenBSD est avant tout ax sur la scurit et la cryptographie, mais se rvle plus lent que les
autres BSD. Respectant les normes de scurit de la NSA et n'ayant connu aucunes failles depuis 3
ans, OpenBSD s'avre le plus intressant lorsque l'on souhaite crer un Firewall, ou toute autre
application assurant des fonctionnalits critiques. OpenBSD s'appuie sur l'algorithme de cryptage
Blowfish ainsi que sur les tunnels OpenSSH et SFTP permettant une administration distance sre. Il
est en ralit issu d'une scission de l'quipe NetBSD et possde donc des similitude avec celui-ci.
Points communs et diffrences avec Linux :
Les installations des diffrents BSD sont toujours efficaces, mais elles sont gnralement destines
aux personnes que le mode console ne rebute pas. Nous sommes ici trs loin de la convivialit des
dernires distributions Linux.
Un utilisateur de n'importe quel UNIX pour se servir immdiatement d'un BSD dans le cadre d 'une
installation standard, en mode console ou graphique, grce la prsence du serveur XFree86. Il est
tout fait possible d'utiliser GNOME ou KDE sous BSD. En mode console, le shell est sh au lieu du
traditionnel bash configur sous Linux. Ce shell est moins convivial car vous ne disposez pas de
fonctions comme les flches de dplacement pour retrouver les dernires commandes, ou la pression
sur la touche [Tab] pour complter les noms. Il est facile d'installer bash mais il est fortement
conseill de laisser l'utilisateur root avec sh.

Comparaisons dans les phases de dveloppements de BSD et Linux :


Les systmes BSD ont comme avantages, la centralisation des projets de dveloppements,
contrairement GNU/Linux et sa centaine de distributions. Aussi, la scurit, la facilit d'installation et
l'ensemble homogne fourni.
Les utilisateurs du monde Open Source, des UNIX libres, reprochent GNU/Linux : pas assez de
prestataires de services comptents, administration complexe.

Autre noyau (le micro noyau) :


Si le noyau (kernel) est toujours un fichier unique, il se limite au code du noyau et n'a pas d'extension
du kernel space. L'architecture des micro-noyaux (micro-kernels) est indpendante de la plate-forme
matrielle et elle est oriente services. C'est dire qu'il ne fournit ni systmes ou gestionnaires de
fichiers, de rpertoires et de processus. L'ide sous-jacente l'architecture des micro-noyaux est un
kernel trs lger. L'intgralit du systme d'exploitation est conu pour ne fonctionner qu'avec seul
type d'architecture comme une sorte de machine virtuelle. Le matriel tant gr par un ensemble de
services minimaux et d'une API, Application Programming Interface normalise. Cette abstraction
standard intragit sur un modle deux tiers ralentissant le systme.
Le micro-noyau Mach (prononc mar) gre cinq abstractions fondamentales : les tches, les
threads, les ports, les messages, et les objets mmoire. Les tches et les brins sont l'environnement
et les moyens d'excuter un programme. Les ports et les messages permettent aux brins d'interagir
entre eux et avec le noyau.

Un mot sur Mac OS X : ce noyau, bas sur BSD UNIX et sur le noyau Mach 3.0 runit depuis sa
sortie en 1999 des caractristiques des mondes Apple et UNIX. Darwin est le nom donn par Apple
au noyau du systme Mac OS X. Le systme d'exploitation OPENSTEP dvelopp par NeXT et la
suite de NEXTSTEP, qui se basait sur BSD 4.3. Apple s'implique activement dans la communaut, et
Darwin est finalement compatible avec la distribution BSD de rfrence FreeBSD et permet d'utiliser
un grand nombre de projets OpenSource. MacOS X allie les performances et la stabilit d'UNIX
(protection de l'espace mmoire; la facilit d'utilisation de MacOS).
Tableau comparatif des noyaux :
Type de noyau Caractristiques cls

Noyau monolithique : Interaction directe avec le matriel


Code optimis pour architecture hardware spcifique : performances.
UNIX
Encombrement limitant les fonctionnalits.
*BSD
Portabilit faible.
Linux version < 2.0

Noyau hybride : Interaction directe avec le matriel


Code optimis pour architecture hardware spcifique : performances
Linux version >= 2.0
Encombrement mmoire faible
FreeBSD
Portabilit importante
Fiabilit
Souplesse
Scurit limite

Micro noyau : Encombrement trs faible


La plupart des services de bas niveau du systme d'exploitation ne
Amoeba
sont pas des constituants du noyau
Mach (MACOSX, MKLinux)
Interaction de ces services avec une abstraction virtuelle normalise
GNU/Hurd de la machine, via une interface de communication standard
Portabilit importante
Scurit renforce
Performances limites (noyaux gnralistes)