1 Intro General
1 Intro General
1 Intro General
Mohamed CHERRADI
Ingénieur d’Etat en Informatique
Email: mcherradi.ensah@gmail.com
Le système de fichiers (file system) permet d'enregistrer les fichiers dans une arborescence.
Introduction
6
Introduction
7
Quelques OS...
Introduction
8
Un peu d’histoire
Le projet GNU:
GNU est l’acronyme de GNU's Not Unix.
Initié par Richard Stallman en 1984.
Objectif: Créer un nouveau système d'exploitation fonctionnant
comme Unix
(les commandes restant les mêmes).
Etat 90: Le projet GNU possède une version utilisable de tous les
éléments nécessaires à la construction d'un système d'exploitation à
l’exception de la composante la plus central : le noyau.
Un peu d’histoire
Noyau Linux :
initié par Linus Torvalds en 1991.
De Freax à Linux
Initialement appelé Freax = free + freak + Unix (par Linus
Torvalds)
Nom définitif : Linux = Linus + Unix (grâce à Ari Lenk)
Présentation du GNU/LINUX
12
Un peu d’histoire
Richard Stallman créait les programmes de base:
o programme de copie de fichier, de suppression de fichier, éditeur de texte, …
Le projet GNU (programmes libres) et Linux (noyau d'OS) ont fusionné pour
créer GNU/Linux.
Présentation du GNU/LINUX
13
Logiciel libre
La principale originalité de GNU/Linux par rapport à d'autres est d'être constitué d'un noyau
libre et de logiciels libres.
L'expression « Logiciel Libre » fait référence à la liberté et non pas au prix. C’est à dire la «
liberté d'expression », pas à « l'entrée libre ».
L'expression « Logiciel Libre » fait référence à la liberté pour les utilisateurs d'exécuter, de
copier, de distribuer, d'étudier, de modifier et d'améliorer le logiciel
« Logiciel libre » ne signifie pas « non commercial ». Un logiciel libre doit permettre
l'usage commercial, le développement commercial et la distribution commerciale
Un logiciel libre est un logiciel qui est distribué selon une licence libre
Il existe une très grande variété de distribution, ayant chacune des objectifs et une philosophie
particulière.
$ uname (signifie: unix name ) est une commande Unix qui affiche les
informations systèmes sur la machine sur laquelle elle est exécutée.
$ uname -a affiche toutes les informations disponibles sur la version
les utilisateurs, qui identifient de manière non ambigüe les acteurs qui
peuvent utiliser le système, leurs droits et ce que le système peut faire en leur
nom.
les fichiers, qui sauvegardent de manière fiable à la fois les données, les
programmes qui les manipulent et les paramètres qui déterminent les
comportements du système et de ses services.
les processus, qui sont les programmes en train de « tourner » sur la machine à
un moment donné.
Les utilisateurs
22
Superutilisateur – Root
Le nom de fichier est souvent choisi pour indiquer son type via sont
suffixe (par exemple « .txt » pour du texte, « .mp3 » pour du son,
etc). Mais cette indication n’est pas toujours fiable puisqu’on peut
sans problème renommer un fichier à sa guise. La commande $ file,
en revanche, analyse le contenu du fichier qu’on lui donne en
argument pour déterminer son type.
Système de fichiers
26
Exemple :
$ file /home
/home: directory
$file /etc/passwd
/ etc/ passwd: ASCII text
$ file /dev/audio
/dev/audio: character special
Système de fichiers
27
Noms de fichiers:
Depuis le début d'Unix, les noms de fichiers ont les
caractéristiques suivantes:
Sensibles aux majuscules / minuscules.
Interpréteurs de commandes
Interpréteurs de commandes: outils pour exécuter des commandes tapées
par un utilisateur.
Appelés “shells” (coquilles) parce qu’elles masquent sous leur surface les
détails du système d’exploitation sous-jacent .
Les commandes sont tapées dans un terminal en mode texte, constitué soit
par une fenêtre dans un environnement graphique, soit par une console sur
un écran en texte seul.
Les résultats sont aussi affichés sur le terminal. Aucun graphique n’est
nécessaire.
Les interpréteurs de commandes peuvent être programmables: ils
fournissent toutes les ressources nécessaires pour l’écriture de programmes
complexes (variables, conditions, boucles...)
Outils de développement et d’exécution de programme
30
Interpréteurs de commandes
Interpréteurs de commandes les plus connus et les plus populaires
sh: Le Bourne shell (obsolète)
Les Compilateurs
GCC est le compilateur standard sous Linux
Pour les programmes C et C++, GCC est une suite d'outils composée
(essentiellement) de :
Préprocesseur (cpp)
Assembleur (gas)
Editeur de lien ou linker (ld)
La commande gcc se charge d'invoquer le préprocesseur, l'assembler et le linker
Outils de développement et d’exécution de programme
32
Les Compilateurs
make est un utilitaire permettant d'invoquer des commandes
générant des fichiers, mais seulement si elles sont nécessaires
Pour chaque commande, on spécifie quels sont les fichiers dont
elle dépend
La commande n'est exécutée que si un ou plusieurs de ces fichiers
est plus récent que le fichier généré
make sert principalement à faciliter la compilation et l'édition de
liens puisque le résultat final dépend d'opérations précédentes
Les règles sont enregistrées dans un fichier Makefile