Introduction au monde d’Unix

Introduction au monde d’Unix

Chapitre 2 Introduction au monde d’Unix

L’objectif de ce chapitre est de vous donner un premier aperçu du monde Unix. Cet aperçu dépasse celui d’une station de travail Linux comme celles que nous utiliserons en TP puisqu’il concerne le monde Unix tel que vous y seriez confronté au sein d’un réseau Unix de type professionnel. Nous parlerons des principes généraux de ce système. Nous apporterons également le vocabulaire minimal spéci que au monde Unix. Nous apprendrons en n à nous connecter, à interagir avec quelques commandes de base, puis à nous déconnecter.

Historique
L’histoire d’Unix débute dans les années 60 et peut etre résumé de la façon suivante. 1966 les laboratoires Bell (un division d’AT&T) ont besoin, pour leur usage interne, d’un systŁme d’exploitation pour le traitement de textes et le dØveloppement d’applica-tions. Ken Thomson et son Øquipe sont chargØs de ce travail. Ils dØveloppent au Massachussets Institute of Technology (MIT) un systŁme baptisØ Multics, acronyme de MULTiplexed Information and Computing Service.
n des annØes 60 L’objectif de Multics Øtait d’o rir simultanØment plusieurs services
à un ensemble d’utilisateurs. Le rØsultat fut un gros systŁme peu maniable. La direction de Bell dØcida de ne pas donner suite au projet Multics et rappela ses chercheurs.

1969 Ken Thomson dØveloppa un petit systŁme d’exploitation pour le PDP-7, un mini-ordinateur. Contrairement à Multics, le systŁme de Thomson Øtait plus petit, moins ambitieux et (du moins au dØbut) utilisable par une seule personne à la fois. De plus, chaque partie du systŁme Øtait conçue pour e ectuer une seule tâche, mais de la maniŁre la plus propre possible. DØsireux de lui donner un nom, Thomson compara sons systŁme à Multics et, par opposition, appela sons systŁme Unics, acronyme de UNIplexed Information and Computing Service. Unics fßt ensuite rapidement changØ en Unix. En d’autre termes, Unix est un calembour sur Multics.
1970 Unix compte ses premiers utilisateurs (en dehors de ses crØateurs).
1972 Denis Ritchie rØØcrit entiŁrement Unix en C. Le C est un nouveau langage dØve-loppØ par Thompson et Ritchie pour augmenter la portabilitØ d’Unix. Ceci explique les liens profonds entre le langage C et Unix.

1974 AT&T propose les 1res licences aux universitØs (en particulier, l’UniversitØ de Ber-keley) ce qui apporta un enrichissement en extensions et en utilitaires variØs à Unix. Cette date correspond au dØbut de la popularitØ et de la diversitØ d’Unix.
1978 AT&T prØsente à l’industrie les 1res versions commerciales.
annØes 80 AT&T autorise le clonage d’Unix par d’autres constructeurs. Ainsi, appa-raissent Ultrix sur DEC, BSD sur SUN, AIX sur IBM, etc. Ces versions constructeur dØrivent toutes des 2 versions prØsentes à l’Øpoque et qui sont :
System V pour des con gurations moyennes et petites ; USL (Unix Systems Labs, liale d’AT&T) en est responsable actuellement ;
BSD (Berkeley Software Distribution) pour des con gurations importantes dans le domaine scienti que.

Une Øtape importante dans l’histoire d’Unix est Øgalement la crØation au dØbut des annØes 80 de la Free Software Foundation (FSF) par Richard M. Stallman du MIT, dont l’objectif est de di user des logiciels libres (c’est à dire qui peuvent Œtre librement adaptØs, selon quelques rŁgles de base toutefois, par leurs utilisateurs). L’idØe est un peu de revenir à cet esprit de communautØ qui a caractØrisØ les dØbuts d’Unix. Au sein de la FSF, il lance le projet GNU (GNU is Not Unix) qui consiste à dØvelopper un systŁme d’exploitation dans l’esprit d’Unix, et distribuØ librement. Tous les logiciels dØveloppØs dans le cadre de ce projet sont soumis à une licence particuliŁre, la GPL (General Public License), qui autorise les utilisateurs du logiciel à avoir accŁs au code source du logiciel et à pouvoir le modi er et di user leurs modi cations à condition que celles-ci soient elles-mŒmes soumises à la licence GPL. Une grande partie des utilitaires d’Unix ont ØtØ rØØcrits sous cette licence et sont d’ailleurs gØnØralement beaucoup plus puissants que leurs Øquivalents propriØtaires.

1991 En n, Linux en tant que tel apparaît en 1991 lorsque Linus Torvalds, un Øtudiant nlandais, dØcide d’optimiser un dØrivØ d’Unix pour PC, Minix (dØveloppØ par An-drew Tanenbaum à l’UniversitØ d’Amsterdam). Rapidement, il rØØcrit une bonne partie du systŁme et di use cette premiŁre version, Linux 0.01 (qui tourne encore sous Minix ), sur Internet. Un groupe de programmeurs s’intØresse alors à cet em-bryon de systŁme et propose de nombreuses amØliorations. Ainsi dŁs la n de l’annØe 1991, Linux (version 0.99) est maintenant un systŁme d’exploitation à part entiŁre. Linux est distribuØ sous la licence GPL, ce qui fait que de nombreux programmeurs peuvent amØliorer le systŁme et redistribuer cette version amØliorØe que d’autres programmeurs pourront à nouveau amØliorer, etc …
1991 Ainsi, la premiŁre version stable, Linux 1.0, sort en 1994. Suite aux diverses amØ-liorations, nous en sommes maintenant à la version 2.2, et il Øvolue encore …

Principes gØnØraux
Une des raisons de la popularitØ d’Unix est que l’ordinateur sous Unix peut Œtre reliØ à tout autre ordinateur fonctionnant avec le mŒme systŁme d’exploitation. Le rØsultat est un Ønorme rØseau d’ordinateurs et une communautØ Unix dispersØe dans le monde entier.
Hôtes et terminaux
Unix est un systŁme d’exploitation multi-utilisateurs, ce qui signi e que plusieurs utilisateurs peuvent Œtre simultanØment connectØs à l’ordinateur. Cet ordinateur qui fait tout le travail s’appelle l’hôte. Une des tâches du systŁme d’exploitation est de vØri er que les ressources de l’hôte sont correctement partagØes entre les utilisateurs.
Pour travailler sous Unix, vous devez utiliser un terminal. Un terminal Unix comprend un moniteur, un clavier, et Øventuellement une souris. Votre terminal est connectØ physi-quement à l’hôte. Quand vous entrez des caractŁres, ou que vous dØplacez la souris, des signaux sont envoyØs à l’hôte. Un programme, exØcutØ sur l’hôte, interprŁte ces signaux et rØagit de maniŁre appropriØe.
Quand un programme en cours d’exØcution sur la machine hôte doit a cher des rØ-sultats, il envoie un signal au terminal qui se charge alors d’imprimer sur l’Øcran les informations adØquates. Tous les systŁmes Unix fonctionnent de cette maniŁre.

Que se passe-t-il quand une touche est pressØe?
Chaque fois que vous pressez une touche du clavier, un signal est envoyØ à l’hôte. L’hôte rØpond en renvoyant un signal vers le terminal lui indiquant d’a cher le caractŁre appropriØ sur l’Øcran. Ainsi, si vous entrez la commande date (pour a cher la date et l’heure), votre Øcran a che les lettres d a t e. Le terminal n’a che cependant pas de lettre tant que l’hôte ne lui a pas dit de le faire.
A premiŁre vue cela peut paraître Øtrange. Quand vous pressez la touche d, le caractŁre d n’est pas a chØ sur l’Øcran. Ce qui se passe en rØalitØ est que le signal d est envoyØ vers l’hôte, qui à son tour envoie un signal vers le terminal, signi ant à celui-ci d’a cher le bon caractŁre. Nous dirons que l’hôte fait un Øcho du caractŁre frappØ sur votre Øcran. Dans la plupart des cas, cet Øchange de signaux se fait si rapidement que cela peut vous donner l’impression que le clavier est directement reliØ au moniteur.
Il est cependant Øgalement possible de se connecter à un ordinateur hôte se trouvant à des milliers de kilomŁtres. Dans de tels cas, il pourra arriver qu’un certain laps de temps s’Øcoule entre le moment oø vous frapperez une touche du clavier et celui oø le caractŁre correspondant s’a chera sur l’Øcran. Autrement dit, vous presserez des touches, mais vous ne verrez pas apparaître les caractŁres correspondants immØdiatement à l’Øcran. C’est se qui se passe en gØnØral quand l’ordinateur auquel vous vous connectez est ØloignØ, ou quand la ligne de communication est lente.

L’administrateur systŁme
Tous les systŁmes Unix doivent Œtre gØrØs et maintenus. La personne qui s’acquitte de ces charges se nomme l’ingØnieur systŁme, l’administrateur systŁme ou encore le root. Dans les universitØs, ou dans les entreprises, l’ingØnieur systŁme est un employØ au mŒme titre que les autres. Maintenir un systŁme Unix entier n’est pas une activitØ de tout repos. Dans le monde Unix, l’administration du systŁme est souvent considØrØe, et c’est un eu-phØmisme, comme une activitØ non triviale . En d’autres termes installer correctement et garder un systŁme Unix en Øtat de marche est un gros travail.
Quand vous vous faites enregistrer comme utilisateur d’un systŁme Unix, l’adminis-trateur systŁme vous donne un nom qui vous identi e vis-à-vis du systŁme. Ce nom est le userid ou identi ant d’utilisateur. En mŒme temps que ce nom, vous recevrez un mot de passe. Le mot de passe est un code secret que vous devrez entrer à chaque fois que vous vous connecterez au systŁme.

La console
Presque tous les ordinateurs disposent d’un clavier et d’un Øcran. Pour Unix, ce clavier et cet Øcran ne sont rien d’autre qu’un terminal, mais dotØ d’un nom spØcial, la console. La console fait partie de l’ordinateur, alors que les autres terminaux sont indØpendants et doivent Œtre connectØs.
Un systŁme Unix typique consiste en un ordinateur hôte disposØ dans le bureau de l’administrateur du systŁme. Cet ordinateur est connectØ à une salle remplie de terminaux. Par commoditØ, l’administrateur systŁme utilise la console, c’est-à-dire le clavier et l’Øcran intØgrØs de l’ordinateur, pour e ectuer son travail, alors que tous les autres utilisateurs n’ont a aire qu’à des terminaux. Cependant, l’administrateur peut trŁs bien utiliser un terminal pour faire son travail.
Vous pouvez alors lØgitimement vous demander si une console est rØellement nØcessaire
à Unix? Et bien pas du tout. Il existe des ordinateurs sans clavier ni Øcran. L’administra-teur du systŁme utilise un terminal classique . L’ordinateur, qui n’est alors qu’une boîte, peut trŁs bien Œtre enfermØ dans une armoire quelconque.

Station de travail
En principe, tous les systŁmes Unix supportent plusieurs utilisateurs simultanØs, mais il existe des ordinateurs Unix qui ne sont utilisØs que par une seule personne à la fois, les stations de travail.
Une station de travail n’est connectØe qu’à un seul terminal, la console. Ce qui signi-e que si vous utilisez une station de travail, vous disposez de l’ordinateur entiŁrement pour votre usage privØ. C’est le cas si vous possØdez un ordinateur entiŁrement personnel fonctionnant sous Unix (sous Linux s’il s’agit d’un PC). Si vous disposez de votre propre systŁme Unix et que vous Œtes le seul à l’utiliser, vous en serez aussi l’ingØnieur systŁme, avec tous les inconvØnients que cela comporte.
Il est Øgalement possible de mettre des stations de travail en rØseau.

Relation Client-Serveur
Une des principales raisons à l’origine de l’existence des rØseaux est le besoin de par-tager les ressources. Supposons qu’un ordinateur dispose d’un grand espace disque pour stocker des chiers. Grâce au rØseau, cet espace peut Œtre partagØ. Il se peut ainsi trŁs bien que vos chiers personnels ne soient pas sauvegardØs sur votre ordinateur mais sur un autre. Quand vos programmes doivent accØder à ces chiers, les donnØes sont transmises à votre ordinateur par le rØseau. De tels systŁmes sont frØquents dans les grandes structures informatiques.
Dans la terminologie des rØseaux, un programme qui o re une ressource s’appelle un serveur. Un programme qui utilise une ressource se nomme un client. Ainsi, le programme qui permet l’accŁs à des chiers à travers le rØseau s’appelle un serveur de chiers, celui qui contrôle l’accŁs à l’imprimante le serveur d’imprimante, et ainsi de suite.

Parfois, le nom serveur fait rØfØrence à l’ordinateur lui-mŒme et non plus à un pro-gramme. C’est le cas quand un ordinateur est dØdiØ à une tâche particuliŁre. On dØsignera ainsi serveur de chier l’ordinateur dØdiØ à la gestion des chiers sur lequel de gros disques durs sont connectØs. On parlera de serveur de courrier Ølectronique pour dØsigner un or-dinateur particulier du rØseau qui s’occupe de la gestion des courriers Ølectroniques. On parlera de serveur de calcul pour dØsigner un ordinateur trŁs puissant en terme de puis-sance de calcul (un ou plusieurs processeurs trŁs rapides, mØmoire trŁs importante, etc.) dont la tâche est d’e ectuer les traitements dont la complexitØ est trop importante pour Œtre rØalisØs dans un intervalle de temps raisonnable sur un hôte classique.

SystŁme X Window
Si vous avez dØjà travaillØ sur Macintosh, ou sur PC avec Windows, vous savez ce qu’est une interface utilisateur graphique (en anglais Graphical User Interface ou GUI). C’est un systŁme avec lequel vous utilisez non seulement un clavier mais aussi une souris. Votre Øcran ne se borne pas à a cher des caractŁres, mais peut aussi a cher des boîtes (les fenŒtres) et des images. Vous travaillez en manipulant les boîtes et les images comme des objets.
X Window est un systŁme conçu pour supporter diverses Interfaces Utilisateur Gra-phiques. Pour des raisons de commoditØ, on fait souvent rØfØrence au systŁme X Window par le seul biais de la lettre X.

Le systŁme X Window provient originellement d’un systŁme d’exploitation particulier conçu à l’universitØ de Stanford. Ce systŁme s’appelait V. Quand une interface à base de fenŒtres fut dØveloppØe pour ce systŁme, elle prit le nom de W. Cette interface fut ensuite donnØe à une personne du MIT qui dØveloppa un nouveau systŁme graphique et lui donna le nom de X. Ce nom de X est depuis restØ.
L’idØe qui se cache derriŁre X est de proposer un ensemble de services standards permettant l’a chage de donnØes graphiques. X est actuellement maintenu par une orga-nisation indØpendante nommØe X Consortium.
L’interface utilisateur graphique n’est pas directement fournie par le systŁme X lui-mŒme, mais par un programme appelØ gestionnaire de fenŒtres. Ce gestionnaire contrôle l’apparence ainsi que le comportement des fenŒtres et des images. X supporte plusieurs gestionnaires de fenŒtres, sous Linux, les plus courants sont KDE et Gnome.
X est un systŁme graphique conçu pour ne supporter que les Øcrans graphiques, mais la plupart du temps votre travail consistera à entrer des commandes Unix, l’une aprŁs l’autre, en rØponse au prompt du shell. Pour cela, vous n’avez besoin que d’un simple terminal caractŁre. Ce besoin Øtant fondamental, X Window comprend un client X dont la seule fonction est d’Ømuler un terminal dans une fenŒtre. Ce programme s’appelle xterm. Quand vous exØcuterez xterm, cela fera apparaître une petite fenŒtre, version rØduite d’un terminal caractŁre.

ProcØdure de login
On suppose ici, que l’utilisateur a dØjà ØtØ enregistrØ sur le systŁme et que donc, son identitØ est prØsente dans des chiers particuliers gØrØs par l’administrateur du systŁme.
Se loguer
L’utilisateur va devoir s’identi er auprŁs du systŁme. Cette identi cation se fait en deux Øtapes. L’utilisateur est dans premier temps confrontØ à l’a chage du message Login : aprŁs lequel il faut rentrer son identi ant d’utilisateur. Ensuite le message Password : est a chØ, il faut alors rentrer son mot de passe. Celui-ci n’est pas a chØ pendant la frappe pour Øviter bien sßr que quelqu’un d’autre puisse l’apercevoir.
L’utilisateur est e ectivement prŒt à travailler quand il reçoit l’invite du systŁme consistant en un marqueur en dØbut de ligne. Ce marqueur est variable selon les ma-chines (ex : $ ou nom_utilisateur@nom_machine>)

1 Système d’exploitation 
1.1 Qu’est ce qu’un système d’exploitation?
1.2 Qu’est ce qu’un chier?
1.3 Qu’est ce qu’un répertoire?
1.4 TP sur les chiers et répertoires
2 Introduction au monde d’Unix 
2.1 Historique
2.2 Principes généraux
2.3 Système X Window
2.4 Procédure de login
2.5 Interagir avec le shell : les commandes
2.6 Quelques commandes
2.7 TP premier pas sous Linux
3 Système de chier d’Unix 
3.1 Remarque sur les noms de chier
3.2 Permission de chiers
3.3 Diérents types de chier Unix
3.4 I-n÷uds et liens
3.5 Compléments sur la commande ls
3.6 Visite guidée de l’arborescence des chiers
3.7 TP i-n÷ud, liens et arborescence
4 Opérations sur les chier et répertoires 
4.1 Chemin absolu et chemin relatif
4.2 Trois abréviations utiles : s
4.3 Manipulation des chiers et répertoires
4.4 Permissions de chiers et de répertoires : chmod
4.5 Motifs d’englobement du shell
4.6 TP Manipulation des chiers et répertoires
5 Visualiser et éditer des chiers 
5.1 Editer avec vi
5.2 Editer avec Emacs
5.3 Visualiser : les premiers ltres
5.4 Compléments sur la commande man
5.5 TP Visualiser et éditer des chiers
6 Installation de Linux et de Cygwin/XFree86 
6.1 Cygwin/XFree86, mettez un Unix dans votre Windows
6.2 Installation de Mandrake Linux 9.1 avec DrakX
7 Redirections, tubes et ltres : principes 
7.1 Philosophie Unix
7.2 Redirections et tubes
7.3 Manipulation des ltres
8 Filtres 
8.1 Concaténer des chiers : cat
8.2 Comparaison de chiers
8.3 Manipuler des colonnes de données
8.4 Manipuler des lignes de donnée
8.5 Editeur non interactif : sed
8.6 Opération de jointure : join
8.7 La commande awk
8.8 Quelques commandes particulières
8.9 Les expressions régulières
9 Pratique des ltres, redirections et tubes 
9.1 Fréquence des chiers par date de modication
9.2 Fréquence des mots d’un corpus
9.3 Génération d’un lexique
9.4 Recherches dans un lexique
9.5 Comparaisons de lexiques
9.6 Tableau des fréquences des mots de deux corpus
10 Alias et Scripts 84
10.1 TP scripts
Bibliographie

Introduction au monde d'UnixTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *