Systèmes et Architectures Master Biologie – CCI Karim Sehaba ksehaba@univ-lr.fr http://perso.univ-lr.fr/ksehaba/
Plan Composants d’un ordinateur Systèmes d'exploitation Linux Composantes du système d'exploitation MS-Dos Windows Unix Linux Fonctionnalités Connexion et déconnexion Organisation des fichiers Droits d'accès des fichiers Commandes
Composants d’un ordinateur Processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) Il permet de manipuler des informations numériques, c'est-à-dire des informations codées sous forme binaire, et d'exécuter les instructions stockées en mémoire. Mémoire vive C'est l'endroit où l'ordinateur stocke temporairement les données et programmes qu'il est en train d'utiliser. Interfaces d’entrées sorties Souris Clavier Écran Imprimante … Mémoire externe Disque dur Lecteur CD-ROM Mémoire vive Processeur Interfaces d’entrées sorties Mémoire externe
Composants d’un ordinateur Processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) Il permet de manipuler des informations numériques, (informations codées sous forme binaire) et d'exécuter les instructions stockées en mémoire. Mémoire vive C'est l'endroit où l'ordinateur stocke temporairement les données et programmes qu'il est en train d'utiliser. Interfaces d’entrées sorties Souris Clavier Écran Imprimante … Mémoire externe Disque dur Lecteur CD-ROM
Systèmes d’exploitation Système d'exploitation (noté SE ou OS (Operating System)) Il est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo, ...) Applications Système d’exploitation Pilotes Matériel
Composantes d’un SE Parmi cet ensemble de logiciels on distingue généralement les éléments suivants : 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. L'interpréteur de commande (en anglais shell) permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage de commandes, Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans une arborescence. Parmi les systèmes d’exploitation Linux Mac/MacOS Windows NT/2000/XP MS-Dos AS/400
MS-Dos Le rôle du DOS est d'interpréter les commandes saisies au clavier par l'utilisateur. Les commandes permettent d'effectuer les tâches suivantes : gestion des fichiers et des répertoires mise à jour des disques configuration du matériel exécution des programmes
Windows Les principales versions Microsoft Windows 1.0 (1985) Il s'agit d'une interface graphique de plusieurs fenêtres Windows NT 4.0 TSE (Terminal Server Emulation) (1998) possibilité de brancher des terminaux sur un serveur Windows Me (2000) apporte des fonctionnalités multimédia et réseau supplémentaires. Windows XP (2001) Il s'agit de la convergence des systèmes précédents
Unix Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs. Il possède un ou plusieurs interpréteurs de commandes (shell) ainsi qu'un grand nombre de commandes et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...). Il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en oeuvre un système Unix sur la quasi-totalité des plates-formes matérielles. Sécurité élevé et le respect des grands standards, notamment en matière de réseau.
Linux Initialement conçu pour fonctionner sur plateforme PC, puis a été porté (c'est-à-dire adapté) vers de nombreuses autres plateformes, telles que Macintosh, assistants personnels (PDA), voire des consoles de jeu vidéo ! Plusieurs distribution (l'assemblage d'un ensemble de logiciels autour d'un noyau Linux afin de fournir un système clé en main): RedHat ; Debian ; SuSe ; Knoppix ; Slackware ; Mandriva.
Linux : Fonctionnalités Gestion des ressources de l'ordinateur Multi-tâches Multi-utilisateurs Tâche1 Tâche2 Tâche3 T12 T22 T32 T11 T31 T21 Processeur T32 T22 T12 T31 T21 T11
Linux : Fonctionnalités Gestion des ressources de l'ordinateur Multi-tâches Multi-utilisateurs Gestion des données Accès aux unités de stockage (mémoire, disques durs, CD, etc.) Communication entre utilisateurs Courrier électronique, transferts de fichiers (ftp) Environnement de programmation Compilateurs C, éditeurs de textes (emacs, nedit), …
Connexion et déconnexion Procédure de connexion login: nom-utilisateur; password : mot-de-passe plus 7 caractères, au moins une lettre majuscule, un chiffre et un caractère de ponctuation Procédure de déconnexion commande : logout ou exit (invité de commande)
Organisation des fichiers La racine : Symbolisée par un "/", est la base de la hiérarchie des répertoires (Arborescence) La structure de l'arborescence est standard avec d'éventuelles extensions (définies par les distributions)
Organisation des fichiers Nom du dossier Commentaires /bin Regroupe les fichiers exécutables pour l'initialisation du système et les commandes « essentielles » /boot Contient le noyau et des fichiers nécessaires au démarrage /dev Contient les fichiers spéciaux servant pour communiquer avec les périphériques (disques, adaptateur réseau, cartes son etc...) /etc Contient les fichiers de configuration du système /home Contient l'ensemble des répertoires personnels des utilisateurs du système (le nom du répertoire correspondant au login de l'utilisateur) /lib Contient les bibliothèques (souvent des parties de programmes qui peuvent être commune à plusieurs programmes)
Organisation des fichiers /mnt Contient généralement l'ensemble des points de montage des périphériques (cd, disquette...) Cependant sous Debian on trouve souvent pour la disquette /floppy et pour le CD /cdrom au lieu de /mnt/floppy et /mnt/cdrom/optContient des applications supplémentaires /root Est le répertoire personnel de l'administrateur /sbin Contient les exécutables uniquement accessibles à l'administrateur /tmp Contient les fichiers temporaires du système /usr répertoire personnel des utilisateurs, Contient les programmes accessibles à l'ensemble des utilisateurs /var Contient les données de cache pour certaines applications (apt, cups...) ou encore les fichiers enregistrant les messages du système
Droits d’accès Classes d'utilisateurs User (l’utilisateur) le propriétaire du fichier (User) il est désigné par la lettre u Group (groupe) le groupe dans lequel appartient le propriétaire (Group) il est désigné par la lettre g Others (autres) regroupe tous les utilisateurs qui ne sont ni le propriétaire ni faisant partir du même groupe que le propriétaire ils sont désignés par la lettre o
Droits d’accès Types d'accès Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier donné : Read (r) : en lecture Write (w): en écriture eXecute (x) : en exécution Au niveau répertoire, ces droits signifient : Read : droit de lister les fichiers présents dans ce répertoire Write : droit de créer ou de détruire un fichier qui s'y trouve eXecute : droit de traverser ce répertoire 3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès différents
Droits d’accès Exemple : ls : Liste le contenu du répertoire courant {ou le(s) fichier(s) ou répertoire(s) spécifiés} u g o
Droits d’accès Modification des droits d'accès : La commande : chmod mode nom_fichier mode indique de quelle façon les droits d'accès doivent être modifiés son syntaxe est : [qui] op accès [qui] Indique les classes concernées par la commande (u, g et o). Si aucune classe n'est spécifiée, toutes les classes sont concernées op peut être : + pour ajouter des droits d'accès - pour enlever des droits d'accès Accès : spécifie les types d'accès (r, w et x)
Droits d’accès Exemple : perrot@von-neumann>ls -la rep3 total 3 drwx------ 2 perrot 512 Sep 21 21:30 . drwxr--r-x 8 perrot 512 Sep 21 21:30 .. -rw------- 1 perrot 50 Sep 21 21:30 fic1 perrot@von-neumann> chmod u-r rep3 rep3 unreadable
Commandes Interpréteur de commandes (shell) Le Shell est un programme qui permet l'exécution de commandes qui affichent en générale un résultat à l'écran. Syntaxe des commandes : $nom_commande [options] [arguments] nom_commande : ls, chmod options : commencent habituellement par le caractère - arguments : spécifient les objets (fichiers ou variables) Exemple : $ cd, pwd $ ls -l (l comme long, donne tous les attributs des fichiers) $ cat fic1 (visualisation d'un ou plusieurs fichiers) Manuel des commandes (man) commande : $ man nom_commande Exemple : $ man ls
Commandes Redirection des entrées/sorties : commande : nom_commande [options] [arguments] > fichier_sortie Exemple : $ ls -l > poub $ date > poub $ ls -l > poub et date >> poub nom_commande [options] [arguments] < fichier_entrée Exemple $ wc (imprime le nombre de lignes, de mots et de caractères fournis à l'entrée standard) $ wc < poub
Commandes Tube (<<pipe>>) ‘|’ permet de prendre la sortie standard d'une première commande et de la rediriger sur l'entrée standard d'une 2ème commande. La syntaxe : nom_commande1 [options] [arguments] | nom_commande2 [options] [arguments] Exemple : $ ls -l fic? | wc (raccourci de la série de redirections vu précédemment) $ ls /etc | more (permet de se déplacer dans un texte écran par écran) Scripts Un script correspond à une suite de commandes écrite dans un fichier. Les variables spéciales les plus utilisées dans l’écriture des scripts : # : nombre d’arguments de la ligne de commande (entre 0 et 9) * : liste contenant tous les arguments du programme shell ? : contient le code retour de la dernière commande exécutée (0 si erreur, 1 sinon)
Commandes Exemple 1: Exemple 2 : $ cat > script1 echo argument1 = $1 echo argument2 = $2 ^D $chmod +x script1 $./ script1 aa bb cc argument1 = aa argument2 = bb Exemple 2 : Écrire un script (copier) qui permet de copier un fichier (premier argument) dans autre (deuxième argument). $ cat > copier cp $1 $2 ^D $ chmod +x copier $./ copier fichier1 fichier2
Caractères spéciaux Caractère Description | Permet la communication par tube entre deux commandes. Exemple : ls -1 | file la commande de listage des fichiers du répertoire (ls) envoie chacun d'eux à la commande qui permet de connaître le type d'un fichier (file). # Introduit un commentaire. Donc tout ce qui suit ce caractère dans une ligne est ignoré par le Shell. Exemple : # ceci est un commentaire. \ Déspécialise le caractère qui suit. C'est-à-dire que si le caractère qui suit celui là est un caractère spécial alors le Shell l'ignorera. Exemple : echo Bon\*jour affiche bon*jour à l'écran. '...' Défini une chaîne de caractères qui ne sera pas évaluée par le Shell. Exemple : echo '*?&' affiche sur la sortie standard les caractères spéciaux *?& sans les interpréter. "..." Défini une chaîne de caractères dont les variables seront évaluées par le Shell. Exemple : echo "Vous êtes $USER." affiche Vous êtes + la valeur de la variable $USER. `...` Défini une chaîne de caractères qui sera interprétée comme une commande et remplacée par la chaîne qui serait renvoyée sur la sortie standard à l'exécution de la dite commande. Exemple : echo `pwd` >> liste.txt écrit à la fin du fichier le chemin et le nom du répertoire courant. Le caractère spécial utilisé s'obtient par la combinaison de touche : AltGr + 7 (c'est l'accent grave).
Caractères spéciaux Caractère Description * Métacaractère qui remplace n'importe quelle chaîne de caractères (même vide). Exemple : cp * DATA copie tous les fichiers dans le répertoire DATA. ? Métacaractère qui remplace un caractère quelconque. ; Permet de séparer plusieurs commandes écrites sur une même ligne. Exemple : cp *.c DATA; tar cvf data.tar DATA copie tous les fichiers d'extention .c dans le répertoire DATA et les archive dans le fichier data.tar. ( ) Regroupe des commandes. Exemple : (echo "Liste :"; ls ) > liste.txt écrit la chaîne Liste : et la liste des fichiers du répertoire courant dans le fichier liste.txt. & Permet le lancement d'un processus en arrière plan. Cela permet d'exécuter d'autres commandes pendant qu'un processus est en marche. Exemple : netscape&.
Variables d’environnement Permettent de garder en mémoire des informations importantes Exemple : le login de l'utilisateur (stocké dans la variable $USER) le répertoire de connexion de l’utilisateur ($HOME) la liste des répertoires dans lesquels aller chercher les exécutables des commandes externes ($PATH) La commande env affiche la liste de toutes les variables d'environnement du Shell avec leurs valeurs. le login de l'utilisateur (stocké dans la variable $USER) le répertoire de connexion de l’utilisateur ($HOME) la liste des répertoires dans lesquels aller chercher les exécutables des commandes externes ($PATH)
Variables d’environnement Variable=Valeur Description PWD=/home/hugo Stocke le chemin et le nom du répertoire courant. HOSTNAME= localhost.localdomain Nom du serveur. HISTSIZE=1000 Taille de l'historique. L'historique garde en mémoire les dernières commandes passées au Shell. Ces dernières sont accessibles successivement par la touche fléchée vers le haut. LANGUAGE=fr Suffixe de la langue du système. PS1=[\u@\h \W]\$ Chaîne apparaissant à l'invite du Shell.
Variables d’environnement Variable=Valeur Description USER=hugo Nom de l'utilisateur. DISPLAY=unix:0.0 Adresse du terminal d'affichage. SHELL=/bin/bash Chemin et nom du programme Shell (il en existe plusieurs différents). HOME=/home/hugo Chemin du répertoire de connexion. PATH=:/usr/local/bin: /bin:/usr/bin: /usr/X11R6/bin Liste des répertoires où chercher les exécutables des commandes externes.
Manipulation des fichiers Liste des fichiers (ls) $ ls fichier1 Création d'un fichier éditeur de textes ou directement sur l’interpréteur $ cat > fichier1 1ère ligne Visualisation d'un fichier (cat) $ cat nom_fichier Destruction d'un fichier (rm) fichier2 $ rm fichier1
Manipulation des fichiers Copie d'un fichier (cp) $ cp nom_fichier1 nom_fichier2 $ cp nom_fichier1 nom_répertoire Renommage ou déplacement d'un fichier (mv) $ mv ancien_nom nouveau_nom (renommage) $ mv nom_fichier nom_répertoire (déplacement) Création d'un répertoire (mkdir) $ mkdir nom_répertoire (possible uniquement si celui-ci est inexistant) Destruction d'un répertoire (rmdir) $ rmdir nom_répertoire (si le répertoire est vide) $ rm -r nom_répertoire (r comme récursif : effacement du contenu du répertoire et de lui-même) Déplacement dans les répertoire $ cd nom_répertoire (changement de répertoire) $ cd .. ()
Recherches Recherche d’une chaîne de caractères dans un fichier (grep) commande : grep [option] motif [nom_fichier] Exemple $ grep son fic [option] -v : affichent les lignes qui ne contiennent pas le motif ; -i : ignore la distinction minuscule/majuscule dans les comparaisons. $ grep ^[a-d] fichier1 obtenir tous les lignes commençant par les caractères compris entre a et d du fichier fichier1.
Recherches Recherche d'un fichier (find) commande : find liste_de_répertoires expression liste_de_répertoires est la liste des racines des arborescences à parcourir ; expression est une suite d'options exprimant les critères de sélection -name motif : vrai si le motif s'applique sur le nom du fichier courant ; -user nom_utilisateur : vrai si le fichier courant appartient à l'utilisateur nom_utilisateur ; -group recherche sur le groupe auquel appartient le fichier -mtime n : vrai si le fichier a été modifié dans les n derniers jours -ctime recherche par date de création du fichier …
Recherches Recherche des utilisateurs connectés (who) La commande who affiche les utilisateurs connectés sur la machine où l'on travaille. $ who Lartis ttyp1 Oct 23 22:25 (mistral.ERE.UMon) perrot ttyp3 Oct 24 08:52 (San-A.grbb.polym)