Un système, même en dehors de l'informatique, est un ensemble d'éléments réunis dans une fonction commune. En informatique, la désignation complète est Système d'Exploitation de Disque (en anglais ça donne « DOS »).
En effet, la seule chose qui compte réellement dans un ordinateur est le disque dur, car c'est la seule qui subsiste quand l'électricité est coupée.
Bien sur, le système doit également s'occuper de la RAM, des périphériques...
Le BIOS (Basic Input-Output System) où système de base d'entrée et de sortie de données, ne fait pas à proprement partie du système d'exploitation, puisqu'il est livré avec l'ordinateur et indissociable de celui-ci. Il représente cependant un composant essentiel qu'il n'est pas possible de passer sous silence.
Le BIOS est une couche intermédiaire entre le matériel et le système. En principe, toutes les relations entre le système d'exploitation et le matériel devrait se faire à travers des appels au BIOS.
Pour de nombreuses raisons, cette situation reste théorique et le BIOS, de nos jours, ne sert plus qu'à l'allumage de l'ordinateur. Les limitations du BIOS sont cependant la cause de problèmes incessants, surtout si on ajoute dans l'ordinateur du matériel non connu à sa fabrication (typiquement des disques durs de grande capacité).
Le BIOS n'est pas capable de faire grand chose. Dès qu'il a fini son travail, il transmet donc le relais au système d'exploitation. Cela se fait en transférant l'exécution au code situé au tout début du support de démarrage (disque dur, disquette ou CD - par la suite nous supposerons qu'il s'agit du disque dur). C'est alors le système d'exploitation qui prends les commandes.
Cette première partie du système d'exploitation est constituée du premier secteur du disque, le Master Boot Record (MBR). Ce secteur ne fait que 512 octets, il ne peut guère donc que transmettre le relais au chargeur (boot loader) qui est, lui, un fichier classique sur le disque dur. Ce chargeur s'occupe donc de charger le noyau qui va s'occuper de toutes les fonctions du BIOS, revues et corrigées, avant, lui-même, de passer le relais à l'interface utilisateur.
Pendant toutes ces procédures, des incidents peuvent se produire : défauts du matériel, erreurs du logiciel, pannes majeures ou mineures (qui n'a jamais oublié de brancher un clavier ou une souris après un déplacement ?)... dont le système doit informer l'utilisateur.
A ce stade, il est impensable d'utiliser des fonctions graphiques, trop gourmandes en place disque, c'est pourquoi nous voyons tous apparaître des messages en mode texte sur l'écran.
Paradoxalement, les premiers messages sont en général le copyright de la carte graphique, donné par son BIOS (qui est une partie du BIOS principal).
Certains systèmes donnent peu de messages, d'autres beaucoup. Les avis diffèrent sur les avantages relatifs. Pour ma part, rester de longues secondes devant un écran vide m'inquiète plus que de voir défiler des messages signalant le bon démarrage des modules, et en cas de problème je préfère être prévenu tôt que tard.
Il est notable que cet interface texte soit encore utilisée même par les tenants du tout graphique en cas d'erreurs (le fameux « écran bleu de la mort »), ce qui montre bien sont intérêt.
Vous êtes sur d'avoir compris :-) ?
Le système de fichiers est l'organisation des fichiers sur le disque. Aujourd'hui tous les systèmes montrent une arborescence, c'est à dire des répertoires imbriqués les uns dans les autres.
Mais la réalité de la gestion des fichiers est autre. Elle comprends la gestion des « permissions » et la réalité de l'écriture des fichiers sur le disque.
Windows utilise depuis toujours le système de fichiers « DOS ». Ce système est aujourd'hui complètement obsolète, et les astuces comme la fat32 n'y changent rien. En particulier il ne permet pas une gestion correcte des droits d'accès ou « permissions ». Sous Windows, n'importe quel utilisateur peut modifier ou effacer n'importe quel fichier.
Windows NT (NT signifie « Nouvelle Technologie »), la version professionnelle (aujourd'hui Windows 2000 pro) utilise un système appelé NTFS (système de fichier NT) qui permet une gestion très fine des permissions, si fine qu'il est facile de s'y perdre et que la contrôler est un travail de tous les instants. C'est aujourd'hui également un système obsolète.
Ces deux systèmes de fichier ont l'inconvénient majeur de se « fragmenter ». Plus on utilise le système plus les fichiers se découpent en petits morceaux, ralentissant considérablement le système. Il faut alors « défragmenter », ce qui prends de longes minutes, parfois des heures et doit être sans arrêt recommencé.
A la moindre défaillance du système (et ce peut être une panne de courant), il faut contrôler tout le disque, au prix d'une perte de temps - et de données - considérable.
Le système de fichier traditionnel de Linux, ext2 (extended 2) est peu sensible à la fragmentation mais sensible aux coupures de courant. Pour limiter les pertes de données, on teste le disque en cas d'arrêt brutal (une sorte de scandisk) et ca peut être long. Linux est un système très stable, qui « plante » très rarement, ce défaut est donc mineur, mais si les usagers professionnels n'éteignent jamais leurs ordinateurs (et utilisent des batteries de secours en cas de panne de courant), les utilisateurs personnels le font tous les jours et parfois de façon brutale (en pressant le bouton arrêt). Un disque de 20 Go en ext2 peut mettre 10 minutes avant de redémarrer.
Il existe aujourd'hui des systèmes de fichiers sous Linux (depuis longtemps sur les stations professionnelles), appelés « systèmes de fichiers journalisés » qui notent soigneusement toute opération non terminée et qui peuvent la « rejouer » au redémarrage en quelques secondes (moins de deux secondes pour un disque de 20 Go).
Ces systèmes stockent également les fichiers sous forme de base de donnée à accès rapide, ce qui accélère la lecture du disque de façon spectaculaire. Tout ceci est transparent pour l'utilisateur qui ne se rend compte de rien, sauf à l'installation (choix du système de fichiers) et au dépannage (moins de problèmes).
La gestion des permissions par Linux est celle d'UNIX, très performante. Cependant elle est assez subtile et il faut parfois « ruser ».
Un système doit sans arrêt faire le chois de la commodité ou de la sécurité. Windows a fait le choix de la commodité en autorisant tout à l'utilisateur. Du coup, la moindre erreur peut avoir des effets dramatiques et les virus se développent.
Linux a fait le choix inverse. L'utilisateur ordinaire n'a le droit de rien faire, ou presque. Du coup il est indispensable d'avoir un compte « administrateur » (« root », sous Linux) qui, lui, peut tout faire. Il est alors souvent nécessaire de jongler entre les deux comptes, ce qui est agaçant.
Dès que plusieurs utilisateurs ont accès à une même machine, le problème de sécurité devient majeur.
C'est la fonction de base et la plus connue des systèmes d'exploitation.
Un système graphique est très commode pour circuler dans l'arborescence des fichiers d'un disque dur (explorateur), ou pour déplacer un seul fichier entre deux répertoires.
Dès lors que l'on veut agir sur de nombreux fichiers, cela devient plus problématique.
Supposons que vous ayez recopié un répertoire et ses sous répertoires d'un CD sur votre disque dur, il y a de fortes chances que tous les fichiers aient l'attribut « lecture seule ». Changer cet attribut sur tous les fichiers dans tous les sous répertoires concernés n'est tout simplement pas possible avec l'interface graphique.
Sous Linux, il suffit d'ouvrir une console texte et de taper « chmod -R a+w * ». Sous DOS la commande « ATTRIB » fonctionnait à peu près pareil.
Bien sur il faut connaître la « syntaxe » des commandes, mais, en fait, les commandes en mode console sont bien plus nombreuses qu'en mode graphique.
Gérér des fichiers revient à les lire, copier, déplacer, modifier, organiser, contrôler.
Le système d'exploitation doit servir de lien entre l'ordinateur et l'utilisateur. Il doit donc gérer l'écran, le clavier, la souris, les différents périphériques et en premier l'imprimante.
Il doit être capable de le faire à tous moments, même en cas de fonctionnement problématique.
Cet interface va rendre accessible à l'utilisateur les principales applications, mais également les fonctions de base du système lui-même et les cripts.
L'interface en mode graphique est aujourd'hui indispensable à bien des usages. Il est disponible sur tous les systèmes.
A ce stade il y a plusieurs éléments à prendre en compte. Une interface unique (Windows...) facilite l'apprentissage mais bride la créativité des programmeurs et force tout un chacun à s'adapter même si le système ne lui convient pas. Il simplifie aussi l'intégration des nouveaux produits qui savent quel interface utilisent les usagers.
A l'opposé, un système muni de nombreuses interfaces (Linux) permet à chacun de trouver chaussures à son pieds, que l'ordinateur soit une bête de puissance ou un vieux modèle, que vous aimiez les écrans flashy ou les décors sobres, mais complique l'intégration des applications qui doivent reconnaître le système utilisé (ou laisser à l'utilisateur cette intégration).
Après tout, le poste de conduite d'un camion n'est pas le même que celui d'une voiture légère, et toutes les maisons ne sont pas identiques, pourquoi les ordinateurs devraient-ils être tous semblables ?
Un ordinateur est une machine qui doit être capable de fonctionner même en l'absence de l'utilisateur ou sans intervention de celui-ci. Il le fait pour toutes ses fonctions de base, mais il doit être également capable de recevoir de nouvelles fonctions créées par l'utilisateur lui-même. Ce sont les scripts.
Les interfaces graphiques se prêtent très mal au scripting, c'est là leur principal défaut. Sous DOS, dans le temps, il était assez facile de réaliser des programmes batch, fichiers terminés par « .bat », le plus connu étant autoexec.bat.
Cette facilité a presque disparu de Windows, qui considérait sans doute que les utilisateurs n'étaient pas capables de rédiger ces scripts. Elle a été réintroduite timidement dans les versions récentes, en même temps que le mode MS-DOS disparaissait.
Certains scripts sont pourtant très faciles à écrire, et surtout il est très facile d'adapter a ses propres besoins les scripts écrits par d'autres et que l'on trouve partout, que ce soit sur Internet ou dans les revues.
Par exemple, tous les jours à 20h05 un script sauvegarde mes données dans un répertoire spécial d'où je peux les graver sur cd. J'évite ainsi des pertes de données. J'ai mis trois jours à écrire ce script de trois lignes, mais je n'ai maintenant plus à m'occuper de rien.
Tout système d'exploitation a des fonctions « d'administration » et des fonctions « d'usage ». Windows ne fait aucune différence entre les deux et considère que n'importe quel utilisateur est le propriétaire de la machine et peut donc la détruire s'il le souhaite.
Windows NT vous demande de vous loger comme administrateur au démarrage pour effectuer toutes les tâches d'administration.
Il faut alors se « déloger » (fermer la session) et se « reloger » comme utilisateur pour travailler.
Linux est multi-utilisateurs et multi-sessions, c'est à dire que plusieurs utilisateurs peuvent travailler en même temps sur la même machine et que le même utilisateur peut ouvrir en même temps plusieurs sessions.
Pour être réellement plusieurs, il faut passer par le réseau (il n'y a qu'un clavier :-)), mais pour ouvrir plusieurs sessions il suffit d'ouvrir une console plein écran ou une fenêtre dans l'interface graphique. Il est même possible d'avoir plusieurs interfaces graphiques ouvertes en même temps.
Vous pouvez donc être administrateur dans une fenêtre (on dit « root ») et usager (user) dans une autre.
Voici quelques commandes utiles. On peut obtenir de l'aide (explications sur leur fonctionnement) en les lancant avec l'option /? (dos) ou en utilisant la commande help (Linux). La liste ci-dessous est très partielle.
Dos/Windows |
Linux |
Usage |
---|---|---|
DIR |
ls |
Liste les fichiers du répertoire |
REN |
mv |
Renomme un fichier |
REM |
#, ; |
Ligne de remarque dans un script |
COPY |
cp |
Copie un fichier |
MOVE |
Mv |
Déplace un fichier |
TYPE |
cat |
Affiche le contenu d'un fichier texte |
MORE |
more |
Affiche le contenu d'un fichier texte par page |
DEL |
rm |
Efface un fichier |
MD |
mkdir |
Crée un répertoire |
CD |
cd |
Change le répertoire courant |