THÉMATIQUE : SYSTEME D'EXPLOITATION

J.H. FABRE – CARPENTRAS

1 SPÉ NSI


Utiliser un système d'exploitation libre


Un peu d'histoire: les projets GNU / LINUX  


Extrait du site web sur le projet GNU : https://www.gnu.org/gnu/gnu-history.html

Le système d'exploitation GNU est un système complet de logiciels libres qui a une compatibilité avec Unix. « GNU » signifie GNU's Not Unix (GNU N'est pas Unix) et se prononce « gnou » (comme l'animal), avec un g dur.

Richard Stallman a fait l'annonce initiale du projet GNU en septembre 1983. Une version plus longue appelée « manifeste GNU » a été publiée en septembre 1985. Il a été traduit dans différentes langues.

Le nom « GNU » fut choisi parce qu'il satisfaisait à plusieurs conditions : premièrement c'était un acronyme récursif pour GNU's Not Unix, en second lieu, c'était un mot réel, et troisièmement il était drôle à prononcer (ou à chanter).


Le mot free, dans free software (logiciel libre), fait référence à la liberté et non au prix. Vous pouvez avoir payé votre exemplaire d'un logiciel GNU, ou l'avoir obtenu gratuitement. Mais quoi qu'il en soit, une fois que vous avez le logiciel, vous possédez quatre libertés spécifiques :


- la liberté d'exécuter le programme comme vous le souhaitez ;

- la liberté de copier le programme et de le donner à vos amis ou collègues ;

- la liberté de modifier le programme comme vous l'entendez, grâce à un accès complet au code source ;

-  liberté de distribuer une version améliorée et ainsi d'aider à construire la communauté (si vous redistribuez des logiciels GNU, vous pouvez faire payer l'acte physique de transférer une copie, ou bien vous pouvez donner cette dernière sans contrepartie).


Nous avons décidé de rendre ce système d'exploitation compatible avec Unix parce que le concept d'ensemble avait déjà fait ses preuves et était portable, et parce que, pour les utilisateurs d'Unix, la compatibilité rendait plus facile le passage à GNU.


Un système d'exploitation de type Unix comprend un noyau, des compilateurs, des éditeurs, des outils de mise en forme de texte, des logiciels de courrier, des interfaces graphiques, des bibliothèques, des jeux et bien d'autres choses. Ainsi, l'écriture d'un système d'exploitation complet est un travail important. Nous l'avons commencé en janvier 1984.


La Free Software Foundation (Fondation pour le logiciel libre) a été fondée en octobre 1985, initialement dans le but de lever des fonds pour aider au développement de GNU.



À l'aube des années 90, nous avions trouvé ou écrit tous les composants principaux sauf un, le noyau.


Puis Linux, un noyau de type Unix, fut développé par Linus Torvalds en 1991 et devint un logiciel libre en 1992. La combinaison du noyau Linux avec le système GNU à peu près complet eut pour résultat un système d'exploitation complet : le système GNU/Linux.


On estime que des dizaines de millions de personnes utilisent actuellement des variantes de ce système, typiquement par le biais de distributions GNU/Linux.


Cependant, le projet GNU ne se limite pas au système d'exploitation. Nous aspirons à fournir tout l'éventail du logiciel, tout ce qui peut intéresser de nombreux utilisateurs. Ceci inclut des applications. Vous trouverez un catalogue d'applications libres dans le répertoire du logiciel libre.

Nous voulons également fournir des logiciels pour les utilisateurs qui ne sont pas experts en informatique. Nous avons donc développé une interface graphique (appelée GNOME) pour aider les débutants à utiliser le système GNU.

Enfin, nous voulons fournir des jeux et autres logiciels récréatifs. Un grand nombre de jeux libres sont déjà disponibles.

Jusqu'où le logiciel libre peut-il aller ? Il n'y a pas de limite, excepté quand des lois comme le droit des brevets interdisent le logiciel libre. Le but ultime est de fournir des logiciels libres pour effectuer toutes les tâches informatiques – et de cette manière faire du logiciel privateur un concept du passé.

Communication des fondateurs du projet GNU (Traduit de l'Anglais)

L'activité

La partie 1 est une découverte du shell et des commandes UNIX.

La partie 2  aborde la notion de processus.

 

Notion de processus

Un processus (ou tâche) correspond à un programme exécuté par le micro-processeur.


Un processus comprend le code du programme, mais également la mémoire et les ressources qu'il utilise.


Un même programme peut-être lancé plusieurs fois et donc correspondre à plusieurs processus sur la machine à un instant donné.


Sous Linux (ou Windows) qui est un système multi-tâches, plusieurs processus tournent simultanément :

des processus systèmes : totalement transparents à l’utilisateur (ils ont comme propriétaire le super-utilisateur root et tournent indéfiniment : ce sont des "démons")

des processus utilisateur :  tâches lancées par l’utilisateur lui-même (directement ou indirectement).



Nous utiliserons dans le cadre de cette activité Linux pour voir ce qu'il met à disposition pour la visualisation et la gestion des processus.


En première SPE NSI cela complète notre utilisation pour manipuler Linux, en Terminale SPE NSI, la gestion plus approfondie des processus sera abordée



Exemple de capture de fenêtre du logiciel htop



Multitâches et politiques d’ordonnancement sous Linux


L’une des fonctionnalités principale du noyau Linux, et plus particulièrement de la partie appelée le « Scheduler » ou Ordonnanceur est de gérer la partie multitâche du système d’exploitation, appelée aussi « multitâche préemptif ». Les fonctionnalités principales de l’ordonnanceur d’un noyau Linux est d’élire un processus parmi d’autres qui occupera le processeur pendant un temps donné avant qu’il ne soit préempté au profit d’un autre processus. Ce choix est fait selon la politique d’ordonnancement appliquée et aussi suivant la priorité associé au processus.


Lorsque le "scheduler" suspend un processus, il doit préserver le contenu de la mémoire et des ressources associées à celui-ci.


Ci-dessous un chronogramme présentant l'ordonnancement de différents processus par le « Scheduler » :


Un processus passe, pendant sa durée de vie, par 4 états principaux ( 5 états si zombie)


    Ready : Cet état correspond à un processus qui est prêt à s’exécuter mais ne peut pas encore prendre possession du processeur car celui-ci est déjà pris par un autre processus.

    Running : En état d’exécution, donc en pleine possession du processeur.

    Stopped : Le processus a reçu un signal qui l’a stoppé.

    Sleeping : Endormi, en attente d’un évènement, comme la fin d’une entrée sortie (écriture dans un fichier, …).



https://www.it-connect.fr/multitache-et-politiques-dordonnancement-sous-linux/


Lister les processus sous Linux

La liste des processus peut être obtenu avec la commande ps

ps avec les options suivantes:

-a tous les processus

-e les processus de tout le monde

-f toutes les infos sur les processus

-u (utilisateur) présente le  nom  de  l'utilisateur  et l'heure de lancement.

- x affiche  les  processus  qui n'ont pas de terminal de contrôle.



Autres commandes de lecture habituelles plus complètes  : ps aux  ou  ps -e -o pid,ppid,stat,command

Voir man ps



Visualiser en temps réel les processus sous Linux

on peut utiliser l'outil htop (version plus graphique et complète que top)

Voir capture en début de doc.







Created with the Personal Edition of HelpNDoc: Free EPub producer