Le système UNIX

Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs. Il possède un ou plusieurs interpréteurs de commandes (shell) ainsi qu'un grand nombre de commandes et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...). De plus il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en oeuvre un système Unix sur la quasi-totalité des plates-formes matérielles.

De nos jours les systèmes Unix sont très présents dans les milieux professionnels et universitaires grâce à leur grande stabilité, leur niveau de sécurité élevé et le respect des grands standards, notamment en matière de réseau.

 

L'histoire des systèmes UNIX

Le premier système «Unix» a été mis au point par Ken Thompson dans les laboratoires Bell AT&T à Murray Hill dans le New Jersey aux Etats-Unis à partir de 1965. Le but de Ken Thompson était de mettre au point un système d'exploitation interactif simple, nommé "Multics" (Multiplexed Information and Computing System) afin de faire tourner un jeu qu'il avait créé (space travel, une simulation du système solaire).

Un consortium composé du MIT (Massassuchetts Institue of Technology), de General Electric Co. et de Bell Lab se forma ainsi autour de Multics.

En avril 1969 les laboratoires AT&T décidèrent d'utiliser le système GECOS (General Electric Comprehensive Operating System ) en lieu et place de Multics. Or Ken Thompson et Dennis Ritchie qui rejoignirent l'équipe eûrent besoin de faire fonctionner le jeu space travel sur une plus petite machine (un DEC PDP-7, Programmed Data Processor possédant uniquement 4K de mémoire pour faire fonctionner les programmes des utilisateurs), c'est la raison pour laquelle il réécrirent le système afin de créer une version réduite de Multics appelée UNICS (UNiplexed Information and Computing Service), rapidement contractée en Unix.

La date du 1er janvier 1970 est considérée comme étant la date de naissance du système Unix, ce qui explique pourquoi toutes les horloges système des systèmes d'exploitation Unix démarrent à partir de cette époque.

Parallèlement à ces activités, D.Ritchie participa grandement à la définition du langage C (puisqu'il est considéré comme un de ses créateurs avec B.W.Kernighan), ainsi l'ensemble du système fût entièrement réécrit en langage C en 1973 et baptisé Unix Time-Sharing System (TSS).
Lorsque le système passa à la version 7 en 1979, l'évolution s'accompagna de nombreuses modifications notables telles que :

  • la suppression du bridage lié à la taille des fichiers,
  • une meilleure portabilité du système (fonctionnement sur de nombreuses plates-formes matérielles),
  • l'ajout de nombreux utilitaires.

Un décret datant de 1956 empêchait l'entreprise ATT, dont dépendait Bell Labs, de commercialiser autre chose que des équipements téléphoniques ou télégraphiques, c'est la raison pour laquelle la décision fût prise en 1973 de distribuer les sources d'UNIX dans les universités à des fins éducatives.

Dès fin 1977 des chercheurs de l'Université de Californie redéveloppèrent une version d'Unix à partir des sources fournies par AT&T afin de faire fonctionner le système sur leurs plates-formes VAX et la baptisèrent BSD pour Berkeley Software Developpement.

Ainsi deux branches de développement des sources virent le jour :

  • La branche d'AT&T qui allait devenir System V de UNIX System Labs (USL)
  • BSD (Berkeley Software Developpement) développé par l'Université de Californie

En 1977 AT&T mit les sources d'UNIX à la disposition des autres entreprises, si bien qu'un grand nombre d'UNIX-like furent développés :

  • AIX, Unix commercial basé sur System V développé en février 1990 par IBM
  • Sun Solaris, Unix commercial basé sur System V et BSD développé par SUN Microsystems
  • HP-UX, Unix commercial basé sur BSD développé à partir de 1986 par Hewlett Packard
  • Ultrix, Unix commercial développé par DEC
  • IRIX, Unix commercial développé par SGI
  • Unixware, Unix commercial développé par Novell
  • Unix SCO, Unix commercial basé sur System V développé dès 1979 par Santa Cruz Operations et Hewlett Packard
  • Tru64 UNIX, Unix commercial développé par Compaq

En 1983 AT&T eût le droit de commercialiser son Unix, ce qui marqua l'apparition de UNIX System V, la version commerciale de son système Unix.

En 1985 un professeur hollandais, nommé Andrew Tannenbaum, développa un système d'exploitation minimal, baptisé Minix, afin d'enseigner la programmation système à ses étudiants.
En 1991 un étudiant finlandais, Linus Torvalds, décida de concevoir, sur le modèle Minix, un système d'exploitation capable de fonctionner sur les architectures de type 386.
Il baptisa ce système d'exploitation "Linux" et posta le message suivant sur le groupe de discussion comp.os.minix :

Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones.

Voici un schéma non exhaustif retraçant globalement l'apparition des principaux systèmes de type Unix :

chronogramme des différentes versions d'UNIX: HP-UX, AIX, BSD, IRIX, Mac OS X, ...

 

Le standard UNIX

Etant donné le grand nombre de systèmes Unix développés sur la base du System V de AT&T ou bien de BSD, la question d'un standard Unix s'est posée dès 1981 sur le groupe de discussion /etc/group afin d'assurer une portabilité maximale entre les systèmes :

  • en 1983, AT&T publie SVID (System V Interface Definition) décrivant le System V. Cette première définition est différente de POSIX
  • en 1984 le groupe /etc/group publie POSIX, une série de standards développés sous couvert de l'IEEE(Institute of Electrical and Electronics Engineers). POSIX est ainsi également connu sous le nom IEEE P1003.
  • à la même époque, un consortium de constructeurs (Sun, IBM, HP, DEC, AT&T, Unisys, ICL, ...) publie le standard X/Open Portability Guide Issue 3 (XPG3). Ce standard s'occupe tout particulièrement des différences issues de la localisation géographique (date, alphabet, ...).

 

Tableau des principales commandes UNIX

 

Commande Unix Description Options
ls liste le contenu d'un répertoire
-a Affiche tous les fichiers, y compris les fichiers cachés
-l Affiche un listing détaillé
-R Affiche les fichiers récursivement (c'est-à-dire dans les sous-répertoires)
-d Affiche uniquement les répertoires et non leur contenu
-S Trie par taille
-t Trie par date de dernière modification
-t Trie par version
-X Trie par ordre alphabétique de l'extension
-r Trie en ordre inverse
cd change de répertoire
cd Revient au répertoire de l'utilisateur
cd - Revient au répertoire précédent
cd .. Revient au répertoire parent
mkdir Crée un nouveau répertoire  
rmdir Supprime un répertoire
-f Force la suppression
-R Supprime récursivement (c'est-à-dire le répertoire et ses sous-répertoires)
cp Copie de fichier copy, xcopy
mv déplacement de fichier move
rm supprime le fichier
-f Force la suppression
-R Supprime récursivement (c'est-à-dire le répertoire et ses sous-répertoires)
pwd "print working directory" affiche le chemin complet du répertoire de travail en cours  
passwd change le mot de passe de l'utilisateur  
cat Concatène deux fichiers et affiche le résultat sur la sortie standard. cat
more Affiche le contenu du fichier avec des pauses  
file affiche le type présumé du fichier spécifié  
man

apropos

aide sur la commande demandée  
lpr imprime le fichier demandé  
chmod change l'attribut d'un fichier

chmod XXX fichier

XXX= Utilisateur|Groupe|Autres ou X représente un entier compris entre 1 et 7

Lecture=4, Ecriture=2, Execution=1

X=Lecture+Ecriture+Execution

 
chfn Change les informations personnelles vues avec finger  
chsh Change le shell : chsh user emplacement_du_shell  
clear Efface les lignes affichées sur le terminal  
finger, who liste des utilisateurs en ligne  
traceroute trace le chemin entre la machine locale et la machine visée  
ping outil de diagnostic permettant de savoir si une machine répond sur le réseau  
ftp [machine] [port]

get

put

quit

transfert de fichier entre la machine locale et la machine cible

récupère un fichier

envoie un fichier

quitte la session FTP

ftp
telnet [machine] effectue un telnet telnet
talk permet de parler à un utilisateur connecté

talk user

 
mesg Autorise ou non la commande talk

mesg n : Empêche la réception de messages talk

mesg y : Permet la réception de messages talk

 
exit Déconnexion  

 

Faire une copie de fichier

Pour faire une copie de fichiers sous UNIX il faut utiliser la commande cp.
Il suffit de taper:
cp fichier destination

Accueil