<HTML> <HEAD>  <META HTTP-EQUIV="Content-Type" CONTENT="text/html">   <TITLE>Comment fonctionne l'ordinateur </TITLE> </HEAD> <BODY background="/images/fond-var.gif">  <H1 ALIGN="CENTER">Comment fonctionne l'ordinateur ?</H1> <P>ceci est un complment au cours de "technologie informatique" d'IUP GSI 1re anne  l'IPST. Ce n'est en aucun cas un polycopi du cours, c'est  dire, pour tre plus prcis, que l'examen portera sur ce qui a t dit en cours, pas sur ce document.</P>  <FONT SIZE=2> <P><B>Table des matires : Comment fonctionne l'ordinateur ?</B></P> <DIR> <I><P>1) <A HREF="#c1">fonctionnement interne de base</A></P> <P>2) <A HREF="#c2">Les 5 g&eacute;n&eacute;rations de langages de programmation</A></P> <P>3) <A HREF="#c3">La gestion de l'ordinateur</A></P> </DIR> </I> </FONT>  <H2>1) <A NAME="c1">fonctionnement interne de base</A></H2> <P>L'id&eacute;e de base a &eacute;t&eacute; de repr&eacute;senter par 1 ou 0  le fait qu'il y ait du courant ou non, dans   circuit &eacute;lectronique (au d&eacute;part un "tube &agrave; vide" ou un  relais, d&eacute;sormais des semi-conducteurs),  et de les combiner pour repr&eacute;senter des nombres en binaire   (voir <A HREF="/pat/autom/autom07.htm">/pat/autom/autom07.htm</A>).</P>  <P>Au centre de l'ordinateur : la <I>carte m&egrave;re</I> :</P> <P ALIGN="CENTER"><IMG SRC="schemacpu.gif" width="526" height="292"2></P> <P ALIGN="CENTER">Pour plus de d&eacute;tails, voir <A HREF="coeur-ordi.htm">coeur-ordi.htm</A></P> <I><P>CPU</I> (Central Processing Unit) : le <I>processeur</I>. Il commande tout le syst&egrave;me.  Il sait faire des calculs arithm&eacute;tiques de base (addition, soustraction, multiplication) mais  uniquement sur des nombres entiers, des op&eacute;rations logiques (et, ou, compl&eacute;ment), et  tester si le r&eacute;sultat de ces calculs est positif, n&eacute;gatif ou nul. Il sait lire un  nombre en m&eacute;moire ou dans un port, ou l'&eacute;crire (via le bus). Deux grandeurs caract&eacute;risent le CPU :</P>  <UL> <LI>la <I>taille de l'accumulateur</I> (8, 16, 32, 64 bits) : c'est le nombre de chiffres maximum  d'un calcul (en binaire). Mais un processeur 8 bit sait faire des calculs 32 bits, il lui suffit  de poser le calcul (en donc mettre 4 fois plus de temps) </LI> <LI>sa <I>fr&eacute;quence</I> : c'est le nombre d'op&eacute;rations &eacute;l&eacute;mentaires  qu'il peut faire &agrave; la seconde. Un quartz envoie des tops &agrave; intervalle r&eacute;guliers,  &agrave; cette fr&eacute;quence, ce qui permettra de cadencer les calculs et de synchroniser les  &eacute;changes d'informations entre les diff&eacute;rents composants.</LI> </UL>  <I><P>M&eacute;moire centrale</I> : elle est partag&eacute;e en deux parties :</P>  <UL> <LI>la <I>m&eacute;moire vive</I> (<I>RAM</I> Random Access Memory) : on peut y m&eacute;moriser  (&eacute;crire) des nombres binaires pour les relire plus tard. Il existe des m&eacute;moires  statiques (<I>SRAM</I>) qui m&eacute;morisent les nombres aussi longtemps qu'elles sont aliment&eacute;es,  et les dynamiques (<I>DRAM</I>) qui sont plus rapides mais doivent &ecirc;tre r&eacute;&eacute;crites  &agrave; intervalles r&eacute;guliers. Mais toutes oublient tout d&egrave;s qu'on coupe l'alimentation </LI> <LI>la <I>m&eacute;moire morte</I> (<I>ROM</I>, Read Only Memory) : ce sont des composants qui par  fabrication donneront toujours les m&ecirc;mes valeurs (du 5V ou 0V). M&ecirc;me apr&egrave;s  coupure d'alimentation. Par contre il est impossible de modifier ces valeurs. Il existe aujourd'hui  des ROM programmables (<I>PROM</I>) qui peuvent &ecirc;tre &eacute;crites, en une fois, hors de  l'ordinateur, &agrave; l'aide d'un appareil sp&eacute;cial (programmateur de PROM). Certaines  peuvent &ecirc;tre r&eacute;initialis&eacute;es pour pouvoir &ecirc;tre r&eacute;&eacute;crites,  en une fois (<I>EPROM</I>, Erasable PROM)</LI> </UL>  <P>Les <I>interfaces</I> : ils sont vus par le CPU comme des m&eacute;moires, il peut y &eacute;crire  ou lire des nombres binaires. Ils permettent &agrave; la carte m&egrave;re de dialoguer avec des  dispositifs externes nomm&eacute;s "<I>p&eacute;riph&eacute;riques</I>". En g&eacute;n&eacute;ral  l'interface est r&eacute;alis&eacute;e par une carte &eacute;lectronique, qui re&ccedil;oit des  commandes du CPU, les traite et rend la r&eacute;ponse si n&eacute;cessaire. Il y en a trois grands types&nbsp;: </P>  <UL> <LI>la <I>m&eacute;moire de masse</I> : permet de stocker des informations (depuis la m&eacute;moire  centrale), et de les r&eacute;cup&eacute;rer plus tard (m&ecirc;me voire surtout apr&egrave;s  coupure du courant). Ce sont les <I>disques durs</I>, <I>disquettes</I>, bandes, CD,&nbsp;... </LI> <LI>les interfaces homme machine permettent &agrave; l'homme de donner des ordres et de visualiser  les r&eacute;sultats. Ils ont beaucoup &eacute;volu&eacute;, de l'interrupteur et le voyant (0/1),  les cartes perfor&eacute;es, le clavier et l'&eacute;cran, la souris, l'imprimante, le joystick,  le scanner, le micro et la carte son, la cam&eacute;ra num&eacute;rique... Jusqu'&agrave; il y a  peu de temps, le traitement des informations ne surchargeait pas le CPU (temps de r&eacute;ponse  tr&egrave;s sup&eacute;rieurs). </LI> <LI>Les interfaces machine - machine : modem, carte r&eacute;seau, bus de terrain...</LI> </UL>  <P>Le<I> bus</I> permet de transf&eacute;rer des nombres. Il relie tous ces composants, c'est  ce qui fait que lorsque deux d'entre eux dialoguent, les autres doivent attendre. L'ordinateur  ne peut de ce fait faire qu'une chose &agrave; la fois. Pendant longtemps, l'<I>horloge</I> du  processeur caden&ccedil;ait tous les composants. Ils fallait qu'ils soient tous aussi rapides.  A la fin des ann&eacute;es 80, le PC tournait &agrave; 4,77 MHz. Aujourd'hui on peut faire  fonctionner un processeur &agrave; plusieurs Ghz, mais pas les m&eacute;moires, encore moins  les cartes d'interfaces. On va donc pr&eacute;voir des fr&eacute;quences diff&eacute;rentes,  et entre les deux une "zone tampon" appel&eacute;e "<I>cache</I>". Celui-ci m&eacute;morise  les informations qui arrivent &agrave; grande vitesse pour les transmettre &agrave; la vitesse  du destinataire. Evidement, quand le cache est plein il pr&eacute;vient l'&eacute;metteur qui  devra alors soit attendre soit en profiter pour faire quelque chose d'autre. Il y a  d&eacute;sormais des caches multiples (cache m&eacute;moire, cache disque,...) et  diff&eacute;rentes fr&eacute;quences de composants. Vous pouvez ins&eacute;rer par exemple  une carte PCI sur tout Pentium, elle fonctionnera toujours &agrave; la m&ecirc;me vitesse. </P>  <H2>2) <A NAME="c2">Les 5 g&eacute;n&eacute;rations</A> de langages de programmation</H2>  <P>Comment donne-t-on des ordres &agrave; un ordinateur ? Gr&acirc;ce &agrave; un <I>programme</I>.</P> <P>Le CPU va chercher dans la m&eacute;moire centrale des "<I>instructions</I>". Chaque action  de base que sait faire le processeur est d&eacute;sign&eacute;e par un "<I>code op&eacute;ration</I>"  qui est un nombre (en binaire). C'est ce qu'on appelle le "<I>langage machine</I>". Bien que  tous les processeurs soient capables de faire &agrave; peu pr&egrave;s la m&ecirc;me chose,  chaque marque voire type a "num&eacute;rot&eacute;" diff&eacute;remment les op&eacute;rations.  Vous ne pourrez donc pas faire tourner un programme PC sur un Mac (sauf si vous avez un  <I>&eacute;mulateur</I>, programme qui pour chaque code op d'un processeur donne son  &eacute;quivalent pour un autre, mais c'est extr&ecirc;mement lent et limit&eacute;). </P> <P><A Name="asm">Exemple</A> : sur un PC, je veux ajouter 5 dans la m&eacute;moire n 1234. Ce num&eacute;ro de  m&eacute;moire (on dit une "adresse") a trop de chiffres en binaire pour entrer dans un octet,  on en utilise deux (le PC met toujours les derniers chiffres en premier). Je note tous les nombres  en hexa, en binaire ce serait trop long : lire le contenu d'une m&eacute;moire (un octet), et le  stocker dans le processeur (dans une "m&eacute;moire" nomm&eacute;e <I>accumulateur</I>) est  cod&eacute; A0, ajouter un nombre &agrave; l'accumulateur est cod&eacute; 04, recopier l'accumulateur  dans un m&eacute;moire est cod&eacute; A2. Le programme sera donc :  A0&nbsp;34&nbsp;12&nbsp;04&nbsp;05&nbsp;A2&nbsp;34&nbsp;12 et fait 8 octets.  C'est ainsi qu'on programmait les premiers ordinateurs (langage de premi&egrave;re g&eacute;n&eacute;ration).</P> <P>Pour simplifier la programmation, on a d&eacute;cid&eacute; de donner un nom aux diff&eacute;rentes  instructions, c'est le <I>langage mn&eacute;monique</I>&nbsp;: MOV pour transf&eacute;rer un nombre  d'une m&eacute;moire, ADD pour additionner, AL pour l'accumulateur,... Voici ce que donne notre  programme pr&eacute;c&eacute;dent :</P> <P ALIGN="CENTER"><IMG SRC="debugasm.gif" width="449" height="262"2></P>  <P>On permet &eacute;galement au programmeur de d&eacute;finir ses propres noms (appel&eacute;s  "<I>identificateurs</I>"). Par exemple on pourrait d&eacute;finir que la m&eacute;moire d'adresse  1234 a pour nom "memoire", la premi&egrave;re instruction deviendrait MOV&nbsp;AX,memoire.</P> <P>La traduction d'un programme mn&eacute;monique (un peu plus clair pour le programmeur) en langage  machine (seul compr&eacute;hensible par le processeur) s'appelle "<I>assemblage</I>". Par abus de  langage, on regroupe sous le nom "<I>assembleur</I>" indiff&eacute;remment chacun de ces deux langages.  (voir <A HREF="/pat/memo8088.htm">/pat/memo8088.htm</A>)</P> <P>Tr&egrave;s rapidement, on est pass&eacute; &agrave; une troisi&egrave;me g&eacute;n&eacute;ration  de langages : les langages dits "<I>&eacute;volu&eacute;s</I>" et "<I>structur&eacute;s</I>". Ici on  a pr&eacute;vu des instructions plus complexes, qui seront traduites en plusieurs codes op. On y a   &eacute;galement pr&eacute;vu des types num&eacute;riques plus complexes (au minimum les <I>r&eacute;els</I>,  appel&eacute;s aussi<I> flottants</I>). Plut&ocirc;t que de les num&eacute;roter, on nomme les m&eacute;moires  dont on a besoin (<I>variables</I>), on peut aussi regrouper plusieurs instructions sous un seul nom  (<I>sous-programmes</I>). Les deux premiers langages &eacute;volu&eacute;s ont &eacute;t&eacute; le  <I>FORTRAN</I> (FORmula TRANslator) cr&eacute;&eacute; pour le calcul scientifique, et <I>COBOL</I>  pour les applications de gestion. Puis <I>BASIC</I>, langage volontairement peu puissant mais  pr&eacute;vu pour l'initiation &agrave; la programmation (les premiers PC se programmaient en basic,  les premiers MSDOS &eacute;taient livr&eacute;s avec BasicA, les suivants avec GW-Basic ou QBasic,  pr&eacute;curseurs du Visual Basic). Pour l'enseignement de l'informatique de plus haut niveau, on  a cr&eacute;&eacute; <I>PASCAL</I>. Le <I>C</I> quand &agrave; lui, un langage pr&eacute;vu pour les  informaticiens, est plus efficace et plus puissant, mais aussi plus complexe. (voir  <A HREF="/pat/program/tpc.htm">/pat/program/tpc.htm</A> <A HREF="/pat/program/pascal.htm">/pat/program/pascal.htm</A>  <A HREF="/pat/program/fortran">/pat/program/fortran</A>)</P> <P>La quatri&egrave;me g&eacute;n&eacute;ration de langages correspond &agrave; une organisation du  programme non plus sous forme d'une suite ordonn&eacute;es d'instructions, mais les instructions  sont regroup&eacute;es autour des donn&eacute;es les utilisent. Ce sont les langages de <I>bases  de donn&eacute;es</I> et les <I>langages orient&eacute;s objets </I>(LOO). Pour ces derniers, de  nombreux langages ont &eacute;t&eacute; cr&eacute;es, dont par exemple SmalTalk. Mais c'est <I>C++  </I>(voir <A HREF="/pat/program/cpp.htm">/pat/program/cpp.htm</A>), pourtant moins bon, qui s'est  impos&eacute;, car il est compatible avec C, et a permis une migration progressive. Les nouveaux  langages cr&eacute;&eacute;s aujourd'hui ont une syntaxe proche du C++ (voir  <A HREF="/pat/program/javascript">/pat/program/javascript</A>).</P> <P>Les langages de 5&egrave; g&eacute;n&eacute;ration sont ceux de l'<I>intelligence artificielle</I>.  Ils ne se sont pas d&eacute;velopp&eacute;s autant qu'on le pr&eacute;disait dans les ann&eacute;es 80.  Ici, on ne programme plus, mais on donne, progressivement mais en vrac, de la connaissance sur le  domaine &agrave; traiter, au syst&egrave;me de se d&eacute;brouiller pour l'organiser (sous une  forme qui pourrait par exemple approcher notre <I>r&eacute;seau de neurones</I>) et puiser dans  sa <I>base de connaissances</I> ce qui lui permettra de r&eacute;soudre les probl&egrave;mes qu'on  lui pose. (voir <A HREF="/pat/program/prolog">/pat/program/prolog</A>).</P>  <H2>3) <A NAME="c3">La gestion de l'ordinateur</A></H2>  <P>Pour &eacute;viter de devoir donner des ordres en binaire &agrave; l'ordinateur, on a cr&eacute;&eacute;  pour chaque ordinateur un programme appel&eacute; <I>syst&egrave;me d'exploitation</I> (<I>OS</I>  <I>operating system</I>), qui est lanc&eacute; au d&eacute;marrage de l'ordinateur. Il doit  conna&icirc;tre comment acc&eacute;der aux interfaces, attend qu'on lui donne des ordres (on  dit <I>lancer une commande</I>) et se d&eacute;brouille pour les ex&eacute;cuter. Au d&eacute;but,  l'OS &eacute;tait sp&eacute;cifique &agrave; chaque machine, vendu et maintenu par le fabriquant  de l'ordinateur. Il ne prenait en charge que des p&eacute;riph&eacute;riques du m&ecirc;me fabricant  (et pas moyen d'&eacute;changer une console BULL avec une IBM par exemple). Certains universitaires,  lass&eacute;s de devoir r&eacute;&eacute;crire les programmes pour tous les OS, ont &eacute;crit un  OS multi-plateforme (Multics puis UNIX), mais longtemps les fabriquants ont refus&eacute; de  l'implanter, m&ecirc;me pour utiliser UNIX il fallait acheter l'OS du constructeur. </P> <P>Pour &eacute;viter de devoir modifier l'OS &agrave; chaque modification de p&eacute;riph&eacute;riques,  on en a extrait et fig&eacute; une partie, qui sait g&eacute;rer un minimum de p&eacute;riph&eacute;riques,  en g&eacute;n&eacute;ral une console en mode texte et le support qui contient le syst&egrave;me d'exploitation.  Dans les premiers ordinateurs, ce programme &eacute;tait enregistr&eacute; sur une bande de papier  perfor&eacute;e (en binaire) qu'on appelait "<I>bootstrap</I>". Aujourd'hui il est plut&ocirc;t log&eacute;  en ROM, sur un PC on l'appelle <I>BIOS</I> (<I>Basic Input Output System</I>), il sait v&eacute;rifier la  m&eacute;moire disponible, puis rechercher s'il y a des disques durs (un seul type, IDE, pas les SCSI par  exemple) ou une disquette, puis il y recherche un syst&egrave;me d'exploitation, le charge en m&eacute;moire  puis lui passe la main. Il conna&icirc;t un type de console de base (pour le PC, en mode texte uniquement,  mais certains fabriquants y ont incorpor&eacute; un fond graphique, par ex Compaq).</P> <P>L'OS lui aussi doit &ecirc;tre &eacute;volutif. En particulier, si l'on veut permettre de choisir parmi  une multitude de p&eacute;riph&eacute;riques diff&eacute;rents, il faut soit que l'OS les connaisse absolument  tous, soit qu'on s&eacute;pare la partie concernant chaque p&eacute;riph&eacute;rique possible, et que l'OS  ne charge que celles qui correspondent &agrave; la configuration demand&eacute;e (c'est le <I>pilote</I> ou  <I>driver</I>). Le driver est donc sp&eacute;cifique &agrave; un p&eacute;riph&eacute;rique et un syst&egrave;me  d'exploitation. Aujourd'hui, les p&eacute;riph&eacute;riques sont capables de donner leur nom et type, ils sont  dits "<I>plug and play</I>", &agrave; chaque allumage l'OS va v&eacute;rifier les composants disponibles, ce  qui va rallonger l'initialisation mais pas ralentir le fonctionnement normal. Toute modification importante  de la configuration de l'OS ou des p&eacute;riph&eacute;riques n&eacute;cessite dont de rebooter l'ordinateur.</P> <P>Les premiers ordinateurs personnels contenaient un OS minimal, log&eacute; en ROM, et contenant en  g&eacute;n&eacute;ral le langage Basic. Il ne savait que g&eacute;rer le clavier et l'&eacute;cran, en  mode graphique ou semi-graphique (pav&eacute;s de couleur), et permettait des jeux au graphisme simplifi&eacute;.  J'en ai trouv&eacute; quelques exemples&nbsp;:</P>  <P ALIGN="CENTER"><CENTER><TABLE> <TR><TD WIDTH="50%" > <P ALIGN="CENTER"><IMG SRC="pong.gif" WIDTH="191" HEIGHT="155"></TD> <TD WIDTH="50%"> <P ALIGN="CENTER"><IMG SRC="pacman.gif" WIDTH="227" HEIGHT="178"></TD> </TR> <TR><TD WIDTH="50%"> <P ALIGN="CENTER"><IMG SRC="jeudef.gif" WIDTH="231" HEIGHT="178"></TD> <TD WIDTH="50%"> <P ALIGN="CENTER"><IMG SRC="course.gif" WIDTH="256" HEIGHT="176"></TD> </TR> </TABLE> </CENTER></P>  <P>&nbsp;</P> <P>La seule m&eacute;moire de masse disponible &eacute;tait la cassette audio. Puis les OS ont permis de  g&eacute;rer des <I>disques</I> (et disquettes) et se sont appel&eacute;s <I>DOS</I> (<I>Disk Operating  System</I>). Au d&eacute;buts du PC, le DOS le plus courant &eacute;tait <I>CP/M</I> (on a aussi vu <I>DR-DOS</I>  de Digital, <I>PC-DOS</I> d'IBM, <I>QDOS</I>,...) avant l'h&eacute;g&eacute;monie du <I>MSDOS</I> (Microsoft  DOS). Il existe mme un freeware <A HREF="http://www.freedos.org">FreeDOS</A> .</P> <P>Comment g&egrave;rent-ils les disques ? Un disque est un ensemble de secteurs, tous &eacute;tant  num&eacute;rot&eacute;s. On appelle fichier un ensemble de donn&eacute;es, regroup&eacute;es sous un nom.  L'OS doit donc disposer d'une table associant le nom du fichier aux secteurs qu'il utilise (<I>FAT</I>  <I>File Allocation Table</I>). Au d&eacute;but, la FAT &eacute;tait &eacute;crite sur les premiers secteurs  du disque, et &eacute;tait assez limit&eacute;e. Il a fallu g&eacute;rer des fichiers de taille variable, et  donc stock&eacute;s sur une suite non continue de secteurs. On a d&eacute;compos&eacute; la FAT en deux parties : </P>  <UL> <LI>un r&eacute;pertoire (<I>directory</I>) contenant par exemple 256 noms de fichiers, associ&eacute;s chacun  au num&eacute;ro de son premier secteur, et quelques informations suppl&eacute;mentaires (date de cr&eacute;ation,  taille ou nombre de secteurs...) </LI> <LI>une table de cha&icirc;nage des secteurs : pour chaque secteur, le num&eacute;ro du secteur suivant pour le  m&ecirc;me fichier. Un code sp&eacute;cial est utilis&eacute; pour le dernier secteur d'un fichier. Les secteurs  libres sont g&eacute;r&eacute;s comme un gros fichier, donc une suite de secteurs, ce qui permet de trouver  facilement des secteurs libres.</LI></UL>  <P>Chaque syst&egrave;me d'exploitation a d&eacute;cid&eacute; d'une gestion de disque (avec ses avantages  et limites). Sous MSDOS, la FAT12 stockait les num&eacute;ros de secteurs sur 12 bits (donc 4096 secteurs  maxi), avec des noms de fichiers de 8+3 caract&egrave;res. La FAT16 permet 65000 secteurs, la FAT32 beaucoup  plus. Depuis Windows 95, une table annexe associe les noms longs au vrai nom d'un fichier (par exemple  <I>"program files"</I> pour <I>PROGRA~1</I>). Les diff&eacute;rents syst&egrave;mes d'exploitation ont  tous une m&eacute;thode de gestion des disques (<I>File System</I> <I>FS</I>) diff&eacute;rents (FAT16  sous DOS, FAT32 sous Windows, NTFS pour Windows NT, UFS sur d'anciens Unix, ExFS Extended FS, NFS via  r&eacute;seau (network),...). Mais il y a deux grandes classes : les mono et multi-utilisateurs. Un FS  multi-utilisateurs conna&icirc;t le propri&eacute;taire de chaque fichier, et peut donc g&eacute;rer des  droits d'acc&egrave;s diff&eacute;rents. Sur les FS mono-utilisateur, tout utilisateur (&agrave; condition  d'avoir pu entrer sur le syst&egrave;me) a les m&ecirc;mes acc&egrave;s aux fichiers. </P> <P>Si l'on veut pouvoir cr&eacute;er beaucoup de fichiers, il faut pr&eacute;voir de grosses  tables, et donc r&eacute;server une grosse partie du disque pour cela (surtout du temps des  petits disques). La solution a &eacute;t&eacute; de ne cr&eacute;er qu'un petit r&eacute;pertoire,  appel&eacute; <I>racine</I> (<I>root</I>), et permettre de cr&eacute;er dans un r&eacute;pertoire  des fichiers particuliers, nomm&eacute;s <I>sous-r&eacute;pertoire</I>, avec exactement la m&ecirc;me  structure (pouvant donc contenir des fichiers normaux et des sous-r&eacute;pertoires).</P> <P>Les disques sont donc g&eacute;r&eacute;s de mani&egrave;re arborescente. Windows a choisi d'appeler  "poste de travail" la racine de cet arbre. Sous cette racine, uniquement et obligatoirement les disques,  not&eacute;s A:, C:,... Dans ces disques, un r&eacute;pertoire (<I>Windows</I>) contient les commandes  du syst&egrave;me d'exploitation et ses fichiers de configuration, <I>Program Files</I> regroupe les  programmes suppl&eacute;mentaires, <I>Mes Documents</I> les fichiers utilisateur. Sous Unix, la racine   est nomm&eacute;e /, les commandes du syst&egrave;me sont dans <I>/bin</I>, les fichiers de configuration  dans <I>/etc</I>, les programmes suppl&eacute;mentaires dans<I> /usr</I>, les fichiers utilisateurs dans  <I>/home</I>. Les disques peuvent correspondre &agrave; n'importe quel r&eacute;pertoire (mais tout ce qui  est dans le disque est obligatoire dans ou sous ce r&eacute;pertoire). On associe un disque &agrave; un  r&eacute;pertoire par un montage (<I>mount</I>). Si par exemple on monte /home sur un autre disque (ou  une autre partition) que le reste, les utilisateurs, m&ecirc;me en saturant leur zone personnelle ne  pourront pas saturer le disque syst&egrave;me.</P> <p>Exemple d'arborescence sous Windows98 (PC) et sous Solaris (Station Sun):</p> <p align="center">   <img src="winexplor.gif" width="549" height="529"></p> <p align="center">   <img src="openwin.gif" width="649" height="507"> </p>  <P>Commandes de base d'un syst&egrave;me d'exploitation&nbsp;:</P> <TABLE BORDER CELLSPACING=1 CELLPADDING=4> <TR><TD WIDTH="33%"> <P>&nbsp;</TD> <TD WIDTH="33%"> <P>DOS - Telnet vers Windows</TD> <TD WIDTH="33%"> <P>UNIX</TD> </TR> <TR><TD WIDTH="33%"> <P>afficher la liste des fichiers (d&eacute;taill&eacute;e)</TD> <TD WIDTH="33%"> <P>DIR /V</TD> <TD WIDTH="33%"> <P>ls -l</TD> </TR> <TR><TD WIDTH="33%"> <P>changer de r&eacute;pertoire de travail</TD> <TD WIDTH="33%"> <P>CD r&eacute;pertoire</TD> <TD WIDTH="33%"> <P>cd r&eacute;pertoire</TD> </TR> <TR><TD WIDTH="33%"> <P>remonter &agrave; la racine</TD> <TD WIDTH="33%"> <P>CD \</TD> <TD WIDTH="33%"> <P>cd /</TD> </TR> <TR><TD WIDTH="33%"> <P>effacer un fichier</TD> <TD WIDTH="33%"> <P>DEL fichier</TD> <TD WIDTH="33%"> <P>rm fichier</TD> </TR> <TR><TD WIDTH="33%"> <P>effacer tous les fichiers</TD> <TD WIDTH="33%"> <P>DEL *.*</TD> <TD WIDTH="33%"> <P>rm *</TD> </TR> <TR><TD WIDTH="33%"> <P>cr&eacute;er un r&eacute;pertoire </TD> <TD WIDTH="33%"> <P>MD r&eacute;pertoire</TD> <TD WIDTH="33%"> <P>mkdir r&eacute;pertoire</TD> </TR> <TR><TD WIDTH="33%"> <P>supprimer un r&eacute;pertoire (vide)</TD> <TD WIDTH="33%"> <P>RD r&eacute;pertoire</TD> <TD WIDTH="33%"> <P>rmdir r&eacute;pertoire</TD> </TR> <TR><TD WIDTH="33%"> <P>copier un fichier</TD> <TD WIDTH="33%"> <P>COPY source dest</TD> <TD WIDTH="33%"> <P>cp source dest</TD> </TR> <TR><TD WIDTH="33%"> <P>d&eacute;placer (ou renommer) un fichier ou r&eacute;pertoire</TD> <TD WIDTH="33%"> <P>MOVE src dest</TD> <TD WIDTH="33%"> <P>mv src dest</TD> </TR> <TR><TD WIDTH="33%"> <P>copier un r&eacute;pertoire et ses sous-r&eacute;pertoires</TD> <TD WIDTH="33%"> <P>XCOPY /S src dest</TD> <TD WIDTH="33%"> <P>cp -R src dest</TD> </TR> <TR><TD WIDTH="33%"> <P>g&eacute;rer les acc&egrave;s aux fichiers</TD> <TD WIDTH="33%"> <P>ATTRIB</TD> <TD WIDTH="33%"> <P>chmod</TD> </TR> <TR><TD WIDTH="33%"> <P>aide sur une commande</TD> <TD WIDTH="33%"> <P>commande /?</TD> <TD WIDTH="33%"> <P>man commande</TD> </TR> </TABLE>  <P>&nbsp;</P> <P><A HREF="http://pat.fr.st/">P. TRAU</A>, <A HREF="http://www-ipst.u-strasbg.fr/ipst">ULP - IPST</A>,  novembre 2002</P>   </BODY> </HTML> 
