1 UNIX AVANCE Yves PAGNOTTE – Janvier – RAPPELS SUR UNIX DE BASE
2 Jusqu’à la fin des années 60 / 70 : - les systèmes étaient réécrits à la création de chaque nouveau matériel ("sur mesure") ► absence de portabilité -les systèmes étaient développés en Assembleur ► développement long et risques accrus de bugs
3 Kernighan, Thompson, Ritchie, … à la fin des années 60 - portabilité système écrit largement en langage de haut niveau (partie indépendante du matériel) seule la couche liée au matériel est réécrite chaque fois (généralement en Assembleur) - multi-utilisateurs et multi-tâches - indépendance des applications et du matériel tout matériel est vu comme un fichier
4 D ’où UNIX né au seuil des années 70 avec de nombreuses versions, notamment LINUX Un langage de haut niveau créé spécifiquement : - B, puis - C ► d’où le statut de C par rapport à UNIX : - un exécutable C = une commande système - un langage de développement de système devenu un langage de développement d ’applications
5 gestion des entrées- sorties - par fichier spécial (ex.: entrées et sorties standards) /dev/tty, /dev/console, /dev/floppy,/dev/audio, /dev/lp, /dev/NULL - arguments de main en C ► diapositive suivante - mode bloc, mode caractère - bufferisées ou non - redirections des entrées-sorties (symboles > ou > du shell)
6 rappel : arguments de main en C int ou void main (int argc, char ** argv) argv 0 1 argc 1 er argument 2 ème argument Les arguments sont des chaînes de caractères
7 utilitaires standards d ’UNIX - compilateur C - débogueurrs - verificateur de syntaxe lint - gestionnaires d’applications (make, sccs) - générateur de compilateurs (lex et yacc) - éditeurs de texte
8 système de gestion de fichiers un arbre - de racine / - feuilles = fichiers de données - autres nœuds = fichiers répertoires un fichier - une suite non structurée d’octets - sans marqueur de fin
9 système de gestion de fichiers quelques répertoires standards : /bincommandes pour le démarrage, utilisables ensuite par les utilisateurs /usr/bin la plupart des commandes utilisateurs /etcla plupart des fichiers de configuration /varles données qui varient lorsque le système fonctionne /homela racine des répertoires utilisateurs
10 système de gestion de fichiers à tout fichier est attaché un i-node (nœud d ’index) c’est une structure type (ordinaire, répertoire, spécial) protections dates (création, accès, mise à jour) taille nombre de liens uid, gid adresse physique les i-nodes sont regroupés dans une table en MC (i-list) ils sont consultables par exemple avec ls -ias
11 système de gestion de fichiers Les informations relatives à un SGF implémentées sur disque en 4 zones : - zone 0 : le bootstrap (adresse fixe) initialisation du SE - zone 1 : superbloc caractéristiques du SGF : nom(s) volume(s),dates de mises à jour, taille des blocs,… caractéristiques des blocs libres - zone 2 : i-list - zone 3 : les fichiers
protection des fichiers 12 bits r bits spéciaux user group others - set uid, set gid, attribut spécifique (sticky bit) set uid : le processus d’exécution a les droits du propriétaire du fichier et non de l ’utilisateur qui l ’exécute set gid : idem, mais relativement au groupe attribut spécifique : fichier maintenu en zone de recouvrement - 3 bits user, 3 bits group, 3 bits others r w x avec signification différente pour fichiers de données et fichiers répertoires visualisation 12 set uidstickyset gidrwxwrxwrx
13 les commandes - rôle de man - chaque commande génère une valeur de retour (0 par défaut) - tubes | - enchaînement conditionnel &&, || - alias
14 Les commandes at cat chmod cp crontab cut echo grep
15 les commandes ln mv rm sort split stty test wc w, who, whoami, who am i read
16 le shell - il forme une couche autour du noyau - il contient l’interpréteur des commandes -il doté d’un langage algorithmique on parle de script shell - 3 shellsBourne shell Korn shell C shell
17 le shell - on distingue nom de variable et valeur de variable ex. : echo x et echo $x - type chaîne de caractères par défaut et typeset - tableaux - règles de substitution
18 le shell - variables prédéfinies exemple : PATH=$HOME/bin:$PATH ; export PATH - fichier.profile
19 shell scripts les instructions du langage : for while until if case select paire d’accents graves ` `
20 noyau d’UNIX contient des fonctions pour : - initialisation du système - gestion des ressources (temps, mémoire) - gestion des fichiers et des disques - gestion des processus - gestion des entrées sorties (pilotes) - gestion des communications