Software">
Exposé Linux
Exposé Linux
Exposé Linux
Page 1
EXPOSÉ DE SYSTÈME D’EXPLOITATION
INTRODUCTION
Linux étant un système d’exploitation à part entière et rival de Windows, il est le principal acteur du
marché de l’open source (source ouverte). Par ailleurs, un des gros OS (Operating Système, donc système
d’exploitation) du monde de l’informatique, mais pourtant très peu utilisé. Linux étant gratuit, on pourrait se
demander pourquoi il n’est pas à l’instar de son rival Windows (de Microsoft), le plus rependu parmi les
possesseurs d’ordinateur. De ce fait, notre analyse portera de prime à bord sur la présentation du systèmes
d’exploitation, en grand 2 sur les systèmes d’exploitation Linux et enfin en grand 3 sur les propriétés de
linux.
I. SYSTEME D’EXPLOITATION
1. Definition
Page 2
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Le système d’exploitation (SE) est chargé d’assurer la liaison entre les ressources matérielles,
l’utilisateur et les applications (traitement de texte, jeu vidéo, etc.). Ainsi lorsqu’un programme désire
accéder à une ressource matérielle, il ne lui est pas nécessaire d’envoyer des informations spécifiques au
périphérique, il lui suffit d’envoyer les informations au SE, qui se charge de les transmettre au périphérique
concerné via son pilote. En l’absence de pilotes il faudrait que chaque programme reconnaisse et prenne en
compte la communication avec chaque type de périphérique.
2. Fonctions d’un SE
Le système d'exploitation offre une suite de services généraux facilitant la création et l'utilisation de
logiciels applicatifs. Les services offerts sont en rapport avec l'utilisation des ressources de l'ordinateur par
les programmes. Ils permettent en particulier d'exécuter des programmes, de lire et écrire des informations,
de manipuler les fichiers, de communiquer entre ordinateurs et de déceler des erreurs]. Ces services
permettent à plusieurs usagers et plusieurs programmes de se partager les ressources de l'ordinateur. Le
principal rôle du système d'exploitation est alors de gommer les différences entre les différentes architectures
informatiques, et d'organiser l'utilisation des ressources de manière rationnelle.
Chaque périphérique a ses propres instructions, avec lesquelles il peut être manipulé. Le système
d'exploitation en tient compte. Il permet au programmeur de manipuler le périphérique par de simples
demandes de lecture ou d'écriture, lui évitant la perte de temps de traduire les opérations en instructions
propres au périphérique. Le système d’exploitation offre une interface qui permet une exploitation simple et
efficace des périphériques de l'ordinateur. Il cache ainsi la complexité de gestion de ces derniers. Même si en
apparence, ce sont les applications qui exploitent les périphériques de l'ordinateur, en réalité toutes les
opérations d'entrée/sortie passent sous le contrôle du Système d’exploitation.
La gestion du processus
Généralement, pour être exécuté un programme doit être chargé dans la RAM. Vu sa taille limitée, le
SE doit optimiser (bien organiser) son utilisation. La gestion de la mémoire consiste à remplir les fonctions
suivantes : Permettre le partage de la mémoire entre les processus. Protéger les zones mémoires utilisées.
Récupérer les zones mémoires lorsque les processus terminent leur travail. Optimiser (Maximiser) la
quantité de mémoire disponible (Etendre la RAM en utilisant la mémoire virtuelle : La mémoire virtuelle :
c’est l’utilisation d’une partie du disque dur comme extension de la mémoire centrale en créant un fichier
Page 3
EXPOSÉ DE SYSTÈME D’EXPLOITATION
d'échange (SWAP) dans lequel on stokes les informations lorsque la RAM est insuffisante).
1. Historique de Linux
Avant même de parler de son origine, il faut préciser que le nom « Linux » ne désigne pas
officiellement le célèbre système d’exploitation. En réalité, il se nomme GNU Linux, la deuxième partie du
nom ne faisant référence qu’à son noyau, la partie qui gère les ressources de l’ordinateur et permet aux
composants de communiquer entre eux.
Le terme « GNU » vient lui d’un projet, lancé par Richard Stallman en 1983, qui avait pour objectif de
créer un nouveau système d’exploitation libre de droit. Ce n’est finalement qu’en 1991 qu’il deviendra le
système connu de tous grâce à l’arrivée du noyau Linux.
En 1991 Linus Torvalds, étudiant à l'université d'Helsinki, développe chez lui un noyau de système
d'exploitation inspiré par le système Minix. Un noyau est un élément fondamental d'un SE : il alloue les
ressources matérielles aux logiciels, il fait communiquer le matériel et le logiciel. Linux est un système
d'exploitation Open Source et une plateforme d'infrastructure informatique. Pour Linus Torvalds, il s'agissait
d'abord d'un passe-temps. C'est au cours de ses études universitaires que Linus Torvalds s'est mis en tête de
créer une version Open Source et gratuite du système d'exploitation MINIX, qui s'appuyait lui-même sur les
principes et la conception d'Unix. Ce passe-temps est depuis devenu le premier système d'exploitation en
nombre d'utilisateurs et en nombre d'installations sur serveurs Internet publics. Il est aussi le seul à être
utilisé sur les 500 superordinateurs les plus rapides. Le 5 janvier 1992, Linus annonce qu'il change sa licence
de Linux pour être compatible avec GNU, c'est l'événement déclencheur. Des développeurs partout à travers
le monde commencèrent à travailler ensemble sur différentes distributions pour créer des systèmes
d'exploitation Libre. Courant 1993, les premières distributions GNU/Linux voient le jour avec Debian,
Redhat et Slackware. Le noyau Linux est passé de 10.000 lignes de code à ses débuts à 27.000.000
actuellement, grâce aux dizaines de milliers de développeurs participant Librement à son développement à
travers le monde.
2. Définition
Le système Linux est un système multi-utilisateurs et multi-tâches. En tant que système d'exploitation,
son rôle principal est donc d'assurer aux différentes tâches et aux différents utilisateurs une bonne répartition
des ressources de l'ordinateur (mémoire, processeur(s), espace disque, imprimante(s), programmes
utilitaires...) et cela sans intervention des utilisateurs; il prend totalement en charge ces utilisateurs et lorsque
Page 4
EXPOSÉ DE SYSTÈME D’EXPLOITATION
les demandes sont trop importantes pour être satisfaites rapidement, l'utilisateur le ressent par un certain
ralentissement (qui peut être effectivement important, voire insupportable...), mais le système (en principe)
ne se bloque pas. Linux est par ailleurs un système de développement et les utilisateurs y ont à leur
disposition un très grand nombre d'outils, pour la plupart assez simples à utiliser, leur permettant d'écrire, de
mettre au point et de documenter leurs programmes (éditeurs, compilateurs, débogueurs, système de
traitement de textes...). Les utilisateurs ont ainsi à leur disposition une boîte à outils bien garnie, le principal
problème qui se pose à eux étant de savoir ce qu'elle contient exactement et à quoi sert chacun de ces outils !
3. Architecture d’Unix
Historique
L’objectif primordial des concepteurs d’Unix était de fournir un environnement confortable pour
l’exécution mais surtout pour la réalisation de programmes d’application (encadré). Unix est donc un
système ouvert, où les programmes à exécuter ne sont pas fixés une fois pour toutes. L’idéal pour mettre au
point un programme est de travailler de façon interactive : le cycle compilation/essai/correction doit être
aussi court que possible. Pour ce type de travail, le meilleur support du texte du programme est le fichier sur
disque.
À l’époque où Unix a été conçu, ce cahier des charges n’était réalisable que sur une machine de prix
relativement important : un gros mini‐ordinateur. Une telle machine ne pouvait être dédiée à un seul usager.
Le système Unix est donc capable de diviser son attention entre plusieurs travaux indépendants. La réunion
de ces travaux consomme en général plus de place en mémoire qu’il n’en existe sur l’ordinateur utilisé. Dans
ce cas, Unix gère les échanges avec les disques de façon à ne conserver en mémoire centrale que les
informations utiles à court terme (mémoire virtuelle).
Page 5
EXPOSÉ DE SYSTÈME D’EXPLOITATION
U ti l i s a teurs
che l a plus
cou ex
l l= t
=
er
u k e
e
a rne
Sh
oy
ne
N
l
ateri
M
Architecture d’UNIX el
COMMENTAIRES
Page 6
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Linux est un système d'exploitation (l'équivalent de MAC/OS ou Windows). Avec Linux, vous n'êtes
pas obligé d'avoir MS Windows sur votre machine, mais les deux peuvent très bien cohabiter(2). Sous Mac,
vous ne pouvez pas lancer un programme fait pour Windows (sauf par l'intermédiaire d'un émulateur), sous
Linux, il en est de même(3). Mais Linux est compatible UNIX et il existe beaucoup de programmes pour
Linux.
Avantages
Inconvénients
Les logiciels vendus dans le commerce ne sont pas compatibles avec Linux.
Il y a peu de pilotes "propriétaires" car les fabricants de cartes graphiques -à part ATI et
Nvidia- et de périphériques (scanners, imprimantes, etc) se désintéressent encore de Linux, et ne conçoivent
pas une version de leurs pilotes (drivers) pour ce système d'exploitation.... Il faut alors s'en remettre au
travail des communautés de développeurs indépendants.
L'absence de participation de nombreux fabricants de matériel informatique ne facilite pas le
travail des développeurs, et c'est dommage...On peut lire à propos du module Linux pour différentes
Page 7
EXPOSÉ DE SYSTÈME D’EXPLOITATION
webcams: "A ce jour, aucun constructeur n'a souhaité participer à ce travail...Ceci limite nos possibilités et la
qualité du pilote mais, sans informations du fabricant ni documentation technique, tout n'est pas possible".
On est quelquefois obligé d'utiliser le "Terminal". Cela peut rebuter certains utilisateurs, car la
syntaxe des commandes à taper dans le Terminal est parfois assez complexe. C'est le côté élitiste de Linux.
1. Gestion de la mémoire
La gestion de ma mémoire sous linux est souvent source de questions et d’inquiétudes. En effet, on se
retrouve souvent fréquemment avec un serveur utilisant beaucoup de sa mémoire vive. Nous allons expliquer
les raisons de ce phénomène ainsi que donner quelques pistes afin de pouvoir vérifier si cette utilisation a un
impact sur les performances de notre serveur.
Les différents espaces de mémoires.
Les différents espaces de mémoire d’un système LINUX sont les suivantes :
- HTOP : sous Linux, il est possible d’avoir un aperçu sur l’état des différents processus en cours
grâce à la commande « top » mais il existe aussi l’utilitaire htop qui permet de visualiser, on dirait même de
gérer les processus de manière interactive. Grace à lui on pourrai rechercher, tuer les processus et mêmes les
trier selon un critère (utilisation de mémoire, cpu…) et d’autres fonctions disponible toute via l’interface
htop.
- FREE : free est une commande LINUX permettant d’afficher des informations de disponibilité
sur la mémoire vive du système.
Pour conclure, le fait que votre RAM soit utilisée dans sa quasi-totalité n’est pas forcement signe de
mauvais fonctionnement ou de ralentissement. En revanche la SWAP ne doit jamais être remplie sous peine
de ralentir le système.
2. Gestion du processeur
L’ACPI (Advanced Configuration Power Interface) et les paramètres du BIOS (Basic Input
Output System).
L’ACPI est une interface unifiée sur les ordinateurs du bureau et le serveur, permettant de connaitre et
de modifier les méthodes de gestion de l’énergie. Le but de cette norme est de réduire la consommation
énergétique en utilisant par exemple des modes de veille par périphérique ou sur l’ordinateur entier.
Les C-States, ou idle states.
Ici on voit souvent passer de références aux C-states dans le BIOS ou sur internet (exemple : C0, C1,
C3, C6, …) et la signification du C n’apparait souvent pas clairement sur le net. Le C représente le Core, soit
des états de veille ou de fonctionnement par cœur de processeur.
-C0 : processeur allume (sans économie d’énergie).
-C1 : processeur a l’arrêt mais prêt à repartir avec son interface en fonction.
-C3 : processeur en veille (cache vide).
Page 9
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Page 10
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Page 11
EXPOSÉ DE SYSTÈME D’EXPLOITATION
/dev est un système de fichiers virtuels qui stockent des fichiers spéciaux (special file) et des fichiers
de périphérique (device file). Mais on trouve d'autres aussi des fichiers spéciaux comme /dev/null pour le
rejet d'entrée ou /dev/random un générateur de nombres aléatoires.
devfs était l'implémentation de ce système de fichiers virtuels jusqu'au noyau 2.6. udev a alors pris sa
place. Auparavant les fichiers dans /dev étaient statiques, avec le gestionnaire de périphériques Linux udev
fournit dynamiquement uniquement les nœuds pour les périphériques réellement présents sur un système
Sysfs et /proc/sys/
sysfs est un pseudo système de fichiers introduit dans le noyaux Linux 2.5.
Il expose à l'utilisateur différentes informations provenant du noyau et notamment les périphériques
matériels et les pilotes de périphériques associés du modèle de périphérique du noyau à l'espace utilisateur
via des fichiers virtuels. Udev dépend de ce système de fichiers sysfs qui rend les périphériques visibles dans
l'espace utilisateur. Lorsqu'un périphérique est ajouté ou supprimé, des événements du noyau sont produits
qui avertiront Udev dans l'espace utilisateur.
Page 12
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Un fichier est une collection logique d’information. Un système de fichiers est une collection de
fichiers. Par D’un autre côté, le système de gestion des fichiers (SGF) est une façon de stocker les
informations et de les organiser dans les fichiers sur des mémoires secondaires (pour le matériel
informatique, il s’agit de mémoire de masse comme un disque dur, un disque SSD, un CD-ROM, une clé
USB, une disquette, etc.). Une des fonctions d'un SE est de masquer les spécificités des disques et des autres
périphériques d'entrées/sorties et d'offrir au programmeur un modèle de manipulation des fichiers agréable et
indépendant du matériel utilisé. Les appels système permettent de créer des fichiers, de les supprimer, de lire
et d'écrire dans un fichier. Il faut également ouvrir un fichier avant de l'utiliser, le fermer ultérieurement. Les
fichiers sont regroupés en répertoires arborescents ; ils sont accessibles en énonçant leur chemin d'accès
(chemin d'accès absolu à partir de la racine ou bien chemin d'accès relatif dans le cadre du répertoire de
travail courant). Le SE gère également la protection des fichiers.
Avec le SE Linux, les fichiers sont enregistrés dans une structure hiérarchisée en arbre. Ce système de
fichiers est donc composé d’une racine et de nœuds qui sont des répertoires et des feuilles qui sont des
fichiers ordinaires qui contiennent les données et les programmes.
Les droits d’accès aux fichiers sous Linux sont de trois ordres : accès en lecture (r), en écriture (w) et
en exécution (x). A partir de ces trois options, on pourra effectuer toutes les opérations de base sur les
fichiers (création, copie, lecture, destruction…). Ces autorisations vont être données pour trois niveaux
d’utilisateurs : pour l’administrateur (propriétaire), pour le groupe auquel appartient l’administrateur et pour
le reste des utilisateurs.
Page 13
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Page 14
EXPOSÉ DE SYSTÈME D’EXPLOITATION
CONCLUSION
Il était question pour nous au cours de notre devoir de parler de Linux, qui est un système
d’exploitation. En effet, Linux est un système d’exploitation libre, c’est-à-dire composé de logiciels libres.
Comme particularités de Linux, on peut citer :
Page 15
EXPOSÉ DE SYSTÈME D’EXPLOITATION
L'une des tâches les plus importante d'un système d'exploitation est la gestion des périphériques
d'entrée/sortie. Le système d'exploitation doit envoyer des commandes aux périphériques, intercepter les
interruptions et traiter les erreurs ; fournir une interface entre les périphériques et le reste du système. Ces
périphériques sont de type bloc et de type caractère.
Le contrôleur de périphériques
C'est un circuit électronique spécialisé dans la gestion des périphériques particuliers. Les contrôleurs
du processeur et ceux des périphériques communiquent au moyen de bus.
Les transmissions synchrones et les transmissions asynchrones
Lors de la transmission synchrone, les données sont envoyées sous la forme de trames tandis que lors
de la transmission asynchrone, les données sont envoyées sous forme d'octets ou de caractères.
La communication avec les périphériques E/S
Le CPU communiqué de 3 façons avec les périphériques :
•Les instructions spéciales E/S: ici le microprocesseur va périodiquement lire l'état des périphériques
d'entrée et modifier si nécessaire l'état des ports de sortie.
•Les périphériques mappés en mémoire : ici les registres apparaissent directement dans l'espace
d'adressage physique du processeur. Les transferts s'effectuent de façon identique à ceux des mémoires.
Seule l'adresse utilisée permet d'identifier la cible..
•Accès direct à la mémoire : cette approche est utilisée lorsqu'on doit procéder à un transfert rapide
d'un grand nombre de données. Les octets sont transférés directement d'un périphérique à l'autre via un
circuit appelé contrôleur DMA qui prend la place du processeur et gère les bus d'adresse et de contrôle.
Interrogation vs interruptions des E/S
L'interrogation est le moyen le plus simple de communiquer avec le processeur dans ce sens où les
périphériques d'entrée/sortie mettent simplement les informations dans un registre d'état et le processeur doit
venir chercher les informations.
L'interruption quant à elle est utilisée lorsque le processeur doit réagir rapidement à un changement
d'état d'un port d'entrée. Le périphérique prévient le processeur par une ligne d'interruption. Le processeur
interrompt la tâche en cours, sauté dans le sous-programme destiné à gérer la demande spécifique qui lui est
adressée. Le processeur reprend l'exécution du programme principal là où il l'avait laissée et donne un
résultat cohérent.
Page 16
EXPOSÉ DE SYSTÈME D’EXPLOITATION
Page 17