Linux offre toutes les fonctionnalités d'un clone Unix sur micro-ordinateurs PC-386. Il fournit un environnement de travail multi-utilisateurs, plusieurs personnes peuvent utiliser la machine au même moment, et multi-tâches, chaque utilisateur peut exécuter plusieurs programmes en parallèle. Le système fonctionne en mode protégé, exécute du code 32 bits, contrairement à d'autres systèmes qui s'exécutent en mode 16 bits et sont donc moins performants..., et utilise les mécanismes de protection du processeur pour garantir qu'aucun processus ne peut perturber l'exécution des autres ou du système lui-même.
Le noyau implémente les sémantiques Unix : processus concurrents, chargement à la demande des programmes exécutables avec partage de pages et copie en écriture, pagination, systèmes de fichiers, support des protocoles réseau TCP/IP.
Il supporte, de plus, la majorité des périphériques existant dans le monde PC (y compris les cartes sonores) et permet de relire les partitions MS/DOS, OS/2 et tous les formats standards de CD/ROM.
Les librairies de développement dans Linux sont basées sur les librairies GNU, de la "Free Software Fundation". Ces libraries offrent un haut degré de comptabilité avec les différents "standards" Unix (Posix, BSD, System V), ce qui permet de compiler facilement tout type d'application disponible au niveau source pour Unix. Ces librairies existent sous forme de bibliothèques partagées, ce qui signifie que le code des fonctions de librairie n'est chargé qu'une seule fois en mémoire et que les programmes exécutables sont plus petits en taille sur les disques.
La plupart des utilitaires standards Unix sont disponibles sous Linux, aussi bien les commandes de base que des applications plus evoluées, comme les compilateurs et éditeurs de texte. La plupart des ces utilitaires sont des programmes GNU, qui supportent des extensions qu'on ne retrouve pas dans les versions BSD ou System V de ces programmes, mais qui restent compatibles avec ces dernières. Certains programmes, notamment les utilitaires réseau, sont des programmes BSD. En résumé, pratiquement tout programme Unix diffusé sous forme de source peut être compilé sous Linux et s'exécute parfaitement, grâce à la compatibilité implémentée dans le noyau et dans les librairies.
En plus des programmes standards, Linux supporte de "grosses"
applications. On retrouve l'interface graphique X Window (XFree86 3 basé
sur X11R6), un environnement de développement très complet comprenant toutes
les bibliothèques standard, compilateurs et débogueurs disponibles sous Unix
(C, C++, Objective-C, Smalltalk, Fortran, Pascal, Lisp, Scheme, Ada, gdb
,
...). L'utilisateur dispose également d'outils très puissants de formatage
de texte, comme nroff
, TeX, et LaTeX.
Linux n'est pas compatible directement avec les applications développées pour d'autres systèmes d'exploitation. Afin de permettre aux utilisateurs de Linux de bénéficier des applications qu'ils possèdent déjà, que ce soit sous MS/DOS, Windows ou des systèmes Unix commerciaux, des émulateurs sont en cours de développement et permettent déjà d'exécuter des applications "étrangères".
L'émulateur MS/DOS utilise le mode virtuel 8086 du processeur i386 pour exécuter des applications DOS. Il implémente les fonctionnalités de MS/DOS dans un processus et assure ainsi l'interfaçage entre l'application et le système en émulant les appels système effectués par le programme. A ce jour, de nombreuses applications fonctionnent correctement sous l'émulateur MS/DOS et la liste s'allonge tous les jours.
L'émulateur WINE est assez similaire à WABI, développé par Sun Microsystems : il permet d'exécuter des applications Windows en convertissant leurs appeles graphiques en requêtes adressées à l'environnement X Window. A ce jour, seul un petit nombre d'applications Windows fonctionne correctement mais le développement de WINE n'en est qu'à ses débuts et les progrès semblent prometteurs.
Le module de compatibilité iBCS2 permet d'exécuter des applications développées pour des systèmes Unix commerciaux sur micro-ordinateurs PC-386. Cet émulateur convertit les appels système se conformant au standard iBCS2 (qui définit le format des primitives système ainsi que celui de leurs arguments) en appels natifs traîtés par le noyau Linux. Il est ainsi possible d'exécuter de manière transparente des programmes développés pour d'autres systèmes, comme SCO par exemple.
Le but de ces différents émulateurs est de permettre d'utiliser des applications commerciales sous Linux. Il faut désormais signaler que certains éditeurs de logiciels considèrent maintenant Linux comme un marché potentiel pour leurs produits et envisagent de porter leurs applications sous Linux. De la sorte, il est probable qu'un certain nombre d'applications commerciales tourneront bientôt en mode natif sous Linux, sans nécessiter d'émulateur. L'exemple le plus frappant de cette tendance consiste en le portage du jeu DOOM qui fonctionne sous Linux dans l'environnement X Window.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre