ESME - Linux et programmation system - A.TALBI

Slides:



Advertisements
Présentations similaires
Mondialiser la solidarité Une stratégie de participation sur Internet.
Advertisements

CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
1 Logiciels Libres Planète en fête 6-7 Juillet 2007.
Présentation du système GNU/ LINUX Journée des Logiciels Libres - 10 Décembre 2006.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Made with OpenOffice.org 1 Travailler en réseau intranet à l'école Un réseau : pourquoi ? Architecture du réseau Partager un dossier Enregistrer en réseau.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
1. 2 Boite à outils Qt ● Boite à outils C++ pour le développement multi-plateforme d'application en environnement graphique (GUI) – des fonctions GUI.
Module 14 : Installation et configuration des services Terminal Server.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
NOTIONS INFORMATIQUES : RAPPEL
« Linux pour tous » Nizar Kerkeni Membre Ubuntu et Ubuntu-tn Fondateur de l’association pour la Culture numérique Libre – CLibre -
appareil de mesure (pHmètre P310 Chauvin-Arnoux) Pierre DIEUMEGARD,
La technologie des mémoires
Présenté par M. Anis DIALLO
Micro Informatique au Cellier
InfodataDay 2016 CONFÉRENCES 17 NOVEMBRE 2016.
Plan 1. L’ordinateur : Les connaissances de base
DropBox Projet App’Ifa.
FARAH.Z "Cours sécurité1" /2016
Utilisation de Windows
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Les Bases de données Définition Architecture d’un SGBD
Fedora 26 Quelles nouveautés ? License CC-BY-SA.
AugerDb / SimDb Gestion des simulations Auger Java
Cours 5 Mardi 13 septembre Période 1: Les bases de l’informatique et les composantes de l’ordinateur PARTIE 1 Période 2: L’utilisation de Power Point.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
FENIX Aperçu GLOBALE DU Système
Les composants informatiques
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Algorithmique & Langage C
Premiers pas sous Windows XP
Système d’exploitation Windows XP
Semaine #4 INF130 par Frédérick Henri.
Installation des OS par réseaux (PXE)
La distribution Ubuntu
SYSTÈME D’EXPLOITATION I
Programmation système
Présentation Linux Mint « 18.2 Sonya »
Interface Bas niveau : matériel processus mémoire pilotes E/S Haut niveau : fichiers gestion de fichiers.
Windev.
Documentation technique (Linux)
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Sfaihi Yassine Rabai Fatma Aissaoui Walid
Système d’exploitation
Exploiter le Web Etape 2.
Formation sur les bases de données relationnelles.
G.ELGHOUMARI Université ParisII Panthéon-Assas
Programmation Android Première application Android
Système d’exploitation UNIX
Assembleur, Compilateur et Éditeur de Liens
Module 13 : Implémentation de la protection contre les sinistres
Architecture matérielle des ordinateurs
Gestion des entrées/sorties: organisation d'un disque dur
Notions de base sécurité
18 octobre 2007 Fonctionnement d’un ordinateur Achat d’un ordinateur
Présenté par M. Anis DIALLO
Serveurs d’applications
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
La gestion des pilotes de périphériques
Les différents modes de démarrage de Windows
GNU/LINUX LE SYSTÈME D'EXPLOITATION LIBRE. QU'EST CE QUE LINUX? Le noyau d’un système d'exploitation de tipe UNIX pour des ordinateurs x86 Tout système.
Notions de base sécurité
Principales différences entre les systèmes d’exploitation Linux UBUNTU et Windows Nouveau : on insiste sur la partie formation 1.
Traitement de TEXTE 2 Stage – Semaine 3.
Transcription de la présentation:

ESME - Linux et programmation system - A.TALBI Logiciels libres La notion de logiciel libre est décrite pour la première fois dans la première moitié des années 1980 par Richard Stallman qui l'a ensuite – avec d'autres formalisée et popularisée avec le projet GNU et la Free Software Foundation (FSF): Premièrement: la liberté de copier un programme et de le redistribuer à vos voisins, qu'ils puissent ainsi l'utiliser aussi bien que vous. Deuxièmement: la liberté de modifier un programme, que vous puissiez le contrôler plutôt qu'il vous contrôle ; pour cela, le code doit vous être accessible Projet GNU lancé en 1983 par Richard Stallman : Développer un système d'exploitation libre à base de briques logiciels libres  Objectif "partiellement" atteint en 1992 avec la publication de la dernière brique manquante à savoir le noyau. Ce noyau était la première version de linux (créé par Linus Torvalds) Exemples de logiciel GNU/libres: Le noyau linux GNU Bash: inteprêteur de commande UNIX (terminal) Coreutils: regroupe toutes les commandes (programmes) de base: cp, cd, ls, mv, rm, chmod… GNU Make: outil d'automatisation de la compilation de projets GNU GCC: compilateur C/C++… Glibc: libc (librarie du langage C) GNOME KDE: environnement graphique de bureau Emacs , VI/VIM: éditeur de text Firefox: navigateur web Protection de logiciels libres en général par une licence publique (ex GPL: GNU General Public License) pour faire en sorte que personne ne puisse s'attribuer des droit exclusifs sur un logiciel libre (même après l'avoir modifier…) ESME - Linux et programmation system - A.TALBI

ESME - Linux et programmation system - A.TALBI Distribution linux Une distribution Linux, appelée aussi distribution GNU/Linux pour faire référence aux logiciels du projet GNU, est un ensemble cohérent de logiciels, la plupart étant des logiciels libres, assemblés autour du noyau Linux. Il existe une très grande variété de distributions, ayant chacune des objectifs et une philosophie particulière. Les éléments différenciant principalement les distributions sont : la convivialité (facilité de mise en œuvre), l'intégration (taille du parc de logiciels validés distribués), la notoriété (communauté informative pour résoudre les problèmes), l'environnement de bureau (GNOME, KDE…), le type de paquet utilisé pour distribuer un logiciel (principalement deb et RPM) et le mainteneur de la distribution (généralement une entreprise ou une communauté). Le point commun est le noyau (kernel) et un certain nombre de commandes. ESME - Linux et programmation system - A.TALBI

Architecture d’un système linux classique La couche matérielle: C’est la couche physique, elle est constitué du processeur ainsi que des différents contrôleurs de périphériques Le noyau linux: C’est une des parties fondamentales d’un systèmes d’exploitation. Il gère les ressources de l’ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux Le serveur X: C’est un environnement graphique de type « fenêtré » qui gère l'interaction homme-machine par l'écran, la souris et le clavier. Il est souvent appelé X Window. C'est le système standard ouvert d'interaction graphique avec les programmes graphiques utilisateur sur les UNIX (Linux, BSD, etc.). On dit communément d'une application qu'elle tourne sous X lorsqu'elle est conçue pour l'environnement X. Applications X: Ce sont toutes les applications en mode graphiques (navigateurs, jeux, éditeurs…) Shell: C’est un programme qui permet de lancer d’autres programmes en ligne de commande (sans passer par une application graphique genre l’explorateur de fichiers) Linux est le nom du noyau et par abus de langage il désigne aussi le système d’exploitation Shell ESME - Linux et programmation system - A.TALBI

Architecture du noyau linux Le Hardware: Comme vu précédemment, le hardware (matériel ou couche physique) est constitué du processeur, de la RAM ainsi que des contrôleurs des autres périphériques. Tous les modules qui suivent sont les parties logicielles du noyau, chacune d’elle est responsable d’une certaine fonctionnalité ou service offert aux applications Le scheduler (ordonnanceur): Ce module est responsable du partage du processeur (des cœurs) entre les différentes taches des différents processus Le process management: Ce module est responsable de la création (chargement exécution) et de la destruction des processus ainsi que de leur taches Le memory manager: Ce module est responsable du partage de la mémoire entre les applications. Il cache les détails de la mémoire physique et offre à chaque application (processus) une mémoire virtuelle dans laquelle il peut s’exécuter en utilisant les mêmes adresses (virtuelles) que les autres processus. ESME - Linux et programmation system - A.TALBI

Architecture du noyau linux Block devices: Ce modules est responsable de la gestion des devices de type block (ex: disques dures), il implémente un cache (logicielle) pour accélérer les accès disques en reposant sur les notions de localité spatiales et temporelles (un peu pareil que le cache des microprocesseurs sauf que c’est fait d’une manière logicielle) Character devices: Ce modules gère les devices de types caractère (ex: port série, terminal série…) Network drivers: Ce module contient les drivers pour accéder à la carte réseau Network protocol: Ce module implémente les différents protocoles réseau (TCP/UDP/IP, HTTP, FTP…) File system: Ce module permet de faire abstraction des différents types de devices. Il offre une vue en fichier (système de fichier accessible avec l’explorateur) de tous les devices. Un ou plusieurs fichiers sont associé à un device. Ces fichiers pourront être utilisés par une application pour réaliser des I/O (entrées/sorties) sur le device. ESME - Linux et programmation system - A.TALBI

Architecture du noyau linux System Calls (Appels System): Les system calls (appels system) sont les fonctions par lesquelles les applications demande un service au noyau. Ce mécanisme assure la protection l’intégrité du noyau en s’assurant qu’une application ne puisse jamais corrompre des données dans le noyau. Il utilisent la notion d’interruption logicielle. Drivers (Pilotes): Sous linux un device driver (pilote de périphérique) est le module logicielle qui dialogue directement avec le matérielle qu’il gère. ESME - Linux et programmation system - A.TALBI

Application utilisateur Architecture du noyau linux: les drivers Application utilisateur read file write file ioctl Les drivers ainsi que les différents gestionnaires d’interfaces sous linux offrent une vue en fichier et homogène de tous le matériel. Ceci facilite grandement la programmation au niveau utilisateur, car ce dernier se concentre seulement sur son algorithme sans se soucier des détails du matériel/interface à utiliser. Ainsi l’utilisateur pourra faire tourner le même programme sur différentes interfaces sans beaucoup de peine (en général il suffit de changer le nom du fichier désignant le port souhaité). Les drivers sont développés par les fabricants des devices (et de leurs contrôleurs matériels) ou par des développeurs qui ont une connaissance de ce contrôleur. L’étude et la maitrise de certains aspects du noyau linux est indispensable afin de réaliser un bon driver. Noyau (Kernel) Appel system (System calls) Gestionnaire de fichiers read Write ioctl Gestionnaire d’Interface de type Caractère: read Write ioctl Gestionnaire d’Interface de type block: read Write ioctl Gestionnaire d’Interface de type net: read Write ioctl Driver port série read_char write_char ioctl Driver I2C read_char write_char ioctl Driver hard disk write_block read_block ioctl Driver lecteur CD write_block read_block ioctl Driver USB read_block write_block ioctl Driver carte réseau send_frame receive_frame ioctl Matérielle Port série Port i2c Disque dur Lecteur CD Adaptateur réseau sur USB Carte réseau ESME - Linux et programmation system - A.TALBI

Architecture du noyau linux: les appels system Ex: l'appel system read (lecture depuis un fichier/port) espace utilisateur espace kernel (noyau) Microprocesseur en mode utilisateur Microprocesseur en mode superviseur Programme utilisateur Bibliothèque libc Vecteur des appels system Main () { /* identifient du fichier ou du port à lire*/ int fd; /* tableau de stockage des données à lire */ char *buf[100]; /* nombre d'octets à lire */ int size = 100 ; …. ret = read(fd, buf, size) ; } 2 1 Gestionnaire d’interruptions INT 0x80 : system_call { - récupération du numéro de l'appel system ainsi que ces paramètres - récupération de l'adresse de la routine (fonction) de traitement de l'appel system read depuis le vecteur - exécution de l'appel system ; - retour à l'espace utilisateur } 1 @ Appel Sys 1 2 @ Appel Sys 2 …. n @ Appel sys_read … read(fd, buf, size) { - stockage des param fd, buf, size à un endroit précis - stockage du numéro de l'appel system read - Levé de l'interruption logicielle INT 0x80 - code retour de l'appel System } 3 sys_read(fd, buf, size) { Appel de le fonction read du driver qui contrôle le périphérique sur lequel se trouve le fichier/port à lire } 4 5 7 6 Intérêt de l'utilisation des appels system: Empêcher un programme utilisateur contre l'accès direct aux données du noyau (protection contre la corruption des données du noyau et des autres programmes), contre l'accès direct au matériel (manipulation des registres des contrôleurs) et contre l'exécution de certaines instructions/fonctions sensibles (ex: le masquage/démasquage des interruptions ne peut se faire que si le microprocesseur est en mode superviseur) tout ceci a pour but de rendre le système stable est sécurisé ESME - Linux et programmation system - A.TALBI