[PDF] Systèmes dexploitation et programmation Shell





Previous PDF Next PDF



Initiation `a Unix Cours 2 - Programmation Shell

Programmation shell: combinaison de commandes au sein d'un script dans le but d'automatiser certains tâches. ? Un Script shell correspond `a un fichier 



Programmation système - Shell et Commandes UNIX

Département des Sciences Informatiques. Shell Script shell Fichiers d'initialisation. Programmation syst`eme. Shell et Commandes UNIX. Tuyêt Trâm DANG NGOC.



Cours Shell Unix Commandes & Programmation

Apparition des premiers clones Unix comme Linux et FreeBSD. programme binaire (compilé) soit d'un script (shell



Linux - Programmation Shell script - AELION

Linux - Programmation Shell script. 3 j (21 heures). Ref : NUXS. Public. Administrateurs développeurs



LA PROGRAMMATION SHELL

echo “voici un script bash“ … De même que tout autre programme Shell peut également prendre des arguments dans un fichier. Les scripts (programmes Shell) 



TP: Programmation Shell

Exercice N°4 : Créez la commande copier. La commande reçoit en argument deux noms de fichiers la source et la destination. Le script se termine et 



Écrire des scripts shell

9 déc. 2020 Par exemple dans un fichier premierscript.sh on peut écrire une première instruction à exécuter. 1 echo "Hello World". Pour que notre script ...



Le shell Principales commandes

d'un fichier appelé shell script. Il existe aujourd'hui plus d'une trentaine de shells différents mais deux grandes familles dominent :.



Linux - Programmation Shell Bash

2 févr. 2022 -. Approfondir les notions de bases de Linux. -. Enrichir votre corpus de commandes. -. Développer des scripts Shell. Public : Utilisateurs ...



Systèmes dexploitation et programmation Shell

Systèmes d'exploitation et programmation Shell Composant d'un OS : Linux. Rôle du noyau Linux : mettre les ressources offertes par le matériel à.



[PDF] Cours Shell Unix Commandes & Programmation - X-Files

x Le fichier peut être exécuté depuis la ligne de commande s'il s'agit soit d'un programme binaire (compilé) soit d'un script (shell perl ) Répertoire r



[PDF] LA PROGRAMMATION SHELL - Technologue pro

LA PROGRAMMATION SHELL Objectifs spécifiques - Se familiariser avec l'écriture de Script Shell - Résolution de problèmes aves des scripts shell



[PDF] Initiation `a Unix Cours 2 - Programmation Shell - Université dOrléans

Programmation shell: combinaison de commandes au sein d'un script dans le but d'automatiser certains tâches ? Un Script shell correspond `a un fichier 



[PDF] Le shell Principales commandes - IGM

Non interactif : le shell lit un ensemble de commandes à partir d'un fichier appelé shell script Il existe aujourd'hui plus d'une trentaine de shells



Programmation Shell Linux cours à télécharger en pdf - CoursPDFnet

Télécharger cours de la Programmation Système En C sous Linux (Debian et Ubuntu) fichier PDF par Rémy Malgouyres - fichier de type pdf et de taille 374 32 Ko 



[PDF] Programmation Shell Lignes de commandes et - limsi

Lignes de commandes et programmation Shell Dans le cadre du cours utilisation d'un UNIX : Linux fichiers (dans le répertoire /proc sous Linux)



[PDF] Programmation système - Shell et Commandes UNIX - ETIS

Fourni le plus souvent avec Linux Zero Shell zsh shell avec beaucoup de fonctionnalités : typage substitution et complétion tr`es poussées



[PDF] Shell Bash - Supports formatux

24 sept 2019 · Comme dans tout langage de programmation le script shell utilise des variables Elles servent à stocker des informations en mémoire pour 



Cours Linux Shell Bash Niveau débutant

Shell bash – niveau débutant introduction les distributions cours linux shell bash niveau débutant pdf actuelles de gnu/linux offrent à l'utilisateur un 

:

Systèmes d"exploitation et programmation Shell

Marc Silanus

ma rc.silanus@univ-avignon.fr

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 1 / 44

Le système d"exploitation - Linux

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 2 / 44 comparaison des solutions matérielles Microcontroleur : faibles ressources matérielles, accès direct Microprocesseur : Matériel trop complexe pour une gestion directe

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 3 / 44

Définition d"un système d"exploitation

Pour l"utilisateur :

interface fournie avec l"ordinateur, le smartphone...

Plus général :

Logiciel qui gère le matériel et fournit un environnement pour les programmes applicatifs en exécution

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 4 / 44

Composant d"un OS : Linux

Rôle du noyau Linux : mettre les ressources offertes par le matériel à

disposition des applications de l"espace utilisateur.Lorsqu"il exécute le code du noyau, le processeur est en mode

superviseur (privilégié).Pour exécuter du code en espace utilisateur, il passe en mode protégé

(non-privilégié).

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 5 / 44

Abstraction des périphériques

Masquer la complexité matérielle

Simplifer les accès au matériel

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 6 / 44

Abstraction des périphériquesLes applications de l"espace utilisateur communiquent avec les périphériques

en réalisant des opérations (lecture, écriture paramétrage...) sur des pseudo-fichiers

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 7 / 44

Exemple : utilisation du port sérieUtilisateur : fonctions open() close() write() read() python par exempleEchange avec le matériel au moyen d"un pseudo-fichier /dev/ttySx

Appel système par le noyau pour lire le buffer de réception Si des données sont présentes => lecture immédiate Sinon, invocation de l"ordonanceur pour endormir la tâche de lecture L"arrivée d"un caractère déclenche une interruptions matérielles

L"ordonnanceur peut réveiller la tâche

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 8 / 44

Exécution des tâches

Plusieurs stratégies :Monotâges (comportement typique microcontroleurs/API)

Multitâches : Nécessite un ordonnaceur

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 9 / 44

L"ordonnancement

Définition :

Tâche de sélection d"un processus en attente dans la liste des processus prêts et d"allocation du CPU pour ce processus

Il existe plusieurs modes d"ordonnancement :Temps partagé (time sharing system): comportement par défaut

sur les O.S. comme LinuxTemps réel (realtime scheduling): suivant des algorithmes comme Round Robin ou Fifo basés sur des priorités entre tâches ou Earliest Deadline First utilisant des temps d"expiration des tâches.

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 10 / 44

Etat des processus

scheduler(odonnanceur) : sélection du processus à exécuter

CPU partage son temps entre plusieurs processus

3 états pour un processus : ready, running, blocked.

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 11 / 44

Processus et threads

Definition :

Les processus sont des espaces de mémoire disjoints, au sein desquels s"exécutent un ou plusieurs threads

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 12 / 44

Processus et threads - la mémoire

Le tas : commun à tout les threads d"un même processus La pile : chaque thread et processus possède sa propre pile

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 13 / 44

Processus et threads - la mémoire

Tas: Allocations dynamiques. Python : variables globales et listesPile: Variables locales, paramètres de fonctions, valeur et adresse de

retour des fonctions

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 14 / 44

Mémoire virtuelle

Lorsqu"il est exécuté, un processus dispose de toute la mémoire disponible.

Oui mais c"est de la mémoire virtuelle !

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 15 / 44

Mémoire virtuelle

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 16 / 44

Mémoire virtuelle

Adresse virtuelle :

Adresse générée par la CPU et vue par le programme utilisateur

Adresse physique :

Adresse vue par l"unité de mémoire, c"est à dire chargée dans le registre

d"adresse mémoire de la mémoireUnité de gestion mémoire (MMU) :Dispositif matériel intégré au microprocesseur associant les adresses logiques

et physiquesMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 17 / 44

Fonctions assurées par la MMU

Translation d"adresses :

Segmentation : subdivision des espaces d"adressage d"après leur fonctionnalités.Pagination : subdivision des espaces d"adressage des tâches en petites tranches de taille fixeProtection : Chaque programme reste confiné dans son espace mémoire

Mémoire virtuelle :création d"un espace d"adressage important incluant la mémoire physique et

une partie de la mémoire secondaire (>mémoire physique)Swapping : des portions de la mémoire sont rapatriées et envoyées vers l"espace de stockage secondaire.

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 18 / 44

Python et la gestion de la mémoire

Observation dans Python tutor

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 19 / 44

Python et la gestion de la mémoire

Adresse d"une variable

a 2 hex(id(a))

0x5617d6cfe440 Contenu d"une adresse

import ctypes ctypes.cast(

0x5617d6cfe440

, ctypes.py_object).value 2

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 20 / 44

Communication entre processus : IPC

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 21 / 44

Modularité du noyau Linux

Image du noyau (kernel image) :un seul fichiercréé après édition de liens des différents fichiers objetsChargé en mémoire au démarrage. Disponibilité des fonctionnalités incluses dès le démarrage du noyau Modules :compilation de certains éléments (pilotes de périphériques, systèmes de fichiers...)Chargement dynamique par le noyau en fonction des besoins Stockage de chaque module dans un fichier séparé (*.kodans /lib/modules)Pas d"accès lors du démarrage initial Allègement du noyau, durée de la séquence de boot réduite

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 22 / 44

Configuration et compilation du noyau

make menuconfig

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 23 / 44

Configuration et compilation du noyau

make menuconfig makeMake : A saisir dans le répertoire racine des sources du noyau Option-j pour accélérer la compilation en utilisant plusieurs coeurs du processeurGénère :

vmlinux: image non compressée du noyau mais non bootablearch//boot/*Image: image finale et bootable, généralement

compressée, du noyau (bzImagepourx86,zImagepourARM...)Tous les modules du noyau, répartis dans l"arborescence des sources,

sous la forme de fichiers*.koMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 24 / 44

Shell

Shell :

Couche logicielle qui fournit l"interface utilisateur d"un système d"exploitation

Le shell d"un système d"exploitation peut prendre deux formes distinctes :Interface en ligne de commande (CLI)

Shell graphique fournissant une interface graphique pour l"utilisateur (GUI, pour Graphical User Interface).

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 25 / 44 Shell

Interpréteur de commande

Tout utilisateur est associé à un type de shell (/bin/bash)Le prompt indique :

Ile nom d"utilisateur

Ile nom de la machine

Ila localisation dans le système de fichier

Iles privilèges (superutilisateur :#, utilisateur :$)commandes : fichiers executables généralement siutés dans/binAccès au manuel :manAide sur une commande :help Marc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 26 / 44

ShellExécutions de plusieurs script au démarrage pour définir l"environnement de

l"utilisateur :/etc/profile: commun tous les utilisateurs/etc/profile.d/*.sh: si le dossier existe$HOME/.profile: profil personnel de l"utilisateur$HOME/.bashrc: fonctions et alias personnel. Exécuté à chaque

ouverture d"un terminal./etc/bash.bashrc: alias globaux et définition du prompt $P1Marc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 27 / 44

Système de fichiers

Support matériel : Disque dur, flash, SDcard, microSD, ...

Organisation matérielle minimum :

Le Master Boot Record est situé dans les 1er secteurs du disque

Il est constitué de 2 parties :

ILa table des partitions

ILe programme d"amorçage qui charge le noyau du systèmePartition système contient :

IL"image du noyau

ILes fichiers nécessaires au lancement du systèmeLa partition données contient le systèmes de fichiers

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 28 / 44

Système de fichiers

Chaque système est associé à un format de données

Sous Linux

Iext2, ext3, ext4, jfs, xfs, ...

Iext2 non journaliséSous Windows

Ifat, fat32, ntfs

Toujours préférer un système de fichier " journalisé »Chaque séquence de lecture/écriture est d"abord inscrite dans un

journal avant d"être effectuéeSi le système se bloque pendant la séquence, elle sera achevée après le

redémarrageMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 29 / 44

Système de fichiers

/dev: Fichiers spéciaux de lien avec les périphériques matériels

Types de bus :hd: Périphériques IDEsc: Périphériques SCSIsd: Périphériques SATAExemples :

/dev/hda1: Partition 1 sur le 1er disque IDE/dev/sdb2: Partition 2 sur le 2ème disque SataMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 30 / 44

Système de fichiers

Rep Description

/Répertoire "racine" /bootContient le noyau Linux et l"amorceur /binContient les exécutables de base,cp,mv,ls, ... /devContient des fichiers spéciaux liés aux périphériques matériels /etcContient les fichiers de configuration du système /homeContient les fichiers personnels des utilisateurs /libContient les librairies et les modules du noyau (/lib/modules) /mediaContient les points de montage des lecteurs cd, dvd, clef usb, ... /procContient une "image" du système : instantané de son état /rootRépertoire personnel du superutilisateur /sbinContient les exécutables destinés à l"administration du système /tmpContient des fichiers temporaires utilisés par certains programmes /usrContient les exécutables des programmes, les sources de linux, ...

/varContient les fichiers de maintenance du système (log)Marc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 31 / 44

Système de fichiers

Se déplacer dans les dossiers

$ cd $ cd ~/depuis/mon/dossier/perso $ cd /chemin/absolu $ cd chemin/relatif $ cd ..

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 32 / 44

Système de fichiers

Lister le contenu d"un dossier

$ ls

Avec toutes les infos

$ ls -l les fichiers cachés aussi $ ls -al

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 33 / 44

Système de fichiers

Créer un dossier

$ mkdir nom_dossier

Supprimer un dossier vide

$ rmdir nom_dossier

Supprimer un dossier et tout ce qu"il contient

$ rm -r nom_dossier

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 34 / 44

Système de fichiers

Déplacer/renommer

$ mv dossier_src dossier_dest copier un dossier vide $ cp dossier_src dossier_dest copier un dossier non vide $ cp -r dossier_src dossier_dest

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 35 / 44

Système de fichiersTout fichier appartient à un propriétaire unique et à un groupe d"utilisateurs

$ -rw-r--r-- 1 user user 445 juin 12 11:22 ieee754.py $ drwx------ 3 root root 4096 févr. 10 01:18 root $ crw-rw---- 1 root dialout 4, 65 juin 21 15:06 ttyS0type de fichier : "Sous Unix tout est fichier"

b: pseudo fichier périphérique binairec: pseudo fichier périphérique caractèresd: dossierAutorisations

r: autorisé à lirew: autorisé à écrirex: autorisé à exécuterMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 36 / 44

Système de fichiers

commandes associées $ chown propriétaire fichier $ chgrp propriétaire fichier $ chmod +x fichier $ chmod 755 fichier

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 37 / 44

Système de fichiers

Créer un fichier

$ echo "du texte" > fichier $ echo "du texte" >> fichier $ vi fichier $ nano fichier $ gedit fichierlire un fichier $ cat fichier $ less fichier $ vi fichier $ nano fichier $ gedit fichier

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 38 / 44

Système de fichiers

Déplacer/renommer

$ mv fichier_src fichier_dest

Copier

$ cp fichier_src fichier_dest

Supprimer

$ rm fichier

Rechercher un fichier

$ find /depuis -name fichier

Rechercher dans un fichier

$ grep a_trouver dans_fichier

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 39 / 44

Programmation Shell

Interaction

$ echo "Hello word !"

Hello word !

$ read ma_var n?importe quoi $ echo $ma_var

n?importe quoiMarc Silanusma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 40 / 44

Programmation Shell

Script bash

fichier texte contenant une suite de commandes shell s"exécute comme une commande unique peut définir et utiliser des variables on peut lui passer des paramètres gère les entrées/sorties et les redirections possède des structures conditionnelles et itératives on peut définir des fonctions internes Véritable langage de programmation interpété

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 41 / 44

Programmation Shell

Exemple

#!/bin/bash # script bonjour # affiche un salut à l?utilisateur qui l?a lancé # variable d?environnement $USER : nom de login echo ---- Bonjour $USER ----- # l?option -n empêche le passage à la ligne # le ; sert de séparateur des commandes sur la ligne echo -n "Nous sommes le " ; date # recherche $USER en début de ligne dans passwd # puis extraction de l?uid au 3ème champ, et affichage echo "Ton numéro d?utilisateur est : "\ $(grep "$USER" /etc/passwd | cut -d: -f3)

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 42 / 44

Programmation Shell

exécution $ bash script

Avec les bons droits :

$ chmod u+x script $ ./script

En faire une commande :

$ mv script ~/bin # Créer le dossier avant ! $ export PATH=~/bin:$PATH # pour le shell courant $ echo PATH=~/bin:$PATH >> $HOME/.bashrc # permanent

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 43 / 44

Crédit images

Christophe Blaess :

Ingéniérie et formation sur les sytèmes libres http://https://www.blaess.fr/christophe/

Marc Silanus

ma rc.silanus@univ-avignon.frSystèmes d"exploitation et programmation Shell 44 / 44quotesdbs_dbs6.pdfusesText_11
[PDF] incipit de la peste ouverture

[PDF] incipit la peste texte

[PDF] exercice corrigé programmation shell

[PDF] programmation bash pdf

[PDF] prêche du père paneloux commentaire

[PDF] diabète au maroc 2016

[PDF] note d'intention projet

[PDF] la princesse de clèves livre audio

[PDF] la princesse de clèves extrait

[PDF] princesse de montpensier lettres volées

[PDF] publicité radio

[PDF] la note de synthèse exercices corrigés

[PDF] lettres volées montpensier

[PDF] littérature américaine contemporaine thèmes

[PDF] portrait sculpté