EXP1 - Exploitation des systèmes

Appartient à l'UE Exploitation des systèmes I

Personnes enseignantes

EXP1 – Explotation des systèmes

Personnes enseignantes

Description technique du cours

  • Acronyme de l’activité : EXP1
  • Bloc : 1
  • Quadrimestre : 1
  • Nombre de crédits : 5 ECTS
  • Nombre d’heures de cours : 30 heures en laboratoire et 20 heures en auditoire
  • Nombre d’heures de travail hors cours (estimation) : 100 heures
  • Format du cours : laboratoire et auditoire
  • Langue d’instruction : français
  • Implantation : HE2B – ESI
  • Pré-requis : néant
  • Co-requis : néant

Description générale du cours

Les cours se focalisent principalement sur la découverte et l’apprentissage de Windows, Linux, Bash et Git.

Objectifs généraux

Au terme de l’activité d’apprentissage, l’étudiant·e sera en mesure de :

  • comprendre les concepts de base liés au système de fichiers (extension, dossier parents…),
  • mémoriser des commandes Bash,
  • comprendre la différence entre chemin relatif et chemin absolu,
  • comprendre les principes de base de Git,
  • comprendre le concept de multi-utilisateur,
  • comprendre le concept de multitache,
  • comprendre l’importance des permissions,
  • comprendre la notion de commande filtre,
  • se familiariser avec certaines problématiques propres à un noyau
    • espace disque et allocation
    • ordonnancement de processus
    • interblocages et solutions

Acquis d’apprentissage spécifiques sanctionnés par l’évaluation

Au terme des séances, l’étudiant·e sera évalué sur sa capacité à :

  • Nommer et situer les différents composants de l’interface graphique de Windows et GNOME (menu démarrer, dock, barre des taches, panneau de configuration, ruban, onglet, menu contextuel…).
  • Savoir effectuer et expliquer comment utiliser l’exploratuer Windows, Bash et un gestionnaire de fichier sous Linux pour :
    • se déplacer dans le système de fichier,
    • visualiser un fichier texte,
    • afficher les fichiers cachés,
    • modifier les attributs d’un fichier,
    • trier des fichiers,
    • sélectionner des fichiers,
    • rechercher un fichier ou un répertoire,
    • créer un répertoire,
    • créer un fichier vide,
    • supprimer un fichier ou répertoire,
    • restaurer un fichier de la corbeille,
    • déplacer, copier et renommer un fichier ou un répertoire.
  • Citer les raccourcis clavier vus.
  • Expliquer la structure des répertoires Linux (/etc, /home, /tmp, /bin…).
  • Citer la différence entre commande interne et externe.
  • Citer les droits qui peuvent être associés à un fichier
  • Identifier les commandes qui permettent de définir les droits d’un fichier
  • Décrire le mécanisme d’obtention de droits d’un programme qui s’exécute
  • Illustrer l’inhibition de droits
  • Comparer les droits sur les fichiers et les répertoires
  • Définir une commande filtre
  • Comparer les différents flux standard et en montrer des cas d’utilisation
  • Décrire l’effet des différentes redirections
  • Différencier ctrl-C de ctrl-D
  • Décrire des exemples d’utilisation de liste de commandes et des opérateurs && et  
  • Comparer sortie d’erreur et valeur retournée par une commande
  • Décrire le fonctionnement du pipe
  • Illustrer des exemples d’utilisation de commandes filtres avec des pipes
  • Citer des exemples d’utilisation de pipes incorrects

  • Expliquer ce qu’est une machine virtuelle.
  • Utiliser Git pour cloner et modifier un dépot.
  • Écrire un gitignore basique.
  • Expliquer à quoi sert SSH.
  • Donner les commandes Bash pour :
    • installer des application sur Linux,
    • ajouter un utilisateur,
    • modifier les permissions d’un fichier,
    • modifier le groupe d’un fichier,
    • ajouter un groupe,
    • exécuter un script,
    • rediriger la sortie standard,
    • rediriger la sortie d’erreur,
    • rediriger l’entrée standard,
    • chainer les sorties et les entrées des processus,
    • afficher les processus en cours d’exécution d’un utilisateur,
    • stopper l’exécution d’un processus,
    • terminer l’exécution d’un processus,
    • déterminer le type d’un fichier,
    • afficher le code hexadécimal d’un fichier,
    • modifier une variable d’environement.
    • montrer le contenu d’une arborescence de fichiers
    • identifier un fichier d’une arborescence via un chemin absolu et un chemin relatif
    • montrer le contenu d’un fichier texte
    • identifier le chemin d’un fichier dans l’arborescence grâce à son nom
    • identifier le chemin de l’exécutable d’une commande grâce à son nom
    • créer des liens symboliques
    • montrer les partitions du système
  • Utiliser les tilde expansions dans des commandes Bash.
  • Citer des informations que l’on trouve dans le pseudo-répertoire /proc.
  • Expliquer ce qu’est une une variable d’environement et un magic number.
  • Expliquer comment sont structurés les fichiers textes et des fichiers aux formats binaires vus.
  • Citer les droits qui peuvent être associés à un fichier
  • Identifier les commandes qui permettent de définir les droits d’un fichier
  • Décrire le mécanisme d’obtention de droits d’un programme qui s’exécute
  • Illustrer l’inhibition de droits
  • Comparer les droits sur les fichiers et les répertoires
  • Décrire l’utilité de la variable d’environnement PATH
  • Illustrer la notion de chemin relatif en s’aidant des commandes cd et pwd
  • Identifier les rôles d’un OS
  • Définir le rôle Machine Étendue/Gestionnaire de Ressources
  • Identifier le rôle d’un Pilote
  • Distinguer Appel Système et traitement d’Interruption Matérielle
  • Nommer les composants logiciels en charge de l’attribution du CPU et de la RAM
  • Comparer les types d’interface d’un utilisateur à un système informatique
  • Nommer l’outil d’aide sur les commandes
  • Montrer les caractéristiques d’un système informatique
  • Montrer les informations sur les processus en cours
  • Montrer les appels systèmes existants et leur numéro
  • Comparer les principales caractéristiques des technologies Hard Disk et SSD
  • Comparer les techniques d’allocation d’espace aux fichiers
  • Comparer les techniques de chaînage de blocs
  • Comparer les techniques de mémorisation de l’espace libre
  • Nommer les parties de disque ainsi que les commandes qui permettent de les rassembler au sein d’une même arborescence
  • Différencier programme de processus
  • Montrer la relation de parenté dans un système unix
  • Montrer les états des processus en cours
  • Décrire les états élu, bloqué, prêt
  • Différencier Multiprogrammation et Time-Slicing
  • Définir/ différencier temps de réponse, efficacité, temps d’exécution, …
  • Citer les transitions d’état d’un processus ainsi que les situations auxquelles elles se rapportent
  • Citer les différents enjeux auquel un ordonnanceur est confronté
  • Décrire les différents algorithmes d’ordonnancement et les comparer
  • Différencier Multiprogrammation et Time-Slicing
  • Définir/ différencier temps de réponse, efficacité, temps d’exécution, …
  • Citer les transitions d’état d’un processus ainsi que les situations auxquelles elles se rapportent
  • Citer les différents enjeux auquel un ordonnanceur est confronté

Acquis terminaux visés

Au sein de la formation de bachelier en informatique, cette activité d’apprentissage aura participé à l’acquisition des compétences suivantes.

Communiquer et informer

  • Choisir et utiliser les moyens d’informations et de communication adaptés.
  • Mener une discussion, argumenter et convaincre de manière constructive.
  • Utiliser le vocabulaire adéquat.

Collaborer à la conception, à l’amélioration et au développement de projets

  • Analyser une situation donnée sous ses aspects techniques et scientifiques.
  • Rechercher et utiliser les ressources adéquates.

S’engager dans une démarche de développement professionnel

  • S’informer et s’inscrire dans une démarche de formation permanente.
  • Développer une pensée critique.

S’inscrire dans une démarche de respect des réglementations

  • Participer à la démarche qualité.
  • Respecter les normes, les procédures et les codes de bonne pratique.

Mobiliser les savoirs et les savoir-faire lors du développement d’applications

  • Participer à la sécurisation des réseaux informatiques, des périphériques, des systèmes de communication et des flux d’information numérique.

Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique

  • Prendre en compte la problématique de sécurité des applications.

Collaborer à l’analyse et à la mise en œuvre d’un système informatique

  • Assurer la sécurité du système.

Modalités d’évaluations

Le cours est évalué à deux moments distincts.

  1. Lors d’une évaluation, appelée bilan, organisée à mi-parcours.
  2. Lors d’une évaluation, appelée examen, organisée durant la session.

Le bilan est, dans le cadre de cette AA, une évaluation du type écrit. L’examen est, dans le cadre de cette AA, une évaluation du type écrit.

Si le bilan est réussi (≥ 10/20) et que la note obtenue est supérieure à celle de votre examen, la cotation sera effectuée comme suit :

  • 25 % pour la note du bilan,
  • 75 % pour la note de l’examen.

Dans toute autre situation ainsi qu’en seconde et troisième session, la cotation sera effectuée comme suit :

  • 100 % pour la note de l’examen.

Contenus

Théorie

  1. Introduction
  2. Arborescence et partitions
  3. Utilisateur et droits
  4. Anatomie d’une commande
  5. Flux standard et tuyaux
  6. Scripts
  7. Système et noyau
  8. Espace disque et allocation
  9. Programmes et processus
  10. Ordonnancement
  11. Interblocages et solutions

Laboratoire

  1. Windows – Découverte
  2. Windows – Explorateur de fichiers
  3. Bash – Parcourir le système de fichiers
  4. Bash – Modifier le système de fichiers
  5. Linux – Découverte (Ubuntu avec GNOME)
  6. Git – Découverte
  7. Git – Utilisation mono-utilisateur
  8. Linux – Multi-utilisateur et introduction à SSH
  9. Linux – Permissions et groupes
  10. Bash – Redirection
  11. Bash – Tubes
  12. Linux – Multitache
  13. Structure de fichier
  14. Linux – Variables d’environements et localisation