Rapport TP

Embed Size (px)

Citation preview

UNIVERSITE MOHAMED V ENSET RABAT

LP GEII Systme dexploitation ystme

Rapport des TP ralis par : BOUKHIRA Adil. BOUROUHOU Abdelhamid. Encadr par : Mr. JILBAB JILBAB.

Rapport des TP sur Unix

PrsentationCe document va regrouper les Rapports de tous les TPS que nous avons effectu 2 Durant le 5me semestre LP GEII en Systme dexploitation, pour effectuer ces TPs nous tions demand de matriser quelques base de Unix quon va dtailler ci-dessous. Ces TPs nous ont permis de dcouvrir un systme dexploration efficace il sagit du systme Linux.

Droulement de TPLes Travaux pratique sont effectus sur les Ordinateurs du laboratoire 4. avant de commencer les Tps, nous avons reus quelque commande de base et des informations sur le system dexploitation Linux. En utilisant Backtrack (ou Fedrora) nous avons arriv, a laide de diffrents options quils possdent, faire quelque testes et a voir quelque dmarche en Unix.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

Table des Matires

3

TP1 :1. 2. 3. 4. 5. 6. Lenvironnement Backtrack .... 4 Les redirections..... 4 Les tubes... 6 Les processus.... 6 Les filtres.. 8 Conclusion TP1............ 8

TP2 :1. 2. 3. 4. Introduction ......9 crire un programme sous VI..10 Test des filtres sous VI....10 Conclusion...13

TP3 :1. 2. 3. 4. 5. 6. 7. Vue gnral sur les processus14 Quelques notions14 Cration dun processus 1..15 Cration dun processus 2..16 Hritage..17 Copie de donnes ..19 Conclusion.20

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

TP1 Prsentation Environnement BacktrackObjectifs : dcouvrir lenvironnement de saisie de commande ; voir quelqueinstruction de gestion de dossier et des fichiers.

1- Prsentation Backtrack / Fedora : Backtrack est une distribution Linux, base sur Ubuntu depuis la version 4. 4 Elle est ne de la fusion de Whax et Auditor. Son objectif est de fournir une distribution regroupant l'ensemble des outils ncessaires aux tests de scurit d'un rseau. Fedora est une distribution Linux base sur le systme d'exploitation GNU/Linux servant de vitrine aux logiciels libres les plus rcents. Fedora est libre : tout le monde peut l'utiliser, la modifier et la distribuer. Elle est construite de par le monde par des personnes regroupes autour d'une communaut : le Projet Fedora.

Grace ces deux types de distribution Linux on peut excuter des commande Linux dune manire identique ; le plus importants cest arriver excuter et comprendre les instructions que nous allons aborder si dessous.

2- Les redirections :On excute le logiciel informatique VMware Workstation qui permet de crer une interface de distribution Linux. Premirement on doit sidentifier pour que notre systme dexploitation sache qui sadresse t-il !

Pour la version Backtrack le login/Password par dfaut est : root/toor. Notre premire tache consiste : Crer sous tmp un dossier TPGEII. Copier dans TPGEII le contenu de lib.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur UnixLinstruction ls va nous permettre de voir le contenu du dossier actuelle.

5 Remarque : Linstruction cd permet de changer le rpertoire. Mkdir permet de crer un rpertoire. Dans cette tape nous avons cre un rpertoire vide sous le nom TPGEII. Maintenant nous allons remplir par le contenu du dossier lib existant dans le dossier Racine.

La commande cp /dossier1/*.* /dossier2 permet de copier le contenu du dossier1 dans le dossier2. Un ls permet de voir le contenu du dossier TPGEII aprs le copiage :

Sur cette figure on a une partie du contenu de TPGEII.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur UnixOn dsigne par Redirections : remplacer les canaux par dfaut en redirigeant vers une autre commande ou un fichier. < > >> 2> &> redirige lentre standard redirige la sortie standard concatne la sortie standard redirige la sortie derreur 6 redirige la sortie standard et la sortie derreur

Exemples: La commande : ls . > liste permet de cre/crase le fichier liste et y dirige la sortie de ls . La commande cat permet la visualisation du contenu de fichier liste.

Le fichier liste sajout au contenu du dossier TPGEII.

La commande date >> liste permet dajouter la fin du fichier liste la sortie de date.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur UnixOn remarque que la date saffiche a la fin du fichier liste. La commande wc -l < liste permet lenvoie comme entre la commande wc le fichier liste. La commande wc sert faire un Comptage des mots, lignes ou caractres.

On reoit aprs cette instruction le nombre de ligne dans le fichier liste, qui correspond au nombre de fichier dans TPGEII.

7

3- Les tubes :Tube: | {Alt Gr + (6 ou -)} Sert connecter 2 commandes - Exemple : combien de fichiers dans le rpertoire courant ? Sans pipe: ls > temp ; wc -l < temp ; rm temp Avec un pipe: ls | wc l

4- Processus :On dfinie le processus comme objet dynamique qui reprsente un programme en cours dexcution et son contexte. On distingue : identification (pid). identification du proc. parent (ppid). Propritaire. Priorit.

Pour voir les processus en cours: ps :

Numro de processus Terminal associ temps CPU utilis commande excuteElabor par : BOUKHIRA Adil BOUROUHOU Abdelhamid

Rapport des TP sur UnixOptions de ps : -a liste tous les processus actifs :

8

-u

format daffichage long :

-x

inclut les processus sans terminal :

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

9

Pour tuer un processus: kill -9 .

5- Les filtres : Filtres simples :Cat affiche le contenu des fichiers passs en paramtres (par dfaut, stdin) options -b, -n, -v affiche page par page les fichiers passs en paramtres (par dfaut, stdin) h pour avoir le dtail des commandes recopie lentre std sur la sortie standard et dans le fichier pass en paramtre option -a

more

Tee

Les commandes : (on reprendra cette partie lorsque on introduira lditeur VI)

6- conclusion :Dans ce TP nous avons dcouvert quelque commande de base qui sert traiter des dossiers et des donn. Cest une sorte de base de Linux qui va nous permettre de se familiariser avec le systme Unix.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

TP2 Lditeur VIObjectifs : diter un fichier sous lditeur VI et effectuer quelque test autour de a !! 1- introduction :vi : est un diteur (en mode console) peu convivial certes, mais ultra puissant. 10 Appel de lditeur : vi fichier.txt

Modes ddition : le mode insertion : Les caractres taps s'insrent directement dans le texte en cours (I):

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

11

le mode commande : Les caractres taps sont considrs comme des commandes d'dition de texte (:). Quelque commande :

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix2- crire un programme sous VI : On lance lditeur VI en utilisant linstruction vi fic1.txt . On tape ensuite i afin dcrire notre texte. A la fin de la saisie on appui sur Esc et on met :wq pour sauvegarder et quitter , :w afin de sauvegarder seulement ou :q ! pour quitter si on a pas besoin du contenu Si on veut enregistrer le fichier sous un autre nom on tape :f fic2.txt comme a on aura deux fichier portant le mme contenu avec deux nom diffrent. Pour visualiser le contenu du fichier saisie soit on tape :v dans le VI, ou cat fic1 si on a quitter le VI.

12

3- Test des filtres sous VI :Comm : Nous allons crer deux fichier fic1 et fic2 dont il ya des lignes commun et des lignes diffrentes

Slection des lignes entre deux fichiers : Syntaxe: comm [-123] fic1 fic2 : 1 = lignes de fic1 ( fic2)

Elabor par :

2 = lignes de fic2 ( fic1) BOUKHIRA Adil BOUROUHOU Abdelhamid

Rapport des TP sur Unix

3 = lignes communes

13

Uniq : Dtruit les lignes conscutives dupliques. Options: -u (affiche les lignes "uniques"). -d (affiche les lignes "dupliques"). Exemple:

uniq -u fic1 :

uniq -d fic1 :

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

diff : Compare deux fichiers. Options: -b (ignorer les lignes vides). Exemple: diff fic1 fic2 14

cut : Slectionne uniquement certaines colonnes du fichier pass en paramtre. options: f : liste des champs garder. c : liste des colonnes garder. d : sparateur de champs.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unixtr : recopie stdin sur stdout en substituant des caractres. syntaxe: tr [-cds] [s1 [s2]] . options: -c (complment de s1). -d efface les car de s1. -s tte squence dans s1 est substitue par un car. unique dans s2. Exemple :

15

tr A-Z a-z < fic1 : Remplacer les caractres minuscule par les majuscule ;

grep recherche, dans le fichier pass en paramtre, les lignes vrifiant une expression rgulire donne. syntaxe : grep expr_reg [fichier] . Exemple : grep o fic1 Cherche dans fic toutes les lignes qui contiennent la lettre o

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unixgrep '^[A-Z]' fic1 cherche dans essai toutes les lignes qui commencent par une majuscule

16

4- Conclusion :Dans ce TP on a introduit lditeur VI qui est un diteur efficace qui permet dcrire un fichier de plusieurs extensions .txt ou .c

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

TP3 Gestion des processusObjectifs :Durant ce TP, nous aurons connatre en programmation C la gestion des processus, alors on a pu aborder: - La cration dun processus. - Lhritage des processus. - Faire la copie de donnes partir dun processus.

17

I-

Vue gnral sur les processus :

On peut dfinir un processus, comme tant un programme en cours d'excution, plus son contexte d'excution. Un processus peut tre caractris par : Espace d'adressage priv : Fonctionnement en mode utilisateur ou en mode noyau. Le mcanisme de cration des processus est le fork : o Un processus nouvellement cre est une copie exacte du processus qui l'a cr. o Organisation arborescente des processus. Un processus est identifi par un numro pid . Un processus interagit avec l'extrieur l'aide des E/S standards. Un processus peut communiquer avec un ou plusieurs processus l'aide de tubes de communication. Un processus peut mettre ou recevoir des signaux.

II-

Quelques notions :

1- Identification des processus : int pid = getpid() int ppid = getppid()} Ces deux primitives fournissent respectivement les numros du processus appelant et celui du processus Pre. 2- Identification de propritaires : int pid = getuid() int ppid = getgid() Fournissent respectivement le numro du propritaire, et celui du groupe. 3- Mise en sommeil dun processus : int sleep(int n) Suspend l'excution du processus appelant pour une dure de n secondes. 4- Terminaison dun processus : Un processus se termine lorsquil na plus dinstructions ou lorsquil excute la fonction : void exit(int statut) 5- Elimination dun processus : Llimination, dun processus termin, de la table ne peut se faire que par son pre, grce la fonction: int wait(int * code_de_sortie) Elabor par : BOUKHIRA Adil BOUROUHOU Abdelhamid

Rapport des TP sur UnixIII- Cration dun processus 1:Pour la cration dun processus on utilise linstruction : int fork () Cette primitive cre un nouveau processus (appel fils) qui est une copie exacte du processus appelant (Processus pre). La diffrence est faite par la valeur de retour de fork() ; , qui est gale zro chez le processus fils, et elle est gale au pid du processus fils chez le processus pre. Durant le TP, nous avons pris un programme comme exemple, et nous avons suivi les tapes suivantes : - Nous avons commenc par crer le fichier process.c laide de la commande vi process.c . - Aprs la cration du fichier on tape i pour crire sur le fichier, - Aprs que nous avons termin, nous avons cliqu echap puis la commande :wq pour sauvegarder le programme crit dans process.c . - Nous avons compil le programme en C par la commande gcc process.c . - A la fin, et aprs que le programme sest bien compil, nous avons vu le rsultat du programme, en utilisant la commande . / a.out . 1- Le programme utilis est le suivant :

18

2- La compilation du programme:

Puisque nous avons ni erreurs ni warnings on peut dire que le programme sest bien compil, implique pas de fautes sur le programmes. Elabor par : BOUKHIRA Adil BOUROUHOU Abdelhamid

Rapport des TP sur Unix3- Le rsultat :

Aprs la compilation nous avons pass la vrification de la sortie laide de la commande . /a.out 4- Conclusion : On retrouve bien que quand la fonction fork () retourne : - Un 0, nous avons le fils. - Sinon nous retrouvons le pre. 19

IV-

Cration dun processus 2 :

Afin de vrifier les valeurs retourn par linstruction fork () , nous avons modifi le premier programme pour mieux comprendre. 1- Programme utilis :

2- La compilation : Comme nous pouvons voir, nous avons que deux warrnings qui ninfluence pas le programme.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix3- Le rsultat : Le rsultat retrouv en sortie est comme suit :

4- Conclusion : Les rsultats retrouvs, nous pouvons les interprter comme suit :

20

On trouve que le rsultat et logique, c'est--dire quil est vrai.

V-

Hritage :

1- Programme utilis : Afin de bien comprendre la signification de lhritage au niveau de linformatique, on sest propos dtudier le programme suivant, et voir si le fils prend les proprits de son pre ou non.

On voit bien sur le programme que nous avons utilis des instructions nouvelles : - sleep qui ordonne au processus de dormir jusqu' n secondes. - wait nest quune simple attente. - Tms cest une structure qui contient 4 types : Elabor par : BOUKHIRA Adil BOUROUHOU Abdelhamid

Rapport des TP sur Unixo tms_utime: contient le temps CPU coul en excutant les instructions du processus appelant. o tms_stime: contient le temps CPU pass dans les fonctions systme excutes pour le compte du processus appelant o tms_cutime: contient la somme des valeurs de tms_utime et tms_cutime pour tous les processus fils termins ayant t attendus. o tms_cstime: contient la somme des valeurs de tms_stime et tms_cstime pour tous les processus fils termins ayant t attendus. Nice cest une instruction qui nous permet de dfinir la priorit dun processus par rapport un autre il varie de [-20, 20], dans notre cas cest 10 . 2- La compilation : 21

-

Aprs la compilation on peut remarquer que nous avons ni erreurs ni warnings, alors notre programme peut tre excut sans problme. 3- Le rsultat : Le rsultat trouv et reprsent comme suit :

4- Conclusion : Sur le rsultat, on constate bien que le fils a hrit de son pre les mmes proprits sauf quau niveau de clics en mode utilisateurs, on trouve une diffrence, et a revient au fait que le pre est le processus principale du quel le fils drive.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur UnixVI-

Copie de donnes :

Dans cette partie, on tudiera le copiage de donnes en excutant un processus pre-fils , pour ceci on mule le programme ci-dessous. 1- Programme utilis :

22

2- La compilation :

On remarque que nous avons deux warnings mais le programme a peut marcher, alors on peut voir la sortie. 3- Le rsultat : Encore une fois, et grce linstruction ./a.out , on peut voir la sortie ou bien le rsultat du programme que nous avons compiler.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid

Rapport des TP sur Unix

23 4- Conclusion : Nous remarquons daprs le rsultat que : - Le pre et le fils ont les mmes adresses mmoires. - Les valeurs dans le fils sont diffrentes de celles dans le pre mme sils portent le mme nom des variables m , et n . Alors on peut dduire quon peut utiliser un espace mmoire pour faire de diffrentes copies de donnes comme si on le fait dans plusieurs places, il suffit de switcher avec le programme du pre vers les fils. Un inconvnient, cest que si le pre est tu, on aura plus de donnes par contre si un fils est mort on peut rcuprer nos donnes.

VII- Conclusion gnral:Durant le TP, nous avons pu mettre la main sur plusieurs principes de gestion des processus en UNIX par le langage C, comme la cration, lhritage, et le copiage de donnes, mais il reste encore savoir comment sen servir dans de diffrentes applications et de connatre plus de principes sur UNIX quon na pas pu aborder au TP. Et a sera notre projet.

Elabor par :

BOUKHIRA Adil

BOUROUHOU Abdelhamid