LICENCE I – MAI
Chapitre 2 :
GENERALITES SUR LES SYSTEMES
D’EXPLOITATION
Un système de fichiers est une structure de données qui permet d'organiser l'espace brute
de stockage sur une partition. Un fichier est une unité de stockage logique mise à disposition pour
l'enregistrement de données : c'est l'unité d'allocation. Le système d'exploitation établi la
correspondance entre le fichier et le système binaire utilisé.
Les systèmes Windows sont capables de gérer les systèmes de fichiers suivants :
FAT (File Allocate Table), standard des systèmes de fichiers Windows, mieux adapté à des
partitions de petites tailles. La taille maximum de la partition est limitée à 2Go.
FAT 32: Extension de FAT corrige les limites de son prédécesseur et repousse la limite de
la taille maximum à quelques milliards de Go.
NTFS (New Tehcnologie File System), contrairement à FAT est un système de fichier qui
est basé sur une structure arborescente de type binaire. Ceci permet un accès plus rapide.
La taille maximum est fixée à 16 milliards de Go ce qui est largement superieur au besoin
utilisateur sur lemarché. NTFS gère les mécanismes de droits (lecture, écriture, exécution
et suppression) sur les fichiers et répertoires. Il prend en compte la gestion des systèmes
RAID. NTFS n'a pas la fonction « undelete » ce qui fait qu'il n'est pas compatible avec FAT.
HPFS (High Perforamnce File System), système de fichier utilisé par IBM Corp. Il ne
comprend les fonctions de sécurité. Pas compatible avec FAT et NTFS.
La mémoire du système est consommée par l'ensemble des processus qui sont exécutés
sur le système. Certains processus sont gourmands en termes de mémoire. Pour cela, il faut
afficher la liste de tous les processus en cours d'exécution.
Objectifs spécifiques 2
Le lecteur devra être capable à la fin de ce cours de :
- comprendre la philosophie des systèmes GNU/Linux
- Être capable d'installer promptement un système Linux (en boot simple et en dual-boot)
- Travailler aisément en environnement Linux e mode graphique et ligne de commande
- Savoir installer les logiciels
- Savoir maintenir son système Linux en bon fonctionnement (gestions des processus et mémoires
et mise jour de logiciels)
- Gérer les ressources matérielles (installations de pilotes manquants)
1. Présentation des systèmes Linux
Linux est un système d'exploitation dérivé des systèmes UNIX qui a été mis au point par
Linuse Torwalds (développeur du système) et placé sous licence GPL (General Public Lisence).
Linux est un système d'exploitation libre. Un logiciel libre est un programme dont le code source
n'est pas protégé c'est-à-dire qu'on peut remonter au code source et le modifier pour l'adapter à
ses propres besoins.
En général, un programme informatique, que ce soit un noyau ou un logiciel, est constitué
de nombreuses lignes de code, écrites dans un langage de programmation (le langage C dans le
cas du noyau Linux). Ce code n'est généralement pas utilisable en tant que tel. Il faut passer par
la phase de compilation qui transforme le code source en programme exécutable, souvent appelé
binaire. Il suffit d'avoir le binaire pour utiliser le programme ; on n'a pas besoin des sources du
programme.
Il n'existe pas de moyen de remonter aux sources complètes du programme à partir du seul
binaire. Quand on achète un logiciel (Microsoft Office par exemple) ou un système d'exploitation
(Windows par exemple), on a un CD qui contient le binaire, mais pas les sources. Il est donc
impossible de savoir comment le programme est conçu. Par conséquent, on ne peut pas modifier
le programme. On peut seulement l'utiliser et éventuellement le copier à l'identique.
NB : Un logiciel libre n'est pas forcément gratuit. Il ya des logiciels libres qui sont livrés avec ne
licence. Par contre les logiciels propriétaires sont des logiciels dont on a n'a pas accès au code
source. Ces logiciels nécessitent des licences payantes. Certains logiciels propriétaires gratuits, on
les appelle des « freewares ».
2. Historique des systèmes UNIX/Linux
L’histoire de Linux remonte en 1991 lorsque Linus Torvalds (ancien étudiant Finlandais) a
décidé de développer un noyau en s'inspirant des principes du fonctionnement du système
d'exploitation UNIX. Son but initial est de s'amuser et d'apprendre les instructions Intel 386.
Quand son noyau commence à marcher, il le met en libre téléchargement sur Internet en
demandant aux gens de l'essayer et de lui signaler les bugs. De nombreuses personnes se
montrent intéressées et l'aident à développer son noyau. Dès les premières version, il choisit de
mettre Linux sous licence GPL. Quelques années plus tard, d'autres développeurs bénévoles
commencent à créer des distributions Linux.
Aujourd'hui, le succès de Linux s'explique par la qualité technique du noyau, par la présence de
nombreuses distributions Linux qui facilitent l'installation du système et des programmes, mais
s'explique surtout par son appartenance au monde du Libre qui lui apporte une grande rapidité
et qualité de développement. Le nombre d'utilisateurs de Linux est aujourd'hui estimé à plusieurs
millions.
Mandrake
Debian
Ubuntu
Knoppix
Le formatage
Pour bien exploiter un espace de stockage, il convient de le subdiviser ou le segmenter,
ensuite de créer sur les partitions créées un système de fichier permettant d'organiser l'espace
de stockage brut. Si le terme courant est le formatage, sous Linux, on parle de création de
« filesystem » une opération qui consiste à associer à un espace de stockage brut un système de
fichiers.
Naviguez dans les menus du BIOS jusqu'à la page qui permet de changer la séquence de
démarrage. Selon votre méthode d'installation, assurez-vous que le lecteur optique
désigné par CD-ROM, ou la clef USB, y intervient avant le disque dur désigné par C, Hard
Drive ou HDD-0.
8. Démarrage du système
Processus de démarrage
Niveau 0 : Ce niveau correspond à l'arrêt physique du système. Il faut aussi gérer les
actions à effectuer correspondant au niveau 0.
Niveau 1 : Appelé mode «Single» ou mode connexion unique, ce niveau d'exécution est
destiné aux opérations de maintenance (réparation du système ou récupération de
données). Il ne permet qu'une seule connexion en tant que « root » (super-utilisateur)
d'où son nom de « Single ». Le système fonctionne avec un service minimum, car la
majorité des services sont arrêtés.
Niveau 2 : C'est un niveau d'exécution qui n'est pas vraiment défini. Il est laissé à la
compétence de l'administrateur pour établir un mode de fonctionnement particulier. Par
ailleurs, il est utilisé comme niveau d'exécution par défaut sur certains systèmes (Debian
et dérivés).
Niveau 3 : Il correspond au niveau d'activation des services sans interfaces graphiques.
Cela ne signifie pas que l'interface graphique n'est pas disponible, mais elle est plutôt
désactivée. L'exécution de la commande « #startx » permettrait de l'activer. En outre, seul
root peut se connecter au niveau 3.
Niveau 4 : Non défini sur la plupart des systèmes. Il est cependant réservé à la compétence
de l'administrateur.
Niveau 5 : Niveau fonctionnel de la plupart des systèmes. Tous les services sont démarrés
et l'interface graphique est activée. C'est le niveau d'exécution par défaut de la plupart
des systèmes.
Niveau 6 : Niveau temporaire du système, il correspond à un redémarrage de la machine.
Sa configuration permet de déterminer quels sont les services à arrêter au redémarrage.
Il est possible de passer d'un niveau d'exécution à un autre en utilisant les commandes « init ou
telinit ».
Tâche : affichage du niveau d'exécution
La commande « runlevel » permet d'afficher le niveau d'exécution en cours et celui
précédemment lancé.
[root@marseille ~]# runlevel
N5
Le programme « init » est toujours lancé avant tout autre processus. Son PID est égal à 1.
[root@marseille ~]# ps aux | grep init
root 5520 0.0 0.0 4360 740 pts/0 S+ 08:42 0:00 grep init
Le fichier inittab
La configuration du niveau d'exécution est consigné dans le fichier /etc/inittab. Son
contenu peut varier suivant les distributions, mais sa structure est toujours la même.
Identifiant:niveau:mode_action:commande
# 4 - unused
# 5 - X11
id:5:initdefault:
Sous Linux, les services sont lancés par des scripts. Tous les scripts de démarrage de
services se trouvent dans le répertoire « /etc/init.d » et doivent avoir au moins comme arguments
les paramètres « start » et « stop ». les fichiers « /etc/rcN.d (où N désigne le niveau d'exécution)
sont des liens symboliques vers les scripts se trouvant dans /etc/init.d.
Connexion au système
Après l'installation du système, vous devez maintenant vous connecter au système. La
connexion peut se faire en mode graphique u en mode console. Cela nécessite de fournir le login
et le mot de passe de l'utilisateur. L'écran qui suit montre une ouverture de session en mode
graphique.
N
Nom user
M
Mot de passe
Vous disposez de plusieurs consoles au démarrage du système. Linux vous donne la possibilité de
basculer d'une console à une autre. Les interfaces sont nommées « ttyX » ou X désigne le numéro
de l'interface. Pour basculer d'une interface à une autre on combine les touches ALT+F2. Pour
revenir sur la première console, ALT+F1.
La maîtrise des systèmes Linux passe par une aisance dans dans l'exécution des tâches en ligne
de commande.
Les systèmes Linux ont amélioré leur interface graphique pour faciliter les tâches à l’utilisateur
final. Pour se connecter en mode console, l’utilisateur doit cliquer dans la barre de menu
(equivalent menu démarrer de Windows) et taper terminal
Pour réaliser les tâches d'administration, l'utilisateur doit prendre les droits de « root ».
Les privilèges accordés à chaque utilisateur sur un système Linux est concédé dans le fichier
« /etc/sudeoers ». Par défaut, seul le « patron root » a tous les privilèges sur le système. Pour
prendre les droits de root, l'utilisateur doit à partir de shell exécuter la commande « sudo » (super
user do). L'option « -i » ici permet d'initialiser le mot de passe du super-utilisateur, car celui-ci n'a
pas été attribué lors de l'installation.
commandes peuvent s'exécuter avec des options et suivies des arguments séparés par des
espaces.
Syntaxe d'une commande sous Linux
Chaque commande vient avec un manuel d'utilisation. Pour consulter le manuel d'une commande
exécutez la commande « man (manuel) » suivi du nom de la commande.
Linux permet à chaque utilisateur de connaître son identité à partir de son terminal utilisateur.
La commande « pwd » (Print Work Directory) permet d'afficher le chemin du répertoire courant.
Toutes les commandes utilisateurs sont exécutée à partir du répertoire courant. Ce répertoire est
indiqué dans le prompt de l'utilisateur. Lors du lancement du shell, le répertoire courant est
attaché au répertoire de base de l'utilisateur et est indiqué par le symbole « ~ ».
La notion d'arborescence fait appelle aux notions de « chemin abdolu et chemin relatif ».
Le chemin absolu, c'est le chemin à partir du répertoire courant. Alors que le chemin absolu c'est
le chemin qui quitte de la racine vers le fichier.
[root@marseille ~]# cd /home/yvan/Desktop/
/home/yvan/Desktop
[root@marseille Desktop]# cd ..
/home/yvan
[root@marseille yvan]#
Syntaxe :
mkdir <nom_rep>
$ mkdir /home/paxi/Bureau/monrep
Syntaxe :
touch <nom_fichier>
$ touch /home/paxi/Bureau/monfihier
La commande « mv » (Move) permet de déplacer un fichier ou répertoire d'une source vers une
destination.
Syntaxe :
mv <chemin_fichier_source> <chemin_ficier_destination>
$ mv /home/paxi/Bureau/cours_uvs /home/paxi/Desktop/Cours/cours_se
Syntaxe :
mv <ancien_nom> <nouveau_nom>
$ mv /home/paxi/Bureau/monancienfichier
/home/paxi/Desktop/Cours/monnouveaufichier
La création des liens est réalisée par la commande « ln » (Link). Il y a deux types de liens :
Lien simple :
Syntaxe :
$ ln <fichier_source> <fichier_lien>
Exemple :
Le fichier$lien
ln peut ne pas exister, mais le fichier/home/paxi/Desktop/Cours/cours_se
/home/paxi/Bureau/cours_uvs source doit obligatoirement exister.
Lien symbolique
Syntaxe :
% ln -s <fichier_source> <fichier_lien>
Exemple :
$ ln -s /home/paxi/Bureau/cours_uvs /home/paxi/Desktop/Cours/cours-linux
NB :
- Dans un lien simple, la suppression du fichier source n'affecte pas le fichier lien.
- Dans un lien symbolique, lorsque le fichier source est supprimé, le fichier lien n'est plus
actif.
Syntaxe :
rm <fichierasupprimer>
Exemple :
$ rm /home/paxi/Bureau/fichierasupprimer
Syntaxe
% rmdir <rep>
$ rmdir /home/paxi/Bureau/repvide
$ date
cal (calendar), afficher le calendrier du mois en cours. Des options peuvent vous p
ermettre d'afficher le calendrier de l'année.
$ cal
March 2015
Su Mo Tu We Th Fr Sa
1 23 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
ls (List) affiche le nom d'un fichier, le contenu d'un 31
répertoire, ou du répertoire courant :
$ ls
astuces-RE espace_disk
cat (concaténer)
Affiche le contenu d'un ou plusieurs fichiers (les uns à la suite des autres, sans séparation,
dans ce cas) :
$ cat assistant
Salif
Ndiaye
Kalia
Moustapha
Commandes Description
less et more Affichent le contenu d'un fichier en long page par
page
Apropos Recherche une commande à partir d'un mot clé
Echo Affiche en sortie standard
env Affiche uniquement les variables d'environnement
Exec Permet de lancer un nouveau shell sans lancer un
nouveau processus
Export Met une variable du shell dans la variable
d'environnement
Set Affiche toutes les variables d'environnement
Unset Detruit une variable
Uname Affiche les informations sur le système
History Affiche l'historique de toutes les commandes
exécutées dans le shell
Fmt Formate les paragraphe dans un fichier
Od Convertit un fichier en octal
Nl Numérote les lignes dans un fichier
ps Affiche la liste de tous les processus lancés
pstree Liste les processus lancé sous forme arborescente
kill et pkill servent à envoyer des signaux aux processus
Il existe plusieurs types d'installation de paquets sous Linux. Le choix du type d'installation
dépend de l'utilisateur en fonction du logiciel à disposition. Les applications peuvent être
installées de deux manières : la compilation des paquetages sources ou l'installation à partir des
dépôts en utilisant les gestionnaires de paquets.
Syntaxe
Syntaxe
# dpkg -i logiciel-1.2.1-i386.deb
paquet lorsque vous lancez une requête d'installation. Pour explorer les différentes options de
la commande apt, il est important de consulter le manuel.
Les options courantes de la commande apt sont :
apt-get install <logiciel> : install le paquetage logiciel
apt-get remove <logiciel> : désinstalle le paquetage logiciel
apt-get --purge remove <logiciel> : désinstalle le paquetage logiciel ainsi que les fichiers
de configuration.
Cmd1 | cmd2 |
Tâche 8 : Les filtres
Un processus qui reçoit un ensemble de flux de données en entrée standard effectue des
tris et produit des résultats en sortie standard est appelé « filtre ». Les filtres sont réalisés le plus
souvent en association des tubes.
Sort
La commande sort permet d’effectuer des tris sur des lignes de texte dans l’ordre
numérique
Nous allons créer un fichier nommé « licence1 » qui contient les noms de quelques étudiants.
$ cat licence1
Youssouf
Saleh
Ousamane
Ndiaye
Diop
On va maintenant réaliser le filtre en récupérant les flux en entrée et inverser l'ordre d'écriture
Diop
Ndiaye
Ousamane
Saleh
Youssouf
grep
Permet de recherche dans des fichiers à partir d’une expression particulière. Les
$ grep -i 'home' < licence1
L'exécution de cette commande ne renverra aucun résultat.
Chaque canal de communication est associé à un numéro logique (code) appelé file descriptor
voir le tableau ci-dessous.
echo
La commande echo permet d’afficher en sortie standard
Syntaxe
% echo <message>
$ echo Bonjour
Yvan KALIA, Certifié Linux Page 34
Cours Système d’exploitation Linux
Exemple :
$ cdd /home/yvan 2> errorcmd
Voici ce qui serait affiché sur la sortie standard si on ne fesait pas de redirection
wc (Word Count)
Compte le nombre de lignes, de mots, de caractères, ligne dans un fichier et l'affiche en
sortie standard.
L'option -l permet de compter le nombre de lignes et l'option -c compte le nombre de caractères.
Le fichier « licence1 » contient une liste d'étudiants. Vous allons le consulter en utilisant la
commande « cat ».
cut (couper)
Cette commande extrait des colonnes (option -c) ou des champs (option -f ) des lignes
d’un fichier ou de l’entrée standard. Dans le cas de l’option -f, il est possible de lui spécifier le
délimiteur en utilisant l’option -d. Le délimiteur par défaut est la tabulation.
$ cut -f3,7 -d : /etc/passwd
Ici nous avons filtré les champs 3 et 7 du fichier « /etc/passwd » dont le Shell de connexion est
égal à « /bin/bash ».
Exécutez la commande suivante, avant chaque exécution modifiez les valeurs 1 et 3 par d'autres
valeurs et interprétez les résultats.
$ date | cut -c1-3
head
La commande head permet d'afficher les première lignes de tête d'un fichier ou le nombre
de caractère avec l'option -c si l'on souhaite. Si vous ne précisez pas le nombre de lignes à afficher,
elle affiche les 10 premières lignes du fichier.
Exemple :
tail
La commande tail est le contraire de la commande head. Elle affiche les 10 dernières lignes
d'un fichier.
Exemple :
root n'est jamais sensé ouvrir une session graphique pour des raisons de sécurité.
9.5. Vi et Vim
L'éditeur vi est l'ancien éditeur des systèmes UNIX/Linux. Il es beaucoup plus utilisé,
malgré la non prise en charge des couleurs.
Vim, est une amélioration de vi qui prend en compte la gestion des couleurs afin de différencier
les paramètres des valeurs ainsi que les caractères spéciaux. Pour les débutants, il parait un peu
complexe mais c'est loin d'être le cas si on en tenait à sa performance.
Après le lancement de la commande vous allez vous trouver directement dans l'éditeur.
Pendant ce court apprentissage de vi, nous allons créer un fichier, le modifier, l'enregistrer, et
quelques autres petites manœuvres de survie :
vi et vim comprennent deux modes : un mode "commande" et un mode "insertion", après le
lancement de vi ou de vim nous sommes en mode commande : appuyez sur la touche
"Echap" puis sur "a" ("a", comme "append", permet d'ajouter du texte après le curseur). Vous
voyez en bas de l'écran apparaître la ligne " INSERT". Nous pouvons commencer notre texte.
N'oubliez pas de placer retour chariot au bout de chaque ligne.
Pour sauver le contenu du fichier appuyez sur Echap ensuite : et utilisez l'une des options
suivantes :
w (write) : enregistre le fichier mais le garde en visuel comme sans le fermer.
q ! (quit) : quitte le ficier sans enregistrer les modifications. L'usage du point d'exclamation
permet de focer.
ZZ : enregistre et quitte le fichier. Lorsque vous passer en mode insertion, ajouter du
contenu à votre ficher, puis sur Echap et enfin ZZ pour enregistrer et quitter.
Pour enregistrement le contenu du fichier appuyez sur Ctrl+x, puis Shift+O/Y ensuite sur Entrée
pour terminer.
Du point de vue informatique, un fichier est une suite d'octets d'informations de même
type. En d'autres termes, un fichier est un ensemble de données (sous différents formats (binaire,
ASCII, ...)) stockés sur un disque.
Un système d'exploitation ne peut fonctionner convenablement que s'il y a une
organisation des données au niveau de la partition (disque) sur laquelle il est installé. En général,
son espace de stockage est constitué d'une suite d'octets sans aucune forme d'organisation. Pour
bien l'exploiter, il faut le segmenter dans un premier temps, c'est ce qu'on appelle le
partitionnement ensuite de créer sur les partitions à exploiter un système de fichier.
Le but premier d'un système de fichier est d'organiser l'espace brute de stockage pour y stocker
les données.
10.2. Les types de système de fichiers
Il existe plusieurs types de système de fichier dont les plus courants en environnement Linux sont
de la famille des «ext».
etx2 : Ancien système de fichier des systèmes UNIX/Linux sans journalisation.
ext3 : Amélioration des systèmes de fichier ext2 avec journalisation (journal de
transaction)
ext4: Dernière évolution des files systèmes. Il vise à pallier les limites de l'ext3 en termes
de taille de fichiers.
Exemple1:
umount
La commande umount permet de démonter une partition qui a été montée sur un point
de montage.
Exemple
Pour démonter la partition /dev/sdb1 montée sur /mnt, nous allons exécuter la
commande umount avec comme argument le point de montage (/mnt)
# umount /mnt
Le type « lien symbolique » correspond à un fichier spécial pointant physiquement sur un autre.
Les types « fichier spécial mode block » et « fichier spécial mode caractère” servent à
communiquer avec les périphériques (disques, terminaux, etc.). Le type « fichier spécial mode
réseau” sert de canal de communication entre processus sur différentes machines. Le type « pipe
nommé » sert de canal de communication entre différents processus sur une même machine.
Sous UNIX/Linux, les répertoires et les fichiers sont confondus. Le terme fichier désigne en général
aussi bien le fichier ordinaire que les répertoires. Les systèmes UNIX/Linux sont orientés fichiers
contrairement aux systèmes Windows orientés disques, mais un répertoire est un classeur de
fichiers.
Les droits sur un fichier sont définis suivant trois classes à savoir:
Le propriétaire (u) du fichier
Le groupe (g) , propriétaire du fichier
Les autres (o) (ceux qui ne font pas partie du groupe du propriétaire du fichier).
Pour voir les droits qu'ont les utilisateurs sur un fichier, il suffit d'utiliser la commande ls -l :
Suivant le type de fichier, le mode de protection permet d'effectuer les différentes actions sur le
fichier. Chaque mode d'accès est symbolisé par un code caractère présenté dans le tableau ci-
dessous :
Syntaxe :
Exemple
Ici, nous avons positionné les droits en notation octale, mais peut se faire en notation caractère
# chmod u+r+w+x,g+r, licence1
Vous voyez sur la capture que le fichier appartient au patron root, mais nous allons modifier
l'appartenance et le donner à l'utilisateur « yvan » (utilisateur crée sur le système)
Le swap est un espace d'échange entre le reste du disque dur et de la mémoire RAM. C'est
un espace de stockage exploité pour pallier à un manque de mémoire physique sur le système.
Par exemple, quand la mémoire physique vient à manquer pour les applications, une partie des
informations stockées en mémoire et n'ayant pas fait l'objet d'une utilisation est déplacée sur le
swap, afin de libérer de l'espace pour les applications qui ont un besoin immédiat en mémoire. Si
les applications ont besoin des informations qui ont été basculées sur le swap, le mécanisme de
swap est à nouveau engagé.
Syntaxe :
useradd <nom_user>
adduser <nom_user>
Des options peuvent être associées aux commandes pour des actions particulières.
Syntaxe :
Syntaxe :
Lorsque la commande userdel est utilisée sans option, celle-ci supprimera l'utilisateur mais pas
son répertoire de base. Pour bien nettoyer, il faut lui passer l'option -r .
Syntaxe :
groupadd <nom_group>
Syntaxe :
# groudel <nom_groupe>
groupmod
Permet de modifier le nom d'un groupe
Syntaxe :
Dans les ateliers que nous ferons, nous verrons comment affecter un utilisateur à un groupe et
lui donner quelques privilèges ?