Os Linux
Os Linux
Email : tsimbamankuamal1info@[Link]
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 1
[Link]
GNU/Linux est un système d’exploitation libre basé sur Unix. Très performant, il est
stable et très sûr. Installé sur une majorité de serveurs web pour internet, sur les
supercalculateurs du monde entier et même sur l’ISS, il est très peu présent sur les
postes de travail.
Par abus de langage, le terme Linux est souvent utilisé pour désigner le système
d'exploitation entier, La vraie appellation est GNU/Linux.
[Link] GENERAL
PREREQUIS
Pour mieux aborder ce cours, il est préférable que l’apprenant ait des
connaissances en architecture des ordinateurs et algorithmique.
PLAN DU COURS
METHODOLOGIE
Cours intégré
EVALUATION
Interrogations
Travaux pratiques
Travaux dirigés
Examen final
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 2
CHAPITRE I. GENERALITE SUR LE SYSTEME D’EXPLOITATION
Un ordinateur sans système d’exploitation est un ordinateur inerte. Lui seul ne saura jamais
satisfaire les besoins d’un utilisateur. Pour qu'un ordinateur soit capable de faire fonctionner
un programme informatique (appelé parfois application ou logiciel), d’effectuer un certain
nombre d'opérations préparatoires afin d'assurer les échanges entre le processeur, la
mémoire, et les ressources physiques (périphériques) doit être doté d’un système
d’exploitation.
Un système d’exploitation est un ensemble de programmes généraux qui permet de gérer les
ressources d’un ordinateur, d’assurer l’enchaînement des travaux, la mise au point des
programmes, la gestion des mémoires, la gestion des données et la compilation.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 3
systèmes d’exploitation comportent une série de petits programmes ou utilitaires :
traitement de texte de base, calculatrice, calendrier, outils de connexion et de
navigation dans Internet, etc.
Par ailleurs, certaines interfaces vont même jusqu'à accepter plusieurs utilisateurs sur la
même console; cas d'un système multiutilisateur.
Au fil du temps, différentes interfaces ont été utilisées, dont les principales sont :
Les interfaces en mode ligne de commande (ou en mode textuelle) ;
Les interfaces graphiques ;
Les interfaces spatiales.
Avec ce type d’interface, l'utilisateur mémorise les différentes commandes acceptées par le
système d'exploitation et les rentre au clavier en respectant scrupuleusement leur syntaxe.
L'entrée se fait au clavier et la sortie est affichée à l'écran (mode texte), dans une fenêtre.
Lorsqu'un système d'exploitation ne dispose que de ce type d'interface, on le qualifie de
système en mode texte ou piloté par commandes.
MS-DOS et UNIX (le noyau seulement) sont des exemples de système d'exploitation en
mode texte.
[Link] interfaces graphiques
Les interfaces graphiques sont apparues avec MacOS et (ou) Windows ; c'est le système de
multifenêtrage, aussi appelé Windows System.
Une particularité de ces interfaces, c’est qu'elles ne sont pas une partie intégrante du
système d'exploitation, mais qu’elles font partie des logiciels qu'il faut installer à part. Il en
existe d'autres, par exemple dans le monde de LINUX, qui sont apparues ces dernières
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 4
années, telles KDE et Gnome pour ne nommer que celles-là.
Nous pouvons dire que les vrais systèmes d'exploitation graphiques sont apparus avec
MacOS (1984) et plus tard avec OS/2 (1988), puis avec Windows NT (1993) et Windows 9x
(1995 – Windows 11).
L'interface graphique a bien apporté un concept look and feel (richesse fonctionnelle) dans
lequel nous avons :
Un bureau
des fenêtres
des menus
des icônes, etc.
Disons d’abord qu’une tâche est un ensemble logique d'opérations provoquant l'exécution
d'un programme ou d'une partie d'un programme.
Le système d’exploitation se charge de l’exécution des programmes, de terminer ou
suspendre l'exécution, de contrôler la priorité, etc. Pour ce faire, il assigne une tranche de
temps pour l’accès au microprocesseur à chacune des tâches qu'il doit accomplir. Il
interrompt les opérations et les remplace par la tâche suivante.
La gestion des tâches peut se faire de différentes façons, notamment en mode multitâche
préemptif ou coopératif, ou en mode monotâche. Les tâches peuvent aussi être scindées en
tâches élémentaires ou processus allégés (thread), qui s’exécutent beaucoup plus vite. On
parlera alors de programmes en chapelet ou de traitement multiprocessus ou
multitransactionnel (multithreading). Windows NT et LINUX supportent un tel traitement.
Les systèmes d’exploitation peuvent assurer la gestion des périphériques à condition que les
pilotes soient installés. Cette troisième caractéristique touche donc le chargement des pilotes
(drivers) et la gestion des procédures de lecture/écriture sur disque et disquettes, des
procédures d'impression, d’affichage, de communication, etc.
Mais qu’est-ce qu’un pilote?
Un pilote informatique est un programme informatique destiné à permettre à un autre
programme (SE) d’interagir avec un dispositif électronique (périphérique).
En général, chaque périphérique a son propre pilote.
Sur le disque dur d’un ordinateur, l’organisation et l’emplacement des fichiers sont gérés par
le système de fichiers; on dit aussi système de gestion de fichiers ou SGF. Associé au logiciel
nécessaire à leur exploitation, il s’occupe de la structure des fichiers sur un disque. Parmi les
plus courants, citons la table d’allocation des fichiers (FAT), ext2 (terminologie des éléments
à fenêtre, menus, boîtes de dialogue et de message, autres éléments d'écran IUG, touches,
interventions utilisateur et applications de Microsoft Windows) et la NTFS (NT file system).
Notons que certains systèmes d'exploitation peuvent en reconnaître plusieurs.
C’est au système d’exploitation que revient le rôle de gérer la mémoire : transférer les
programmes et les données nécessaires à la création des processus, d’un support
secondaire, par exemple un disque, vers un support central, où s’exécutent les processus.
Le système doit en plus garder la trace des parties utilisées et libres de la mémoire et gérer
les transferts entre les mémoires principale et secondaire.
La gestion de la mémoire, pour ce qui est de l’exécution des programmes, est caractérisée,
sur un grand nombre de systèmes, par l’utilisation de machines virtuelles (MV).
L’utilisation de machines virtuelles permet de partitionner la mémoire en plusieurs segments,
chacun étant attribué à un programme. Ainsi, chaque fois qu’un programme s’exécute, il le
fait dans son propre espace mémoire et le processeur lui est attribué pour un certain temps,
au bout duquel une autre application le remplacera : l’application a donc l’impression qu’elle
est la seule à fonctionner dans la machine.
Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les
interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les
éléments suivants :
1) Le noyau (en anglais kernel) représentant les fonctions fondamentales du système
d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des
entrées-sorties principales, et des fonctionnalités de communication. Il comprend les
chargeurs qui permettent d’entrer les programmes et de les exécuter et les moniteurs
ou superviseurs qui assurent l’enchaînement des différents travaux, qui contrôlent
toutes les opérations d’entrées et sorties des informations, qui signalent toutes les
incidents de fonctionnement de l’ordinateur ;
2) Les programmes de traduction : ils permettent à un utilisateur de communiquer avec
un ordinateur car l’ordinateur de part sa constitution ne connaît qu’un seul langage
appelé langage binaire basé sur les chiffres 0 et 1. Ce dernier est difficile à utiliser par
l’homme et pour ce fait tout programme conçu par l’homme doit être interprété afin qu’il
soit accessible par l’ordinateur. D’où l’existence de deux techniques de traduction
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 6
appelées compilateur et interpréteur de commandes.
Le compilateur : il assure la traduction complète d’un programme une fois pour toute ;
L'interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au
noyau) : il assure la traduction au fur et à mesure des besoins de l’exécution du
programme. Il permet donc la communication avec le système d'exploitation par
l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter
les périphériques en ignorant toutes les caractéristiques du matériel qu'il utilise, de la
gestion des adresses physiques, etc.
3) Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les
fichiers dans une arborescence.
NB : un système d’exploitation comprend les fichiers suivants : les fichiers d’interpréteur des
commandes, les fichiers de gestion des entrées/sorties, les fichiers de configurations des
systèmes.
Suivant la nature des travaux qu’il a à traiter, un système d’exploitation fonctionne soit en
mode monoprogrammation ou soit en mode multiprogrammation.
1. Mode monoprogrammation
Ce mode consiste à faire tourner un seul programme dans la mémoire centrale et on lui
réserve toutes les ressources de l’ordinateur (mémoire centrale, unités de périphériques,
etc.…) cas du MS-DOS.
2. Mode multiprogrammation
C’est le partage de la mémoire entre plusieurs travaux ; ceci n’importe pas un traitement
simultané de tous les programmes logés en mémoire centrale, mais chacun d’eux est traité
pendant les temps mort d’un autre en utilisant un système de file d’attente avec différents
utilisateurs. Ce mode permet de restituer aux utilisateurs les possibilités d’interaction offertes
par une machine individuelle en les faisant bénéficiaires des services. Cas de l’UNIX, Linux,
etc.
Nous distinguons plusieurs cas des modes de fonctionnement et de traitement à savoir :
1) Le multi - utilisateurs avec un programme commun : les utilisateurs disposent des
différents terminaux exécutent un seul programme.
2) Le multi - utilisateurs multi-tâches : chaque utilisateur a l’impression d’utiliser seul la
machine. Ce système est dit «multi – tâche» (en anglais multithreaded) c’est-à-dire
lorsque plusieurs «tâches» (également appelées processus) peuvent être exécutées
simultanément.
3) Le multi - utilisateurs, multi - traitements : plusieurs programmes peuvent s’exécuter
effectivement en même temps sur des unités différentes et autonomes ; on parle alors
du système distribué (plusieurs ordinateurs connectés) ;
4) Les applications sont composées en séquence d'instructions que l'on appelle
«processus légers» (en anglais «threads»);
5) Le système à temps partagé : lorsqu'un quota de temps est alloué à chaque processus
par l'Ordonnanceur. C'est notamment le cas des systèmes multi -utilisateurs qui
permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des
applications différentes ou bien similaires : le système est alors dit «système
transactionnel». Pour ce faire, le système alloue à chaque utilisateur une tranche de
temps ;
6) Le système à temps réel (real time system), essentiellement utilisés dans l'industrie,
sont des systèmes dont l'objectif est de fonctionner dans un environnement contraint
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 7
temporellement. Un système temps réel doit ainsi fonctionner de manière fiable selon
des contraintes temporelles spécifiques, c'est-à-dire qu'il doit être capable de délivrer
un traitement correct des informations reçues à des intervalles de temps bien définis
(réguliers ou non).
Exemples OS-9 ;RTLinux (RealTime Linux) ; QNX ; VxWorks ;
7) Les systèmes embarqués prévus pour fonctionner sur des machines de petite taille,
telles que des PDA (personal digital assistants ou en français assistants numériques
personnels) ou des appareils électroniques autonomes (sondes spatiales, robot,
ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une
caractéristique essentielle des systèmes embarqués est leur gestion avancée de
l'énergie et leur capacité à fonctionner avec des ressources limitées.
La fiabilité : limiter les conséquences des défaillances matérielles ou des erreurs des
utilisateurs. En cas de panne, éviter les pertes d’information ou leur incohérence ;
Efficacité : Utiliser au mieux les ressources et possibilités matérielles (sans en
consommer trop pour lui-même) ;
Facilité d’emploi : Offrir un langage de commande (dialogue usager/système) et des
diagnostics d’erreurs (système/usager) clairs et précis ;
Adaptabilité : permettre des modifications matérielles et logicielles les plus simples
possibles, à l’aide d’outils spécialisés ;
Mesurabilité : Enregistrer la comptabilité des ressources utilisées par les usagers,
mesurer les paramètres de fonctionnement et de charge.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 8
I.2. ETUDE DES CAS DES SYSTEMES D’EXPLOITATION
Il est à noter qu’il existe plusieurs systèmes d’exploitation dont le MS DOS, UNIX,
WINDOWS, LINUX, MACINTOSH, etc. Mais dans ce cours il ne sera question que d’étudier
les cas en pratique des systèmes d’exploitation LINUX.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 9
CHAPITRE II : GENERALITES SUR LINUX
Voyons cela un peu plus en détail. Il y a tout d'abord l'unité centrale, c'est le cœur
l'utilisateur.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 10
un lecteur de CD/DVD…
Puis, viennent les périphériques. Car une unité centrale seule ne sert à rien. L'écran
permet d'afficher les diverses informations venant de l'unité centrale. Le clavier et la
souris, périphériques d'entrée, servent à envoyer des instructions à l'ordinateur, à
interagir avec l'interface graphique de l'ordinateur. On peut aussi brancher des
enceintes, un casque, un micro ou une webcam.
D'autres périphériques externes peuvent être utiles, tel qu'une imprimante, un scanner,
une tablette tactile pour dessiner.
2. Les logiciels
Le seul langage qu’un ordinateur puisse comprendre est le langage assembleur (un
langage machine, de très bas niveau, difficilement compréhensible pour un humain).
Les programmes aujourd’hui sont écrits dans d’autres langages que celui-ci. On a
donc créé un programme, le compilateur, qui «traduit» le code du programme original
en code assembleur, afin que l’ordinateur puisse le comprendre et l’exécuter.
Les langages les plus courants sont le C, C++, Java, Python, Ruby, mais il en
existe des dizaines, comme Fortran, Lisp, le Javascript ou le PHP pour internet.
Les instructions des programmes sont stockées dans des fichiers (le code source).
Puis il faut les transformer en exécutable (format binaire) pour que le système
d'exploitation puisse les utiliser (format exe sous Windows, bin pour GNU/Linux).
Le premier des logiciels à démarrer lorsqu'on allume un ordinateur, c'est le BIOS (Basic
Input Output System). Il est stocké sur la carte mère, en mémoire morte (c'est à dire
qu'on ne peut écrire dessus, et qu'elle ne s'efface pas lorsque l'ordinateur n'est
plus sous tension). Le BIOS fait quelques tâches de base, vérifie que tout fonctionne
correctement (d'où le « bip » au démarrage), puis ensuite, va lire un secteur particulier
du disque dur pour chercher si un système d'exploitation est installé.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 11
3. Le système d’exploitation
Le système d'exploitation est un ensemble de logiciels qui fait le lien entre les
programmes et le matériel. C'est lui qui gère et organise les ressources
matérielles comme le processeur, la mémoire, les disques durs. Chaque système
d’exploitation a ses spécificités. Leur conception est donc différente. Par exemple,
les dernières versions de Windows requièrent beaucoup de RAM (Mémoire vive) et
un processeur très puissant, alors que les dernières versions de GNU/Linux sont
beaucoup moins gourmandes en ressources. Sous Windows, il faut défragmenter le
disque dur régulièrement (c'est à dire réorganiser physiquement l'organisation du
disque pour rapprocher les morceaux d'un même fichier afin de gagner en rapidité de
lecture) alors qu'un système de type Unix n'en a pas besoin.
Pour faire fonctionner le matériel, comme une imprimante, une carte graphique, une
tablette numérique ou un joystick, il faut un pilote (driver). Ce logiciel sert d'interface
entre le système d'exploitation et le périphérique lui-même, il spécifie au logiciel
comment se servir du périphérique.
Un système d'exploitation seul ne sert à rien. Sans des logiciels types traitement de
texte, navigateur internet, graveur de DVD, client mails, le système lui-même ne peut
rien faire. C'est encore une grande différence entre les systèmes Windows et
GNU/Linux notamment. Sous Windows, le système installé ne contient que peu de
logiciels. Une distribution GNU/Linux fraîchement installée contient déjà des dizaines
de logiciels pour tout faire.
l'environnement graphique,
les logiciels libres,
la documentation,
Histoire
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 12
projet GNU (Gnu's Not Unix, acronyme récursif) : un projet de système
d'exploitation libre basé sur Unix. Il fait cela en réaction à la mentalité d'alors qui change
dans le milieu informatique, et qui consiste à garder son code source secret et faire
payer des licences pour ses logiciels.
Au début, ce n'était pas du tout le cas, et les sources des logiciels étaient
disponibles gratuitement. RMS s'insurge contre ce changement de mentalité, et quitte
le MIT. Il souhaite développer un système d'exploitation basé sur Unix, mais totalement
libre (il est l'auteur du fameux éditeur Emacs et du compilateur GCC). Après avoir
publié le Manifeste GNU en 1985, où il explique clairement ses buts, il crée la F.S.F.
(Free Software Foundation), pour s'assurer la logistique nécessaire, et avoir un
cadre juridique légal pour promouvoir l'éthique, la politique et la philosophie du projet
GNU.
En 1990 est lancé le projet Hurd, un microkernel qui devra devenir le noyau du système
GNU. Mais il n'avance pas assez vite, et le projet s'enlise. Le 5 octobre
1991. Linus Torvalds, étudiant finlandais de 21 ans, annonce sur le forum usenet
[Link] la mise à disposition des sources d'un système d'exploitation, tout petit
pour le moment. Il l'a créé seul, au départ pour ses propres besoins. Il s'est basé sur
Minix, un petit clone libre d'Unix. Il va finalement l'appeler Linux.
Et le noyau Linux (qui devient libre en 1992) s'est finalement associé au projet GNU, car
le noyau officiel n'était pas encore prêt. C'est pour cela que l'on doit parler de
GNU/Linux lorsque l'on parle d'une distribution, et pas seulement de Linux, Linux
n'étant que le noyau de ce système.
Fonctionnement
Ce mode décentralisé est rendu possible par la forte utilisation d'internet, dont les
standards (tels HTTP, SMTP, TCP/IP sont issus du libre ou du domaine public). Les
contributeurs peuvent travailler ensemble sur un même projet sans jamais se
rencontrer, en habitant sur des continents différents. Sur de tels projets, il n'y a pas de
chef ni de véritable hiérarchie, et chacun peut participer selon ses compétences.
Le mouvement du libre a un objectif principal : la qualité.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 13
la réactivité de la communauté (pour trouver et corriger les bugs par
exemple),
la fiabilité,
l'ouverture du code,
Ils offrent aux pays en voie de développement un moyen de rattraper leur retard
technologique, et de réduire la fracture numérique, en Europe, ils permettent de lutter
contre l'hégémonie des GAFAM, dans les administrations, pour réduire les dépenses et
être plus indépendant. De plus, le libre partage des connaissances va de pair avec
l'éducation, le monde de l'enseignement et des scientifiques.
Modèles économiques
Les modèles économiques en usage ici sont évidemment quelque peu différents de
ceux en usage dans le monde des logiciels privatifs, puisque les logiciels sont souvent
gratuits, et que les licences sont différentes et ne permettent pas les mêmes choses.
Voyons les principaux modèles existants.
Pour approfondir tout ceci, je vous recommande le très intéressant livre blanc de
l’APRIL (Association de promotion et de défense du logiciel libre).
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 14
Licence libre : c'est une licence s'appliquant à une œuvre (livre, programme...) et
donnant à son utilisateur certains droits quant à l'utilisation, la modification, la
réutilisation de ce document.
La première, et la plus utilisée encore aujourd'hui, des licences libres est la GNU GPL.
Elle a été écrite par RMS et Eben Moglen pour garantir les droits des logiciels
libres du projet GNU. Cette licence en est à la version 3 (la version 2 date de 1991). Sa
plus importante caractéristique est le copyleft. Elle a été écrite à l'origine, en 1989, pour
créer une licence libre utilisable par tous, afin que les développeurs puissent
facilement partager leurs codes et donc s'entraider et coopérer.
Française,
la licence BSD,
MIT,
Mozilla Public Licence.
Il existe des licences libres notamment dans le domaine de l’art pour les photos,
dessins et textes. La principale est la licence Creative Commons et ses variantes.
Voici maintenant les 4 libertés qui permettent de dire qu'un logiciel est libre :
profite).
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 15
Open source ou free software ?
Les deux terminologies renvoient en fait à la même liberté vis-à-vis du logiciel. Les
définitions de l’Open Source Initiative et de la Free Software Foundation sont
pratiquement identiques. La différence vient plutôt de la façon de voir cette liberté.
Pour la FSF, il y a une dimension philosophique et politique. Pour le mouvement Open
source, il est plus question de méthode, et celui-ci est plus tourné vers le monde de
l’entreprise.
pour gérer des sites internet on peut utiliser le client FTP FileZilla,
Gparted.
Bleachbit sert à nettoyer le système des fichiers inutiles.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 16
The Gimp est un très bon logiciel de manipulation d’images,
N’oublions pas des logiciels plus tournés vers les entreprises avec l’ERP Dolibarr ou le
système Prestashop pour créer sa boutique en ligne.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 17
Bien évidemment, les logiciels libres sont très présents au niveau du réseau avec
principalement le serveur web Apache ou encore Samba pour le partage de fichiers et
d’imprimantes. BIND est un des serveurs DNS les plus utilisés pour internet, Sympa
pour les listes de diffusion. NextCloud permet de mettre en place un système de cloud
facilement pour y héberger divers services. MySQL est une base de données très
utilisée sur internet et Postfix pour les serveurs de mails. Pour la programmation, citons
Netbeans, pour le développement web il existe BlueGriffon ou Bluefish. Le monde
éducatif n’est pas oublié avec notamment les suites Gcompris ou AbulEdu.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 18
12
Red Hat, commerciale et payante, développée par la société du même
nom,
Manjaro, communautaire,
Fedora, distribution communautaire soutenue par la société Red Hat,
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 19
réellement besoin d’être remplacé... J’ai toujours du matériel qui a presque
10 ans, qui tourne sous Linux et qui est toujours utile ;
Pouvoir surfer sur internet pendant que l’OS s’installe ! ! !
Utiliser à peu près n’importe quel matériel en sachant que le pilote est déjà
présent dans le système d’exploitation... éliminant ainsi la nécessité de
rechercher le site du fabriquant pour trouver ce pilote ;
Obtenir le code source de pratiquement n’importe quoi, y compris celle du
noyau du système d’exploitation ou celle de la plupart de mes applications.
Disposer réellement d’une plus grande autonomie avec sa batterie
d’ordinateur portable...
Lancer un plus grand nombre d’applications sans pour autant monopoliser
toute la mémoire disponible ; une gestion de la mémoire virtuelle optimale qui
évite un trop grand nombre de ’swaps’ ;
Compiler soi-même son noyau et/ou ses applications afin de tirer le
meilleur parti de son matériel ;
L'importance de la défragmentation Avant d'aller plus loin, il est très vivement conseillé
d'effectuer une défragmentation. C'est une opération qui consiste en gros à mieux
organiser les fichiers sur votre disque dur, à les rassembler pour éviter qu'ils ne soient
éparpillés. On ne dirait pas comme ça, mais vos fichiers sont parfois placés un peu
n'importe comment à la surface de votre disque dur ! Voici un petit schéma sur la figure
suivante pour bien comprendre dans quel état est votre disque.
C’est un programme situé en mémoire morte au niveau de la carte mère qui s’exécute
dès que l’ordinateur est mis sous tension avec une séquence POST ’Power On Self
Test’. Il initialise le matériel présent sur l’ordinateur en effectuant des vérifications sur
celui-ci :
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 20
qui permet au BIOS de savoir si la configuration matérielle a changé depuis le
dernier démarrage ou pas,
8. Amorce en mémoire le secteur d’amorce principal du disque dur, appelé
MBR.
Par cet utilitaire, il est possible de configurer différents composants matériels et l’ordre
de démarrage des périphériques par exemple...est donc accessible très souvent au
démarrage de l’ordinateur (en appuyant sur une touche du clavier comme la touche
SUPPRESSION ou F2, F10...). Le BIOS va surtout vérifier que la présence du premier
secteur du disque est ’bootable’ et que cela puisse faire démarrer le système
d’exploitation.
Un disque dur (ou HDD, Hard Disk Drive) est un empilement de plateaux
métalliques et rigides en rotation sur un axe. C’est une mémoire de stockage de
grande capacité qui peut être lue ou écrite. Les couches des plateaux sont
recouvertes d’une couche magnétique sur laquelle les données sont stockées.
Les dernières technologies de disque dur sont dites ’SSD’ (Solid State Disk)
basées sur de la mémoire flash à la place des plateaux car encore plus fiables.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 21
Une partition est une partie du disque dur sur laquelle va s’installer un système
d’exploitation ou un système de fichiers. Un disque dur peut contenir une ou plusieurs
partitions qui peuvent être primaires (ou principales), logiques et/ou étendues. Plus
précisément, le disque dur peut contenir jusqu’à quatre partitions principales ou trois
partitions principales et une partition étendue. Le fait de partitionner le disque dur
consiste à aménager des zones distinctes et continues de cylindres. L’intérêt d’avoir
plusieurs partitions est triple : il s’agit de minimiser la fragmentation des données, de
mieux protéger les données et d’avoir plusieurs systèmes d’exploitation. Les
informations sur les partitions sont conservées dans une zone appelée table des
partitions ; on peut y trouver les adresses de début des partitions et leur taille.
Tous les systèmes UNIX/Linux ont besoin au minimum de deux partitions pour
fonctionner : la partition principale représentée par le slash ( / ) qui contient la racine du
système et la partition d’échange dédiée dit ’/swap’ ; cette dernière permet au noyau
linux de libérer de la place en y stockant des informations dessus.
Tous les systèmes Unix possèdent un point de montage, ’un répertoire’ par lequel il est
possible d’accéder à des données se trouvant sur une partition du disque dur ou alors
sur un périphérique comme le lecteur de DVD ou la clé USB. L’accès au système de
fichiers n’est possible que s’il est monté et alors les fichiers et répertoires font partie
intégrante de ce répertoire monté. Sous Linux, tout est fichier ou encore pour lire ou
écrire des données, il faut procéder au montage (sans oublier de démonter après). Les
distributions Linux ont comme point de montage par défaut le répertoire ’/mnt’ ou
’/media’ ; par exemple, pour une distribution Ubuntu c’est ’/media/cdrom’.
Tous les points de montage (partitions et périphériques) sont consignés dans un fichier
important sous ’/etc/fstab’ ; il contient toutes les partitions du disque, incluant le
système de fichier, qui vont être montées automatiquement au démarrage du
système ; celui-ci permet également de conserver toutes les options sur les
montages des partions et des périphériques ; chaque ligne de ce fichier représente une
partition ou un périphérique à monter automatiquement et comportant un numéro
d’identification unique (UUID : Universal Unique IDentifier).
Sous Windows, cette notion n’existe pas de cette façon car toute partition est
considérée comme un élément complètement indépendant avec sa propre
arborescence de fichiers et représenté avec des lettres C :, D :,....
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 22
1. Le MBR permet de trouver (ou d’identifier) la partition active du disque,
2. Le MBR va charger le secteur de boot correspondant et transférer ensuite
l’exécution à ce dernier.
Elle contient :
Plus précisément, c’est un bloc de 512 octets (ou bytes) localisé physiquement sur le
premier secteur du disque (au secteur 1 du cylindre 0 et tête 0 (ou secteur 0 en
logique) ; un système Linux peut s’installer également sur une partition primaire
logique. La MBR contient donc la routine d’amorçage ou le ’bootloader’ présente
sur la partition active et le nombre magique sur les 2 derniers octets (0xAA55)
sert à vérifier si la MBR est correcte.
La MBR peut être éditée et même sauvegardée dans un fichier. Si votre disque dur est
représenté comme périphérique ’sda’, pour éditer la MBR, la commande ’sudo dd
if=/dev/sda count=1| hexdump -C’ ; pour sauvegarder la MBR sur une clé USB, la
commande ’sudo dd if=/dev/sda of=/media/sdb1/[Link] bs=446 count=1’.
Est-ce que votre disque dur est tatoué ? ce qui est contraire au code de la
consommation, la commande ’sudo dd if=/dev/sda count=63 | hexdump -C’.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 23
3.6.4 En quoi consiste le chargeur d’amorçage ou bootloader
Pour cela, une image d’un système minimal compressé est initialisé au démarrage du
système et chargé en mémoire ; c’est le système ’[Link] (INITial RamDisk) qui
contient des modules du noyau nécessaires au boot comme les modules de système
de fichiers (ext3, etc) et de matériel (contrôleur ide, sata). A ce stade,le noyau est
chargé en mémoire et exécuté. Après quelques opérations d’initialisation sur le
matériel (pilotes) et lui-même, le noyau monte la partition correspondant à la racine du
système de fichiers.
Puis il exécute un programme appelé ’init’ (ou /sbin/init) qui est chargé de
démarrer complètement le système avec toutes les tâches se trouvant dans le
répertoire ’/etc/rcX.d’ ; le ’X’ correspond au niveau d’exécution de chaque tâche
système (niveau 2 ou 5). Chacune de ces tâches est ’un script’ qui se charge
d’effectuer une opération spécifique, comme par exemple de monter toutes les
partitions et tous les périphériques déclarés dans le fichier ’/etc/fstab’, ou alors de
démarrer des services comme l’interface graphique (KDE ou GNOME).
A l’origine, le programme ’init’ lit le fichier ’/etc/inittab’ afin de connaître les services ou
processus à lancer lors de chaque démarrage de l’ordinateur et donc du système
d’exploitation ; c’est ainsi que ce fichier ’inittab’ comporte les entrées nécessaires et qui
vont faire appel aux différents scripts.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 24
distributions permettent d’activer on non un certain nombre de fonctionnalités. Par
exemple, la distribution GNU/Linux Ubuntu utilisent le niveau 3 qui active les
fonctionnalités réseau (serveurs) et le niveau 5 active le serveur graphique
(Xwindows).
Actuellement, les distributions Linux ont tendance à utiliser d’autres schémas plus
optimaux de démarrage de leur système. C’est ainsi que la distribution UBUNTU utilise
plutôt un script de type ’Upstart’ qui est un ’init’ sophistiqué ; les services sont démarrés
non plus de façon séquentielle et d’après une liste de scripts, mais plutôt en fonction de
la réception d’évènements.
L’outil ’upstart’ gère des scripts de niveau de démarrage et de façon plus optimale
car la méthode de démarrage devient plus dynamique basée sur des tâches et des
évènements ; c’est un ensemble de fichiers de configuration situés dans /etc/init ; et
donc l’évènement ’startup’ est généré par le processus init, qui entraîne d’autres
évènements. Le niveau par défaut de démarrage pour Ubuntu est le niveau 2 (dans le
fichier ’/etc/event.d/rc-default’) et la commande ’initctl list’ montre la liste des tâches en
fonctionnement ou en attente ; souvent il existe des alias des commandes ’initctl restart,
initctl reload, initctl status...’. Au final, le programme ’upstart’ (à la différence de ’inittab’)
agit sur une tâche bien précise dans un niveau d’exécution sans pour autant
changer tout le niveau ! En conséquence, le temps de démarrage est amélioré et les
services non utilisés ne sont pas démarrés.
Le processus ’init’ et ses scripts shell de service, inclus dans tous les systèmes Unix et
Linux dans l’arborescence au niveau ’/etc/init.d/scriptXXX’ permettent des actions
d’arrêt et de démarrage avec les paramètres ’stop’/’start’ ; et leur lancement se fait par
’/etc/rcX.d/’. Si ’upstart’ reste l’alternative à ce processus ’init’, une nouvelle architecture
de processus existe de plus en plus au sein des distributions Linux (Fedora, Mandriva,
OpenSuse, RedHat et bientôt Debian), c’est ’systemd’. Cette nouvelle technologie va
gérer et contrôler les processus (PID) pères et fils et les logs en jouant le rôle de
coordonnateur et d’arbitre afin d’améliorer les performances de démarrage des
systèmes Linux. Les services deviennent dépendants et inter-dépendants car
’systemd’ sera capable par
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 25
anticipation de lancer en parallèle ces services et donc des différents processus. Et un
socket Unix sera créé pour chacun des services à démarrer.
Systemd se caractérise par des objets de type unités comportant un état (active,
inactive, failed) prédéfinis et équivalents aux valeurs des champs des lignes du fichier
’/etc/inittab’. La commande centrale pour gérer toutes les actions est ’systemctl’ en
remplacement des commandes ’chkconfig’, ’service’,
4. Processus de démarrage
Le premier secteur d’un disque dur porte le nom de MBR (Master Boot Record).
Une fois donné le contrôle par le BIOS, le programme contenu dans ce secteur :
Exemple :
La partie GRUB contenue dans le MBR peut lancer un autre système d’exploitation
comme Windows (cf. le chapitre sur l’installation de Ubuntu en dual boot ou double
démarrage).
Ubuntu utilise le mécanisme initrd ( INITial Ram Disk ) qui contient un système de
fichiers et le monte en mémoire (/dev/ram0) afin de charger des modules pour le noyau.
Cette démarche rend plus polyvalent et adaptatif le démarrage du système à la
différence des noyaux de type UNIX préférant une approche statique (le noyau est alors
plus gros). Ensuite, le système de fichiers du disque est monté avec en suivant la
libération de la RAM et l’exécution de la commande init, père de tous les autres
processus.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 26
1. Chargeurs de démarrage
GRUB
GRUB est un projet GNU en version 0.97 sur Ubuntu. Une fois installé, les
composants se trouvent dans le répertoire /etc/grub :
[Link]
LILO sous licence BSD, en version 1.22.8 se charge avec le paquet de même nom et à
besoin de la dépendance mbr (utilitaire pour démarrer un système à partir d’un disque).
Après installation, le système dispose des commandes :
Pour installer LILO à la place de GRUB sur Ubuntu, il faut choisir impérativement une
installation en mode expert.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 27
CHAPITRE III : LE SYSTEME D’EXPLOITATION LINUX UBUNTU
Ubuntu est un ancien mot africain qui signifie « Humanité » et qu’on prononce
’Ou-boun-tou’, est un système d’exploitation libre fondé sur Debian. Ubuntu
signifie également « Je suis ce que je suis grâce à ce que nous sommes tous ».
C’est un état d’esprit qui fait que c’est une distribution très populaire, assez
conviviale et la plus suivie par une grande communauté ; Ubuntu découlant du projet
(2004) de vulgarisation du projet GNU/Linux ; elle fonctionne avec une interface de type
’Gnome’ ou ’KDE’ ; Ubuntu, c’est sur une distribution Ubuntu basée sur un
environnement ou interface KDE avec un certain nombre de dépôts supplémentaires à
installer en plus de la distribution classique.
Ubuntu sort une nouvelle version à peu près tous les 6 mois car elle est basée sur
l’environnement GNOME (qui sort lui également une version tous les 6 mois). Et
entretemps, une version appelée L.T.S. (Long Time Support) sort tous les 2 ans dont
les mises à jour de sécurité sont possibles et assurées pendant 5 ans pour les versions
avec environnement de bureau. En général, deux versions de Ubuntu apparaissent à
peu près chaque année en avril et en octobre sous un nom de code d’un animal
accompagné d’un qualificatif commençant par la même lettre.
Ce support concerne les mises à jour normales et de sécurité. Une version
mineure aura, quant à elle, un support de 18 mois. Le numéro de sortie
correspond à une numérotation de la forme [Link] (année/mois) et les noms sont
choisis dans un bréviaire animalier délicieusement rétrograde (voulu par Mark
Shuttleworth) affublés d’un adjectif haut en couleur, tout en incrémentant la
première lettre suivant l’ordre alphabétique :
Historique des versions
Le tableau ci-dessous recense toutes les versions d'Ubuntu sorties depuis le 20
octobre 2004, date à laquelle a été publiée la toute première version finale de la
distribution. Les versions sont notées par ordre chronologique, de la plus ancienne
à la plus récente.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 28
Les versions mises en gras sont des versions stables toujours soutenues
(qui ne sont pas arrivées en fin de vie) ;
Les versions sans mise en forme sont des versions stables arrivées en fin de
vie, ne profitant plus d'aucun soutien technique – pensez à mettre à niveau
votre système !
Les versions en italique sont des pré-versions, des versions annoncées et
toujours en développement ;
Les versions soutenues à long terme, ayant le label LTS , sont précédées
d'un astérisque (*). Il est à noter que toutes les variantes ne participent pas
systématiquement au programme LTS.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 29
24
La liste suivante recense les versions soutenues à long terme d'Ubuntu, de la plus
ancienne à la plus récente. ( Rapporter un bogue ) Puisque ces dernières sont
maintenues sur une plus longue période et qu'elles profitent d'une attention
particulière à la stabilité, leur utilisation est recommandée pour une utilisation grand
public. Les versions intermédiaires, évoluant plus rapidement, s'adressent davantage à
des enthousiastes.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 30
3.3. Son installation
En plus des deux variantes officielles (Ubnutu basée sur Gnome et Kubuntu baseé sur
KDE) soutenues par Canonical et la communauté Ubuntu (Ubuntu en mode Desktop et
en mode Server), il est possible de trouver d’autres variantes reconnues de
Ubuntu : Edubuntu, Xubuntu, Lubuntu... Ces variantes sont
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 31
destinées à un usage particulier (domestique, adaptée à un serveur, pour le
multimédia...) ou uniquement pour inclure une sélection différente de logiciels et
d’environnement graphique par défaut (Xubuntu ou Lubuntu).
Ces commandes peuvent être déclenchées soit indirectement par le biais d'outils
graphiques (outils de l'environnement) soit directement par le biais de lignes de
commandes saisies sur un terminal ou une console dans un langage extrêmement
concis pour en simplifier la frappe, au risque de les faire apparaître comme
extrêmement mystérieuses aux néophytes ou même aux utilisateurs aguerris.
3.5.3. La console
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 32
INITIATION A GNU/Linux AVEC LINUX UBUNTU
27
(une console). Sous les systèmes GNU/Linux, le shell par défaut est souvent le shell
Bash, Bourne-Again shell, développé par le projet GNU, dérivé des premiers shell
Unix. Mais il en existe d'autres, tel sh, csh (C shell, qui reprend la syntaxe du langage
C), ksh (Korn shell)...
Ce qui commence par un $ indique qu'il s'agit d'une variable, et echo demande de
l'afficher. Une commande shell se présente ainsi : commande -option(s)
paramètres (optionnel)
3.5.5. Conventions
Tous les exemples d’exécution des commandes sont précédés d’une invite
utilisateur ou prompt spécifique au niveau des droits utilisateurs nécessaires sur
le système :
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 33
Une fois l’ordinateur démarré, le service GDM affiche le login graphique. Et alors après
la saisie de login et de mot de passe, s’affiche un vaste environnement de bureau avec
la barre UNITY.
Bien sûr, dans le Shell, on peut rediriger le résultat des commandes vers d’autres
commandes. On utilise pour cela des redirections, notées < et >. Elles permettent de
rediriger le résultat d’une commande vers une autre commande ou vers un fichier. La
redirection d’entrée permet d’utiliser un fichier, et non pas l’entrée standard, comme
base de son action. Le | (pipe) permet lui d’envoyer la sortie
d’une commande en entrée d’une autre.
Une commande Unix est un ensemble de mots séparés par des espaces. Les
caractères espace et tabulation sont interprétés comme des séparateurs par le
shell (voir la variable IFS). La syntaxe d’une commande est la suivante :
Le premier mot est le nom de la commande. Les autres mots sont des paramètres (ou
arguments) de la commande. Certains mots sont des options qui changent le
comportement de la commande. Les 2 crochets « [ » et « ] » indiquent que les options
ne sont pas obligatoires. Il ne faut pas taper ces crochets sur la ligne de commande.
Avant, une option était introduite par le signe « - » suivi d’une seule lettre. Le standard
actuel GNU pour les options est d’utiliser « -- » suivi du nom de l’option pour des raisons
de clarté et de portabilité.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 34
Les commandes internes (au shell) : comme history, test, ...
Les commandes externes (donc des programmes) : comme ls, mkdir, ...
Les alias (voir plus loin) : comme ll, ...
Les commandes externes (donc des exécutables) sont généralement stockées dans un
répertoire de nom bin. Il existe des exécutables dans :
Remarque : comme le système ne connaît pas les endroits où vous placez vos
programmes, il faudra lui indiquer dans la variable d’environnement $PATH.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ type echo
echo est une primitive du shell
$ type strings
strings est /usr/bin/strings
Le chemin d’accès d’un fichier ou d’un répertoire est une chaîne de caractères
décrivant la position de ce fichier ou répertoire dans le système de fichiers. Chemins
d’accès selon le système d’exploitation :
La ligne de commande est donc une l’interface utilisateur (ou un langage) avec une
syntaxe particulière et un prompt nécessitant un certain apprentissage. Cette interface
est personnalisable, tout comme l’environnement KDE, afin de la rendre proche des
besoins d’utilisation. L’interface est également automatisable car reposant sur un
langage qui permet de manipuler à outrance le système et de réaliser des programmes
dits scripts shell. Sa légèreté fait qu’elle ne nécessite aucune ressource mémoire ou
processeur, contrairement à l’environnement KDE ou GNOME.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 35
Cette interface de base est accessible par un émulateur de terminal qui est un
programme spécifique ’getty’ ; c’est en fait un écran/clavier virtuel avec 6 entrées dans
une partie de l’arborescence ’/dev/tty1 à tty6’ ; ces terminaux sont accessibles par
la séquence des touches CTRL + ALT + F1 à F6. L’accès dans l’environnement KDE ou
GNOME se fait par ailleurs par application graphique émulant un terminal ; pour cela,
soit il s’agit de lancer une fenêtre XTERM, ou alors ’Gnome-terminal’ pour GNOME
ou encore ’Konsole’ par le menu K/Applications/Système/Konsole’. (programme
yakuake)
Une commande est un programme qui sera appelé à être exécuter via un
interpréteur de commandes qui est le shell. Celui-ci va réagir en fonction des
commandes qui seront saisies et ce sont les possibilités du système d’exploitation qui
vont permettre d’exécuter telle ou telle commande.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 36
Un message d’erreur peut provenir du fait que la commande respecte une
certaine casse avec des majuscules et des minuscules. Le système Linux (comme tout
Unix) attend une certaine exactitude car il respecte la casse.
[Link].Caractères sépciaux
Etant donné que l’ordinateur ne comprend le texte en lui-même, alors chaque caractère
est représenté par un nombre. Traditionnellement, chaque jeu de nombres est
utilisé pour représenter un alphabet et des caractères appelé un système de codage ou
d’encodage des caractères. Le jeu de caractères le plus commun, ou du moins le plus
universellement accepté, est l’ASCII (American Standard Code for Information
Interchange). Et afin d’éviter que chaque pays standardise son propre codage (comme
en europe occidentale avec la norme ISO-8850-15 ou Latin9, ISO-8859-1 ou Latin1),
en 1991 une table Unicode (UTF) mondiale fut normalisée pour être ensuite
transformée dans la version normalisée UTF-8. Et c’est bien ce dernier jeu de
caractères qui est supporté par tous les navigateurs internet la plupart des systèmes
d’exploitation Linux (et Windows) y compris les programmes de bases de données.
Par ailleurs, deux fichiers importants sont présents dans le ’home’ de l’utilisateur :
’.bashrc’ est le script d’exécution des commandes avant la session et le ’.profile’ qui est
le script de positionnement de l’environnement de l’utilisateur ; et c’est ce dernier qui
lance le fichier ’.bashrc’. Ces fichiers sont modifiables afin d’aménager la session
avec les commandes dans le shell. Ainsi, la commande ’echo ”dollarUSER” ’ renvoie
le nom d’utilisateur ; la commande ’echo ”dollarHOME” ’ renvoie le répertoire
d’accueil de l’utilisateur.
[Link]. Redirections et tubes
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 37
Lors d’une session de travail, l’utilisateur effectue un ensemble d’actions
(exécution de commandes dans le shell, impression de documents...) qui sont des flux
ou des redirections. C’est ainsi que cela commence par une entrée qui est le clavier et
une sortie (résultat attendu) vers l’écran ou une imprimante.
Le tube qui est représenté par un tiret vertical ’|’ relie une sortie de commande vers
l’entrée d’une autre commande ; par exemple, la commande ’lspci | grep Intel’ affiche le
détail d’un périphérique Intel s’est trouvé.
[Link].Commandes de déplacement
[Link].Expressions régulières
Ce sont des motifs constitués d’un seul ou d’un groupe de caractères permettant de
désigner tout un ensemble de possibilités de complétion. Elles sont donc utilisées par
de nombreuses commandes Linux car elles facilitent souvent les opérations sur les
fichiers...
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 38
33
Le caractère [liste_de_caractères] qui représente l’un des caractères
compris dans les crochets ;
Le caractère [ˆ liste_de_caractères] qui représente un caractère différent
de ceux qui sont compris dans les crochets.
Exemple d’utilisation :
On utilise soit la commande ’grep’ ou ’grep -E’ ou ’egrep’ ; ’grep’ signifie ’Global Regular
Expression Print’ et utilise les expressions régulières pour effectuer des recherches et
permet de : rechercher une chaîne de caractères dans des fichiers, de filtrer.. .
Un processus est donc l’exécution d’un programme à un moment donné ou son état en
cours d’exécution ; il est représenté par un identifiant appelé PID (Process IDentifier).
Un processus ou un programme qui dispose de sa propre zone mémoire et ses
propres variables est dit lourd.
Par exemple, le programme OpenOffice lance un processus qui lui est propre ; mais, il
qu’un programme, processus père, lance d’autres processus appelé fils, c’est le cas de
’init’. Pour cela, si l’utilisateur lance la commande ’pstree’, il peut voir les processus
sous forme d’arborescence et donc voir leurs inter- dépendances.
La commande ’top’ permet d’afficher des informations en continu et en temps réel sur
l’activité du système ; elle permet surtout de suivre les ressources que les processus
utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis
son démarrage).
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 39
processus associé au programme ’Openoffice writer’. Cette surveillance peut se
faire aussi bien au sein d’un shell de commande qu’avec le moniteur graphique.
La commande ’ps -aux’ (avec les 3 options ’a’,’u’ et’x’) permet d’afficher (sur 11
colonnes) les processus de tous les utilisateurs, leurs noms, l’heure de lancement des
programmes et processus et également les processus en arrière-plan.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 40
CHAPITRE IV : GESTION DE FICHIERS SOUS LINUX
4.1. Introduction
Une partition permet de découper logiquement un disque dur afin d’y créer des
systèmes de fichiers pour installer un système d’exploitation.
Pour installer une distribution GNU/Linux, il faudra donc créer sur le disque dur des
partitions aux format ext4. On peut utiliser une seule partition pour tout le système mais
il est possible, et recommandé pour la sécurité, de faire plusieurs partitions. Le
répertoire home notamment peut être installé sur une partition à part.
De plus, le système a besoin d’un type de partition particulier pour fonctionner, la swap.
Celle-ci sert en fait de mémoire au système lorsqu’il fonctionne, c’est une partition
d’échange. Sa taille n’excède pas les 2 ou 3 Go.
Les disques durs sont nommés hda pour le premier, hdb et ainsi de suite. Les
différentes partitions sont ensuite numérotées : hdb2 serait donc la deuxième
partition du deuxième disque dur.
Le Master Boot Record (MBR) est situé dans les premiers secteurs du disque. Le mode de
partitionnement MBR est le mode historique des ordinateurs de type IBM PC-compatible et
le plus répandu. Dans ce modèle, une zone de 512 octets
appelée le Master Boot Record (MBR) est réservée en début de disque pour
contenir l'information relative à un maximum de 4 partitions. Le MBR est constitué de 2
parties :
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 41
La table de partition ;
Le programme d’amorçage qui charge le noyau du système d’exploitation.
Sont au maximum de 4
Accepte tout type de système de fichiers.
Sous Linux, le pointeur spécial /dev permet l’accès aux disques. Pour dénommer
les disques, un format est adopté : /dev/XXYZ
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 42
4.3 Systèmes de fichiers
Les données sont normalement présentées à l'utilisateur et aux programmes selon une
organisation structurée, sous la forme de répertoires et de fichiers. Pour pouvoir
stocker ces données structurées sur un périphérique, il faut utiliser un format qui les
représente sous la forme d'une succession de blocs de données : c'est ce qu'on appelle
un système de fichiers.
On dit qu’un système de fichiers est journalisé s’il prévient les coupures lors de la
sauvegarde de fichiers sur disque. Au lieu d'écrire immédiatement sur le disque dur les
données à l'endroit exact où elles devraient être enregistrées, le système de fichiers
journalisé écrit les données dans une autre partie du disque dur et note les
changements nécessaires dans un journal, et ensuite, en arrière-plan, il repasse
chacune des entrées du journal et termine le travail commencé ; lorsque la tâche est
accomplie, il raye la tâche de la liste.
Linux utilise également FAT, FAT32, NTFS et extFat ainsi que plusieurs autres
systèmes de fichiers, nous citons :
ext2fs : Extended File System est le système de fichiers natif de Linux. Les
versions 1 et 2 de ce système ne disposent pas de la journalisation. Ext2 peut
tout de même s'avérer utile sur des disquettes 3½ et sur les autres périphériques
dont l'espace de stockage est restreint, car aucun espace ne doit être réservé à
un journal.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 43
ext3fs : ext3 est essentiellement ext2 avec la gestion de la journalisation. Il
est possible de passer une partition formatée en ext2 vers le système de
fichiers ext3 (et vice versa) sans formatage.
ext4fs : ext4 est considéré par ses propres concepteurs comme une
solution intermédiaire en attendant le vrai système de nouvelle génération que
sera Btrfs.
ReiserFS : Développé par Hans Reiser et la société Namesys, ReiserFS est
reconnu particulièrement pour bien gérer les fichiers de moins de 4 ko. Un
avantage du ReiserFS, par rapport à ext3, est qu'il ne nécessite pas une
hiérarchisation aussi poussée: il s'avère intéressant pour le stockage de
plusieurs fichiers temporaires provenant d'Internet. Par contre, ReiserFS n'est
pas recommandé pour les ordinateurs portables, car le disque dur tourne en
permanence, ce qui consomme beaucoup d'énergie.
JFS : Système alternatif porté par IBM, plus à l’aise dans la manipulation
des gros fichiers.
XFS : Système alternatif porté par SGI ( Silicon Graphics Inc ) plutôt sur les
Unix (Irix). Performant en cas d’une grande arborescence de fichiers.
4.4 Arborescence
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 44
Voici comment se présente l’arborescence d’un système GNU/Linux :
/ du système de fichiers,
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 45
var : répertoire contenant les journaux systèmes. Il contient une hiérarchie
de fichiers système qui évoluent durant le fonctionnement de la machine.
Ex : /var/spool/ est le répertoire contenant les files d'attente pour les sous-
systèmes du courrier, de l'impression,
dev : point d’entrée vers les périphériques. Ce répertoire contient des
fichiers spéciaux qui assurent le contrôle des accès aux différents dispositifs
d'entrée/sortie. Ces fichiers sont indispensables et ne peuvent en aucun cas être
détruits sous peine de rendre impossible l'accès aux unités correspondantes. Il
est donc utilisé pour les périphériques, terminaux, etc. …
proc : pseudo-système contenant des informations sur les processus en
exécution
Remarques:
Sous le système Linux, plusieurs symboles sont utilisés pour désigner les
répertoires. On cite pour cela :
Sous Linux le disque est organisé en une structure hiérarchique, c'est-à-dire en une
arborescence de répertoires. Chaque répertoire contient des noms de fichiers ou
de sous répertoires qui contiennent eux-mêmes des noms de fichiers et de sous
répertoires, etc. …
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 46
relativement au répertoire courant de travail. Ex : TP/tp2.c indique qu'à partir du
répertoire de travail, on doit trouver un sous répertoire TP contenant le
fichier tp2.c
Tout chemin qui ne commence pas par un caractère / (slash) est interprété
comme un chemin relatif au répertoire courant. On peut ainsi accéder aux fichiers du
répertoire courant en donnant simplement leur nom.
Les fichiers normaux (-) : comme les fichiers textes, courrier, sources de
programmes(c, java…), scripts, configuration, exécutables, programmes
en code binaire.
Les fichiers répertoires (directories en Anglais) (d) : ce sont des fichiers
conteneurs qui contiennent des références à d'autres fichiers. Ils permettent
d'organiser les fichiers par catégories.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 47
Les fichiers spéciaux : situés sous /dev, ce sont les points d'accès préparés
par le système aux périphériques. Le montage va réaliser une
correspondance de ces fichiers spéciaux vers leur répertoire "point de montage".
Par exemple, le fichier /dev/hda permet l'accès et le chargement du 1er
disque IDE.
Les fichiers liens symboliques (l) : ce sont des fichiers qui ne contiennent
qu'une référence (un pointeur) à un autre fichier. Cela permet d'utiliser un même
fichier sous plusieurs noms sans avoir à le dupliquer sur le disque.
Remarques :
Lorsqu'un utilisateur se connecte à une station Unix, il est placé dans un répertoire
personnel, en général situé dans le répertoire /home. La commande pwd affiche
le chemin d'accès au répertoire courant.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 48
43
La commande cd (change directory)
Exemples
ls [-options] chemin
Remarque
Par exemple, si l’on entre ls *.c, le Shell remplace l’argument *.c par la liste des
fichiers du répertoire courant dont le nom se termine par .c.
Les métacaractères permettent donc de spécifier facilement des ensembles de fichiers,
sans avoir à rentrer tous leurs noms. Voici les plus utilisés :
* remplacé par n’importe quelle suite de caractères.
? remplacé par un seul caractère quelconque.
[ ] remplacé par l’un des caractères mentionnés entre les crochets. On peut
spécifier un intervalle avec - : [a-z] spécifie donc l’ensemble des lettres
minuscules.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 49
La commande cat
La commande cat affihe les fichiers l’un après l’autre sur la sortie standard
(écran). Si aucun argument n’est spécifié, lit sur l’entrée standard (clavier) jusqu’à
rencontrer un caractère fin de fichier CTRLD.
Créer les fichiers [Link] et [Link] sous votre répertoire de travail en utilisant la commande
suivante :
Donner la commande qui permet de vérifier que les fichiers sont créés. Comment on
peut vérifier que les fichiers sont vides ?
Il est possible sous Unix de connaître aussi le type de fichier sur lequel on
travaille. Tous les fichiers ont un entête permettant de déterminer leur type
(répertoire, exécutable, texte ASCII, programme C, document...). La commande
file permet de visualiser le type du fichier en question.
file nom_de_fichier
Exemple:
file toto.c
toto.c: c program text
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 50
commande mv (move)
La commande ln (link)
Cette commande permet de créer des liens sur des fichiers. Les liens sont des fichiers
spéciaux permettant d'associer plusieurs noms (liens) à un seul et même fichier. Ce
dispositif permet d'avoir plusieurs instances d'un même fichier en plusieurs endroits
de l'arborescence sans nécessiter de copie, ce qui permet notamment d'assurer un
maximum de cohérence et d'économiser de l'espace disque. On distingue deux
types de liens :
ln -s nom-du-fichier-reel nom-du-lien-symbolique
ln –s fichier1 /titi/lien
ls –i fichier1 /titi/lien
ls -l /titi/lien
4230 l
Les liens physiques (ou liens durs) représentent un nom alternatif pour un
fichier c’est la création de deux ou plusieurs noms vers une inode unique
au moyen de la commande ln. Ainsi, lorsqu'un fichier possède deux liens
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 51
physiques, la suppression de l'un ou l'autre de ces liens n'entraîne pas la
suppression du fichier. Plus exactement, tant qu'il subsiste au minimum un lien
physique, le fichier n'est pas effacé mais lorsque l'ensemble des liens physiques
d'un même fichier est supprimé, le fichier est aussi supprimé. Il faut noter
toutefois qu'il n'est possible de créer des liens physiques qu'au sein d'un seul et
même système de fichiers. Les liens physiques sont créés
à l'aide de la commande ln selon la syntaxe suivante :
ln nom-du-fichier-reel nom-du-lien-physique
Lors de la création d’un lien physique il n'y a ni copie du fichier, ni création d'un nouvel
i-node, mais simplement augmentation du compteur de référence du fichier dans
un répertoire.
ls -li fichier1
6341 -rw-rw-r-- 1 …………. fichier1
ln fichier1 /titi/liendur
$ls –li fichier1 /titi/ liendur
6341 -rw-rw-r-- 2 …………. fichier1
6341 -rw-rw-r-- 2 …………. /titi/ liendur
Les deux fichiers partent vers le même numéro d’index (numéro d’inode), ce qui veut
dire qu’il y a un seul espace disque associé aux deux noms.
Si on déplace le fihier1 :
mv fichier1 fichier2
puis on fait :
ls -li fichier2
on aura :
6341 -rw-rw-r-- 2 …………. fichier2
Si on supprime fichier2 :
rm fichier2
puis on fait :
ls -li fichier2 /titi/liendur
On aura :
fichier2 not found
6341 -rw-rw-r-- 1 …………. /titi/liendur
La commande cp
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 52
cp -i : avertit l'utilisateur de l'existence d'un fichier du même nom et lui
demande s'il peut ou non remplacer son contenu.
cp -b : permet également de s'assurer que la copie n'écrase pas un fichier
existant : le fichier écrasé est sauvegardé, seul le nom du fichier d'origine
est modifié et cp ajoute une tilde (~) à la fin du nom du fichier.
cp -p : permet lors de la copie de préserver toutes les informations
concernant le fichier comme le propriétaire, le groupe, la date de création.
cp -r : permet de copier de manière récursive un répertoire et ses sous-
répertoires.
Une option de mkdir qui est souvent utile est mkdir –p elle permet de créer une suite de
répertoires.
Exemple
mkdir –p cours/tp/algo
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 53
contrôlent les trois opérations de lecture (droit r pour read), d’écriture (droit w pour
write) et d’exécution (droit x pour execute). Ces trois
droits (rwx) sont appliqués à trois catégories d’utilisateurs qui sont le propriétaire
(user : u) de l’élément, son groupe (group : g) et les autres utilisateurs (others : o).
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 54
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 55