• Aucun résultat trouvé

Système d’exploitation OS

N/A
N/A
Protected

Academic year: 2022

Partager "Système d’exploitation OS"

Copied!
8
0
0

Texte intégral

(1)

Objectifs pédagogiques :

✓ Identifier les fonctions d’un système d’exploitation.

✓ Utiliser les commandes de base en ligne de commande.

✓ Gérer les droits et permissions d’accès aux fichiers.

En informatique, un système d'exploitation (souvent appelé OS — de l'anglais Operating System) est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs. Il reçoit des demandes d'utilisation des ressources de l'ordinateur — ressources de stockage des mémoires (par exemple des accès à la mémoire vive, aux disques durs), ressources de calcul du processeur central, ressources de communication vers des périphériques (pour parfois demander des ressources de calcul au GPU par exemple ou tout autre carte d'extension) ou via le réseau — de la part des logiciels applicatifs. Le système d'exploitation gère les demandes ainsi que les ressources nécessaires, évitant les interférences entre les logiciels.

1. Notion de système d’exploitation

Le système d’exploitation est le deuxième programme exécuté après le programme d'amorçage (en anglais bootloader) lors de la mise en marche de l'ordinateur. Il offre une suite de services généraux facilitant la création de logiciels applicatifs et sert d'intermédiaire entre ces logiciels et le matériel informatique.

Il existe sur le marché des dizaines de systèmes d'exploitation différents, très souvent livrés avec l'appareil informatique. C'est le cas de Windows, Mac OS, GNU/Linux, (pour lequel il existe de nombreuses distributions), Android ou iOS. Les fonctionnalités offertes diffèrent d'un système à l'autre et sont typiquement en rapport avec l'exécution des programmes, l'utilisation de la mémoire centrale ou des périphériques, la manipulation des systèmes de fichiers, la communication, ou la détection et la gestion d'erreurs.

Actuellement, les deux familles de systèmes d'exploitation les plus populaires sont UNIX (dont Mac OS, GNU/Linux, iOS et Android) et WINDOWS. Ce dernier détient un quasi-monopole sur les ordinateurs personnels avec près de 90 % de part de marché.

Source : Wikipédia

Système d’exploitation OS

(2)

2. Fonctionnalités et constitution

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 façon rationnelle :

Utilisation des périphériques : 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.

Accès aux fichiers : en plus des instructions propres à chaque périphérique (ROM, RAM, disque dur, lecteur de CD- ROM ou DVD-ROM, SSD, clé USB), le système d'exploitation tient compte du format propre de chaque support servant au stockage des données. Il offre également des mécanismes de protection permettant de contrôler quel utilisateur peut manipuler quel fichier.

Accès aux ressources : une des fonctions du système d'exploitation est de protéger les ressources contre l'utilisation par des personnes non autorisées, et de résoudre les conflits lorsque deux utilisateurs demandent simultanément la même ressource.

Détection et récupération en cas d'erreur : lorsqu'une erreur survient, qu'elle soit matérielle ou logicielle, le système d'exploitation traite l'erreur en adoucissant son impact sur le système informatique. Il peut tenter de réitérer l'opération, arrêter l'exécution du programme fautif, ou signaler le problème à l'utilisateur.

Contrôle : un système d'exploitation peut tenir des statistiques d'utilisation des ressources, surveiller la performance, et les temps de réponse.

La palette des services offerts et la manière de s'en servir diffère d'un système d'exploitation à l'autre.

Source : Wikipédia

Le système d'exploitation (OS), est chargé d'assurer la liaison entre les ressources matérielles (hardware), l'utilisateur et les applications.

Les 3 éléments principaux d’un OS : kernel, shell, fichiers.

Un système d’exploitation se compose de 3 éléments principaux :

• Un noyau (kernel) qui représente les fonctions fondamentales du système informatique (à savoir la gestion des périphériques, de la mémoire, etc...)

• Un interpréteur de commande ou Shell (autrement dit 'coquille' en opposition au 'Noyau') permet d’assurer la communication avec l'OS par le biais d'un langage de commande pour permettre à l'utilisateur d'utiliser les ressources matérielles du PC sans connaitre leur caractéristique.

• Un système de fichiers permettant d’enregistrer les données dans une arborescence.

Q1. Quelle sont les deux grandes familles de systèmes d’exploitation ? Citez pour chacune d’elle des exemples d’OS.

Q2. Quel est le rôle d’un système d’exploitation ?

Q3. Quels sont les 3 éléments constitutifs d’un système d’exploitation ?

BIOS

Kernel Shell Fichiers

(3)

3. Systèmes de type UNIX

Linux est l’un des système d’exploitation important aujourd’hui, notamment dans le domaine des serveurs. Nous nous proposons d’en étudier les caractéristiques principales.

3.1. Le système Linux

◼ Bref historique

L’histoire du système d’exploitation GNU LINUX commence en 1991 date à laquelle l’étudiant finlandais Linus TORVALDS propose le noyau d’un système d’exploitation libre et open source. Avant lui, Richard STALLMAN, un des pionniers de l’open source avait déjà appelé de ses vœux la création d’un système libre baptisé GNU (acronyme récursif : GNU is Not Unix).

◼ Déclinaisons

LINUX s’est développée de manière très rapide et a donné lieu à de nombreuses distributions partageant le même noyau. On peut citer par exemple UBUNTU et DEBIAN parmi les plus connus. Le noyau LINUX contient des millions de lignes de code, pour la plupart écrite en langage C. Le système ANDROÏD est également basé sur le noyau LINUX.

3.2. Bash

Quelle que soit la distribution LINUX utilisée, on trouve une application « terminal » qu’on peut lancer et l’interpréteur de commandes avec lequel on interagit par défaut est BASH (Bourne Again Shell) qui est l’interpréteur de commandes le plus courant sous LINUX et aussi sous MAC OS X. Il est également possible de l’activer sous WINDOWS 10.

Le simulateur en ligne JSLinux pourra être utilisé afin de tester dans un navigateur les commandes BASH : https://bellard.org/jslinux/

3.3. Commandes Bash de base

Toutes ces commandes acceptent de nombreuses options dont on peut connaitre la documentation en tapant : man nom_commande. Par exemple la commande ls (list) comporte des options pour afficher des fichiers cachés ls -a ou encore pour afficher les détail et les droits d’un fichier ls -l. On peut également combiner des options entre elles : ls - al.

Commande Description

ls Lister le contenu du répertoire courant cp Copier des fichiers ou des répertoires

mv Déplacer ou renommer des fichiers ou des répertoires rm Effacer des fichiers ou des répertoires

mkdir Créer un répertoire

cd Se déplacer dans l’arborescence cat Visualiser le contenu d’un fichier

echo Afficher un message ou le contenu d’une variable

touch Réinitialiser le timestamp d’un fichier ou créer un fichier vide chmod Changer les permissions d’accès d’un fichier ou d’un répertoire

(4)

3.4. Les répertoires fondamentaux

◼ Arborescence

Tout système UNIX dispose d’une arborescence de fichiers ancrée sur la racine /.

Dans le schéma ci-dessus on trouve des répertoires (noms entourés d'un rectangle, exemple : "home") et des fichiers (uniquement des noms "grub.cfg"). À noter : les extensions des noms de fichiers, par exemple le "cfg" de "grub.cfg", ne sont pas obligatoires dans les systèmes de type "UNIX", par exemple, "bash" est bien un nom de fichier et il n'a pas d'extension. On parle d'arborescence, car ce système de fichier ressemble à un arbre à l'envers.

Voici quelques points d’entrée de cette arborescence :

bin : contient les commandes de base du système

dev : contient les fichiers représentant les dispostifs matériel (devices) du syst_me

etc : contient les fichiers de configuration du système

home : répertoire d’accueil (HOME) des utilisateurs

lib : contient les librairies

◼ Navigation

Pour indiquer la position d'un fichier (ou d'un répertoire) dans l'arborescence, il existe 2 méthodes : indiquer un chemin absolu ou indiquer un chemin relatif.

Chemin absolu

Le chemin absolu doit indiquer "le chemin" depuis la racine. Par exemple le chemin absolu du fichier fiche.ods sera : /home/elsa/documents/fiche.ods

Remarque : il faut bien démarrer depuis la racine / (attention les symboles de séparation sont aussi des /)

Chemin relatif

Il est possible d'indiquer le chemin non pas depuis la racine, mais depuis un répertoire quelconque, nous parlerons alors de chemin relatif. Ainsi, le chemin relatif permettant d'accéder au fichier "photo_1.jpg" depuis le répertoire

"max" est : "images/photo_vac/photo_1.jpg"

Remarque : il faut noter l’absence du / au début du chemin (c'est cela qui nous permettra de distinguer un chemin relatif et un chemin absolu).

• Pour aller dans son HOME en utilisant un chemin absolu, l’utilisateur elsa peut entrer la commande : cd /home/elsa

• L’utilisateur elsa peut également utiliser le raccourci ~ et faire cd ~ ou plus simplement cd

• Pour remonter dans le répertoire parent, on utilise la commande cd ..

(5)

3.5. Entrées et sorties (flux)

◼ Entrée (stdin)

La commande read permet d’effectuer une saisie utilisateur :

[root@localhost ~]# read var # Saisie de la valeur de la variable var Wolverine

[root@localhost ~]# echo $var # Affichage de la valeur de la variable var Wolverine

[root@localhost ~]#

◼ Sortie (stdout)

Une commande affiche normalement son résultat sur la sortie standard (stdout) qui est par défaut l’écran du terminal.

On peut néanmoins par exemple envoyer le résultat d’une commande vers un fichier en utilisant un flux de redirection : simple chevron > (écrasement) ou double chevrons >> (ajout).

[root@localhost ~]# echo "Bonjour" > salut.txt # (1)

[root@localhost ~]# echo "Tout le monde" >> salut.txt # (2) [root@localhost ~]# cat salut.txt # (3)

Bonjour

Tout le monde

[root@localhost ~]#

(1) Envoi le mot « Bonjour » dans le fichier salut.txt qui est créé (ou écrasé s’il existait préalablement).

(2) Ajoute une nouvelle ligne au fichier existant qui contiendra donc 2 lignes après cette commande.

(3) Affiche à l’écran le contenu du fichier salut.txt

◼ Sortie d’erreur (stderr)

Les sorties d’erreur ne s’affichent pas sur la sortie standard. Il existe un troisième flux, le flux de sortie d’erreur dénommé stderr qui s’affiche également dans le terminal.

Par exemple, s’il n’ y a pas de fichier toto dans le répertoire courant : [root@localhost ~]# cat toto

cat: can't open 'toto': No such file or directory [root@localhost ~]#

On peut rediriger la sortie d’erreur vers le périphérique « null » pour qu’elle ne s’affiche pas à l’écran : [root@localhost ~]# cat toto 2>/dev/null

[root@localhost ~]#

3.6. Filtres, tubes et redirections

UNIX permet aussi l’utilisation de filtres comme :

wc pour compter des lignes ou des caractères

sort pour trier

cut pour extraire des colonnes dans un fichier

• …

Ces filtres s’utilisent généralement avec des tubes (pipes) notés « | ». Un "pipe" ou "tuyau" permet de passer le résultat d'une commande shell à une autre commande shell .

Exemple 1 : compter le nombre de lignes d’un fichier

(6)

Exemple 2 : trier un fichier par ordre alphabétique [root@localhost ~]# echo Z > lettres.txt [root@localhost ~]# echo Y >> lettres.txt [root@localhost ~]# echo X >> lettres.txt [root@localhost ~]# cat lettres.txt

Z Y X

[root@localhost ~]# cat lettres.txt | sort > lettres_tri.txt [root@localhost ~]# cat lettres_tri.txt

X Y Z

3.7. Droits et permission sous UNIX

◼ Le monde selon UNIX

UNIX sépare le monde en trois catégories :

• l’utilisateur (user u) ;

• le groupe (group g) ;

• le reste du monde (others o)

◼ Exemple de lecture de droits

[root@localhost ~]# ls -l salut.txt

-rw-r--r-- 1 david root 2020 Jan 5 12:12 salut.txt [root@localhost ~]#

La partie -rw-r—r-- indique les droits du fichier.

Remarque : pour un répertoire le droit x est le droit de traverser le répertoire.

Changer des droits : commande chmod

Seul le propriétaire du fichier (ou le super-utilisateur « root ») peut changer ses permissions d’accès. Il le fait avec la commande chmod. On donne quelques exemples ci-après sur un fichier mon_script.sh

Droits Syntaxe

Donner les droits de lecture au groupe (group) g chmod g+r mon_script.sh Donner les droits d’écriture au propriétaire (user) u chmod u+w mon_script.sh Donner les droits d’exécution au autres (others) o chmod o+x mon_script.sh Donner les droits d’exécution à tous chmod ugo+x mon_script.sh

(7)

Il est également possible d’utiliser un codage octal pour les droits des fichiers ou des dossiers.

Ecriture symbolique : -rwx r—x r-x Ecriture en binaire : 111 101 101 Ecriture en octal : 7 5 5

Par exemple chmod 755 mon_script.sh donne les droits -rwxr—xr-x au fichier mon_script.sh

3.8. Scripts BASH

Une suite de commande permet à l’administrateur d’automatiser certaines tâches, on parle de « script », stocké dans un fichier d’extension .sh. Les arguments du script peuvent être invoqués avec $1, $2, … , leur nombre avec $# et leur liste avec $*. On peut créer un script avec un éditeur tel que nano ou vim.

Une fois le script créé avec l’éditeur nano, la commande chmod u+x efface.sh permet de rendre le script exécutable par l’utilisateur qui l’a créé.

Le script précédent peut être lancé via la commande suivante depuis le répertoire dans lequel il est stocké : bash efface.sh nom_fichier (nom_fichier est l’argument du script efface.sh)

Remarque :

Tous les fichiers exécutables posent des problèmes potentiels de sécurité car tout fichier exécutable peut se transformer en un cheval de Troie (logiciel malveillant). Dans un site web par exemple, les fichiers HTML, CSS, images, Javascript ou PHP n’ont pas à être exécutables : le droit de lecture suffit !

(8)

Q4. En vous basant sur l’arborescence du § 3.4, déterminez le chemin absolu permettant d'accéder aux fichiers :

"cat"

"rapport.odt"

Q5. Toujours en vous basant sur l'arborescence du § 3.4, déterminez le chemin relatif permettant d'accéder au fichier:

• "rapport.odt" depuis le répertoire "elsa" ;

• "fiche.ods" depuis le répertoire "boulot".

Q6. Toujours en utilisant l'arborescence du § 3.4, quelle est la commande à saisir si le répertoire courant est le répertoire "home" et que vous "souhaitez-vous rendre" dans le répertoire "boulot" (vous utiliserez d'abord un chemin absolu puis un chemin relatif).

Rendez-vous sur le simulateur JSLinux en ligne suivant : https://bellard.org/jslinux/vm.html?url=buildroot-x86.cfg Q7. La commande "ls" permet de lister le contenu du répertoire courant. En mode console, utilisez les commandes ls puis ls -al depuis votre répertoire personnel.

Q8. La commande "mkdir" permet de créer un répertoire dans le répertoire courant. La commande est de la forme

"mkdir nom_du_répertoire". En mode console, utilisez la commande "mkdir" afin de créer un répertoire "test_nsi"

dans votre répertoire personnel.

Remarque : il est préférable de ne pas utiliser de caractères accentués dans les noms de répertoire (ou de fichier). Il en est de même pour les espaces (à remplacer par des caractères tirets bas "_").

Q9. La commande "touch" permet de créer un fichier vide. La commande est de la forme "touch nom_du_fichier_à_créer". Créer dans le répertoire test_nsi le fichier vide bonjour.sh

Q10. La commande « nano nom_du_fichier » permet d’ouvrir un fichier pour l’éditer. A l’aide de la commande nano éditer le fichier bonjour.sh afin qu’il comporte les deux lignes de code suivantes :

#!\bin\bash

echo "Bonjour toute le monde !"

Enregistrer puis quitter le fichier.

Q11. Depuis le répertoire « test_nsi » lancer la commande ls -al. Quels sont les droits associés au fichier bonjour.sh ? Q12. A l’aide de la commande chmod u+x bonjour.sh, rendre le fichier exécutable. Assurez-vous de la réussite de l’action avec la commande ls -al.

Q13. Depuis le répertoire test_nsi, exécutez le script via la commande bash bonjour.sh Q14. Revenir à votre répertoire personnel en utilisant la commande cd ~ ou cd

Q15. La commande "rm" permet de supprimer un fichier ou un répertoire. La commande est de la forme "rm nom_du_répertoire_ou_nom_du_fichier". La plupart des commandes UNIX peuvent être utilisées avec une ou des options. Par exemple, pour supprimer un répertoire non vide, il est nécessaire d'utiliser la commande "rm" avec l'option "-r" : "rm -r nom_du_répertoire".

Supprimer le répertoire test_nsi puis vérifier la bonne exécution de l’action.

Références

Documents relatifs

Avant toute utilisation d’une commande utilisant ces caractères et qui modifie de manière important votre système (suppression de fichiers, de répertoires,

Sauvegarder une base de donnée du nom de "lutece" dans "dump.sql" : mysqldump -uroot -pmotdepasse lutece -rdump.sql. Jouer le script "dump.sql" dans la

cat a.txt >> b.txt Copie du fichier a.txt au bout du fichier b.txt " Commande précédente more prog.c Liste du contenu du fichier prog.c, arrêt en bas. d’écran

The information presented here should act as a guide to creating quality scripts using the Linux built­in 

• Voir le contenu du lien physique avec cat lien-phy => modif lien symbo.. • Voir le contenu du lien symbolique avec cat

Nous nous trouvons donc exactement dans le cadre d’application du théorème de propagation de la mesure de la section 3. Il ne reste donc qu’à identifier les endomorphismes J ξ.

Le système d’exploitation a pour rôle de faire en sorte que les différents processus soient menés à bien et qu’il n’y ait pas de conflits entre les différentes applications

Il vous suffira alors d'insérer le Live-CD de Linux et votre PC pourra alors démarrer correctement sous Linux pour tester ce formidable système