Principe des systèmes informatiques.

L’ordinateur et son système...



Principe des systèmes informatiques

  1. Introduction

Ce texte a été mon premier support de cours destiné à un public de techniciens de premier niveau dans le cadre de mon activité professionnel il y a quelques années.

Mon but était à l’époque de donner les bases de compréhension du fonctionnement d’un système informatique à mes stagiaires.

Support créé pour le compte de la société GFI Informatique en 1999, complété EDS France en 2001 puis réactualisé en 2009.

D’origine les personnels formés travaillaient sur des systèmes « propriétaires » de l’éditeur Microsoft, donc les premiers supports avaient une orientation en ce sens tout en leur donnant des clés leur permettant de s’ouvrir à d’autres systèmes.

Le support tel qu’il est maintenant sera surtout orienté UNIX/Linux.

La raison en est à la fois technique et éthique.

Avec un système Linux, il est possible d’expliquer le fonctionnement intime d’un système d’exploitation car c’est un système ouvert. Il n’est pas très compliqué de compiler puis d’installer un noyau, mais j’emploie ici des expressions obscures. Je vous prie de m’en excuser, je vais tenter de rester conforme au niveau d’origine du document afin de ne décourager personne.

La plupart des exemples donnés ici seront pris sur des systèmes GNU/Linux ou Unix, rarement sous windows.

C'est un choix délibéré.

Windows ne peut pas être utilisé pour comprendre le fonctionnement d'un système d'exploitation car il est totalement opaque,y compris aux rayons X, ce qui le rend très difficile à étudier.
Certains ordinateurs parlent en ASCII, d’autres en EBCDIC. Pour des raisons de simplification, je ne traiterais pas le deuxième système de notation car il est peu utilisé et ne concerne pas les petites machines.

  1. Présentation de ce qu’est un ordinateur

Les types d’ordinateurs.

Il existe différents types d’ordinateurs.

Voici des exemples de types de machines : les supercalculateurs, les « gros systèmes » de type « MainFrame », et les micro-ordinateurs.

Ce premier support a pour objet le fonctionnement global des ordinateurs, donc je ne ferai pas de distinction.

Juste pour la forme j’ajouterai que parmi les micro-ordinateurs se trouvent couramment deux types de machines, les machines Apple (ou Mac pour les intimes) et les PC, pour « Personal Computer » (Ordinateur personnel, dans un sens de individuel plutôt, à l’époque en tout cas.)

Le système d’exploitation par défaut des machines Apple est MAC OS. Depuis quelques années ce système s’appuie sur un noyau UNIX, il porte donc la dénomination MAC OS/X, mais on peut très bien faire fonctionner un système GNU/Linux sur un Mac.

Quoiqu’en disent certaines personnes mal informées, les PC n’ont pas de système par défaut. C’est une dérive mercantile qui fait croire le contraire à beaucoup de gens, les laissant ainsi devenir des consommateurs passifs ignorant totalement que leur liberté dépend d’un choix qu’on leur refuse.


Bref, les propriétaires de PC ont le choix.

S’il s’agit d’un système propriétaire, il faudra acheter une licence, si c’est un système libre, alors vous serez exonérés du paiement de droit d’utilisation et vous pourrez faire tout ce que vous voudrez avec, à condition que techniquement ce soit réalisable, bien entendu.


Les principaux systèmes d’exploitation des micro-ordinateurs sont GNU/Linux, MAC OS/X, minix, Xenix, Free BSD, Open BSD, Net BSD, Windows. Il en existe d’autres tombés en désuétude ou bien peu utilisés.

Certains de ces systèmes fonctionnent de façon native sur les plate-forme MAC et PC, Il s’agit de GNU/Linux principalement.

Ce qu’on appelle une plate-forme correspond en fait à une architecture de processeur. Voici quelques exemple de plate-formes : Power PC, x86, AMD64, SPARC, VAX, Alpha, etc.

Certaines d’entre elles ont disparus ou bien sont en voie de disparition, par exemple les VAX et les Alpha, du constructeur Digital. Celui-ci a été racheté par Compaq, lui même racheté quelques années plus tard par HP. Finalement le profit aura eu raison de ces technologies.

Description logique .

L’ordinateur est un ensemble à trois niveaux.

O.S. Systèmes d'exploitation + logiciels

B.I.O.S. Interface entre matériel et logiciel

Matériel

Le niveau matériel:

Le boîtier, ses périphériques de base. (clavier; écrans, lecteurs de disques et de disquettes).

Le B.I.O.S.

Binary Input Output System (Système d'entrée et sortie).

Il faut qu'un élément permette de fédérer les informations afférentes à la composition de la machine, c'est le B.I.O.S. Cet élément doit pouvoir prendre le contrôle de tous les ports d'entrée et de sortie ainsi que des périphériques de base qui y sont connectés:

quantité de mémoire vive (RAM Random Access Memory), contrôleurs vidéo, contrôleurs d'unités de stockage, clavier, type de CPU(Central Process Unit), périphériques de stockage (CD-ROM, lecteurs de bandes, de disques et de disquettes).

Si l'appareil ne savait pas qu'il a un clavier, un disque dur ou un écran, il serait impossible de passer au troisième niveau de ce modèle à trois couches: le système d'exploitation.

Operating System ( système d'exploitation)

Une fois que le PC a pris en compte son équipement, il reste à lui installer un système d'exploitation servant à utiliser les disques, optimiser l'affichage et à rendre l'ensemble plus convivial.

Il y a quelques années, les OS pouvaient être stockés sur des Bandes Magnétiques( Tape Operating System) ou sur Disquette.

Dorénavant, ils sont installés sur des disques durs, des mémoires de stockage et sur des supports amovibles tels que CD-ROM, DVD-ROM et clés USB.

Au dessus de L'Operating System on trouve les différents programmes conçus dans différents langages.

L'OS prend en charge l'intégralité des fonctions de la machine, il peut envoyer un ordre au B.I.O.S. pour faire redémarrer la machine ou pour écrire sur un périphérique

Une bande magnétique est un média linéaire, on peut lire des informations en continue. Ce n’est plus le cas pour un disque dur.

Sans rentrer dans les détails, il faut installer sur le secteur de démarrage du disque dur une routine qui va commencer à charger un système en mémoire.

Ce système, s’appelle « init » car il initialise le système, mais comme il est en mémoire vive (la RAM), dans un système linux il s’appelle initramfs.

Une routine « init »se charge en mémoire « RAM » avec son file system virtuel. Ensuite, cette routine initramfs va permettre au système d’exploitation de réellement démarrer depuis le disque dur et de se charger à son tour en mémoire. Mais c’est une autre histoire...

Nous n’en sommes pas encore là.

Certains des éléments dont je parle ci-dessous font l’objet d’explication plus loin dans le document. (Chapitre : Les composants d’un ordinateur)

Brèves notions de Langage informatique.

Le langage de l’ordinateur est un langage purement logique et numérique.

Notre langage courant lui est incompréhensible, ainsi, lorsque nous appuyons sur la lettre A du clavier, le signal reçu par l’ordinateur n’a plus rien à voir avec cette lettre car il s’agit d’un signal binaire.

Entre la lettre et le binaire se trouve un intermédiaire : les codes hexadécimaux.


Le nombre binaire 1000 0001 aura pour équivalent décimal 129 et pour équivalent hexadécimal 81.

Le code hexadécimal 8F aura pour équivalent décimal 143 et pour équivalent binaire 10001111


A la différence du système décimal à base 10, le système hexadécimal est à base 16 et comprend des valeurs de 0 à 15. Les valeurs supérieures à 9 sont écrites avec les lettres de A à F.

Lorsque vous voyez un code d’erreur comportant des chiffres de 0 à 9 et des lettres comprises entre A et F, c’est un code hexadécimal.


La programmation en hexadécimal est encore utilisée, c’est l’assembleur.

A la fin des années 60, les langages de programmation ont commencé à faire de grands progrès, jusqu’à la naissance du langage C, avec la réécriture d’UNIX dans ce langage, en 1972.


Mais il existe d’autres langages tels que le Pascal, le COBOL, le Basic par exemple.

Tous ces langages cités en exemple comportent plusieurs déclinaisons et version.


Ces langages comportent des séries d’instructions et pour certains d’entre eux des séries de variables chaînes, de variables nombres, etc…

Par exemple lorsque un programme doit extraire un mot d’un fichier et le convertir en majuscule ou minuscule. Plusieurs commandes seront nécessaires pour exécuter une opération simple. Un programme décompose systématiquement les actions humaines.


Ci-dessous un algorithme décomposant les actions à effectuer par un programme
020 Mettre un mot recherché dans une variable chaîne que nous appellerons "$var"
030 Mettre le nom du fichier recherché dans une variable chaîne $var
040 Chercher le fichier.
050 Mettre le nom du répertoire ou se trouve le fichier dans une variable chaîne $var
060 Mettre le fichier en mode « ouvert »
080 Chercher le mot indiqué dans la variable chaine $var ce mot et trouver le numéro de la ligne
100 Mettre le numéro de la ligne dans une variable numérique que nous appellerons "$num"
130 Convertir la chaîne du mot en caractères majuscules.
140 Recopier la chaîne à son emplacement dans le fichier.
150 Mettre le fichier en mode « fermé »
200 sortir du programme.

Le début d’un programmes en langage C contiendra les définitions de variables et de fonctions préexistantes :

Exemple de code C très simple. C'est le début d'un projet de calculatrice... (joke)

#include <stdio.h> #include <stdlib.h> int main()
/* definition des variables - ici la variable se nomme test. Elle est de type entier long */
long test ;
/* deux instructions servant à la saisie de la variable au clavier */
printf( "la valeur est : " );
scanf("%d@ \n", &test );
/* affichage du résultat
printf("Le carré de %d est %d :", test , test * test );
/* code retour souhaité : 0 si tout est correct.
return 0;
}

Ce code fait l'objet de commentaires de façon caricaturale, afin de bien faire comprendre que le code source doit toujours être commenté pour sa bonne maintenance.

Lorsque vous exécutez un programme compilé, vous n'avez pas accès à toutes ces lignes de code.
Il vous suffit de cliquer sur un fichier executable.

Mais il existe des langages qui peuvent s’exécuter sans être compiler.

Il existe des langages compilables et des langages interprétables.
Le HTML est un langage interprétable, le C est un langage compilable.
D'autres exemples de langage interprétable :
javascript, css, spip, shell script,etc.

Et d'autres exemples de langage compilables :
C, C++, Pascal, Fortrans, Cobol,Go (le futur langage basé sur le C et créé par Google).

Exemple :

Voici un exemple de script shell Unix visant à automatiser une tache d'administration.



#!/bin/sh

# script visant a verifier le fonctionnement d'un job et à le relancer le cas echeant

#===============================================================

# Auteur | Jonas FERNANDEZ | 13 novembre 2009

# Fait a Tahiti - Polynesie Francaise

#===============================================================

# N° de version | commentaire | date | Observations

#=========================================================================

# Version 0 | creation | 13 novembre 2009| Script de demo pour le site Internet

#

#================================================================

echo "$0 permet de creer de verifier le fonctionnement d'une application et de la relancer si elle est plantee."

#########################################################################

#Recuperation etat du job : 0 ou 1

nbline=`ps -ef | grep kpat | grep -v grep | wc -l`

case $nbline in

0)

echo "kpat n'est pas lance"

#Demarrage du job

/usr/games/kpat &

sleep 2

echo "programme demarre par le script"

;;

1)

echo "kpat OK"

sleep 5

;;

esac

A l'exception de la première ligne, toutes celles commençant par # sont des commentaires.
Notez bien que les paragraphes des actions sont très commentés afin d’en faciliter la maintenance.
Il est toujours primordial de faire du code propre et facile à reprendre car il ne faut pas oublier que ce n’est pas un langage naturel pour nous.

Les scripts n’ont pas besoin d’être compilé car ils fonctionnent dans un interpréteur de commande.
Dans le cas du script ci-dessus, il s’agit de /bin/bash.

Mais un programme un peu plus sophistiqué aura besoin d’être codé dans un langage plus complexe puis compilé.

La programmation n'étant pas l'objet de ce document et je continue sur les composants de l’ordinateur.


Les composants d'un micro-ordinateur.

La carte-mère

Elle est appelée ainsi car elle comporte des emplacement dans lesquels on peut introduire des cartes filles.

En général, c'est sur la carte-mère que ce trouve les processeurs, mais il arrive que ceux-ci soit sur une carte-fille spéciale.

Dans le cas le plus courant, les CPU et l'EEPROM sont sur cette carte.

L'EEPROM (Electrical Erasable Programmable Read Only Memory) est un composants contenant le BIOS.
Sans BIOS, votre machine n'est rien de plus qu'une sorte de cafetière électrique toute déglinguée.

EEPROM signifie : Electrically-Erasable programmable read only memory.

Donc c'est une ROM améliorée car elle peut-être flashée et mise à jour.

Les CPU (Central Process Unit) ou Microprocesseurs.

Ce composant est la boite crânienne de l’ordinateur. C'est là que se font tous les calculs.

Il en existe différents types ils définissent la puissance de calcul de la machine. C'est un composant qui ne peut contenir que les informations qu'il calcul. Lors de l'extinction du poste il se décharge.

La mémoire Vive. (Random Acces Memory).

Au début des micro-ordinateur les systèmes d'exploitation n'étaient pas très puissant, en plus de l'exploitation du matériel en s'appuyant sur le BIOS, ils permettaient juste quelques commandes de base, et servaient d'appui à quelques applications très basiques.

Cette mémoire ne contient aucune information à l'arrêt. Cependant, elle est sans cesse mise à l'épreuve en cours de session.

C'est dans la RAM que se charge le système d'exploitation et que s'ouvrent les applications.

La RAM se décharge lors de l'arrêt ou du redémarrage de la machine.

Lorsque les PC sont arrivés sur le marché, le système de gestion de la mémoire qui fut utilisé par Microsoft dès le début était largement assez puissant pour gérer de petites quantités de RAM.
Les machines ont très vite évolué et l’éditeur, au lieu de radicalement modifier son système de gestion de RAM préféra l'adapter simplement en lui ajoutant des outils permettant d'atteindre les zones les plus élevées de la mémoire vive.

Donc MS-DOS ne sait gérer que 640 Ko de mémoire et c'est grâce à des outils rapportés que ce système très primaine peut gérer la mémoire d'un PC de façon à peu près convenable.


Pendant ce temps, Apple avait déjà dépassé avec succès cette étape depuis longtemps sans avoir à modifier son système. Les Macintosh fonctionnaient déjà en mode graphique au milieu des années 80.


Comment est organisée la mémoire d'un PC.

Je ne vais pas m’étendre sur l’organisation de la mémoire pour le MS-DOS, cela n’a pas grand intérêt, ces technologies sont maintenant en voie d’extinction.

D'autres systèmes d'exploitation savaient gérer la mémoire mieux que Microsoft, le GéOS, sorti à peu près en même temps que Windows était un système graphique qui a malheureusement succombé à l'acharnement commercial de Microsoft.

Des systèmes Unix adaptés aux PC qui pouvaient d'ailleurs tourner sous un 80286 malgré le peu de vélocité et de puissance de ces machines. Microsoft a même fait un essai avec Xenix, ils n’ont malheureusement pas persisté.

Minix est système UNIX adapté aux petites machines, ils fonctionnait aussi sur PC.

En 1992, un étudiant finlandais créait un système d’exploitation sur le modèle d’UNIX. Il a connu un succès presque immédiat dans son milieu très restreint et plusieurs confrères ont aidés à l’amélioration de son système. Ce finlandais s’appelle Linus Torwalds. Retenez bien ce nom.

Xenix, Minix, Linux, Mac OS pouvaient gérer l’intégralité de la mémoire vive intégrée dans une machine sans artifice particulier.

Il a fallut attendre 1993 pour Microsoft réussisse à en faire presque autant...

Actuellement les machines 64 bits deviennent de plus en plus courantes.

Les systèmes les mieux adaptés à cette révolution sont les systèmes Unix. Dans le cas présent, je place Linux et Mac OS/X dans la famille de ces systèmes.

Les périphériques de stockage

Ces périphériques sont gérés par des cartes dites "contrôleur". Ces cartes assurent la communication entre les périphériques de stockage et la carte principale dite "carte mère".

Les contrôleurs peuvent être de différents types, utilisant des technologies différentes.

Au cours des évolutions techniques plusieurs normes sont apparues.

SCSI Issue des Machines Macintosh et des gros systèmes, (Small Channel Standard Industry).

IDE et Extended IDE que l’on nomme aussi PATA. (Parallel ATA)

Il existe maintenant un bus rapide qui succède au PATA : le SATA. (Serial ATA)

Les périphériques de stockages se connectent en chaînes sur leurs contrôleurs. Une chaîne SCSI peut comporter jusqu'à 7 lecteurs, alors qu'une chaîne IDE ne peut en contenir que 2. On utilise actuellement les cartes SCSI principalement sur les serveurs de fichiers qui comportent plusieurs disques, souvent un lecteur de CD-ROM, et parfois des systèmes de disques complexes, avec des sécurisation en cas de panne, (SFT-I, II et III de Novell, Raid 1 ou mirrorring, Raid 5, etc…).

Les périphériques de stockage les plus courants sont les lecteurs de disquette, de CD-ROM, les disques durs, les clés USB et même des cartes USB comme celle éditée par FSF en 2008 sur laquelle on pouvait démarrer un système Linux GNewSense.

Depuis quelques années les clés USB et disques USB ont fait une entrée fracassante. L’USB 3 fait son apparition depuis l’été 2009. Le premier système d’exploitation à le supporter est Linux.

Les ports de communication.

Les PC sont en règle générale équipés de ports de communications série, parallèle, USB et parfois Firewire.

Ces ports permettent de communiquer avec des périphériques de l'ordinateur.

Modem, Imprimante, machines spéciales.

Nous verrons que certains protocoles réseau utilisent aussi la notion de ports ouverts ou fermés pour se connecter à une machine.

La vidéo.

Il est nécessaire qu’il y ait dans le micro-ordinateur une carte sur laquelle se branche l’écran.

Les carte vidéo modernes ont des capacités très fortes, et peuvent permettre de visualiser un film avec une très bonne qualité. Le choix de l’écran est aussi très important. Il ne sert d’avoir une carte puissante si l’on branche dessus un écran VGA de base.

La standardisation a évoluée quant à l'affichage.

Actuellement, la plupart des types de cartes utilisées sont dérivées du V.G.A., et permettent d'améliorer considérablement la qualité de l'affichage.

Les bus PCMCIA, PCI etc...

Il s'agit de familles de connecteurs dans lesquels il est possible d'implémenter d'autres cartes additionnels.

Si vous ouvrez le capot d’un ordinateur, vous allez voir une carte « fond de panier » dans laquelle sont éventuellement enfoncées plusieurs cartes d’extensions.

Je ne m'étendrais pas ici sur les différents types de bus, mais je vais tout de même les nommer.
Disparus aujourd'hui : NuBus (issu du Macintosh), ISA (Industrial Standard Architecture), EISA(ISA étendu), MCA (Micro Channel Architecture IBM, Bull)
Encore utilisés de nos jours : PCI, PCMCIA, PCI Express, USB (1, 1.1, 2 et 3), Firewire, minidisplay (Macintosh), etc.

Les bus USB

Universal serial bus. Il en existe actuellement 4 types.

USB 1, USB 1.1, USB 2 et USB 3 depuis cette année (2009).

Intel a annoncé qu’il serait disponible sous Linux en premier lieu et ce fut en effet le cas. Une collaboration de cette ampleur avec la communauté du libre mérite d’être soulignée.

Les cartes d'interface réseaux (Network Interface Cards).

Elles font parties des cartes additionnelles et ne sont pas indispensables au bon

fonctionnement des postes. Cela dit, elles permettent d'utiliser des ressources partagées d'un serveur ou d'une autre station du réseau.

Elles permettent en fait de communiquer avec d'autres machines grâce aux protocoles de communication. (TCP-IP, IPX/NetX, etc.)

Les systèmes d'exploitation de poste.

Introduction

Les systèmes d'exploitation sont totalement différents dans chaque familles d'ordinateurs.

Les systèmes récents sont écrit majoritairement en langage C.

Au départ, les machines personnelles des années 70-80 fonctionnaient à partir de bandes magnétiques, mais la réduction de la taille des composants a permit d'introduire un support plus pratique à utiliser dans les micro ordinateurs, le disque dur (hard disk).

On a créé les systèmes d'exploitation de disques. (Disk Operating System).

D.O.S. signifie simplement cela.

Différents types d’O.S.

Il existe des os courts, les vertèbres par exemple, les os longs dont le fémur est un excellent représentant et aussi des os plats tels que les omoplates...
os courts, au secours...
Au départ, il existait des systèmes d'exploitation différents pour chaque type de machine.
Il était hors de Question de faire fonctionner un MACINTOSH ® avec MS-DOS ® ou un P.C. avec le System d’un MACINTOSH®. Par contre, des systèmes peuvent être installé après certaines modifications sur des machines qui ne sont pas censé les supporter au départ, cela s'appelle le portage ou la portabilité. Exemple, certaines version d'Unix ont été adaptées aux PC, aux VAX, aux processeurs Alpha, etc...
Il existe aussi des systèmes d'exploitation pour les réseaux locaux, Les Network Operating System (N.O.S.).
Les systèmes d'exploitations permettent d'utiliser toutes les ressources à la disposition d'une ou plusieurs machines.
Un D.O.S. permet l'utilisation de tout le potentiel d'une seule machine. Les D.O.S. sont le plus souvent installés sur les disques dur, mais ils peuvent l'être sur des disquettes, CD-ROM, bandes, voire même dans certains cas, être installé sur une R.O.M. (certaines vielles machines ou d'autres plus récentes qui ne sont plus vraiment des micro-ordinateurs mais semblables par leur fonctionnement, les agendas du type Nokia Communicator 9000, Psion ou autre). Si le B.I.O.S. arrive a faire le décompte de la mémoire d'un P.C. seul le D.O.S. saura en tirer pleinement parti. C'est le système d'exploitation qui saura introduire des informations en mémoire et les en décharger.
Si le B.I.O.S. détecte une carte S.C.S.I., ou une carte réseau et en facilite la configuration, c'est encore le DOS ou le NOS qui permettront de l'exploiter. Exemple, la carte réseau: c'est grâce à un client réseau installé sur le système d'exploitation que l'on va pouvoir lui indiquer le type de réseau sur lequel elle se trouve et d'autres informations utiles à son fonctionnement.

Un exemple de système d'exploitation: Unix

Unix est un système très ancien puisqu'il a été créé en 1969, depuis il a subit énormément d'améliorations dont sa réécriture en langage C en 1972.

Sa philosophie

Unix est écrit à 95 % en langage C, ce qui explique une grande portabilité. Il facilite l'utilisation ou la création d'outils de développement. Sa conception est modulaire. Il est composé de trois niveaux, le noyau, le Shell, les utilitaires. La quasi-totalité des systèmes existant actuellement fonctionnent sur ce modèle, certains avec des allégements (MS-DOS, OS/2 par exemple).
Tous les systèmes ont certaines possibilités communes avec Unix, mais aucun n'ont sa puissance. Unix est en fait devenu avec le temps une famille de système car UNIX est un nom breveté. Il ne peut plus y avoir un système portant ce nom. Cette famille de système a évolué d’une façon assez intéressante et a également bien failli disparaître.

De cette famille, notons quelques célébrité : BSD et System V qui ont tous les deux des dérivés. Je ne vais pas entrer dans les détails car ce n’est pas l’objet de ce document, mais relevons que Sun OS (devenu Solaris il y a quelques années), IBM AIX, HP-UX, Linux, Mac OS X sont des systèmes Unix. Donc les principes énoncés ici pour Unix, sont valables pour tous les systèmes apparentés.

Le noyau unix

Le noyau d'Unix est composé de quatre modules

1 Gestion des erreurs

2 Scheduler (planificateur de tâche)

3 Système de gestion de la mémoire virtuelle.

4 Gestion de la mémoire vive.

L’interpréteur de commandes (shell)

Autour du noyau il y a le Shell, qui est l'interpréteur de commandes.

Il est également divisé en 4 modules.

1 Exécution des programmes en tâches de fond ou en premier plan.

2 Gestion des commandes restrictions et de redirection. (Permettant de restreindre l'effet de certaines commandes ou de rediriger le résultat d'une commande vers un périphérique spécial)

3 Module gestion configuration, ce qui veut dire :

Nombre de processus acceptables simultanément

Nombre d'imprimantes supportées, etc...

4 Commande de langage interpréteur.


Les utilitaires



Les utilitaires permettant par exemple de visualiser des fichiers (cat, vi) ou d'utiliser un périphérique (lp).


Tous les systèmes d’exploitation fonctionnent sur ce modèle, y compris le pourtant très primitif et simpliste MS-DOS.

Le Shell.

Le shell est un fichier qui contient toutes les commandes internes.

Sous MS-DOS, il n’existe qu’un seul Shell, sous les Unix, il en existe plusieurs dont le plus courant est maintenant bash. (Bourne Again Shell)

Mais il faudrait expliquer la généalogie des shells Unix, ce qui me forcerait à compliquer un peu. Je vais tenter de rester simple, donc je garde cela pour un autre support.

Le fichier contient toutes les commandes internes du Shell et il est le seul a pouvoir interpréter ce qui est saisi au clavier.

Mais les commandes externes peuvent aussi être saisies dans un shell ou dans une fenêtre de console, sans pour autant être des commandes internes.


Les utilitaires

Tout programmes rajouté à l'ensemble ci-dessus.

Exemple: rmdir, mkdir, ls, etc..


L’interface graphique est aussi un utilitaire.

Une suite bureautique est également un ensemble d’utilitaires.

Le système de fichiers.

Introduction

Tous les systèmes d'exploitation de disque ont un système de fichier.

Lorsqu'on entre sur le disque, c'est comme si on pénétrait dans une immense bibliothèque, avec à l'entrée des tiroirs et une fiche pour chaque ouvrage. Si je veux chercher un livre en particulier, j'ouvre le tiroir correspondant, je cherche la référence et ensuite seulement je cherche dans l'immeuble le rayon correspondant et le livre.


Sous MS-DOS on ne verra que le contenu du disque dur, le montage des disques est invisible et incompréhensible pour un utilisateur. On peut accéder aux périphériques via des commandes spécifiques mais ils ne sont pas visibles par l'O.S.

Sous les systèmes Unix, tout est fichier, y compris les « devices ». On peut monter librement un système avec un nom, puis le démonter le changer de point de montage. On peut monter un file system dans un dossier au beau milieu d’un autre file system.

Les files systems.

MS-DOS utilise un système nommé F.A.T. (File Allocation Table ou Table d'allocation des fichiers) qui est assez limité. Microsoft est aussi à l'origine du systè de fichiers N.T.F.S. Du coté Unix, le choix est plus grand mais surtout les possibilités plus grandes : EXT2, EXT3,REISERFS, EXT4, XFS, ZFS, etc...

Ils ont des caractéristiques intéressants du point de vue de la sécurité.

Depuis une machine sous Linux, on peut lire à peu près n’importe quel type de partition, alors que depuis un système Windows, on ne peut lire que des partition de type Fat et NTFS. C’est encore une énorme limitation des systèmes d’exploitation de cet éditeur, mais il y en a d’autres.

Les systemes de fichiers UNIX récents sont en général journalisés ( à part EXT2). C’est à dire que lorsqu’ils modifient quelque chose sur le disque, ils écrivent un journal de bord. Ainsi, en cas de coupure de courant ou de panne grave, lorsque le système redémarre les dégâts sont nettement limités.

De plus la gestion des droits est plus intéressante sous un des « files systems » d’Unix que sous NTFS.

Disposition des fichiers

Les fichiers doivent être classés sur le disque. C'est pourquoi, pour vous y retrouver, je vous recommande de créer des répertoires par thèmes et de ne jamais laisser sous le répertoire "root" que les fichiers systèmes, le Shell et les fichiers de configuration du système. On peut y trouver certains fichiers.

Avec MS-DOS et même windows, il est très facile de transformer le disque dur en un véritable fourre-tout imbitable.


Exemple d’un lecteur MS-DOS pas trop mal rangé :

Contenu de la Racine du disque C:\

Le volume dans le lecteur C s'appelle HELP

Le numéro de série du volume est 94EA-1746

Répertoire de C:\

30/05/00 08:27 <DIR> Program Files

31/10/00 08:11 <DIR> WINNT

19/09/00 13:44 <DIR> Mes documents

30/05/00 09:37 0 CONFIG.SYS

31/10/00 08:09 209 715 200 pagefile.sys

30/05/00 09:37 0 AUTOEXEC.BAT

6 fichier(s) 209 715 200 octets

1 949 203 968 octets libres

Un utilisateur avait la possibilité d’écrire à peu près n’importe ou sur le disque de la machine.

Avec les systèmes unix, l’utilisateur a son petit coin à lui. Il doit être « root » pour écrire ailleurs.

jonas@debian:~$ pwd

/home/jonas

C’est chez moi, je fais ce que je veux.

jonas@debian:~$ ls

200712-modeles-economiques.pdf

april-appelCotisation2009.pdf

ArchivesPaies

Astronomie

BasesSurMysql.odt

capture1.png

codeblocks

Desktop

Fiche LoLiTa Projet FDS 2009.pdf

gparted_details.htm

SupportCoursPourSiteInternet

tarball

telechargements

TPlinux.cpio.gz

TP_LinuxPerso

websites


Si j’essaie d’écrire dans / (partition root) voici ce qui se passe.

jonas@debian:~$ ls > /test

bash: /test: Permission non accordée

jonas@debian:~$


Exemple de structure d'arborescence


debian:/# tree -L 1 -x

.|-- bin

|-- boot

|-- cdrom -> media/cdrom

|-- dev

|-- etc

|-- home

|-- initrd

|-- initrd.img -> boot/initrd.img-2.6.26-2-vserver-686

|-- initrd.img.old -> boot/initrd.img-2.6.26-2-openvz-686

|-- lib

|-- lost+found

|-- media

|-- mnt

|-- opt

|-- proc

|-- root

|-- sbin

|-- selinux

|-- srv

|-- sys

|-- tmp

|-- usr

|-- var

|-- vmlinuz -> boot/vmlinuz-2.6.26-2-vserver-686

`-- vmlinuz.old -> boot/vmlinuz-2.6.26-2-openvz-686


Vous avez sous les yeux le premier niveau d’une arborescence d’un système unix. Dans le cas présent il s’agit d’un système Linux.

Conclusion.

Nous avons vu succinctement comment est organisé un système informatique ou ordinateur, ces différents composants matériels, et logiciels. Ce support fait parti d’une série de 10 qui comprenaient un document de cours et un diaporama. Je n'ai pas approfondi en raison de la diversité des niveaux de connaissances des Hot-Liners. Mais cela peut servir de point de départ à l’élargissement de certaines connaissances.

Suivi des évolutions du document




Version et date

Chapitre

Modification

1.0 12/02/1999

Tous

Création – Jonas FERNANDEZ

2.0 05/07/2000

Tous

Modification mise en forme

3.0 31/10/2000

Tous

Mise en conformité Cultura Tif - EDS

3.9 06/10/2009

Tous

Réappropriation du document.


Localisation prov. : /home/jonas/SupportCoursPourSiteInternet/BasesSystemeInformatique.odt