diff --git a/architecture/os/ARBORESCENCE.md b/architecture/os/ARBORESCENCE.md new file mode 100644 index 0000000..e6a012b --- /dev/null +++ b/architecture/os/ARBORESCENCE.md @@ -0,0 +1,210 @@ +> Dans un système Unix, tout est fichier. Chaque élèment du système d'exploitation est un fichier, une donnée. +> +> On peut donc accéder et modifier chaque élèment de manière simple. +> +> On parle de ***Système de Gestion de Fichiers (SGF)*** pour définir l'organisation des données dans un système d'exploitation. + +### Tout est fichier + +Dans un système Unix, on distingue 3 types de fichier : + +- ***Les fichiers ordinaires*** : + - *Fichiers de données* : textes ou formats libres et propriétaires + - *Fichiers programmes* : instructions exécutables (binaire ou script) + +- ***Les répertoires*** + +- ***Les fichiers spéciaux*** : préiphériques, imprimantes, disques, cd / dvd / blu ray ... etc + +Un fichier est désigné par son **nom**, il faut donc ne pas nommer n'importe comment vos fichiers. +De plus, les fichiers systèmes portent tous un nom prédéfini que le système reconnait afin de faciliter son fonctionnement. + +----------------- + +### Chemin relatif contre chemin absolu + +L'accès au fichier se fait par : + +- Une référence *absolue* + +- Une référence *relative* + +Pour mieux comprendre ce que cela signifie, il faut avoir en tête plusieurs choses : + +Dans tous les répertoires se trouve : + +- le répertoire courant : + +```bash +. +``` + +- le répertoire père : + +```bash +.. +``` + + + +Le **chemin absolu** représente le chemin complet vers un emplacement depuis ***la racine*** (il débute obligatoirement par ‘ / ’) + +```bash +usr/local/bin/NSI/cours.pdf +``` + +Au contraire, le chemin relatif démarre du répertoire courant : + +```bash +« qcm/nsi_qcm_os.md +../repertoire_pere/toto.pdf » +``` + +--------------- + +### Arborescence + +Tous ces fichiers sont regroupés dans une ***structure hierarchisée*** représentée sous la forme d' un **arbre** inversé : + +L’arbre comprend : + +- Les nœuds : les répertoires +- Les feuilles : les fichiers ordinaires ou spéciaux + +Le sommet de l'arbre est appelé **racine** (la même qui débute le chemin absolu d'un fichier) aussi appelée **root**. + +On peut représenter cette arborescence sous la forme suivante: + +arborescence + +À chaque fois que l'on entre dans un répertoire, on descend dans l'arbre. + +Le dossier **racine** contient les principaux dossiers d'un système Unix : + +- bin (les commandes de bases du système) + +- dev (fichiers représentants les différents matériels connextés au système) + +- etc (configuration du système) + +- home (répertoire d'accueil des utilisateurs et utilisatrices, chacun et chacune possédant le sien) + +- lib (contient les librairies utilisées par le système) + +- mnt (dossier où l'on "monte" les périphériques usb entre autres...) + +- tmp (fichiers temporaires) + +- usr (outils et logiciels installés dans le système) + +- var (données fréquemment utilisées) + +- ... + + + +--------------- + +### Rappel sur les commandes UNIX + +- Changement de répertoire : cd +- Affichage du nom du répertoire courant : pwd +- Affichage du contenu du répertoire : ls +- Création d’un répertoire : mkdir +- Suppression d’un répertoire : rmdir +- Renommage/déplacement un répertoire : mv + +***Exemples*** + +Pour changer de répertoire, la syntaxe est : *cd nom_répertoire* + +```bash +$ cd /usr/bin $ cd + $ cd ../etc + $ cd .. + +$ cd ~/nsi +``` + +Pour déplacer un fichier, la syntaxe est : mv nom_fichier chemin_du_nouveau_repertoire + +```bash +mv cours_nsi.pdf cours_pdf/nsi +``` + +Cela déplacera le fichier *cours_nsi.pdf* du répertoire courant vers le répertoire *cours_pdf/nsi* + +Pour renommer un fichier, il suffit de le déplacer au même endroit en changeant le nom de destination: + +```bash +mv cours_nsi.pdf toto.pdf +``` + +Ici, cours_nsi.pdf va être renommé en toto.pdf + +--------------- + +### Droits et permissions + +> Il s'agit d'un point très important dans l'aproche de la sécurité d'un système Unix, ainsi que dans sa gestion. + +Le système Unix reconnaît 3 (trois) types d'utilisateurs : + +- L'utilisateur ou propriétaire +- Le groupe +- Le reste (autres) + +Les fichiers sont protégés au moyen d'un code binaire de 9 (neuf) bits : + +| Propriétaire | Groupe | Autres | +| ------------ | ------ | ------ | +| 3 bits | 3 bits | 3 bits | +| r w x | r w x | r w x | + +Une lettre indique l'autorisation: + +- r pour ***r**ead* - lire +- w pour ***w**rite* - écrite +- x pour *e**X**ecute* - executer + +Un tiret indique, quant à lui, l'interdiction. + +Les droits d'accès d'un fichier sont décrits par une succession des bits indiqués au dessus dans l'ordre du tableau. + +Exemple : Si les droits de mon fichier visé sont + +```bash +r w x r - x r - - +``` + +cela signifie que mon fichier est accessible en : + +- lecture, écriture et exécution pour le propriétaire +- lecture et exécution pour le groupe +- lecture seule pour les autres + +Les droits d'accès concernent aussi les dossiers : + +- Lecture : permet de visualiser le contenu des répertoires +- Écriture : permet d'ajouter de renommer ou de supprimer des élèments +- Exécution : permet d'accéder au contenu (indispensable sinon les deux autres droits ne servent à rien) + +Il existe trois principales commandes pour gérer les droits sous un système Unix : + +```bash +chmod +``` + +change les autorisations d'accès à un fichier ou répertoire + +```bash +chown +``` + +change le ou la propriétaire d'un fichier ou répertoire + +```bash +chgrp +``` + +change le groupe propriétaire \ No newline at end of file diff --git a/architecture/os/assets/arborescence.png b/architecture/os/assets/arborescence.png new file mode 100644 index 0000000..5611aaf Binary files /dev/null and b/architecture/os/assets/arborescence.png differ