L'histoire de l'informatique remonte au mathématicien Charles Babbage (1792-1871) inventeur de la première machine analytique. Cette machine à structure mécanique n'a jamais fonctionné et va provoquer plusieurs études. Depuis, quatre générations de machines électroniques ont été inventées. Nous allons retracer cette histoire qui est intiment liée à l'histoire des systèmes d'exploitation. La première machine qui sera considérée comme un ordinateur est celle de Von Newman (1945).
Cette machine est à base de tubes à vide et l'interface utilisateur est assurée par des lecteurs de cartes perforées. La machine de Von Newman ne disposait pas de système d'exploitation. Le seul langage offert était un langage machine basé sur le câblage des entrées/sorties. Elle était gérée par toute une équipe. Les utilisateurs (programmeurs) n'avaient pas accès directement à l'ordinateur et devaient présenter leurs programmes encodés sur des cartes perforées à l'équipe d'exploitation.
En 1950, le transistor est inventé et va révolutionner me monde de l'électronique. Ainsi, toute une génération d'ordinateurs a vu le jour entre 1955 et 1965. Cette génération a constitué le premier ordinateur commercialisable destiné aux grandes compagnies, aux universités et aux administrations. La commercialisation a été possible suite à la séparation entre la conception de l'ordinateur par un constructeur et son exploitation par une organisation.
Plusieurs métiers ont ainsi vu le jour dans le domaine de l'informatique. On trouve les opérateurs d'exploitation, les équipes de maintenance et les programmeurs. Ces derniers n'avaient pas non plus accès directement à l'ordinateur. Ils présentaient leurs programmes écrits en Assembleur ou en Fortran et encodés sur cartes perforées aux opérateurs d'exploitation. Les résultats sont sortis sur imprimante. Au début de cette génération, les entrées/sorties étaient toujours à base de cartes perforées.
Chaque programme nécessitait plus de traitement par l'opérateur que par la machine. Pour réduire le temps de déplacement de l'opérateur, la notion de traitement par lot a été mise en place. Ainsi, les programmes étaient toujours encodés sur cartes perforées, mais étaient d'abord stockés par lot sur une bande magnétique. Cette tâche était assurée par un IBM 1401.
Une fois la bande est pleine, elle est présentée à l'ordinateur de traitement, un IBM 7094. Les résultats enregistrés sur bande sont imprimés par un autre ordinateur dédié à cette tâche. Il fallait donc maintenir deux systèmes. Le premier gérait l'interface avec les programmeurs en manipulant les différents supports matériels d'entrées/sorties (lecteur de cartes perforées, lecteur de bande magnétique, imprimante). Quant au deuxième, il gérait la compilation des programmes, leur chargement en mémoire, leur exécution et le stockage des résultats.
À partir de 1965, la baisse des coûts de fabrication des circuits intégrés a permis l'émergence d'une autre génération d'ordinateurs. IBM proposait alors une nouvelle gamme appelée System/3603 avec des performances matérielles variables et une compatibilité logicielle.
Ainsi, le client pouvait choisir la taille de la mémoire, la vitesse du processeur et les périphériques d'entrées/sorties. Au niveau du système d'exploitation, le code assembleur de celui-ci devenait de plus en plus énorme et complexe.
Des centaines de programmeurs et des milliards de lignes de code assembleur ont été nécessaires. Chaque bogue engendrait une nouvelle version qui était elle aussi boguée. Le temps inhérent aux entrées/sorties était très important et le temps de traitement représentait à peine 10 à 20% du temps global.
Il fallait donc occuper le processeur pendant les opérations associées aux entrées sorties. Un concept majeur va alors être inventé. Il s'agit de la multiprogrammation basée sur le partitionnement de la mémoire. Chaque partition mémoire est associée à un travail. Deux catégories de tâches programmables se distinguent alors : celles liées aux entrées/sorties et celles liées à l'exécution des travaux.
Cette mise en œuvre va nécessiter l'introduction d'un autre concept. Il s'agit de Simultaneous Peripheral Operation On Line ( SPOOL). Le système d'exploitation charge plusieurs travaux en mémoire et commute entre les travaux sur un blocage d'entrées/sorties. Il était ainsi possible d'exécuter un travail chargé en mémoire pendant le chargement d'un autre travail. Ce fonctionnement nécessite un temps d'attente de la part du programmeur lié à la chaîne de production.
L'introduction de terminaux permettant la connexion de plusieurs utilisateurs nécessite la mise en œuvre du temps partagé. Le premier système de ce type est CTSS (Compatible Time Sharing System) du M.I.T. (Massachusetts Institute of Thecnnology) qui a eu un franc succès auprès des scientifiques. La commutation entre travaux va se faire au bout d'un délai fixe et non plus sur blocage des entrées/sorties. Ce délai est très court afin de partager équitablement le temps de traitement entre les différents travaux.
Le M.I.T., les laboratoires Bell de AT&T et General Electric alors distributeur d'ordinateurs, s'associent pour créer une deuxième génération de systèmes d'exploitation : MULTICS (MULTiplexed Information and Computing Service) pour GE645. Ce projet fut un échec. MULTICS était écrit en PL/I et le compilateur est arrivé très tardivement.
[...] AT&T riposte par la création de son consortium (UI : Unix International) avec Sun. Cette situation fait qu'au lieu de poursuivre les efforts de IEEE en normalisant les autres bibliothèques, la non-portabilité a regagné du terrain. Caractérisation de UNIX Introduction UNIX est un système d'exploitation qui permet de gérer les ressources de toute architecture matérielle (mono-processeur, multi-processeur). C'est un système multi-utilisateurs avec un environnement interactif et multi-tâches pour programmeurs. L'environnement multi-utilisateurs impose un contrôle des droits d'accès aux ressources système par identification des utilisateurs. [...]
[...] La spécification commence alors par / et le système accède au répertoire ainsi spécifié. Dans le cas d'un chemin relatif, le système fait précéder le chemin spécifié par la position courante. Cette position est mémorisée dans la variable d'environnement PWD (print working directory) ou encore cwd (current working directory) sur certains systèmes. Cette variable est mise à jour à chaque déplacement dans l'arborescence par la commande cd. La commande pwd permet d'afficher le répertoire courant. $ cd /usr/share/man $ pwd /usr/share/man $ cd /home/samir $ cd bin $ pwd /home/samir/bin $ cd $HOME $ pwd /home/samir $ cd . [...]
[...] NIS est un service de distribution des bases de données UNIX sur plusieurs machines UNIX. C'est pour cette raison que la plupart des distributions UNIX utilisent cette convention afin de faciliter l'intégration de NIS. Les utilisateurs UNIX sont organisés en groupe d'utilisateurs. Ainsi, les membres d'un même groupe peuvent partager des ressources entre eux. Chaque groupe possède un numéro appelé GID (Group IDentifier) Chapitre 3 : DROITS Un utilisateur peut être membre de plusieurs groupes. En effet, il possède un groupe principal qui est le groupe par défaut de l'utilisateur et peut être membre d'un ou plusieurs groupes dit secondaires. [...]
[...] Il offre un langage de programmation primitif mais rapide. C'est pour cette raison qu'il est plutôt utilisé en programmation de script et très peu en mode interactif Chapitre 4 : INTERPRETEUR Affichage du prompt Lecture d'un flot de données Erreur Vérification syntaxique Appel des sous-programmes Attente des résultats Affichage des résultats FIGURE 1-1 : FONCTIONNEMENT D'UN SHELL Le deuxième shell se voit doter d'une syntaxe proche du langage C et porter le nom de C Shell (csh). Le C shell est interactif, gère l'historique des commandes utilisateur, permet l'exécution de programmes en arrière-plan et la possibilité de personnaliser son environnement par un mécanisme d'alias. [...]
[...] Il est également possible de créer toute une arborescence en une seule commande grce à l'option $ cd $ mkdir d1 d2 d1/d3 $ ls d1/ d2/ f1 f2 f3 $ mkdir a1/a2/a3 $ ls d1/ d2/ f1 f2 f3 $ mkdir d3/d4 d3 n'existe pas La création de répertoire se concrétise par la création d'un i-node de type directory et la création de deux sous répertoires fictifs ( et . La commande . ajoute également une entrée sur le nouveau répertoire avec son i-node dans le répertoire d'accueil Chapitre 2 : COMMANDES Commandes sur fichier Contenu de fichier (more) La commande more permet l'édition à l'écran d'un fichier texte page par page. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture