Logiciels de Base
1ère partie : Introduction
Cours 1ère année informatique, semestre 1.
Najib Tounsi
Lien permanent : http://www.mescours.ma/LogBase/logicielsDeBase-1.html
Avis aux lecteurs : La plupart des exemples et figures donnés dans ce document sont issus d'un ordinateur sous MacOS. Mais les concepts introduits sont suffisamment généraux et ne dépendent pas d'un système donné ou d'un logiciel particulier.
Ensemble de ressources matériels et logiciels nécessaires au traitement automatique de l'information. Il convient de rajouter aussi les ressources humaines nécessaires au bon fonctionnement du système : installation, personnalisation, maintenance etc. (on dit les ingénieurs système) .
Classiquement, on trouve:

Un ordinateur est généralement connecté à un réseau pour partager ou accéder à des ressource supplémentaires. On ne s'y intéresse pas pour l'instant.
L'unité centrale (UC) contient les éléments suivants:

où CPU (Central Processing Unit) est l'unité de traitement et calcul (on dit aussi processeur), la mémoire est l'unité qui contient les données et les instructions à exécuter. Les bus sont le moyen de transport des données et des instructions entre ces deux unités.
Les logiciels se composent d'abord du système d'exploitation et d'autres logiciels d'applications.

Le système d'exploitation (ou système opératoire, Operating System) permet d'utiliser le matériel pour exploiter ses ressources de façon optimum et de faciliter le travail de l'utilisateur. C'est un ensemble de programmes intégrés qui exécutent et coordonnent un ensemble de tâches reliées et interdépendantes.
On peut y voir deux couches :

La première couche de ces programmes est le noyau. Il s'occupe de
(Cf. Cours Systèmes d'Exploitation, semestre 2.)
Une deuxième couche de programmes est constituée de logiciels de base.
(Voir aussi 2e Partie)
Les logiciels de base sont des programmes de services pour un
environnement de programmation de base.
Un premier ensemble de tels programmes est constitué de:
En effet, un ordinateur doit permettre d'écrire et d'exécuter des programmes avant tout...
Un deuxième ensemble est formé de programmes (dits aussi outils, tools) tels que:
L'interprète de commandes assure le dialogue avec l'utilisateur pour la mise en oeuvre de ces services et outils. On le désigne par le nom générique Shell. Par exemple, bash (Bourne Again Shell) sous les OS de la famille Unix/Linux ou MacOS, command.com, cmd.exe ou PowerShell pour DOS et Windows.
Un Shell offre à un utilisateur la possibilité de rentrer une commande pour demander un service (par exemple la saisie d'un texte de programme, sa compilation ou son exécution, la création ou copie d'un fichier etc.) et fait exécuter ce service en faisant appel à l'outil adéquat.
On reviendra plus tard sur ces programmes (2e Partie).
Ce sont essentiellement les logiciels qui ne sont pas systématiquement livrés par le vendeur de l'ordinateur, et qui dépendent d'une installation donnée chez un utilisateur. On trouve d'abord les logiciels généraux tels que:
Ensuite, on trouve les applications spécifiques à une organisation particulière, e.g. la gestion de stock pour un commerce, la paie du personnel pour une entreprise, la facturation pour une compagnie etc…
Avec ces systèmes les programmes s'exécutent les uns après les autres. On dit aussi système monotâche. C'est le cas par exemple des premiers PCs. Un seul utilisateur peut utiliser le système qui exécute un programme à la fois. L'inconvénient de ces systèmes c'est qu'il faut attendre qu'une tâche se termine avant d'en lancer une autre, même si la première n'utilise pas le processeur, e.g. attend un événement donné.
Un système multiprogrammé (ou multitâches) est un système qui permet à plus d'un programme d'être exécutés "à la fois". C'est le cas de tous les systèmes actuels. L'avantage de ces systèmes c'est qu'ils optimisent le temps du processeur. Le système permet à un deuxième programme d'être exécuté même si un programme précédent n'est pas terminé. C'est le cas par exemple quand ce dernier effectue une entrée/sortie (attente d'une saisie, écriture sur disque ou impression).
Un système multitâche peut permettre à plusieurs utilisateurs de travailler simultanément. On dit système multi-utilisateurs dans ce cas.
Il y a différentes techniques de partage de l'UC entre les différentes tâches et utilisateurs. (cf. par exemple [1] )
Il y a principalement deux modes d'interaction avec l'ordinateur. Le mode commande avec son écran-lignes-de-textes où on tape une commande au clavier et l'ordinateur l'exécute affiche le résultat à l'écran, et le mode graphique où on utilise un pointeur (avec souris ou touchpad) pour manipuler des objets graphiques et cliquer sur des icônes dans des fenêtres pour activer des tâches.
Dit aussi mode ligne commande (ou terminal tty), le mode
commande fonctionne sur un écran où on n'affiche que des caractères. La
figure Fig-4, montre un écran terminal de 24 ligne de 80 caractères, avec
un prompt $. Ici, c'est un terminal de type UNIX
disponible sur MacOS.

La figure suivante (Fig-4-bis) montre le même type de fenêtre mode
commande, sous Windows. Programme du DOS (prompt caractéristique C:\>).

La figure suivante (figure 4-ter) montre le même terminal que la figure
Fig-4 ci-dessus, après avoir tapé quelques commandes (lignes précédées du
signe $), dont on voit le résultat.

$)
avec résultatLes commandes montrées dans figure Fig-4-ter sont:
ls, qui liste les fichiers qui se trouvent sous le
répertoire courant. Ici, on montre le fichier de nom hello.c
.cat hello.c, qui demande d'afficher ce fichier qui est
donc un programme C.cc -o hello hello.c, qui demande de compiler le source hello.c
vers le fichier exécutable hello .hello, la commande (le nom de l'exécutable créé juste
avant) qui exécute le programme C.Il y a un programme essentiel à un système d'exploitation et qui réalise ce mode. Ce programme interactif est connu sous le nom générique de Shell,
Un Shell est en fait un interprète de commande. Il reçoit la ligne commande que l'utilisateur tape et demande au système d'exploitation de l'exécuter.
Sous Unix, il y a les interprètes de commandes sh (Bourne
Shell), bash (Bourne
Again Shell), csh (C-shell),
ksh (Korn Shell)
entre autres.
Sous Windows et DOS, l'interprète de commande est le programme cmd.exe.
Plus récemment est apparu PowerShell avec une syntaxe
de commandes proche des Shell Unix.
Dit aussi parfois GUI (Graphical User Interface).
Dans ce mode on dialogue avec le système opératoire de façon plus ergonomique avec une souris (ou autre) qui dernière permet de manipuler un pointeur sur l'écran. On peut pointer dans des zones à l'écran ou sur des figures qui représentent des objets informatiques ou des tâches à activer en appuyant sur un bouton de la souris.
En fait, dans ce mode chaque applications ou programme s'exécute dans une fenêtre sur laquelle l'utilisateur peut agir an pointant avec la souris sur des images (icônes) ou zone d'écran (Fig-5).
La fenêtre la plus simple et la plus immédiate correspond à l'explorateur
de fichiers qui permet la navigation dans le systèmes de fichiers de
l'ordinateur, dossiers et documents. Sous Mac OS c'est le Finder,
et sous Windows, c'est l'explorateur Explorer.
Sous Linux, il y en a plusieurs: Konqueror
(Dolphin maintenant), Krusader,
Commander etc. [2]

Fig-5. Fenêtre de Finder, l'explorateur
de fichier du mode graphique MacOS
Dans cette figure on voit plusieurs choses, dont principalement:
La ligne menu d'une fenêtre est fonction de l'application ouverte. Elle contient les menus de sélection de fonctionnalités liées à l'application.
On y trouve en général (Fig 7, 7-bis)
^N),
ouverture (^O) / sauvegarde (^S)
/ impression (^P) de fichiers données de l'application etc.^X)
/ copier (^C)
/coller (^V)Les sélections se font avec la souris et le bouton gauche. Une
sélection peut se faire aussi par une combinaison de touches dite
"raccourci clavier", de type ^O (lire contrôle O),
c'est à dire appuyer en même temps sur la touche ctrl
et sur une lettre.
NB. Si une application a été internationalisée, sa ligne menu est localisable (si l'OS est multilingue). Fig-7-ter.
Noter la directionnalité des items du menu. Pas forcément de droite à gauche, i.e. menu ملف plutôt à droite et مساعدة à gauche, comme dans la version latine. La question est ouverte...
Une fenêtre peut avoir parfois son propre menu en haut (figure 8). Ses éléments peuvent être matérialisés par des icônes, du texte ou les deux à la fois, comme ici. Parfois aussi des éléments de sélection en bas (ligne dite statut, figure 8-bis).

Fig-8. Menu
Back et Forward... du navigateur Mozilla, en plus
du menu File...Help en haut.

Pointer: Ramener le pointeur de la souris vers un endroit particulier : sur une icône ou sur un texte. Dans le cas d'un texte un trait verticale | symbolise le curseur.
Cliquer : appuyer et lâcher le bouton de la souris 🖱 (ou un des boutons).
Sélectionner : cliquer une fois sur le bouton (droit) de la souris.
Sélectionner un texte : Appuyer et garder le doigt appuyé sur le bouton tout en déplaçant la souris sur le texte choisi.
Double clic : cliquer rapidement deux fois. Vitesse de double clic ajustable par configuration de la souris.
Couper/Copier/Coller (Cut/Copy/Paste) (^X/^C/^V) du menu Edit : Permet de déplacer (Couper) ou dupliquer (Copier) un objet d'un endroit à un autre. Ce que l'on sélectionne avec la souris est mis dans une zone mémoire appelée presse-papier (clipboard) dès qu'on choisit Couper ou Copier. Dans le premier cas, l'objet sélectionné est supprimé de sa place initiale. Coller permet de restituer le presse-papier à l'endroit nouveau désigné par la souris. On peut ainsi:
Glisser et déposer (Drag and drop) : Technique favorite des GUIs. Consiste à sélectionner un objet et garder le doigt appuyé sur le bouton tout en déplaçant la souris (Drag). Dès qu'on lâche le bouton, l'objet sélectionné est déposé dans la nouvelle zone pointée par la souris (Drop). Un objet est ainsi déplacé d'une zone à une autre.
NB. On peut sélectionner un texte avec le clavier en appuyant sur shift et sur la flèche du déplacement du curseur. Avec ^X/^C/^V on peut le couper/copier/coller.
Normalement ce qu'on peut faire dans un mode on peut le faire dans l'autre. Si le mode commande est fruste et un peu plus laborieux, le mode graphique, avec souris, boutons et menus, est plus convivial. Cela dit, le mode commande est plus puissant pour certaines opérations surtout quand elles sont répétitives. Grace au Shell le mode commande offre des possibilités de programmations très avancées où on peut combiner et varier les commandes en vue de réaliser des tâches très élaborées.
Il faut ajouter que le mode commande est plutôt fait pour un travail de programmeur système qui a besoin de dialoguer de façon très proche des possibilités d'un OS.
Voici quelques commandes classiques correspondant à des manipulations de base en mode graphique Windows ou MacOS. Voir table ci-dessous.
cd, mkdir,
rmdir, cp, mv, rm,
cat ..., Windows/DOS cd, md, rd,
copy, rename, del, type
...) ,find)emacs hello.c
édition (ou
création) d'un fichier source C hello.c avec l'éditeur
de textes emacscc -o hello hello.c
compilation vers un exécutable hello
du programme hello.chello
commande hello, i.e.
lancement pour exécution du programme précédentPour avoir de l'aide en mode graphique, on utilise le menu 'Aide'
de l'explorateur du fichier (pour ce qui concerne le système
d'exploitation) ou de l'application concernée. En mode commande on dispose
de la commande help pour Windows et man
pour les OS à base de Unix. Cette dernière commande (qui évoque un manuel
utilisateur) est prévue pour toutes les commandes Unix. man ls,
affiche l'aide pour la commande Unix ls.
Par extension certains logiciels (ou nouvelles commandes) affichent leur
aide de la même façon. man curl affiche l'aide de la
commande curl (qui transfert une
adresse Web (URI)). Sinon,
l'option -h permet d'obtenir la
manière d'utiliser un programme. curl -h affiche
l'aide sur cette commande curl.
| Fonction | UNIX | DOS |
|---|---|---|
| Créer répertoire | mkdir nomRépertoire |
md nomRépertoire |
| Aller vers un répertoire | cd nomRépertoire |
cd nomRépertoire |
| Afficher le nom du répertoire courant | pwd |
pwd |
| Remonter d'un répertoire | cd .. |
cd .. |
| Retirer répertoire (vide) | rmdir
nom Répertoire |
rd nom Répertoire |
| Copier un fichier vers un un autre | cp fichier-1
fichier-2 |
copy fichier-1
fichier-2 |
| Renommer un fichier | mv fichier-1
fichier-2 |
rename fichier-1
fichier-2 |
| Afficher un fichier | cat fichier
oumore fichier |
type fichier |
| Effacer un fichier | rm fichier |
del fichier |
| Demander l'aide sur une commande | man nomCommande |
help nomCommande |
| Lister les fichiers d'un répertoire | ls ou ls -l |
dir |
Les variables d'environnement sont des variables systèmes qui contiennent des choix de configuration ou préférences utilisateur. Par exemple, la variable USER qui contient le nom de l'utilisateur ou la variable SHELL qui contient le nom de l'interprète de commande.
Une variable d'environnement intéressante est la variable PATH.
Elle contient la liste des répertoires qui contiennent les fichiers
binaires qu'on peut exécuter. Exemple, C:\;C:\System;C:\Programe
file\bin sous Windows (séparateur ;), ou /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
sous Unix (séparateur :).
Plus précisément, quand on tape le nom d'une commande, celle-ci est
cherchée dans les répertoires indiqués par la variable d'environnement PATH. Quand on rajoute un logiciel au
système et qu'on veuille l'exécuter en tapant simplement son nom, on doit
modifier cette variable et rajouter le chemin d'accès vers le répertoire
où le nouveau logiciel a été placé. Sous Windows par exemple, les
commandes de compilation cc ou javac
ne sont pas accessibles directement. Il faut modifier la variable
d'environnement PATH pour
le répertoire correspondant.
En mode commande et sous Windows, on peut modifier la variable d'environnement PATH par
set PATH = %PATH%;C:\Programe
file\JDK7.1\bin
pour rajouter le chemin d'accès C:\Programe file\JDK7.1\bin
à la valeur de PATH. La
notation %PATH% désigne l'ancienne valeur de la variable. Le
caractère ; sert de séparateur.
Sous UNIX par
PATH=$PATH:/usr/local/mysql/bin
export PATH
pour rajouter le chemin /usr/local/mysql/bin à la variable
PATH.
Ici, $PATH désigne l'ancienne valeur et le caractère :
sert de séparateur.
Le mode ligne commande bien que plus laborieux est parfois plus puissant. Surtout pour un travail de programmeur système. L'ensemble des outils (commandes) et leur combinaisons sont parfois très efficaces.
Il est parfois très utile de lancer des commandes par lots; chose plus
simple en mode commande. Surtout pour les traitements répétitifs. Par
exemple traiter un ensemble de fichiers par une ligne commande de forme
plus ou moins complexe. (chercher avec find
les fichiers a.out, core, *.bak,
*~ etc. pour les effacer ou les archiver). La commande
suivante cherche les fichiers d'extension .o du
répertoire utilisateur pour les effacer.
find $HOME -name "*.o" -exec rm {} \;
Le mécanisme de script du mode GUI permet aussi de faire le même genre de tâche.
Le mode commande s'impose aussi quand on se connecte à distance (telnet) à un ordinateur dans un réseau. On a alors un Shell et on doit taper des commandes.
Un ordinateur stocke ses informations dans des fichiers sur disque. On appelle système de fichiers l'ensemble des moyens pour stocker et retrouver ces informations. Cela revient principalement à mettre les informations dans des unités séparées, les nommer et désigner leur emplacement. Une telle unité d'information est appelée fichier (File). L'organisation logique des ces unités et l'ensemble des règles qui les gouvernent s'appelle un système de fichiers (File System) ou système de gestion de fichiers SGF..
La plupart des systèmes de fichiers structurent leurs fichiers en une collections hiérarchisée de répertoires (directory). Un répertoire est alors une collection de fichiers. Un répertoire peut contenir d'autres (sous) répertoires, et ainsi de suite. On a alors une structure d'arbre où les nœuds sont des répertoires et les feuilles des fichiers. Figure-9 montre un tel arbre avec la racine en haut et les feuilles vers le bas.

Fig-9. Structure d'arbre de fichiers et répertoires.
Dans cette figure, on voit un répertoire appelé MonDossier
qui contient deux sous-répertoires Autre et Prog
et un fichier README.txt. Le sous répertoire Autre
contient trois fichiers, index.html, lettre.doc
et mail.txt et le sous répertoire Prog
contient les fichiers hello.c et tp1.java. Le
sous répertoire Dossier1 contient quant à lui un seul
fichier courrier.txt.
On peut noter qu'un répertoire est en fait un fichier spécial contenant l'information "liste de fichiers ou sous-répertoires"
Avec l'explorateur des fichiers en mode graphique on visualise mieux cette structure d'arbre grâce au décalage de gauche à droite. Les répertoire sont marqués par l'icône triangle gris.

Fig-9-bis. Structure d'arbre de
fichiers et répertoires
vue par l'explorateur de
fichiers.
En mode graphique, les répertoires sont matérialisés généralement par une
icône dossier (folder) et
les fichiers par un icône document, dont le graphique reflète le type de
contenu et l'outil de création de document (figure 9-ter). Exemple, le
dessin correspondant à Mozilla pour le document HTML index.html.
Voir ci-après la discussion sur les types de fichiers.

Un fichier doit être désigné par son chemin d'accès (path) dans la hiérarchie des fichiers (cf. figure 9) . Il y a deux types de chemins : chemin absolu et chemin relatif.
Un chemin absolu est la référence – unique pour un fichier –
donnée à partir de la racine et où les répertoires intermédiaires sont
cités nommément, séparés par la caractère / (ou \
sous Windows).
Exemples:
/home/ali/MonDossier/README.txt(par exemple sous UNIX)
C:\>\users\ali\MonDossier\README.txt(sous Windows)
C:\>\users\ali\MonDossier\PROG\hello.c
sont respectivement les chemins absolus du fichier README.txt
sous UNIX ou Windows et du fichier hello.c (voir
figure 9). On constatera qu'un chemin absolu commence forcément par /
qui es le "nom" de la racine du système de fichiers.
Un chemin relatif est une référence donnée par rapport au
répertoire courant. Elle ne commence donc pas par /. Soit Autre
le répertoire courant.
lettre.docest le fichier de ce nom sousAutre
Dossier1/courrier.txtest le fichiercourrier.txtsous le répertoireDossier1sousAutre
Une convention système est de désigner le répertoire courant par le
caractère point . et son parent par deux
points .. . Ainsi, et toujours sous le
répertoire Autre
./lettre.docest la même fichier quelettre.doc
../MonDossier/README.txtest le fichierREADME.txtsousMonDossier
Une erreur de jeunesse (ou mauvaise habitude DOS) est de considérer qu'il
suffit de donner le nom d'un fichier pour le trouver (surtout si il s'agit
d'une commande UNIX). Sinon on essai d'aller (par des cd)
vers le répertoire qui le contient – et qui peut être protégé – pour
pouvoir l'utiliser. Cette manipulation marche pour ses sous répertoires à
soi, mais pas pour les autres. On doit prendre l'habitude de
désigner un fichier par son chemin d'accès.
En pratique, et pour éviter de taper leur chemin complet, le système de
fichier offre une aide pour les noms de commandes. Ces noms sont cherchés
sous le répertoire courant, sinon dans une liste de répertoire standards
qui est donnée par la variable environnement PATH. Voir plus
haut §6.2.2.
Toute personne ne peut pas utiliser n'importe quel fichier, et si oui, pas pour faire n'importe quel travail. Le système de fichier offre un mécanisme simple pour protéger les fichiers.
Il y a deux niveaux de protection pour un fichier : les droits d'accès (QUI peu accéder au fichier) et les privilèges (QUOI faire avec le fichier).
Considérons le système de fichier de UNIX. La commande ls -l
permet d'afficher les informations ou les propriétés décrivant un fichier.

On distingue d'abord les informations courantes telles que le nom, la
date de création, la taille et le propriétaire du fichier. Ensuite il y a
une chaîne drwxrwxr-x ou -rw-r--r--. Le
premier caractère à gauche indique si c'est un répertoire d
ou un fichier normale -. Le reste de la chaîne (e.g. rw-r--r--)
s'appelle le mode et indique les caractéristiques de
protection.
D'abord il y a le droit d'accès, c'est à dire QUI a le droit d'accéder au fichier ou répertoire. UNIX distingue entre trois catégories d'utilisateurs :
Un fois qu'on a le droit d'accéder à un fichier, qu'est-ce qu'on peut faire avec (le QUOI). C'est le privilèges. On peut accéder à un fichier pour:
Ainsi, le mode est constitué des 3 triplets
rwx rwx rwx
Dans l'ordre, on a les privilèges associés au propriétaire d'un fichier, ensuite les gens de son groupe et puis les autres. La négation d'un privilège est indiquée par la caractère (-). Par exemple:
rw- r-- r--
signifie droits de lecture/écriture pour le propriétaire et seulement le droit de lecture pour le groupe et les autres.
rwx rwx r-x
signifie tous les droits, lecture/écriture/exécution pour le propriétaire et le groupe, e seulement le droit de lecture/exécution pour les autres.
Pour un répertoire, lire r signifie lister son contenu,
écrire w signifie modifier son contenu, i.e. y rajouter ou
supprimer un fichier et exécuter x signifie y accéder par la
commande cd.
On peut classer les fichiers selon plusieurs dimensions. Nous en avons choisi deux ici: fichier texte vs. fichier binaire, fichier données vs. fichier programme.
Un fichier texte est un fichier qui contient un texte lisible ou plus généralement un texte visualisable sur écran ou imprimable. Un fichier binaire est un fichier qui contient des données codés dans un format que seul un logiciel peut comprendre ou interpréter. En d'autres termes, un fichier binaire n'est pas affichable par un simple éditeur.
Exemples de fichiers textes
.txt
pour un texte général..c ou .cpp.html)Un fichier texte est codé en UTF-8 (Unicode Transformation Format 8) qui est le code pour toute les langues du monde. UTF-8 inclut le format ASCII.
On peut distinguer dans cette classe les fichiers dits texte brut (plain text), où le texte ne porte aucune information autre que ce qu'il dit. Il n'y a pas de style de type texte gras ou italique ou la notion de paragraphe (à part le saut de ligne ou les espaces de décalage). Exemple de tel texte (poème Achwaq, mis en musique et chanté par Riad Sounbati. Texte Mustapha AbdouRahman)
هتف الصبح و غنى بنشيد .. رائع اللحن شجي النغمات كالمُنى تُقبل كالحلم السعيد .. في خيال كابتسام الزهرات.
ou bien
Uniform Resource Identifiers (URI):
Generic Syntax
Status of this Memo
This document specifies an Internet standards track
protocol for the Internet community, and requests discussion and
suggestions for improvements
...
Par contre, un texte riche (rich text) est un texte qui porte des balises de formatage comme la couleur des caractères, le style gras ou italique, la division en paragraphe etc. Ces balises ne font évidemment pas partie de l'objet du texte. Exemple (en HTML ici) :
Ceci est une texte <br
/>
en <strong> gras </strong>
où <br /> signifie aller à la ligne,
et <strong> et </strong>
entourent un texte à rendre en caractères gras. Il faut bien sur que le
logiciel qui ouvre un tel texte puisse interpréter ces balises pour rendre
le format.
. Ici ce serait un navigateur Web. Sinon le texte
sera affiché tel qu'il est créé, avec les balises apparentes.
Dans cette classification, un fichier contient soit des données (texte ou binaires!) soit un code (texte ou binaire!) à exécuter. Un fichier texte est une donnée pour un éditeur. Un fichier source C est une donnée pour le compilateur C. L'éditeur de texte ou le compilateur sont eux-mêmes contenu dans des fichiers qui sont donc des fichiers programme (reconnaissables sous Windows à l'extension caractéristique .exe, comme gcc.exe pour le compilateur GNU C++).
Cette distinction est importante dans le cas où, dans une ligne commande comme
$ gcc hello.c
le premier mot à apparaître est celui d'un fichier programme à exécuter
(le compilateur GNU gcc), et le
mot suivant serait le nom d'un fichier donné comme entrée à la commande
(le source hello.c).
Le tableau suivant montre des exemples de fichiers dans différents cas. Les noms de fichiers sont supposés suggérer leur contenu...
| Fichier | Texte
|
Binaire
|
| Données |
lettre.txt hello.c index.html hello.py ... |
lettre.doc article.pdf fichier client.dbf dans une BD ... |
| Programme |
hello.py maCom.bat ... |
Emacs Firefox hello.exe ... |
A noter:
Hello.py est un programme écrit dans le langage python et doit être traité par le
logiciel (interpréteur) de même nom. Le même fichier apparaît aussi dans
la case fichier programme, car on peut, moyennant quelques réglages [*],
taper le nom de fichier comme commande pour l'exécuter.$ python hello.py $ hello.py Les fichiers binaires dont les noms ont pour extension .doc
ou .pdf contiennent un texte à lire, mais
uniquement grâce à leur logiciels respectifs, M$
word
et Adobe ou un logiciel
spécialisé (appelé viewer).
Ils ne sont donc pas directement affichables à l'écran
(commandes DOS type ou
commande Unix cat) ou
ouvrables par Blocnote, Textedit etc. Voir
Figure-10, ci-après.
maCom.bat ici, illustre un fichier de type batch
qui contient un ensemble de commandes. Au lieu de taper
plusieurs fois et d'exécuter une à une les mêmes commandes, on les
groupe dans un fichier pour être exécutées en un seul trait et à le
demande. Un tel fichier doit avoir .bat comme extension
pour être reconnu comme tel sous Windows/DOS. Sous Unix on leur donne
parfois l'extension .sh pour les distinguer.

/bin,
/usr/bin, /etc, /var
sont des exemple de répertoires contenant les fichiers du système UNIX. De même pour C:\System
de Windows. Cette distinction est surtout utile pour protéger les zones systèmes et pour pouvoir sauvegarder et restaurer les parties du disques utiles à l'utilisateur.
Un fichier régulier est un fichier normal comme ceux dont on vient juste de parler jusqu'à maintenant. Un fichier spécial est par exemple un répertoire, un alias (lien vers un fichier), un "canal" de communication entre client et serveur, un dispositif d'entrée/sortie, etc.
Cette distinction est visible sous UNIX
avec la commande ls -l d'information sur les fichiers. La
ligne information d'un fichier régulier n'a aucune lettre spécifique en
début de ligne et commence par un tirait '-'.
$ ls -l
total 8
-rw-r--r-- 1 Najib staff 7 Nov 17 17:48 myFile
drwxr-xr-x 2 Najib staff 68 Nov 17 17:49 myDirectory
prw-r--r-- 1 Najib staff 20 Nov 17 17:49 tube
lrwxr-xr-x 1 Najib staff 6 Nov 17 17:49 alias -> myFile
Un Système d'exploitation mémorise pour un fichier un certain nombre
d'informations. Ce sont principalement le nom du fichier, sa taille en
octets, la date de création et/ou de modification, le nom du l'utilisateur
propriétaire du fichier et les droits d'accès. On peut voir ces
informations avec la commande DOS dir /P ou la
commande Unix ls -l
(voir juste ci-dessus), si on est en mode commandes. En mode graphique
sous Windows, c'est la rubrique
propriétés du menu contextuel
(bouton droit de la souris) quand on sélectionne le fichier. La figure
suivante donne un aperçu des informations générales sur un fichier texte
sous Mac OS (menu info de Finder ou ^I),

Fig-11, Informations générales sur un fichier sous MacOS.
et dont voici le résultat de la commande ls -l
-rw-r--r-- 1 Najib staff 58
Oct 23 17:07 hello.c
avec dans l'ordre, le droit d'accès, l'auteur, la taille, la date de modification et le nom de fichier.
Mais l'information a plus importante pour un fichier (une autre façon de
les classer, soit-dit en passant) c'est la nature de son contenu qui
détermine la façon de le traiter et le type d'applications qui peuvent
l'ouvrir, quand on clique sur le fichier (Open
with dans la fig-11). En général l'extension dans le nom d'un
fichier (.txt, .html, .pdf, .c
etc.) est un bon indicateur du type de contenu. Mais ce n'est pas toujours
significatif car l'extension est modifiable à volonté. Quoique certains
logiciels exigent une extension bien déterminée sinon il n'ouvrent pas le
fichier (e.g. extension .c pour certains compilateurs C).
En générale, et avant d'ouvrir un fichier, les applications en analysent le contenu pour essayer de reconnaître s'il correspond bien à ce qu'elles attendent et que le fichier est donc ouvrable.
Sous Unix, la commande file donne le type de contenu d'un
fichier indépendamment du nom.
$ file *
Pile.class: compiled Java class data, version 50.0 (Java 1.6)
bonjour.doc: ... Name of Creating Application: Microsoft Macintosh Word ...
bonjour.docx: Zip archive data, at least v2.0 to extract
hello.c: ASCII c program text
index.html: HTML document text
lettre.txt: ASCII text
mail.doc: UTF-8 Unicode text
tp1.java: ASCII Java program text
Noter les deux fichiers .doc
reconnus l'un comme fichier M$Word
et l'autre comme simple texte Unicode. Noter que .docx, n'est pas encore reconnu, et que hello.c
et lettre.txt sont reconnus comme des fichiers texte, et
qu'en plus, l'un est un code source C.
La relation entre un type de fichier et le logiciel qui le traite n'est pas bijective. Un même fichier peut être ouvert par plusieurs applications (heureusement!), e.g. un texte .txt est lisible par Blocnote, Wordpad ou firefox, et une même application peut ouvrir plusieurs types de fichier, e.g. Firefox peut lire des fichiers simple texte, HTML, source C etc. En fait quand ce n'est pas HTML, Firefox se contente d'afficher le contenu brut d'un fichier.
Mais alors, comment déterminer par quelle application un ficher doit préférablement être ouvert? En fait, il y a un choix par défaut fixé par le système. Par exemple, les fichiers .doc sont ouvrables par M$Word. Mais on peut, en manipulant les options et les propriétés d'un fichier fixer un autre choix, par exemple OpenOffice qui est un équivalent de M$Office.
Dans la figure-11 ci-dessus, en déroulant l'option "open
with", on peut sélectionner une autre application pour traiter un
fichier. Dans la figure-11-bis, on peut choisir l'application pour
ouvrir un fichier hello.c


Voir Logiciels
De Base, 2e partie (logicielsDeBase-2.html).
[1]
http://en.wikipedia.org/wiki/Operating_system#Multi-tasking_vs._single-tasking
[2] https://www.techrepublic.com/article/10-linux-file-managers-worth-checking-out/
[3] http://fr.wikipedia.org/wiki/Machine_virtuelle,
http://fr.wikipedia.org/wiki/Machine_virtuelle#Virtualisation,
http://en.wikipedia.org/wiki/Platform_virtualization#Concept
That's all folks
Auteur: Najib
Tounsi
Date: Oct. 2013
Dernière Mise à jour: Jan 2022