Logiciels de base, 1ère partie (N. Tounsi)

publicité
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
Logiciels de Base
1ère partie: Introduction
Cours 1ère année informatique, semestre 1.
Najib Tounsi
1. Systèmes Informatiques
Ensemble de moyens matériels et logiciels nécessaires au traitement automatique de
l'information. Il convient de rajouter aussi les moyens humains nécessaires au bon
fonctionnement du système.
1.1 Matériel
Classiquement, on trouve:
Fig-1. Composants d'un ordinateur
NB. Un ordinateur est généralement connecté à un réseau.
L'unité centrale (UC) contient les éléments suivants:
Fig-2. Composants de l'Unité Centrale
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
1 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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,
et le bus le moyen de transport des données et des adresses entre les deux autres unités.
1.2. Logiciels
Les logiciels se composent d'abord du système d'exploitation et d'autres logiciels
d'applications.
Fig-3. Les logiciels contenus dans un ordinateur
2. Système d'Exploitation
Le système d'exploitation (Operating System) permet d'utiliser le matériel de façon
optimum et de faciliter le travail de l'utilisateur. C'est un ensemble de programmes
intégrés exécutants un ensemble de tâches reliées.
On peut y voir deux couches:
Fig-3-bis. les couches d'un OS
2.1. Le Noyau
La première couche de ces programmes est le noyau. Il s'occupe de
la gestion de la mémoire
la gestion des échanges avec l'extérieur (entrées/sorties disques et periphériques,
échanges réseaux etc.)
la gestion des travaux: allocation du processeur, etc.
Cf. Cours Systèmes d'exploitation, semestre 2.
Une deuxième couche de programmes est constituée de logiciels de base.
2.2. Logiciels de Base
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
2 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
Les logiciels de base sont des programmes de service pour un environnement de
programmation de base.
Un premier ensemble de tels programmes est constitué de:
un éditeur de texte pour saisir des programmes.
un ou plusieurs compilateurs (traducteurs) de langages de haut niveaux ou à
défaut, un langage d'assemblage.
un éditeur de lien et le chargeur associé. Ces derniers assurent le "montage" final et
le chargement d'un programme en vue de son exécution.
En effet, un ordinateur doit permettre d'écrire et d'exécuter des programmes avant tout...
Un deuxième ensemble est formé des utilitaires tels que:
des éditeurs de textes plus évolués (vi, emacs, edit, notepad ...)
des services de fichiers (format, copy …)
des programmes de communications (e.g. mail, chat ...)
des programmes pour réseaux (ftp, telnet, http...)
enfin un programme essentiel est l'interprète de commandes. C'est lui qui assure le
dialogue ou l'interface avec l'utilisateur. On l' appelle aussi Shell. Par exemple,
bash sous UNIX, command.com ou cmd.exe sous DOS et Windows.
On reviendra plus tard sur ces programmes.
3. Logiciels d'Application
(Voir 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'abords les logiciels généraux (ou progiciels) tels que:
les gestionnaires de base de données, e.g. Access, MySQL, Ingres, Oracle…
les traitements de textes évolués (e.g.. LaTEX, Word, …)
les outils internet (navigateurs, outils mail, WebApps) ...
Ensuite, on trouve les applications spécifiques à une organisation particulière, e.g. la
gestion de stock pour une usine, la paie du personnel pour une entreprise, la facturation
pour une compagnie etc…
4. Différents Types de Systèmes
4.1. Systèmes mono-programmés
Avec ces systèmes un seul programme peut être exécuté à un moment donné. On dit aussi
système mono-tâ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'un 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é.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
3 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
4.2. Systèmes multiprogrammés
Un système multiprogrammé (ou multitâche) 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. 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] )
4.3 Autres types de systèmes
Systèmes temps réel: ils sont faits pour les ordinateurs qui doivent donner des
résultats (faire les calculs) dans un délai déterminé, en général très court. C'est le
cas par exemple des ordinateurs qui contrôlent des appareils industriels et doivent
donc réagir à temps.
Systèmes embarqués (embedded systems): conçus pour fonctionner sur de petites
machines (les systèmes informatiques embarqués) comme les ordinateurs de
voitures par exemples. Ces systèmes sont très compacts et peuvent fonctionner avec
des ressources limités.
Systèmes distribués: Ils permettent le partage des ressources entre plusieurs
ordinateurs. Le développement des réseaux d'ordinateurs qui peuvent communiquer
les uns avec les autres a donné lieu à l'informatique distribuée. Un utilisateur d'un
simple PC peut se servir de services et de ressources plus conséquentes qui existent
sur un autre ordinateur.
5. Différents modes d'interactions
Il y a principalement deux modes d'interaction avec l'ordinateur. Le mode commande 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 tachés.
5.1. Mode commande
Dit aussi mode ligne commande (ou terminal tty), fonctionne sur un écran où on n'affiche
que des caractères. La figure 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.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
4 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
Fig-4, Un terminal de 24 lignes de 80 caractères
La figure suivante (figure 4 bis) montre le même type de fenêtre mode commande, sous
Windows. Programme du DOS (prompt caractéristique C:\>).
Fig-4-bis, Un terminal de 24 lignes de 80 caractères sous DOS
La figure suivante (figure 4-ter) montre le même terminal que la figure 4 ci-dessus, après
avoir tapé quelques commandes (lignes précédées du signe $), dont on voit le résultat.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
5 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
Fig-4-ter, Quelques lignes commandes avec résultat
Les commandes montrées dans figure 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 (en fait l'exécutable créé juste avant) qui exécute le programme
C.
L’interprète de commande Shell
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) etc.
Sous Windows et DOS, l'interprète de commande est le programme cmd.exe.
5.2. Mode Graphique
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 pointe 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
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
6 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
laquelle l'utilisateur peut agir an pointant avec la souris sur des images (icônes) ou zone
d'écran. Figure 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
5.3. Caractéristiques du modes graphique:
Dans cette figure on voit plusieurs choses, dont principalement:
1. La ligne menu qui se trouve généralement en haut (File, Edit, ...). Le contenu et les
fonctionnalités de cette ligne dépend de l'application, mais il y a des menus
invariants d'une application à l'autre.
2. La fenêtre proprement dite dont le contenu dépend de l'application aussi, mais avec
des invariants communs à toutes le fenêtres.
3. Les boutons
de commande de fermeture/agrandissement/réduction de la
fenêtre.
La ligne Menu
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.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
7 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
Fig-7, Ligne menu d'une fenêtre (en haut)
Fig-7-bis, Menu File déroulé
On y trouve en général (Fig 7, 7-bis)
L'option "Fichier" (File) qui gère entre autres les fonctionnalités: nouvelle fenêtre
(^N), ouverture (^O) / sauvegarde (^S) / impression (^P) de fichiers données de
l'application etc.
L'option "Edition" (Edit) avec les fameux couper (^X) / copier (^C) /coller (^V)
L'option "Aide" (Help) pour les aides relatives à l'application.
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
(a) Menu précédent en Arabe
(b) idem
Fig-7-ter
Noter la directionnalité des items du menu. Pas forcément de droite à gauche, i.e. menu
‫ ﻣﻠﻒ‬plutôt à droite et ‫ ﻣﺴﺎﻋﺪة‬à gauche. La question est ouverte...
Le contenu d'une fenêtre.
Le contenu d'une fenêtre est alors dépendant de l'application. Par exemple une fenêtre de
navigation sur Internet, une feuille de calcul Excel, un jeu, une application bancaire etc.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
8 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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.
Fig-8-bis, ligne statut du navigateur Mozilla. Ici, l'icône mail pointé.
5.4 Jouer avec la souris
Pointer: Ramener le pointeur de la souris mousePointer 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 une fois point.
Sélectionner un texte: Appuyer et garder le doigt appuyé 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.
Coller permet de restituer le presse-papier à l'endroit désigné par la souris. On peut ainsi:
Recopier ou déplacer un texte d'un endroit à un autre dans un même document ou
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
9 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
entre deux documents. (Si le document source n'est pas à soi, attention aux droits
d'auteurs...)
Sélectionner une image et l'insérer dans un document. (Même remarque.)
Dupliquer ou déplacer un fichier d'un répertoire à un autre entre les fenêtres
correspondantes.
etc.
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.
6- Equivalence entre les deux modes
Normalement ce qu'on peut faire dans un mode on peut le faire dans l'autre. Si le mode
commande est plus laborieux (plus barbare), le mode graphique, avec souris, boutons et
menus, est plus convivial. Par contre, le mode commande est lui plus puissant pour
certaines opérations surtout quand elles sont répétitives. Le Shell constitue un
environnement de programmations très avancé où on peut combiner et varier les
commandes pour 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.
6.1. Exemples de commandes
Voici quelques commandes classiques correspondant à des manipulations de base en mode
graphique Windows ou MacOS. Voir table ci-dessous.
Gestion des dossier/documents (commandes Unix cd, mkdir, rmdir, cp, mv, rm, cat ...,
Windows/DOS cd, md, rd, copy, rename, del, type ...) ,
Recherche de fichier (commande Unix find)
Lancement d'application avec ou sans paramètres
emacs hello.c
édition (ou création) d'un fichier source C hello.c
avec l'éditeur de textes emacs
cc -o hello hello.c
compilation vers un exécutable hello du programme
hello.c
hello
commande hello, i.e. lancement pour exécution du programme
précédent
Pour 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
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
10 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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 nomRépertoire
rd nomRé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 ou
more 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
Table-1, Liste des commandes Unix et leur équivalent Dos
6.2. Configuration des Variables d'environnement dans les deux cas.
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 graphique
cf. TP
En mode commande
En mode commande, on peut modifier la variable d'environnement PATH par
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
11 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
set PATH = %PATH%;C:\Programe file\JDK7.1\bin
sous Windows pour rajouter le chemin d'accès C:\Programe file\JDK7.1\bin à la valeur
de PATH, ou sous UNIX par
PATH=$PATH:/usr/local/mysql/bin
export PATH
pour rajouter le chemin /usr/local/mysql/bin à la variable PATH.
6.3. Mode commande vs. mode graphique
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.
7. Virtualisation
Une machine virtuelle (VM) est un ordinateur fictif complètement à base de logiciel .
Les machines virtuelles peuvent refléter un ordinateur imaginaire ou imiter
l'architecture et les fonctions d'un véritable ordinateur existant dans le monde
informatique.
Une machine virtuelle est donc une implémentation logicielle d'une machine (c'est à
dire un ordinateur) qui exécute les programmes comme une machine physique.
Voir références [3]
8- Système de Fichiers
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..
8.1. Fichiers/ répertoires
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.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
12 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
13 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
fichiers.
Fig-9-ter, Icônes dossiers et documents.
8.2. Types de fichiers
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.
Fichier texte ou fichier binaire
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
Un fichier tapé par un éditeur de texte (emacs, textedit, blocnote etc.). On le tape sur
un clavier donc c'est un texte lisible. Cela va d'un simple poème à un fichier source
C ou HTML. Extension .txt pour un texte général.
Fichier source C tapé dans un environnement de programmation tel que DevC++.
Extension .c ou .cpp
Fichier HTML crée sous un éditeur HTML (extension .html)
etc.
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.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
14 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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.
Fichier données ou fichier programme
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
...
hello.py
maCom.bat
...
Emacs
Firefox
hello.exe
...
Programme
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
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
15 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
$ 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.
(a) vu par un éditeur de texte
(b) vu par un viewer
Fig-10, un fichier PDF vu en mode texte (a) et en mode original (b).
Autres classifications
Fichier système ou fichier utilisateur
Fichier système: Les fichiers systèmes sont ceux fournis avec l'ordinateur (OS et
autres logiciels de bases) et qui sont nécessaires à son bon fonctionnement, ainsi que
les fichiers données qu'ils créent ou utilisent. Ils sont en générale placés dans une
zone bien précise pour être protégés des utilisateurs. Les répertoires /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.
Fichier utilisateur: Ce sont certains fichiers supplémentaires fournis avec
l'ordinateur tels que les applications utilisateur-final (e.g. Office), les jeux, et tout
fichier données ou programme rajouté ou téléchargé par l'utilisateur lui-même.
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.
Fichier spécial ou fichier régulier
Un fichier régulier est un fichier normal comme ceux dont on vient juste de parler jusqu'à
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
16 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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-drwxr-xr-x
prw-r--r-lrwxr-xr-x
1
2
1
1
Najib
Najib
Najib
Najib
staff
staff
staff
staff
7
68
20
6
Nov
Nov
Nov
Nov
17
17
17
17
17:48
17:49
17:49
17:49
myFile
myDirectory
tube
alias -> myFile
8.3 Informations sur les fichiers
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
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
17 of 19
Logiciels de base, 1ère partie (N. Tounsi)
12/2/13 7:41 PM
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:
bonjour.doc:
bonjour.docx:
hello.c:
index.html:
lettre.txt:
mail.doc:
tp1.java:
compiled Java class data, version 50.0 (Java 1.6)
... Name of Creating Application: Microsoft Macintosh Word ...
Zip archive data, at least v2.0 to extract
ASCII c program text
HTML document text
ASCII text
UTF-8 Unicode text
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. Voir Figure-11-bis.
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
18 of 19
Logiciels de base, 1ère partie (N. Tounsi)
(a) Emacs est choisie par défaut
12/2/13 7:41 PM
(b) Autres choix possibles.
Xcode sélectionné
Fig-11-bis, On peut changer d'application pour ouvrir
un fichier hello.c avec Xcode sous MacOS
Voir Logiciels De Base, 2e partie (logicielsDeBase-2.pdf).
Pour en savoir plus
[1] http://en.wikipedia.org/wiki/Operating_system#Multi-tasking_vs._single-tasking
[2] http://www.techrepublic.com/blog/10things/10-linux-file-managers-worthchecking-out/993
[3] http://fr.wikipedia.org/wiki/Machine_virtuelle, http://fr.wikipedia.org
/wiki/Machine_virtuelle#Virtualisation, http://en.wikipedia.org
/wiki/Platform_virtualization#Concept
Auteur: Najib Tounsi
Date: Oct. 2013
http://www.emi.ac.ma/~ntounsi/COURS/LogBase/logici...
19 of 19
Téléchargement