Thierry VAIRA

Ensemble Scolaire Saint Jean Baptiste De La Salle
BTS IRIS
9, rue Notre Dame des Sept Douleurs
BP 165 - 84000 Avignon CEDEX 1
FRANCE
Téléphone : (+33) 4 90 14 56 56 (standard) poste 150.
tvaira(at)free.fr
Mise à jour : 14/09/2010





Travaux pratiques de découverte : mise en oeuvre et validation d'un système

Durée : 3h00 [PDF]



Objectifs

  • de réaliser les tests de mise en oeuvre d'un système existant
  • d'éffectuer les tests de validation du système (en version 1)


Table des matières

  1. Présentation
  2. Mise en oeuvre d'un système existant
  3. Manipulation : tests de mise en oeuvre
  4. Manipulation : test de validation d'un projet existant
  5. Annexes


I. Présentation (5 min) 0%

1) Introduction

Au cours de ces travaux pratiques, vous allez intervenir sur un projet existant à différentes étapes de son cycle de vie. Vous allez donc participer et découvrir un certain nombres d'activités liées au développement d'un projet logiciel en tant que technicien IRIS.

Pour en savoir plus :



2) Mise en situation

Le projet consiste à développer la partie embarquée d'un panneau d'affichage lumineux. Un panneau lumineux est constitué de différentes parties qui sont : l'alimentation, l'interface électronique de commande et un système embarqué.

Exemple d'un panneau à messages variables intelligent
Un système embarqué (ou système enfoui) peut être défini comme un système électronique et informatique autonome, qui est dédié à une tâche bien précise. Ses ressources disponibles sont généralement limitées (coût faible, taille réduite, consommation restreinte, espace mémoire limité de l'ordre de quelques Mo maximum, puissance de calcul juste nécessaire pour répondre aux besoins, ...).
Une carte TINI (TIny Network Interface) est un système embarqué basé sur un circuit hybride fabriqué par Dallas Semiconductor et destiné à faciliter la conception d'équipements pouvant dialoguer sur un réseau de type TCP/IP (Internet). Le composant est fourni avec un système d'exploitation appelé TINI_OS, ainsi qu'un interpréteur de commande appelé SLUSH et une machine virtuelle JAVA. Cette dernière permet à cette carte de pouvoir être programmée en langage Java.
Carte TINI


Pour en savoir plus : lire l'annexe sur le panneau lumineux Systel



3) Expression du besoin

Les panneaux lumineux répondent à de nombreux besoins. Par exemple, les panneaux d'information sur la circulation vous renseignent sur les conditions de circulation. Certaines villes (par exemple, Nantes Métropole) ont installé, sur leur agglomération, des Panneaux à Messages Variables Intelligent (PMVI), actualisables en temps réel, pour guider les automobilistes sur ces nouveaux itinéraires de substitution, en cas de perturbation du trafic et les informer sur les temps de parcours.

Ce système repose sur :

  • Un poste central en charge de l'élaboration des messages d'informations (portant principalement sur les travaux ou manifestations)
  • et plusieurs Panneaux à Messages Variables Intelligent (PMVI) assurant le diffusion des messages d'informations élaborés par le poste central.
Exemple d'un système IRIS


4) Etat actuel du projet

Le projet a déjà subi trois évolutions (versions) successives qui se sont décomposées de la manière suivante :

  • panneau_v1 : cette version permet l'affichage d'une suite limitée de caractères sur le panneau lumineux de marque Systel
  • panneau_v2 : cette version permet l'affichage d'un message d'information sur le panneau lumineux de marque Systel (diffuser message)
  • panneau_v3 : cette version permet de récupérer un message d'information en provenance du réseau (dialogue avec le réseau) et l'affichage de celui-ci sur le panneau lumineux de marque Systel (diffuser message)
  • panneau_vx : le développement itératif, utilisé en BTS IRIS, s'organise en une série de développement très courts de durée fixe nommée itérations. Le résultat de chaque itération est un système partiel exécutable, testé et intégré (mais incomplet). Comme le système évolue avec le temps de façon incrémentale, cette méthode de développement est nommée développement itératif et incrémental : chaque développement s'ajoute et enrichit l'existant.


5) Les tests logiciels

Les tests logiciels
De manière générale, le test est une recherche d'anomalie (défaut, appelé souvent bug) dans le comportement d'un logiciel.
Remarques :
» Si une batterie de tests ne montre pas de défaut cela n'implique pas que le logiciel est quand même exempt de défaut ...
» Le test n'a pas pour objectif : de diagnostiquer la cause des erreurs, de corriger les fautes ou de prouver la correction.
» On évalue à environ 40% la part des tests dans le coût d'un logiciel (et plus pour des logiciels critiques).

Il existe de nombreux tests dans le développement logiciel. En BTS IRIS, on traite des tests suivants :

  • Tests unitaires : chaque module du logiciel est testé séparément par rapport à ses spécifications.

  • Tests d'intégration : les modules validés par les test unitaires sont rassemblés dans un composant logiciel. Le test d'intégration vérifie que l'intégration des modules n'a pas altéré leur comportement.

  • Tests de validation : le test vérifie que le logiciel réalisé correspond bien aux besoins exprimés par le client. La validation ou vérification d'un produit cherche donc à s'assurer qu'on a construit le bon produit.

  • Tests de recette (Tests d'intégration système) : l'application doit fonctionner dans son environnement de production, avec les autres applications présentes sur la plate-forme et avec le système d'exploitation. Les utilisateurs vérifient sur site que le système répond de manière parfaitement correcte.

  • Tests de mise en oeuvre : ces tests permettent la mise en oeuvre du matériel et logiciel intervenant dans un système.




B. Mise en oeuvre d'un système existant (5 min) 13%

1) Environnement de développement

On vous propose de mettre en oeuvre l'environnement de développement suivant :

Exemple d'un système IRIS
Remarque : à la fin de chaque partie, vous devez compléter la fiche de tests de la partie E.

Cette activité de mise en oeuvre se décomposera en plusieurs parties :

  • Partie A : installation et mise en oeuvre du matériel et logiciel (→ par le technicien IRIS)
  • Partie B : mise en oeuvre de la communication réseau (PC_DEV ↔ TINI)
  • Partie C : fabrication d'un exécutable pour la carte TINI (→ poste de développement PC_DEV)
  • Partie D : déploiement et exécution d'une application (PC_DEV → TINI)
  • Partie E : remplir la fiche des tests de mise en oeuvre (→ par le technicien IRIS)

2) Matériel nécessaire

Le matériel à votre disposition pour cette activité est le suivant :

  • un PC sous Windows équipé d'une carte réseau Ethernet
  • un HUB (concentrateur) ou un SWITCH (commutateur) et les câbles réseaux
  • un carte TINI avec sa carte support Taylec
  • un panneau lumineux de marque Systel

3) Logiciel nécessaire

En BTS IRIS, on utilise de nombreux logiciels. La liste des logiciels à mettre en oeuvre dans ce TP est la suivante :

Nom Description Rôle
PuTTY PuTTY est un émulateur de terminal doublé d'un client pour les protocoles SSH, Telnet, rlogin, et TCP brut. Il permet également d'établir des connexions directes par liaison série RS-232. A l'origine disponible uniquement pour Windows, il est à présent porté sur diverses plate-formes Unix (et non-officiellement sur d'autres plate-formes). C'est un logiciel libre distribué selon les termes de la licence MIT.
Lien : http://www.chiark.greenend.org.uk/~sgtatham/putty/
permet d'ouvrir, à partir d'un PC, une session Telnet sur la carte TINI et donc d'interagir avec celle-ci.
FileZilla FileZilla est un client FTP, FTPS et SFTP, multiplate-forme depuis la version 3. C'est un logiciel libre développé sous la licence publique générale GPL/GNU.
Lien : http://filezilla-project.org/
permet de transférer des fichiers du poste de développement (PC_DEV) vers la carte TINI.
Notepad++ Notepad++ est un éditeur de texte générique écrit en C++, qui intègre de nombreuses fonctionnalités dont la coloration syntaxique de code source pour beaucoup de langages (C, C++, Java, etc ..). Il est également une alternative au bloc-notes de Windows (d'où le nom). Le projet est sous licence GPL.
Lien : http://notepad-plus.sourceforge.net/fr/site.htm
permet d'éditer les fichiers sources de l'application sur le poste de développement (PC_DEV).
Windows © Windows est une gamme de systèmes d'exploitation produite par Microsoft ©, principalement destinés aux ordinateurs compatibles PC. C'est le successeur de MS-DOS. Windows est distribuée sous la licence Microsoft EULA (End User License Agreement). La plupart des ordinateurs vendus ont un système Windows préinstallé par le constructeur sous licence OEM (Original Equipment Manufacturer). Contrairement aux autres logiciels utilisés ici, Windows fait partie des logiciels propriétaires.
Lien : http://www.microsoft.com/france/windows/
permet d'exploiter le poste de développement (PC_DEV).
cmd.exe cmd.exe est l'interpréteur de commande en mode texte de Windows. Il est l'équivalent du shell sous Unix. Il peut interpréter des fichiers batch qui sont des fichiers textes contenant une série de commandes. Un fichier batch est l'équivalent d'un script shell sous Unix. Les fichiers batch de Windows sont des fichiers dotés de l'extension .BAT (ou .CMD).
Sous Windows, l'appellation "shell" regroupe deux concepts :
Comme pour Unix, l'interpréteur en ligne de commande (command.com pour les versions de Windows basées sur MS-DOS, et cmd.exe pour celles qui reposent sur Windows NT) L'interface graphique, en général l'Explorer. Remarque : avec Windows Vista est apparu un nouvel interpréteur de commande, le Windows PowerShell (utilisable aussi sous Windows XP), orienté objet.
Lien : http://windows.developpez.com/cours/ligne-commande/
permet d'exécuter des commandes (ping, ipconfig, ...) et d'automatiser la procédure de fabrication de l'application (maketini.bat).
Java Java est une technologie développée par Sun Microsystems. Elle correspond à plusieurs produits et spécifications de logiciels qui, ensemble, constituent un système pour développer et déployer des applications. Java est utilisée dans une grande variété de plates-formes depuis les systèmes embarqués et les téléphones mobiles jusqu'aux serveurs, les applications d'entreprise, les superordinateurs et dans une moindre mesure pour les interfaces graphiques comme les applets Java du Web.
Java est sous licence GNU GPL depuis novembre 2006.
Depuis des années, Sun Microsystems appelle Java la « technologie Java » dans son ensemble. En pratique, beaucoup de programmeurs utilisent le mot « Java » pour désigner le langage de programmation, tandis que la plate-forme d'exécution est appelée « JRE » Java Runtime Environment, environnement d'exécution Java) et le système de compilation : « JDK » (Java Development Kit) plutôt que « compilateur Java ».
Lien : http://java.sun.com/
Dans ce système, la technologie JAVA est utilisée de la manière suivante :
  • « java » : le langage de programmation de l'application s'exécutant sur la carte TINI
  • « jre » : machine virtuelle présente sur la carte TINI permettant d'exécuter l'application
  • « jdk » : environnement de développement installé sur PC_DEV permettant de fabriquer l'application pour la carte TINI. La version du JDK utilisée dans ce projet est la 1.4.2_19.


Remarque : avant de commencer la manipulation, il est conseillé de lire l'annexe sur la partie Réseau et Programmation.



III. Manipulations : tests de mise en oeuvre (10 min) 16%

A. Installation et mise en oeuvre du matériel et logiciel

E1Installer le matériel fourni

Raccordement du câble en nappe entre la carte Taylec et le panneau Systel

Vous devez réaliser dans l'ordre les actions suivantes :

  • relier la carte Taylec/TINI au HUB/Switch par un câble Ethernet
  • relier le panneau lumineux Systel à la carte Taylec en utilisant le câble en nappe (voir schéma)
  • alimenter le panneau lumineux Systel (alimentation 220V)
  • alimenter la carte Taylec/TINI (adaptateur 12V fourni)
  • relier le poste de développement PC_DEV au HUB/Switch par un câble Ethernet
  • démarrer le poste de développement PC_DEV sous Windows
E2Installer les logiciels suivants : PuTTY, FileZilla.

Vérifier préalablement leur présence sur le poste de développement et les installer si nécessaire (ils sont disponibles sur le serveur de la section, sur le CD ressources et par téléchargement sur Internet).

B. Mise en oeuvre de la communication réseau

Attention : les adresses réseaux utilisées dans ce document sont fournies à titre d'exemple. Ces adresses peuvent être différentes pour l'environnement mis à votre disposition.


E2Identifier la configuration réseau du poste de développement.

On va utiliser l'interpréteur de commandes de Windows, pour cela il faut faire :

Menu Démarrer → Exécuter → cmd
Démarrer - Exécuter  cmd.exe

Puis pour obtenir la configuration réseau du poste, taper la commande :

ipconfig /all

ipconfig
E2Compléter la fiche réseau du poste de développement.

  Fiche réseau du poste de développement  
Carte réseau  
Adresse physique  
Adresse réseau  
Masque de sous-réseau  
Passerelle par défaut  
DHCP   actif / inactif  
Serveur DHCP  
Serveur DNS  

E2Identifier les adresses réseaux des équipements à mettre en oeuvre.

Equipement   Adresse IP   Label
PC de développement (sous Windows)
  adresse_ip_pc
carte TINI
Remarque : l'adresse IP de la carte TINI vous est forunie lors de la manipulation
    adresse_ip_tini  

ping est le nom d'une commande informatique réseau (développée par Mike Muuss) permettant d'envoyer une requête ICMP (demande d'ECHO ou echo-request) d'une machine à une autre machine. Si la machine ne répond pas il se peut que l'on ne puisse pas communiquer avec elle.
L'analogie avec le ping-pong est que cette commande envoie une demande d'ECHO (echo-request), le Ping, et attend en retour une réponse d'ECHO (echo-reply), le Pong. Selon la réponse on connaît l'état de la machine distante.
Cette commande réseau de base permet d'obtenir des informations et en particulier le temps de réponse de la machine à travers le réseau et aussi quel est l'état de la connexion avec cette machine (renvoi d'un code d'erreur correspondant).
ICMP (Internet Control Message Protocol - Protocole de message de contrôle sur Internet) est un protocole de niveau 3 sur le modèle OSI, qui permet le contrôle des erreurs de transmission. En effet, comme le protocole IP ne gère que le transport des paquets et ne permet pas l'envoi de messages d'erreur, c'est grâce à ce protocole qu'une machine émettrice peut savoir qu'il y a eu un incident de réseau (par exemple lorsqu'un service ou un hôte est inaccessible). Il est détaillé dans la RFC 792.
Bien qu'il soit à un niveau équivalent au protocole IP, un paquet ICMP est néanmoins encapsulé dans un datagramme IP. Son utilisation est habituellement transparente du point de vue des applications et des utilisateurs présents sur le réseau. Son utilisation la plus connue se situe au niveau de la commande ping.
E2Tester la fonctionnalité réseau du poste de développement.

En utilisant l'interpréteur de commandes de Windows, taper la commande :

ping adresse_ip_pc

ping adresse_ip_pc
E2Tester la liaison réseau avec le système embarqué (carte TINI).

Pour réaliser un test de base d'une liaison réseau, on utilise souvent la commande ping qui permettra, en cas de succès, de valider la pile de protocoles jusqu'au niveau IP.

synoptique ping
modele ping


En utilisant l'interpréteur de commandes de Windows, taper la commande :

ping adresse_ip_tini

A la suite de ce test, on obtient généralement une des deux situations suivantes :

tests ping
E2Tester la communication réseau avec le système embarqué.

La carte embarquée TINI ne disposant pas de terminal opérateur (clavier/écran), on va donc utiliser celui du poste de développement par l'intermédiaire d'un logiciel d'émulation de terminal via le réseau. Le protocole permettant l'émulation de terminal en réseau se nomme telnet. Le logiciel Putty va nous permettre d'ouvrir une session (accès à un terminal de connexion via le réseau sur la carte TINI).

synoptique telnet
modele telnet


L'ouverture d'une session sur la carte TINI nécessite une authentification (un compte identifié par un login et un mot de passe). Vous utiliserez l'identifiant suivant :

login : root
password : tini

E2Exécuter le logiciel Putty et ouvrir une session sur la carte TINI.

Les paramètres de connexion sont les suivants :

Host Name (or IP address) → indiquer l'adresse IP de la carte TINI (destination à joindre)
Port → 23 (le numéro de port du service Telnet)
Connection type : Telnet

Ces paramètres peuvent être sauvegardés dans un profil de session avec le bouton Save et ré-utiliser plus tard avec le bouton Load.
Pour ouvrir une session, il faut ensuite cliquer sur le bouton Open !

putty connect

Une fois connecté, il est possible d'exécuter des commandes sur la carte TINI. Ceci est possible car celle-ci dispose d'un système d'exploitation (TiniOs) et d'un interpréteur de commandes (nommé SLUSH).

E2Lister les fichiers et répertoires de la carte TINI

Taper la commande :

ls

ls

Pour mettre fin à une session telnet, il suffit de taper la commande :

exit

exit

Remarque : à la fin de cette séquence, vous êtes en mesure de compléter une partie de la fiche de tests de la partie E.



C. Fabrication d'un exécutable pour la carte TINI


E2Installer les ressources pour le développement

Remarque : les logiciels sont disponibles sur le serveur de la section, sur le CD ressources et par téléchargement sur Internet.

E2Installer les logiciels suivants : Notepad++ et J2SDK 1.4.2_19.

E2Créer un répertoire (dossier) racine pour le projet.

Le répertoire (dossier) racine se nomme : panneauLumineuxSystel et il sera créé dans C:\.
Remarque : on peut créer un répertoire (dossier) de deux manières sous Windows

nouveau_dossier_cmd_explications
nouveau_dossier_explications

E2Installer les APIs tini1.02f et Taylec et les sources de l'application

Pour cela, il vous faut copier les APIs tini1.02f et Taylec et les sources dans le répertoire racine C:\panneauLumineuxSystel.

Une API (Application Programming Interface) est une interface de programmation qui fournit un ensemble de fonctions, procédures ou classes mises à disposition des programmes informatiques par une bibliothèque logicielle, un système d'exploitation ou un service.
Les bibliothèques servent à regrouper les opérations les plus utilisées dans les programmes informatiques, afin d'éviter la redondance de la réécriture de ces opérations dans tous les programmes.
Une bibliothèque statique contient des fonctions qui seront intégrées au code généré par le compilateur (édition de liens statique). L'inconvénient est qu'un programme ainsi obtenu n'est pas mis à jour lorsque la bibliothèque change. L'avantage est que le programme seul est autonome.
Une bibliothèque dynamique est une bibliothèque qui contient des fonctions qui seront intégrées au code au moment de son exécution (édition de liens dynamique). L'avantage est que le programme est à jour vis-à-vis de la mise à jour des bibliothèques. L'inconvénient est que l'exécution dépend de l'existence de la bibliothèque sur le système cible.
logiciel_p2a

E2Fabriquer la version 1 de l'application panneau_v1

On utilise le fichier maketini.bat qui permet d'automatiser le cycle de fabrication d'un programme pour la carte TINI.

logiciel_p2b

Maintenant, votre espace de travail pour la version 1 (dossier C:\panneauLumineuxSystel\workspace\panneau_v1\) doit être dans l'état suivant :

logiciel_p1

Remarque : à la fin de cette séquence, vous êtes en mesure de compléter une partie de la fiche de tests de la partie E.

D. Déploiement et exécution d'une application


La carte TINI dispose d'un serveur FTP natif. On va donc utiliser un client FTP (comme FileZilla) pour transférer le programme panneau_v1.tini vers la carte TINI.

FTP (File Transfer Protocol, protocole de transfert de fichiers) est un protocole de communication dédié à l'échange de fichiers informatique sur un réseau TCP/IP.

synoptique ftp
modele ftp


E2Déploiement de l'application sur le système embarqué cible.

Il faut exécuter le logiciel FileZilla, ouvrir une connexion FTP et transférer le programme panneau_v1.tini vers la carte TINI.

L'ouverture d'une session FTP sur la carte TINI nécessite une authentification (un compte identifié par un login et un mot de passe). Vous utiliserez l'identifiant suivant :

login : root
password : tini

Pour se connceter au serveur FTP de la carte TINI, vous pouvez utiliser le bouton Connexion rapide comme indiquer dans la capture d'écran fournie.

Une fois connecté, le transfert d'un fichier se fait par un simple glisser/déposer avec la souris.

transfert_filezilla
E2Exécution de l'application.

Il faut ouvrir une session Telnet sur la carte TINI avec Putty et lancer l'exécution du programme panneau_v1.tini avec la commande java (machine virtuelle).

Taper la commande :

java panneau_v1.tini

putty java
E2Observer le panneau lumineux Systel : que s'affiche-t-il ?

Réponse :


Remarque : à la fin de cette séquence, vous êtes en mesure de compléter une partie de la fiche de tests de la partie E.



E. Compléter la fiche des tests de mise en oeuvre


Ces tests ont permis de valider la mise en oeuvre du matériel, des logiciels et des ressources de développement constituant le système.

A la fin de cette activité, vous pouvez finaliser la fiche suivante :

Tests de mise en oeuvre    OUI/NON   
La liaison réseau IP PC-TINI est-elle fonctionnelle ?  
La communication réseau PC-TINI par telnet est-elle fonctionnelle ?  
La fabrication d'un exécutable TINI est-elle fonctionnelle ?  
Le transfert de fichiers PC-TINI par ftp est-elle fonctionnelle ?  
L'exécution d'une application TINI est-elle fonctionnelle ?  
Le panneau lumineux Systel affiche des caractères ?  
Remarques : fait le ___ / ___ / _____ par ___________________________







IV. Manipulation : test de validation d'un projet existant (5 min) 22%

Dans cette activité, vous allez rédiger un rapport de test de validation. La mise en oeuvre complète du système a du être réalisée précédemment.

Un technicien IRIS doit être capable de réaliser des tests de validation et d'apporter des remarques techniques précises lorsque ceux-ci échouent.

F1Editer le fichier source TGestionPanneau (avec Notepad++)

Vous devez vérifier qu'il contient les lignes de code suivante :

On utilise un éditeur de texte pour produire le code source d'un logiciel. Un éditeur de texte produit des fichiers texte codé en ASCII. On a l'habitude de fixer une extension aux fichiers sources permettant d'identifier facilement le langage de programmation utilisé. Par exemple : l'extension .java désignera des fichiers sources en langage Java, .c des fichiers sources en langage C, etc .
La norme ASCII (American Standard Code for Information Interchange - « Code américain normalisé pour l'échange d'information ») est la norme de codage de caractères en informatique la plus connue et la plus largement compatible. Cette norme définit 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à 1111111. Sept bits suffisent donc pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs travaillant (presque tous) sur huit bits (un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est stocké dans un octet et possède donc un code ASCII correspondant. Les caractères de numéro 0 à 31 et le 127 ne sont pas affichables ; ils correspondent à des commandes de contrôle de terminal informatique (par exemple le caractère 13 est le retour chariot). Le caractère numéro 32 est l'espace. Beaucoup de pages de codes étendent l'ASCII en utilisant le 8e bit pour définir des caractères numérotés de 128 à 255.
notepad gestion_panneau


F1Fabriquer, déployer et exécuter l'application correspondante.

F1Compléter le rapport de test de validation ci-dessous.

Tests de validation Application : panneau_v1.tini
Testeur : ___________________________ Date : ___ / ___ / _____
Description Résultat attendu Résultat obtenu Validation
Effacement du panneau au démarrage panneau vierge    
Affichage d'une suite de caractères Affichage de 'AAAA'    
...      
Remarques : (version 1a)





F1Modifier le fichier source afin qu'il puisse valider les tests de validation ci-dessous.

F1Fabriquer, déployer, exécuter et compléter le rapport de test de validation.

Tests de validation Application : panneau_v1.tini
Testeur : ___________________________ Date : ___ / ___ / _____
Description Résultat attendu Résultat obtenu Validation
Effacement du panneau au démarrage panneau vierge    
Affichage d'une suite de caractères Affichage de 'BTS'    
...      
Remarques : (version 1b)







V. Annexes

1) TCP/IP

modeles_tcpip_et_osi

"TCP/IP" désigne une architecture réseau, mais aussi deux protocoles réseaux : un protocole de transport, TCP (Transmission Control Protocol) qu'on utilise "par-dessus" un protocole réseau, IP (Internet Protocol). C'est donc une architecture réseau en couches dans laquelle les protocoles TCP et IP jouent un rôle prédominant. Le modèle TCP/IP peut en effet être décrit comme une architecture réseau à 4 couches : application, transport, réseau et interface.

Il existe aussi le modèle OSI (Open Systems Interconnection, « Interconnexion de systèmes ouverts ») qui est un modèle de communication réseau proposé par l'ISO (Organisation internationale de normalisation). Le modèle OSI comporte 7 couches qui décrivent les fonctionnalités et l'organisation nécessaires à la communication :
1 . La couche « physique » est chargée de la transmission effective des signaux (émission/réception de bits)
2 . La couche « liaison de données » gère les communications par l'échange de trames entre 2 cartes de communication, directement reliées entre elles par un support physique.
3 . La couche « réseau » gère les communications de proche en proche, généralement entre machines : routage et adressage des paquets.
4 . La couche « transport » gère les communications de bout en bout entre processus (programmes en cours d'exécution).
5 . La couche « session » gère la synchronisation des échanges et permet l'ouverture et la fermeture de session.
6 . La couche « présentation » est chargée du codage des données applicatives.
7 . La couche « application » est le point d'accès aux services réseaux.

Les 4 couches inférieures (couches basses) sont plutôt orientées communication et sont typiquement fournies par un système d'exploitation. Dans le monde IP, les deux couches les plus basses sont rarement distinguées et forment une seule couche représentant l'interface de communication.

Les 3 couches supérieures (couches hautes) sont plutôt orientées application et plutôt réalisées par des bibliothèques ou un programme spécifique. Dans le monde IP, ces 3 couches sont rarement distinguées et sont considérées comme partie intégrante du protocole applicatif..

Quelques protocoles :
7 . Couche application (Telnet - SSH - FTP - NNTP - DNS - SMTP - POP3 - IMAP - IRC - VoIP - HTTP)
6 . Couche de présentation (Videotex - Unicode - XDR)
5 . Couche de session (RTSP - H.323 - SIP - AppleTalk)
4 . Couche de transport (TCP - UDP - SPX)
3 . Couche de réseau (NetBEUI - ARP - IPv4 - IPv6 - IPX - ICMP - BGP - OSPF - RIP - IGMP - IS-IS - ATM)
2 . Couche de liaison de données (Ethernet - Anneau à jeton - LocalTalk - FDDI - Frame Relay - CAN - Wi-Fi - PPP - PPPoE - HDLC)
1 . Couche physique (CSMA/CD - CSMA/CA - Codage NRZ - Codage Manchester - RS-232 - Câble coaxial - 10BASE2 - 10BASE5 - Paire torsadée - 10BASE-T - 100BASE-T - RNIS - EIA-485 - ADSL - IrDA - USB - IEEE 1394 (FireWire) - Wireless USB, Bluetooth)

En savoir plus : lire l'annexe sur le réseau



2) Système d'exploitation

Le système d'exploitation (en anglais Operating System ou OS) est un ensemble de programmes responsables (noyau ou kernel) de la liaison entre les ressources matérielles d'un ordinateur et les applications informatiques de l'utilisateur (espace utilisateur ou user).

Un système d'exploitation est typiquement composé : d'un noyau, de bibliothèques, d'un ensemble d'outils système et de programmes applicatifs de base.

Le noyau assure notamment les fonctionnalités suivantes :
» gestion des périphériques (au moyen de pilotes ou driver) ;
» gestion de l'exécution des programmes (nommés processus, c'est-à-dire un programme en exécution) ;
» gestion de la mémoire ;
» gestion des fichiers (au moyen de systèmes de fichiers, comme NTFS ou FAT pour Windows) ;
» gestion des protocoles réseau (TCP/IP, IPX, etc.).

L'interface utilisateur aussi nommée interface homme-machine (IHM) permet à un homme de se servir de l'ordinateur. Dans le cas d'un ordinateur classique, il sera traditionnellement équipé de clavier, souris et moniteur.
Cette interaction homme machine s'élabore tant par le biais d'interfaces graphiques qu'en ligne de commande par le « shell ».

La ligne de commande (en anglais CLI pour Command Line Interface) est encore utilisée en raison de sa puissance, de sa grande rapidité et du peu de ressources nécessaires à son fonctionnement. Le système d'exploitation permet cette possibilité par l'intermédiaire d'un interpréteur de commandes (le « shell »).

L'interface graphique (en anglais GUI pour Graphical User Interface) s'oppose à l'interface en ligne de commande. Les parties les plus typiques de ce type d'environnement sont le pointeur de souris, les fenêtres, le bureau, les icônes, les boutons, les menus, les barres de défilement, ... Les systèmes d'exploitation grand public (Windows, MacOS, les distributions grand public de GNU/Linux, etc.) sont pourvus d'une interface graphique qui, dans un soucis d'ergonomie, se veut conviviale, simple d'utilisation et accessible au plus grand nombre pour l'usage d'un ordinateur personnel.

3) Documents au format PDF