SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                              Cycle ingénieur Logiciel et Système Informatique




Projet de Fin de Module
                               PROGRAMMATION SYSTEME




    LSI-SHELL
Réalisé par :                                             Proposé par :

ASSAOUY Samia.

LASRI Ayyoub.                                                      Dr. El AMRANI Chaker.

ZIANE Bilal.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                                             Cycle ingénieur Logiciel et Système Informatique




Sommaire

INTRODUCTION ............................................................................................................................................. 4


CONTEXTE DU PROJET .................................................................................................................................. 5


   Analyse du besoin : ................................................................................................................................... 5
   L’Object du projet : ................................................................................................................................... 5
   Technologies et langage :.......................................................................................................................... 5


CARACTERISTIQUES GENERALE DU SYSTEME UNIX ...................................................................................... 6


   Evolution : ................................................................................................................................................. 6
   Philosophie :.............................................................................................................................................. 7
   Caractéristiques : ...................................................................................................................................... 7
   Le Noyau : ................................................................................................................................................. 8
   Le SHELL : .................................................................................................................................................. 9
   Différentes SHELL : .................................................................................................................................... 9


UTILISATION DU SHELL................................................................................................................................ 10


   Introduction : .......................................................................................................................................... 10
       -      SHELL ? ........................................................................................................................................ 10
       -      Utilisateurs ? ............................................................................................................................... 11
   Fonctionnement du SHELL: ..................................................................................................................... 12
   Mécanisme d’interprétation du SHELL : ................................................................................................. 12
       -      Définition : .................................................................................................................................. 12
       -      PROMPT : .................................................................................................................................... 12
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                                             Cycle ingénieur Logiciel et Système Informatique


       -      Rechercher la commande : ......................................................................................................... 13
       -      Exécution d’une Commande : ..................................................................................................... 13
       -      Redirection : ................................................................................................................................ 14
       -      Lancement en arrière plan : ........................................................................................................ 14




CONCEPTION ET ANALYSE........................................................................................................................... 15


   Analyse fonctionnelle :............................................................................................................................ 15
   -       Spécifications : ................................................................................................................................ 15
       -      Acteurs : ...................................................................................................................................... 15
   Analyse Organique : ................................................................................................................................ 15
       -      Spécification des Classes : ........................................................................................................... 15


MISE EN ŒUVRE ET IMPLEMENTATION ..................................................................................................... 16


   Technologies utilisés : ............................................................................................................................. 16
   Détails sur les fonctions prédéfinis utilisés : ........................................................................................... 16
   Détails sur les fonctions implémentés : .................................................................................................. 18


CONCLUSION............................................................................................................................................... 20
Captures d’écran: ........................................................................................................................................ 22
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                         Cycle ingénieur Logiciel et Système Informatique




INTRODUCTION


Interpréteur de commandes des Systèmes GNU/LINUX SHELL est devenu pour
les administrateurs système, un outil incontournable.
Ce rapport présente une description du projet de fin de module programmation
système un SHEL personnalisé.
Dans ce cadre, nous tenons à donner une présentation de l’environnement
GNU/LINUX, ses caractéristiques et son noyau en expliquant la communication
entre l’utilisateur et le système (gérée par le noyau) via l’interpréteur des
commandes le SHELL.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique




CONTEXTE DU PROJET



Analyse du besoin :

  Notre premier travail a consisté à bien analyser le sujet avant de se lancer dans
l’implémentation.

Nous avons, dans un premier temps, commencé par étudier le SHELL GNU/Linux
pour récolter le maximum d’informations possibles.



L’Object du projet :

L’objet de notre projet c’est la réalisation d’un SHELL personnalisé, qui offre les
fonctionnalités suivantes :

    Attendre jusqu’à ce que l’utilisateur fournis une commande valide.
    Interprétation des commandes.
    Communication entre les différentes commandes via les tubes de
     communication.
    Redirection des entrées et des sortie de l’exécution de la commande.



Technologies et langage :

Système d’exploitation :               UBUNTU.

Langage de programmation :            Langage C.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique




CARACTERISTIQUES GENERALE DU SYSTEME UNIX


Evolution :

Le système d’exploitation UNIX a commencé en 1969 aux laboratoires de
recherche en informatique d’AT&T pour répondre aux besoins des ingénieurs de la
société que ken Thompson a écrit le système Unix, un système interactif qui met
l’accent sur les utilitaires de développement logiciels, partage de fichiers.

Le nom UNIX est attribué par opposition au système Multics. La première
évolution interne marquante d’Unix a été sa réécriture ,par Ken Thompson et
Denis Ritchie en langage C, lequel a été inventé pour la cause en 1971. En
1975, le système Unix est distribué aux universités et aux centres de
recherches.

 La principale université qui va travailler sur Unix est l’université de Berkeley, qui
va produire ses propres versions appelées BSD pour Berkeley Software
Distribution.

En 1979, les Bell Labs sortent leur version, la première à être diffusée dans le
monde industriel.

On peut dire qu’elle est à l’origine du développement du marché Unix.

Unix. Plusieurs facteurs vont alors jouer pour canaliser et recentrer l’offre Unix: la
complexité croissante des systèmes et l’action des utilisateurs.

(Sun Microsystems, Digital...) et lui permettre d’entrer dans le monde industriel.

Le début des années 90 est marqué par le regroupement des constructeurs au
sein de deux organisations: l’U.I. (Unix International) créée à partir de
l’accord entre A.T.&T. et Sun Microsystems d’une part et l’O.S.F. D’autre
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique



part. Le premier accord a comme objectif la convergence entre les différentes
versions.



Philosophie :

Conçus à l’origine comme un environnement de développement, Unix est
aujourd’hui un système complet intégrant un grand nombre de fonctionnalités
organisées en couches logicielles. en dehors de cette structure modulaire,
Unix se caractérise également par les concepts introduits en matière de gestion
de fichiers et de gestion des processus.



Caractéristiques :


Unix est le système d'exploitation des grands serveurs par excellence.

Multitâche, multiutilisateur, multiplateforme, réparti et sécurisé.

Ecrit en langage C, permettant ainsi une portabilité sur la plupart des architectures.

Sa popularité est, en fait, due à sa conception modulaire avec des interfaces
bien définies ainsi que la disponibilité d’outils simples qui coexistent entres elles.
Alors que les autres systèmes d’exploitation ressemblent à des ensembles
monoblocs et relativement fermés, la conception du système repose sur
différents niveaux bien distincts: le noyau, un interpréteur de commandes (le
SHELL), des bibliothèques et un nombre important d’utilitaires.

Le système Linux possède notamment les avantages suivants :
   Le support des standards de l'internet, c'est-à-dire des protocoles TCP/IP, la
    famille de protocoles utilisée sur Internet. Il est donc un moyen gratuit de créer
    un réseau local, de se connecter à Internet et de mettre en place un serveur.
   Une sécurité accrue dû à la transparence de son code source et de la réactivité de
    la communauté lors des annonces de vulnérabilités.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique



   Un cloisonnement des espaces mémoire et de l'espace disque couplé à une
    gestion pointue des droits permettant de gérer un grand nombre d'utilisateurs
    avec un niveau de risque minimal.
   Un noyau entièrement configurable en fonction du matériel de la machine sur
    laquelle le système est installé afin de maximiser les performances.




Le Noyau :

Linux est architecturé autour d'un noyau (KERNEL) chargé de prendre en charge
le matériel. On appelle distribution l'assemblage d'un ensemble de logiciels autour
d'un noyau Linux afin de fournir un système clé en main. Le noyau d'une
distribution peut-être mis à jour afin de permettre la prise en compte de matériels
récents, toutefois cette manipulation consistant à recompiler le noyau est délicate
car elle nécessite un certain niveau de connaissance du système et du matériel. La
recompilation du noyau est à réserver aux spécialistes ou bien aux utilisateurs prêts
à rendre inutilisable leur système dans le but d'apprendre.

La plupart des distributions proposent également une installation graphique qui
leur est propre ainsi qu'un système de gestion de paquetages permettant d'installer
automatiquement des logiciels en gérant les dépendances (les logiciels sous Linux
sont parfois liés à des librairies externes ou s'appuient sur d'autres logiciels).
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                               Cycle ingénieur Logiciel et Système Informatique



Chaque distribution possède ses avantages et ses inconvénients. En effet si
certaines sont plus adaptées à des débutants et proposent des interfaces graphiques
évoluées, d'autres privilégient la sécurité ou l'évolutivité. Les distributions les plus
connues sont :
   La distribution RedHat ;
   La distribution Debian ;
   La distribution SuSe ;
   La distribution Knoppix ;
   La distribution Slackware ;
   La distribution Mandriva.




Le SHELL :



        Le SHELL, comme le normalien, ne connaît que deux états :

         le travail ;
         l'inactivité.

     Le SHELL, une fois lancé, est inactif : il attend qu'on lui donne des ordres.
Quand on lui en donne un, il l'exécute ; et quand il a terminé, il retourne à son état
d'inactivité, en attente d'un nouveau commandement.


Différentes SHELL :

Il y a deux familles de SHELL :

         le Bourne-SHELL (sh) :
             o z-SHELL (zsh).
             o Bash.
             o ksh.
             o le c-SHELL (csh) :                  tcsh.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique




UTILISATION DU SHELL

Introduction :

   - SHELL ?

On parle souvent de Linux en disant que c’est le paradis des fanas de la « ligne de
commandes ». En effet, sous Linux, ou dans tout système Unix, il est tout à fait
possible de gérer le système uniquement avec des commandes écrites par
l’utilisateur ou par un programme, script …

Le SHELL est donc l’interface entre la commande et le noyau linux. C’est en fait
la couche la plus externe du système, celle qui entoure le noyau d’où son nom de
« SHELL » ou « Coquille ». Ainsi, lorsque l’utilisateur tape une commande dans
une console, le SHELL l’interprète et le transmet au noyau Linux. Pour interagir
avec le noyau, il vous faut donc le SHELL et un terminal, une console virtuelle ou
une autre interface graphique.

Pour expliquer ceci autrement, le SHELL est un exécutable capable d’interpréter
les commandes, de les transmettre au noyau et de retourner la réponse. Voici un
schéma qui illustre la place du SHELL dans le système:



On voit que le SHELL est bien à l’interface entre le noyau Linux et l’utilisateur par
le biais d’une console, d’une application ou entre le noyau et une application, un
script.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique




   - Utilisateurs ?


En résumé, à un utilisateur correspond les renseignements suivants:

• un nom de login,

• un mot de passe,

• un iud,

• un ou plusieurs groupes de travail,

• un répertoire HOME,

• un SHELL par défaut.

    L’utilisateur de base:

Il utilise les applicatifs mis à sa disposition, il «customise» les applications, il
possède des droits d’accès traditionnels, il doit veiller à utiliser les ressources
(disques, CPU,...) avec modération afin de ne pas surcharger le système.

    Le programmeur:

Il possède les mêmes droits que l’utilisateur de base, il a en plus la possibilité de
programmer ses propres applications, il utilise donc dans ce cas, les outils de
développement installés sur le système, il a accès aux compilateurs et à
l’interpréteur.

    L’administrateur système:

Il possède les mêmes droits que le programmeur. Son rôle est plus grand: il gère le
système, il possède des droits d’accès étendus (il peut descendre dans toutes
les arborescences de son système), il crée des comptes pour tous les
utilisateurs de son serveur, il veille au bon fonctionnement général du
système, il installe les outils nécessaires à la communauté, il surveille et
régularise la charge du système et des ressources de la machine.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique



Fonctionnement du SHELL:

    New Line correspond au retour à la ligne (généralement la touche Entrée).




Mécanisme d’interprétation du SHELL :
   - Définition :


Le SHELL est l’interpréteur de commandes, il n’est pas inclus dans le noyau
d’Unix. Quand un utilisateur rentre dans le système, le SHELL par défaut qui lui a
été donné, est automatiquement lancé et toute la session se déroule en fait
dans ce SHELL. Lorsque cet utilisateur tape une commande, le SHELL la lit,
l’interprète et lance son exécution. La ligne tapée peut ne comporter qu’une seule
commande mais peut aussi être complexe.

   - PROMPT :


Le SHELL indique qu’il est prêt à recevoir une nouvelle commande en affichant le
prompt (par défaut «$»). Toute commande se termine par un passage à la
ligne, dans certains cas, le passage à la ligne à une signification particulière
pour la commande tapée et n’est donc pas considéré comme un terminateur de
commande. Dans ce cas, le SHELL affiche le deuxième prompt (par défaut
«>») pour indiquer qu’il attend la suite de la commande.

Il est aussi possible de taper plusieurs commandes sur la même ligne en les
séparant par un «;».
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique



   - Rechercher la commande :


Si la commande tapée correspond à une commande interne du SHELL, cette
commande est exécutée à l’intérieur de ce SHELL. Sinon, si la commande
correspond à une fonction (cf. partie sur le langage de programmation) elle est elle
aussi exécutée à l’intérieur du SHELL.

Dans tous les autres cas, la commande se réfère à un fichier de l’arborescence. Si le
nom ne comporte pas de caractère «/», le SHELL examine la variable PATH pour
rechercher le répertoire où ce trouve cette commande. Un nouveau SHELL est
alors créé pour exécuter cette commande.

Si la commande est un script SHELL, le SHELL lit toutes les lignes du script et les
exécutent. Si la commande appelle un fichier binaire exécutable, le code et les
données associées du processus du deuxième SHELL sont remplacés par le code et
les données associés à la commande.



   - Exécution d’une Commande :


La première chose c’est de lire la commande, l’analyser si elle est valide, et ensuite
l’exécuter

          Pour exécuter une commande son nom suffit généralement. Cela veut
         dire dans ce cas que c’est une commande interne ou qu’elle est localisable
         dans le chemin d’exécution de l’utilisateur (PATH).

          Dans le cas contraire, il faut :

               donner le chemin absolu de la commande
               ou se trouver dans le répertoire où se trouve la commande
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique



   - Redirection :


Avant de lancer un processus, le SHELL lui attribue trois fichiers:

• Une entrée standard (par défaut le clavier),

• Une sortie standard (par défaut l’écran),

• Une sortie d’erreur standard (par défaut l’écran).

Ces trois directions peuvent être liées à d’autres fichiers que ceux indiqués ci-
dessus grâce aux commandes de redirection. Le SHELL associera donc d’autres
fichiers que le clavier ou l’écran et il lancera ensuite la commande.



   - Lancement en arrière plan :


Lorsqu’on lance une commande, le SHELL attend la fin de l’exécution de cette
dernière avant de redonner la main à l’utilisateur.

Si on ajoute un «&» à la fin de la ligne de commande, le SHELL
n’attends plus la fin de l’exécution de cette commande, il la lance en arrière
plan.

Quand on lance une commande en arrière plan dans un SHELL interactif (c’est à
dire pas dans un Script SHELL), le SHELL renvoie à l’écran le numéro du job
pour le SHELL qui a lancé la commande ainsi que le numéro du processus dans la
table des processus.

Le caractère «&» est un terminateur de commande, il est donc possible de
taper une commande à la suite sans passage à la ligne.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique




CONCEPTION ET ANALYSE

Analyse fonctionnelle :
   - Spécifications :
    Le SHELL demande la commande en invite de commande ( PROMPT ).
    Le SHELL interprète un ou plusieurs commandes.
    La commande a un ou plusieurs arguments.
    La sortie de l’exécution d’une commande peut être redirigée vers un fichier.
    Communication entre commandes par les pipes.



   - Acteurs :
Utilisateur du SHELL peut exécuter un ou plusieurs commandes.



Analyse Organique :
  - Spécification des Classes :
Une seule classe suffit pour la mise en œuvre, c’est la classe commande.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique




MISE EN ŒUVRE ET IMPLEMENTATION
Technologies utilisés :

Langage C : un langage interactif, portable, inventé avec UNIX par DENNIS
RITCHIE.



Détails sur les fonctions prédéfinis utilisés :



#include <string.h>

char *strchr (const char *s, int c);
char *strrchr (const char *s, int c);

La fonction strchr() renvoie un pointeur sur la première occurrence du
caractère c dans la chaîne s.


#include <string.h>
char *strtok (char *s, const char *delim);


Un élément lexical (token) est une chaîne non vide de caractères qui
n'appartiennent pas à la chaîne delim, suivie de 0 ou d'un caractère appartenant
à delim.

#include <sys/types.h>
#include <sys/stat.h>
struct stat {
 dev_t st_dev, /* identification du disque logique */
 ino_t st_ino; /* i-nombre du fichier sur ce disque */
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique



 mode_t st_mode, /* type et droits d’accès */
 nlink_t st_nlink; /* nombre de liens physiques (Hard) */
 uid_t st_uid; /* propriétaire du fichier */
 gid_t st_gid; /* groupe propriétaire du fichier */
 off_t st_size; /* tai11e du fichier */
 time_t st_atime; /* date de dernier accès */
 time_t st_mtime ; /* date de dernière modification */
 time_t st_ctime; /* date de dern. modif. du i–noeud */
}
 Contient la définition de la structure stat qui est utilisée pour obtenir les
informations contenues dans le nœud d’un fichier.

char * getenv ( const char * name );


Retourne la valeur des variables d’environnements.

free( <Pointeur> );
libère le bloc de mémoire désigné par le <Pointeur>; n'a pas d'effet si le pointeur a
la valeur zéro.

char *fgets( char *str, int nb, FILE *flux) ;
La fonction fgets() lit jusqu'à nb-1 caractères depuis le fichier flux et stocke le
résultat dans str. La chaîne de caractère produite par fgets() est toujours terminée
par NULL.

#include <assert.h>

void assert( int exp );

assert(expression). Si expression est fausse (ou égale à 0), alors un message
d'erreur est affiché et le programme est arrêté par abort
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique




Détails sur les fonctions implémentés :

Fonction =           void afficherPrompt()

Description :

                 Affiche une prompt pour l’utilisateur : UTILISATEUR @
             CHEMAIN

Fonction =           void lireLaCommande(char* buffer)

Description :

                   Lit l’entrée standard, vide l’entrée si on dépasse la taille du
buffer.Termine à ‘n’.

Fonction =      void remplirLaStructure(char* commandLine, struct
command_t* parsed_command)

Description :

             Prends la ligne de commande séparée par espace.

      Argc Le nombre des arguments.

      Argv Les arguments séparés par espace.



Fonction =           char* commandesPerso(char* cmd,int i)

Description :

      Définition de nos commandes personnalisées.

Fonction =           void passerLePath(char* dirs[])

Description :
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                           Cycle ingénieur Logiciel et Système Informatique


             Affiche les dossiers séparés par le délimiteur ‘ :’




Fonction =           char* chercherLaCommandeDansLesPaths(char* argv[], char*
dir[])

Description :

       Rechercher la commande si existe ou pas, et Vérifie si le fichier ordinaide a
les droit d’exécution.

Fonction =           void lesRedirections(struct command_t* command, struct IO*
fid)

Description :

      Fonction de gestion et détection des redirections.

Fonction = void executerLesCommandes(struct command_t* command, struct
command_t* command2, int pipe_proc)

Description :

      Détermine la manière d’exécution des processus, et gère les pipes si
nécessaire.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                          Cycle ingénieur Logiciel et Système Informatique




CONCLUSION


Notre projet nous a permit de renforcer tout les connaissances que nous avons
acquis dans la programmation système, et nous a donné une occasion bénéfique sur
différents plans technique et technologique.



Cette initiative n’est qu’un début pour plusieurs autres projets beaucoup plus
étendues. Nous espérons que nous étions à la hauteur et que notre effort sera
apprécié.
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

               Cycle ingénieur Logiciel et Système Informatique




ANNEXES
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

                     Cycle ingénieur Logiciel et Système Informatique



Captures d’écran:
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

              Cycle ingénieur Logiciel et Système Informatique
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

              Cycle ingénieur Logiciel et Système Informatique
Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique

              Cycle ingénieur Logiciel et Système Informatique

Contenu connexe

Tendances

Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
bouzidi26
 

Tendances (20)

réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
 
Développement d'une application mobile hybride présentant une bibliothèque n...
Développement d'une application mobile hybride  présentant une bibliothèque n...Développement d'une application mobile hybride  présentant une bibliothèque n...
Développement d'une application mobile hybride présentant une bibliothèque n...
 
Pfe 2015
Pfe 2015Pfe 2015
Pfe 2015
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
 
Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .Rapport de Projet de Fin d'étude .
Rapport de Projet de Fin d'étude .
 
Rapportpfe
RapportpfeRapportpfe
Rapportpfe
 
Rapport pfa
Rapport pfaRapport pfa
Rapport pfa
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Rapport de stage d'été
Rapport de stage d'étéRapport de stage d'été
Rapport de stage d'été
 
GUIDE DE PRÉSENTATION DU STAGE D’INITIATION
GUIDE DE PRÉSENTATION DU STAGE D’INITIATIONGUIDE DE PRÉSENTATION DU STAGE D’INITIATION
GUIDE DE PRÉSENTATION DU STAGE D’INITIATION
 
Automatisation de la génération des cartes couverture des réseaux mobiles Par...
Automatisation de la génération des cartes couverture des réseaux mobiles Par...Automatisation de la génération des cartes couverture des réseaux mobiles Par...
Automatisation de la génération des cartes couverture des réseaux mobiles Par...
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 

En vedette

Nostalgia De Sevilla ( P P Tminimizer)
Nostalgia De Sevilla ( P P Tminimizer)Nostalgia De Sevilla ( P P Tminimizer)
Nostalgia De Sevilla ( P P Tminimizer)
rafasanlo
 
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
isantisteban
 
Publier sur internet en respectant le droit
Publier sur internet en respectant le droitPublier sur internet en respectant le droit
Publier sur internet en respectant le droit
sophiebocquet
 
Libro+Mujeres+Y+Tercer+Sector
Libro+Mujeres+Y+Tercer+SectorLibro+Mujeres+Y+Tercer+Sector
Libro+Mujeres+Y+Tercer+Sector
guestfc2c7
 

En vedette (20)

Prestataires logistique
Prestataires logistique Prestataires logistique
Prestataires logistique
 
Entrepreneuriat féminin au Maroc
Entrepreneuriat féminin au Maroc Entrepreneuriat féminin au Maroc
Entrepreneuriat féminin au Maroc
 
Stratégie d'entreprise - Etude de cas : Décathlon
Stratégie d'entreprise - Etude de cas : DécathlonStratégie d'entreprise - Etude de cas : Décathlon
Stratégie d'entreprise - Etude de cas : Décathlon
 
Externalisation scm
Externalisation scm Externalisation scm
Externalisation scm
 
Conception d'une chaine logistique
Conception d'une chaine logistiqueConception d'une chaine logistique
Conception d'une chaine logistique
 
Catálogo Exposición Más Cuento Que Calleja
Catálogo Exposición Más Cuento Que CallejaCatálogo Exposición Más Cuento Que Calleja
Catálogo Exposición Más Cuento Que Calleja
 
Les gendarmes de Givors....
Les gendarmes de Givors....Les gendarmes de Givors....
Les gendarmes de Givors....
 
Formation Commerciale
Formation CommercialeFormation Commerciale
Formation Commerciale
 
Importancia Bloque 0
Importancia Bloque 0Importancia Bloque 0
Importancia Bloque 0
 
Nano-Or
Nano-OrNano-Or
Nano-Or
 
Nostalgia De Sevilla ( P P Tminimizer)
Nostalgia De Sevilla ( P P Tminimizer)Nostalgia De Sevilla ( P P Tminimizer)
Nostalgia De Sevilla ( P P Tminimizer)
 
Arman
ArmanArman
Arman
 
Actividad Santo Domingo
Actividad Santo DomingoActividad Santo Domingo
Actividad Santo Domingo
 
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
Reduccion De Costes En Tiempos De Crisis (ETEA Nov '08)
 
Publier sur internet en respectant le droit
Publier sur internet en respectant le droitPublier sur internet en respectant le droit
Publier sur internet en respectant le droit
 
Libro+Mujeres+Y+Tercer+Sector
Libro+Mujeres+Y+Tercer+SectorLibro+Mujeres+Y+Tercer+Sector
Libro+Mujeres+Y+Tercer+Sector
 
La Comunicacion
La ComunicacionLa Comunicacion
La Comunicacion
 
Tot Kom9
Tot Kom9Tot Kom9
Tot Kom9
 
Orientation pour ton organisme inscrit sur CanaDon
Orientation pour ton organisme inscrit sur CanaDonOrientation pour ton organisme inscrit sur CanaDon
Orientation pour ton organisme inscrit sur CanaDon
 
Alliance Française de Bâle Programme avril à juin 2015
Alliance Française de Bâle Programme avril à  juin 2015Alliance Française de Bâle Programme avril à  juin 2015
Alliance Française de Bâle Programme avril à juin 2015
 

Similaire à Rapport de projet shell

Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
Mohammed TAMALI
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
Emeric Tapachès
 
Mémoire fin de cycle1
Mémoire fin de cycle1Mémoire fin de cycle1
Mémoire fin de cycle1
Mustafa Bachir
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBot
theoopparadigm
 
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
Abderrahmane Belhimer
 

Similaire à Rapport de projet shell (20)

Tpe nguyen tien-thinh
Tpe nguyen tien-thinhTpe nguyen tien-thinh
Tpe nguyen tien-thinh
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
Deploy automatic in the cloud
Deploy automatic in the cloudDeploy automatic in the cloud
Deploy automatic in the cloud
 
Ubiquité et intelligence ambiante
Ubiquité et intelligence ambianteUbiquité et intelligence ambiante
Ubiquité et intelligence ambiante
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Nabil bouzerna - Mémoire d'ingénieur / Master Thesis ENSIIE - ADVESTIGO - 2007
Nabil bouzerna - Mémoire d'ingénieur / Master Thesis ENSIIE - ADVESTIGO - 2007  Nabil bouzerna - Mémoire d'ingénieur / Master Thesis ENSIIE - ADVESTIGO - 2007
Nabil bouzerna - Mémoire d'ingénieur / Master Thesis ENSIIE - ADVESTIGO - 2007
 
Mise en place d'une solution de détection des pirates et des malwares dans le...
Mise en place d'une solution de détection des pirates et des malwares dans le...Mise en place d'une solution de détection des pirates et des malwares dans le...
Mise en place d'une solution de détection des pirates et des malwares dans le...
 
Fourth year internship report
Fourth year internship reportFourth year internship report
Fourth year internship report
 
Mémoire fin de cycle1
Mémoire fin de cycle1Mémoire fin de cycle1
Mémoire fin de cycle1
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBot
 
resume-cours-theorique-culture-et-technique-du-numerique-61574f6e0c5c0-1_2.pdf
resume-cours-theorique-culture-et-technique-du-numerique-61574f6e0c5c0-1_2.pdfresume-cours-theorique-culture-et-technique-du-numerique-61574f6e0c5c0-1_2.pdf
resume-cours-theorique-culture-et-technique-du-numerique-61574f6e0c5c0-1_2.pdf
 
PFE_Report
PFE_ReportPFE_Report
PFE_Report
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatique
 
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
Mémoire de fin d'études. Modules: SI Helpdesk , Gestion Park informatique , B...
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
B1
B1B1
B1
 
Manuel ns1.3
Manuel ns1.3Manuel ns1.3
Manuel ns1.3
 

Plus de Bilal ZIANE (7)

Seven habits of highly effective people ziane bilal
Seven habits of highly effective people  ziane bilalSeven habits of highly effective people  ziane bilal
Seven habits of highly effective people ziane bilal
 
Finger prints presentation opencv
Finger prints presentation opencvFinger prints presentation opencv
Finger prints presentation opencv
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Presentation mini shell version1
Presentation mini shell version1Presentation mini shell version1
Presentation mini shell version1
 
Rapport eucalyptus cloud computing
Rapport eucalyptus cloud computingRapport eucalyptus cloud computing
Rapport eucalyptus cloud computing
 
Toad lsi ziane bilal
Toad lsi ziane bilalToad lsi ziane bilal
Toad lsi ziane bilal
 
Eucalyptus presentation ( LSI cloud computing )
Eucalyptus presentation ( LSI cloud computing )Eucalyptus presentation ( LSI cloud computing )
Eucalyptus presentation ( LSI cloud computing )
 

Dernier

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 

Dernier (20)

Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 

Rapport de projet shell

  • 1. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Projet de Fin de Module PROGRAMMATION SYSTEME LSI-SHELL Réalisé par : Proposé par : ASSAOUY Samia. LASRI Ayyoub. Dr. El AMRANI Chaker. ZIANE Bilal.
  • 2. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Sommaire INTRODUCTION ............................................................................................................................................. 4 CONTEXTE DU PROJET .................................................................................................................................. 5 Analyse du besoin : ................................................................................................................................... 5 L’Object du projet : ................................................................................................................................... 5 Technologies et langage :.......................................................................................................................... 5 CARACTERISTIQUES GENERALE DU SYSTEME UNIX ...................................................................................... 6 Evolution : ................................................................................................................................................. 6 Philosophie :.............................................................................................................................................. 7 Caractéristiques : ...................................................................................................................................... 7 Le Noyau : ................................................................................................................................................. 8 Le SHELL : .................................................................................................................................................. 9 Différentes SHELL : .................................................................................................................................... 9 UTILISATION DU SHELL................................................................................................................................ 10 Introduction : .......................................................................................................................................... 10 - SHELL ? ........................................................................................................................................ 10 - Utilisateurs ? ............................................................................................................................... 11 Fonctionnement du SHELL: ..................................................................................................................... 12 Mécanisme d’interprétation du SHELL : ................................................................................................. 12 - Définition : .................................................................................................................................. 12 - PROMPT : .................................................................................................................................... 12
  • 3. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique - Rechercher la commande : ......................................................................................................... 13 - Exécution d’une Commande : ..................................................................................................... 13 - Redirection : ................................................................................................................................ 14 - Lancement en arrière plan : ........................................................................................................ 14 CONCEPTION ET ANALYSE........................................................................................................................... 15 Analyse fonctionnelle :............................................................................................................................ 15 - Spécifications : ................................................................................................................................ 15 - Acteurs : ...................................................................................................................................... 15 Analyse Organique : ................................................................................................................................ 15 - Spécification des Classes : ........................................................................................................... 15 MISE EN ŒUVRE ET IMPLEMENTATION ..................................................................................................... 16 Technologies utilisés : ............................................................................................................................. 16 Détails sur les fonctions prédéfinis utilisés : ........................................................................................... 16 Détails sur les fonctions implémentés : .................................................................................................. 18 CONCLUSION............................................................................................................................................... 20 Captures d’écran: ........................................................................................................................................ 22
  • 4. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique INTRODUCTION Interpréteur de commandes des Systèmes GNU/LINUX SHELL est devenu pour les administrateurs système, un outil incontournable. Ce rapport présente une description du projet de fin de module programmation système un SHEL personnalisé. Dans ce cadre, nous tenons à donner une présentation de l’environnement GNU/LINUX, ses caractéristiques et son noyau en expliquant la communication entre l’utilisateur et le système (gérée par le noyau) via l’interpréteur des commandes le SHELL.
  • 5. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique CONTEXTE DU PROJET Analyse du besoin : Notre premier travail a consisté à bien analyser le sujet avant de se lancer dans l’implémentation. Nous avons, dans un premier temps, commencé par étudier le SHELL GNU/Linux pour récolter le maximum d’informations possibles. L’Object du projet : L’objet de notre projet c’est la réalisation d’un SHELL personnalisé, qui offre les fonctionnalités suivantes :  Attendre jusqu’à ce que l’utilisateur fournis une commande valide.  Interprétation des commandes.  Communication entre les différentes commandes via les tubes de communication.  Redirection des entrées et des sortie de l’exécution de la commande. Technologies et langage : Système d’exploitation : UBUNTU. Langage de programmation : Langage C.
  • 6. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique CARACTERISTIQUES GENERALE DU SYSTEME UNIX Evolution : Le système d’exploitation UNIX a commencé en 1969 aux laboratoires de recherche en informatique d’AT&T pour répondre aux besoins des ingénieurs de la société que ken Thompson a écrit le système Unix, un système interactif qui met l’accent sur les utilitaires de développement logiciels, partage de fichiers. Le nom UNIX est attribué par opposition au système Multics. La première évolution interne marquante d’Unix a été sa réécriture ,par Ken Thompson et Denis Ritchie en langage C, lequel a été inventé pour la cause en 1971. En 1975, le système Unix est distribué aux universités et aux centres de recherches. La principale université qui va travailler sur Unix est l’université de Berkeley, qui va produire ses propres versions appelées BSD pour Berkeley Software Distribution. En 1979, les Bell Labs sortent leur version, la première à être diffusée dans le monde industriel. On peut dire qu’elle est à l’origine du développement du marché Unix. Unix. Plusieurs facteurs vont alors jouer pour canaliser et recentrer l’offre Unix: la complexité croissante des systèmes et l’action des utilisateurs. (Sun Microsystems, Digital...) et lui permettre d’entrer dans le monde industriel. Le début des années 90 est marqué par le regroupement des constructeurs au sein de deux organisations: l’U.I. (Unix International) créée à partir de l’accord entre A.T.&T. et Sun Microsystems d’une part et l’O.S.F. D’autre
  • 7. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique part. Le premier accord a comme objectif la convergence entre les différentes versions. Philosophie : Conçus à l’origine comme un environnement de développement, Unix est aujourd’hui un système complet intégrant un grand nombre de fonctionnalités organisées en couches logicielles. en dehors de cette structure modulaire, Unix se caractérise également par les concepts introduits en matière de gestion de fichiers et de gestion des processus. Caractéristiques : Unix est le système d'exploitation des grands serveurs par excellence. Multitâche, multiutilisateur, multiplateforme, réparti et sécurisé. Ecrit en langage C, permettant ainsi une portabilité sur la plupart des architectures. Sa popularité est, en fait, due à sa conception modulaire avec des interfaces bien définies ainsi que la disponibilité d’outils simples qui coexistent entres elles. Alors que les autres systèmes d’exploitation ressemblent à des ensembles monoblocs et relativement fermés, la conception du système repose sur différents niveaux bien distincts: le noyau, un interpréteur de commandes (le SHELL), des bibliothèques et un nombre important d’utilitaires. Le système Linux possède notamment les avantages suivants :  Le support des standards de l'internet, c'est-à-dire des protocoles TCP/IP, la famille de protocoles utilisée sur Internet. Il est donc un moyen gratuit de créer un réseau local, de se connecter à Internet et de mettre en place un serveur.  Une sécurité accrue dû à la transparence de son code source et de la réactivité de la communauté lors des annonces de vulnérabilités.
  • 8. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique  Un cloisonnement des espaces mémoire et de l'espace disque couplé à une gestion pointue des droits permettant de gérer un grand nombre d'utilisateurs avec un niveau de risque minimal.  Un noyau entièrement configurable en fonction du matériel de la machine sur laquelle le système est installé afin de maximiser les performances. Le Noyau : Linux est architecturé autour d'un noyau (KERNEL) chargé de prendre en charge le matériel. On appelle distribution l'assemblage d'un ensemble de logiciels autour d'un noyau Linux afin de fournir un système clé en main. Le noyau d'une distribution peut-être mis à jour afin de permettre la prise en compte de matériels récents, toutefois cette manipulation consistant à recompiler le noyau est délicate car elle nécessite un certain niveau de connaissance du système et du matériel. La recompilation du noyau est à réserver aux spécialistes ou bien aux utilisateurs prêts à rendre inutilisable leur système dans le but d'apprendre. La plupart des distributions proposent également une installation graphique qui leur est propre ainsi qu'un système de gestion de paquetages permettant d'installer automatiquement des logiciels en gérant les dépendances (les logiciels sous Linux sont parfois liés à des librairies externes ou s'appuient sur d'autres logiciels).
  • 9. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Chaque distribution possède ses avantages et ses inconvénients. En effet si certaines sont plus adaptées à des débutants et proposent des interfaces graphiques évoluées, d'autres privilégient la sécurité ou l'évolutivité. Les distributions les plus connues sont :  La distribution RedHat ;  La distribution Debian ;  La distribution SuSe ;  La distribution Knoppix ;  La distribution Slackware ;  La distribution Mandriva. Le SHELL : Le SHELL, comme le normalien, ne connaît que deux états :  le travail ;  l'inactivité. Le SHELL, une fois lancé, est inactif : il attend qu'on lui donne des ordres. Quand on lui en donne un, il l'exécute ; et quand il a terminé, il retourne à son état d'inactivité, en attente d'un nouveau commandement. Différentes SHELL : Il y a deux familles de SHELL :  le Bourne-SHELL (sh) : o z-SHELL (zsh). o Bash. o ksh. o le c-SHELL (csh) : tcsh.
  • 10. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique UTILISATION DU SHELL Introduction : - SHELL ? On parle souvent de Linux en disant que c’est le paradis des fanas de la « ligne de commandes ». En effet, sous Linux, ou dans tout système Unix, il est tout à fait possible de gérer le système uniquement avec des commandes écrites par l’utilisateur ou par un programme, script … Le SHELL est donc l’interface entre la commande et le noyau linux. C’est en fait la couche la plus externe du système, celle qui entoure le noyau d’où son nom de « SHELL » ou « Coquille ». Ainsi, lorsque l’utilisateur tape une commande dans une console, le SHELL l’interprète et le transmet au noyau Linux. Pour interagir avec le noyau, il vous faut donc le SHELL et un terminal, une console virtuelle ou une autre interface graphique. Pour expliquer ceci autrement, le SHELL est un exécutable capable d’interpréter les commandes, de les transmettre au noyau et de retourner la réponse. Voici un schéma qui illustre la place du SHELL dans le système: On voit que le SHELL est bien à l’interface entre le noyau Linux et l’utilisateur par le biais d’une console, d’une application ou entre le noyau et une application, un script.
  • 11. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique - Utilisateurs ? En résumé, à un utilisateur correspond les renseignements suivants: • un nom de login, • un mot de passe, • un iud, • un ou plusieurs groupes de travail, • un répertoire HOME, • un SHELL par défaut.  L’utilisateur de base: Il utilise les applicatifs mis à sa disposition, il «customise» les applications, il possède des droits d’accès traditionnels, il doit veiller à utiliser les ressources (disques, CPU,...) avec modération afin de ne pas surcharger le système.  Le programmeur: Il possède les mêmes droits que l’utilisateur de base, il a en plus la possibilité de programmer ses propres applications, il utilise donc dans ce cas, les outils de développement installés sur le système, il a accès aux compilateurs et à l’interpréteur.  L’administrateur système: Il possède les mêmes droits que le programmeur. Son rôle est plus grand: il gère le système, il possède des droits d’accès étendus (il peut descendre dans toutes les arborescences de son système), il crée des comptes pour tous les utilisateurs de son serveur, il veille au bon fonctionnement général du système, il installe les outils nécessaires à la communauté, il surveille et régularise la charge du système et des ressources de la machine.
  • 12. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Fonctionnement du SHELL: New Line correspond au retour à la ligne (généralement la touche Entrée). Mécanisme d’interprétation du SHELL : - Définition : Le SHELL est l’interpréteur de commandes, il n’est pas inclus dans le noyau d’Unix. Quand un utilisateur rentre dans le système, le SHELL par défaut qui lui a été donné, est automatiquement lancé et toute la session se déroule en fait dans ce SHELL. Lorsque cet utilisateur tape une commande, le SHELL la lit, l’interprète et lance son exécution. La ligne tapée peut ne comporter qu’une seule commande mais peut aussi être complexe. - PROMPT : Le SHELL indique qu’il est prêt à recevoir une nouvelle commande en affichant le prompt (par défaut «$»). Toute commande se termine par un passage à la ligne, dans certains cas, le passage à la ligne à une signification particulière pour la commande tapée et n’est donc pas considéré comme un terminateur de commande. Dans ce cas, le SHELL affiche le deuxième prompt (par défaut «>») pour indiquer qu’il attend la suite de la commande. Il est aussi possible de taper plusieurs commandes sur la même ligne en les séparant par un «;».
  • 13. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique - Rechercher la commande : Si la commande tapée correspond à une commande interne du SHELL, cette commande est exécutée à l’intérieur de ce SHELL. Sinon, si la commande correspond à une fonction (cf. partie sur le langage de programmation) elle est elle aussi exécutée à l’intérieur du SHELL. Dans tous les autres cas, la commande se réfère à un fichier de l’arborescence. Si le nom ne comporte pas de caractère «/», le SHELL examine la variable PATH pour rechercher le répertoire où ce trouve cette commande. Un nouveau SHELL est alors créé pour exécuter cette commande. Si la commande est un script SHELL, le SHELL lit toutes les lignes du script et les exécutent. Si la commande appelle un fichier binaire exécutable, le code et les données associées du processus du deuxième SHELL sont remplacés par le code et les données associés à la commande. - Exécution d’une Commande : La première chose c’est de lire la commande, l’analyser si elle est valide, et ensuite l’exécuter Pour exécuter une commande son nom suffit généralement. Cela veut dire dans ce cas que c’est une commande interne ou qu’elle est localisable dans le chemin d’exécution de l’utilisateur (PATH). Dans le cas contraire, il faut :  donner le chemin absolu de la commande  ou se trouver dans le répertoire où se trouve la commande
  • 14. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique - Redirection : Avant de lancer un processus, le SHELL lui attribue trois fichiers: • Une entrée standard (par défaut le clavier), • Une sortie standard (par défaut l’écran), • Une sortie d’erreur standard (par défaut l’écran). Ces trois directions peuvent être liées à d’autres fichiers que ceux indiqués ci- dessus grâce aux commandes de redirection. Le SHELL associera donc d’autres fichiers que le clavier ou l’écran et il lancera ensuite la commande. - Lancement en arrière plan : Lorsqu’on lance une commande, le SHELL attend la fin de l’exécution de cette dernière avant de redonner la main à l’utilisateur. Si on ajoute un «&» à la fin de la ligne de commande, le SHELL n’attends plus la fin de l’exécution de cette commande, il la lance en arrière plan. Quand on lance une commande en arrière plan dans un SHELL interactif (c’est à dire pas dans un Script SHELL), le SHELL renvoie à l’écran le numéro du job pour le SHELL qui a lancé la commande ainsi que le numéro du processus dans la table des processus. Le caractère «&» est un terminateur de commande, il est donc possible de taper une commande à la suite sans passage à la ligne.
  • 15. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique CONCEPTION ET ANALYSE Analyse fonctionnelle : - Spécifications :  Le SHELL demande la commande en invite de commande ( PROMPT ).  Le SHELL interprète un ou plusieurs commandes.  La commande a un ou plusieurs arguments.  La sortie de l’exécution d’une commande peut être redirigée vers un fichier.  Communication entre commandes par les pipes. - Acteurs : Utilisateur du SHELL peut exécuter un ou plusieurs commandes. Analyse Organique : - Spécification des Classes : Une seule classe suffit pour la mise en œuvre, c’est la classe commande.
  • 16. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique MISE EN ŒUVRE ET IMPLEMENTATION Technologies utilisés : Langage C : un langage interactif, portable, inventé avec UNIX par DENNIS RITCHIE. Détails sur les fonctions prédéfinis utilisés : #include <string.h> char *strchr (const char *s, int c); char *strrchr (const char *s, int c); La fonction strchr() renvoie un pointeur sur la première occurrence du caractère c dans la chaîne s. #include <string.h> char *strtok (char *s, const char *delim); Un élément lexical (token) est une chaîne non vide de caractères qui n'appartiennent pas à la chaîne delim, suivie de 0 ou d'un caractère appartenant à delim. #include <sys/types.h> #include <sys/stat.h> struct stat { dev_t st_dev, /* identification du disque logique */ ino_t st_ino; /* i-nombre du fichier sur ce disque */
  • 17. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique mode_t st_mode, /* type et droits d’accès */ nlink_t st_nlink; /* nombre de liens physiques (Hard) */ uid_t st_uid; /* propriétaire du fichier */ gid_t st_gid; /* groupe propriétaire du fichier */ off_t st_size; /* tai11e du fichier */ time_t st_atime; /* date de dernier accès */ time_t st_mtime ; /* date de dernière modification */ time_t st_ctime; /* date de dern. modif. du i–noeud */ } Contient la définition de la structure stat qui est utilisée pour obtenir les informations contenues dans le nœud d’un fichier. char * getenv ( const char * name ); Retourne la valeur des variables d’environnements. free( <Pointeur> ); libère le bloc de mémoire désigné par le <Pointeur>; n'a pas d'effet si le pointeur a la valeur zéro. char *fgets( char *str, int nb, FILE *flux) ; La fonction fgets() lit jusqu'à nb-1 caractères depuis le fichier flux et stocke le résultat dans str. La chaîne de caractère produite par fgets() est toujours terminée par NULL. #include <assert.h> void assert( int exp ); assert(expression). Si expression est fausse (ou égale à 0), alors un message d'erreur est affiché et le programme est arrêté par abort
  • 18. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Détails sur les fonctions implémentés : Fonction = void afficherPrompt() Description : Affiche une prompt pour l’utilisateur : UTILISATEUR @ CHEMAIN Fonction = void lireLaCommande(char* buffer) Description : Lit l’entrée standard, vide l’entrée si on dépasse la taille du buffer.Termine à ‘n’. Fonction = void remplirLaStructure(char* commandLine, struct command_t* parsed_command) Description : Prends la ligne de commande séparée par espace. Argc Le nombre des arguments. Argv Les arguments séparés par espace. Fonction = char* commandesPerso(char* cmd,int i) Description : Définition de nos commandes personnalisées. Fonction = void passerLePath(char* dirs[]) Description :
  • 19. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Affiche les dossiers séparés par le délimiteur ‘ :’ Fonction = char* chercherLaCommandeDansLesPaths(char* argv[], char* dir[]) Description : Rechercher la commande si existe ou pas, et Vérifie si le fichier ordinaide a les droit d’exécution. Fonction = void lesRedirections(struct command_t* command, struct IO* fid) Description : Fonction de gestion et détection des redirections. Fonction = void executerLesCommandes(struct command_t* command, struct command_t* command2, int pipe_proc) Description : Détermine la manière d’exécution des processus, et gère les pipes si nécessaire.
  • 20. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique CONCLUSION Notre projet nous a permit de renforcer tout les connaissances que nous avons acquis dans la programmation système, et nous a donné une occasion bénéfique sur différents plans technique et technologique. Cette initiative n’est qu’un début pour plusieurs autres projets beaucoup plus étendues. Nous espérons que nous étions à la hauteur et que notre effort sera apprécié.
  • 21. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique ANNEXES
  • 22. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique Captures d’écran:
  • 23. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique
  • 24. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique
  • 25. Faculté Des Sciences et Techniques de Tanger - Département Génie Informatique Cycle ingénieur Logiciel et Système Informatique