Un peu de retard pour le Hublot de février, qui sort en mars... Ce mois-ci, on s'intéresse particulièrement aux imprimantes: les divers types existants, les commandes pour imprimer, et quelques rappels de savoir-vivre. On insiste aussi sur la sécurité avec SSH, pour vous connecter à distance sans risquer de vous faire pirater.
Enfin, à plusieurs reprises, on parle de la config conscrits 2000. Si vous
voulez la récupérer, n'oubliez pas qu'il suffit de taper
configuration --get
(voir le numéro d'octobre du Hublot pour tous
les détails).
Comme dans chaque numéro, les conseils de lecture et les bonnes adresses:
http://www.eleves.ens.fr
http://www.eleves.ens.fr/tuteurs/docs/hublot/
Nous sommes toujours à votre disposition pour toutes questions et
suggestions: tuteurs@clipper
.
Vous pouvez aussi mettre un mot dans le casier de Marie-Lan Nguyen.
Enfin, n'oubliez pas que quand vous tapez qui
, les tuteurs
ont leur nom souligné: n'hésitez pas à nous solliciter!
Cette rubrique porte sur l'utilisation pratique des machines Unix et de
LATEX. Dans la partie Unix, une présentation de screen
, utilitaire
qui permet de lancer des calculs sur une machine. Ensuite, dans la partie
LATEX, on va voir comment insérer des images dans un document.
screen
Si vous lancez un calcul sur une machine, au moment où vous vous déloguerez,
tous les processus lancés à votre nom seront tués et votre calcul avec. Vous
voudriez donc «détacher» le calcul et le laisser tourner sur la machine, même
une fois que vous vous serez délogué. C'est à cela que sert l'utilitaire
screen
, un logiciel en mode texte.
screen
Pour lancer screen
, il faut
taper... screen
. Le programme affiche quelques lignes concernant
son auteur, sa version, etc. Appuyez sur «Entrée» pour quitter cette
présentation. Votre fenêtre est inchangée, rien n'est différent.
Ensuite, lancez votre programme, avec sa commande.
Pour quitter, tapez ^A
(qui introduit toutes les commandes
internes de screen
) suivi de d
. Vous pouvez aussi taper
^A^D
tout court. Le «d» veut dire «détacher». On rappelle que
^D
se lit «control-D» et signifie «taper d en tenant la touche
Control».
Vous voulez récupérer le screen que vous aviez lancé.
Loguez-vous, physiquement ou à distance, sur la machine concernée. Si vous
n'avez qu'un seul screen lancé sur la machine, tapez screen -r
(«r»
comme «récupérer»). Vous récupérez la fenêtre dans l'état où vous l'aviez
laissée.
S'il vous avez lancé plusieurs screens différents, tapez screen
-ls
(«ls» comme «liste») pour trouver ceux qui existent. Ensuite, lancez
screen -r
suivi de l'identificateur donné dans la liste.
Pour mettre fin à un screen, quittez-le en tapant exit
ou
^D
.
Vous avez donc lancé un calcul, qui est une nouvelle «tâche» pour l'ordinateur. Chacune de ces tâches (loguer quelqu'un, lancer une fenêtre, faire tourner l'horloge...) s'appelle un processus; ils ont tous un numéro (PID: process identifier), et un propriétaire (la personne qui l'a lancé). En lançant votre calcul, vous avez créé un nouveau processus.
Pensez que d'autres vont utiliser cette machine. Si votre processus consomme
90% de sa puissance, elle sera presque inutilisable, tellement elle sera
ralentie... Il faut donc «nicer» (de l'anglais nice) le programme, pour
donner la priorité aux autres programmes. Ainsi, la machine s'occupe de votre
calcul, mais dès que quelqu'un d'autre en demande pour quelque chose de
prioritaire (se loguer, lancer pine
, etc), elle relègue momentanément
votre calcul au second rang.
C'est la commande nice
qui sert à fixer la priorité d'un programme.
Plus le nombre est petit, plus le programme est prioritaire; plus le nombre
est grand, moins le programme est prioritaire. Pour nicer notre calcul
ci-dessus, on tapera (dans le screen):
brick ~ $ nice -19 ./calcul
Le programme nice
s'occupe de lancer votre calcul en lui donnant
la priorité 19, c'est-à-dire la priorité la plus basse. Vous pouvez aussi nicer
votre programme a posteriori avec:
brick ~ $ renice 19 <PID>
où <PID>
est le numéro du processus correspondant
au calcul lancé (tapez top
pour le trouver).
renice
ne peut que rendre le processus moins
prioritaire.
La charge que représente un calcul pour une machine ne se mesure pas
simplement en puissance consommée. Si votre processus utilise 5% de la
puissance du processeur, mais occupe trop de mémoire, la machine sera
inutilisable. La mémoire occupée est indiquée dans la colonne «Size» du
tableau affiché par top
.
brick ~ $ screen (...) (quelques lignes: version, date, auteur, etc) [Press Space or Return to end.] brick ~ $ nice -19 ./calcul brick ~ $ ^Ad [detached] brick ~ $ brick ~ $ screen -ls Your inventory: 9906.pts-16.clipper (Detached) 1 Socket in /tmp/S-robin.
Le mois prochain, on verra les jokers (raccourcis pour les noms de fichiers).
Nous allons ce mois-ci voir comment insérer des figures ou des images
dans un document LATEX grâce au package
epsfig
. Il en existe d'autres, qui ont la même fonction (par
exemple graphicx
). Leur utilisation est assez semblable, et
nous ne la présenterons pas ici.
Une figure ou une image, c'est un fichier
informatique, stocké sous un certain format. On reconnaît en général le
format à l'«extension», la fin du nom du fichier. Le format correspond à
la manière dont on code la couleur de chaque point. Pour être insérées
dans un document LATEX, les images doivent être dans le format
PostScript encapsulé, soit l'extension .eps
.
Pour obtenir un tel format, la première chose à faire, c'est de regarder
si le logiciel que vous utilisez ne propose pas directement cette option:
le PostScript ainsi produit a des chances d'être plus efficace et/ou de
meilleure qualité. Sinon, ouvrez l'image dans xv
ou
gimp
, demandez à sauvegarder l'image, et choisissez PS ou EPS
(mieux) comme format. Pour la suite, nous supposerons que nous avons un
fichier qui s'appelle image.eps
.
Rien de plus facile ici. On commence par charger le bon package, comme d'habitude:
\usepackage{epsfig}
Ensuite, il suffit d'utiliser la commande suivante pour insérer l'image:
\epsfig{file=image.eps}
Elle se trouve alors insérée dans le texte, exactement comme si c'était une (très) grosse lettre (le bas de l'image est aligné avec la ligne de base du texte; rappelons que la ligne de base est ce qui correspond à la grosse ligne du quadrillage d'un cahier d'écolier).
On peut aussi contrôler un petit peu l'aspect de l'image, en ajoutant des options; par exemple, cette ligne incorpore l'image en la réduisant ou en l'agrandissant jusqu'à 3 cm de large:
\epsfig{file=image.eps,width=3cm}
Les options les plus utiles sont:
width |
Largeur de l'image |
height |
Hauteur de l'image |
angle |
Angle de rotation |
clip |
Empêche l'image de déborder |
Si la hauteur et la largeur ne sont pas toutes les deux indiquées, l'image
conservera son rapport largeur/hauteur. L'angle est donné en degrés, dans
le sens des aiguilles d'une montre. L'option clip=
(qui doit
s'écrire avec le =
et rien d'autre) sert à se prémunir contre des
fichiers PostScript mal faits, on n'en a pas souvent besoin.
La plupart du temps, on ne se contente pas d'insérer l'image dans le texte; il faut qu'elle soit centrée, lui adjoindre une légende, la répertorier dans une table. Voilà comment LATEX procède.
Pour isoler la figure à un endroit précis, il suffit de mettre l'image
dans un environnement figure
(donc entre un
\begin{figure}
et un \end{figure}
). On pourra également
ajouter un environnement center
si on veut centrer l'image.
Ensuite, la légende s'ajoute avec la commande
\caption{
La légende
}
. Par exemple, pour
centrer une image en lui donnant une légende:
\begin{figure} \begin{center} \epsfig{file=image.eps,width=0.8\linewidth} \caption{Évolution récente} \end{center} \end{figure}
Quelques commentaires sur cet exemple: les environnements s'emboîtent comme les parenthèses (premier ouvert, dernier refermé); dans les conventions françaises, la légende se place en dessous de ce qu'elle désigne, et on ne met pas de point à la fin. Enfin, vous voyez que j'ai donné comme largeur à l'image une valeur relative (80% de la longueur de la ligne de texte), et non pas absolue (9 cm, par exemple).
L'environnement figure
place ce qu'il contient comme un
objet flottant, qui peut se retrouver à une certaine distance de
l'endroit où il est inséré. On peut indiquer à LATEX à quel endroit on
veut le voir en précisant en option une ou plusieurs lettres parmi:
h |
here | Là où la commande apparaît |
t |
top | En haut de la page |
b |
bottom | En bas de la page |
p |
page | Sur une page dédiée |
Ainsi, \begin{figure}[hp]
insérera la figure à l'endroit exact où la
commande apparaît ou, à défaut, sur une page spécifique (c'est-à-dire avec
seulement des figures). Le défaut est tpb
. On peut aussi mettre
h!
pour insister vraiment pour ce que ce soit h
.
Pour obtenir une table des figures, à l'instar d'une table des matières, on utilise la commande:
\listoffigures
S'il n'est pas question d'images complexes, de photos, une possibilité est de définir les images directement avec des commandes LATEX. Ainsi, on peut facilement faire une petite maison:
Si vous voulez savoir comment faire ça avec des commandes LATEX,
reportez-vous aux chapitres correspondants des manuels LATEX (chapitre 10 du
LATEX companion), qui expliquent comme se servir des packages
figure
, efig
et pstricks
. C'est ce dernier que j'ai
utilisé; il permet en outre des effets très spectaculaires, comme des flèches
qui vont d'un bout à l'autre de la page en contournant le texte.
En ce qui concerne les figures, n'hésitez pas à vous reporter à notre site:
/tuteurs/logiciels/latex/figures.html
Nicolas George
Le mois prochain, on expliquera comment se faire des macros.
Ce mois-ci, on va voir un aspect très utile d'Internet, qui est la connexion à distance, pour lire son courrier électronique ou autres. La partie «Forum» va s'étendre sur des questions de «Netiquette» communes à tous les moyens de communication sur Internet (news et courrier électronique).
Se connecter à distance permet de lire son courrier, le forum des élèves, lancer un calcul sur une machine distante, travailler sur ses fichiers, etc. Vous pouvez donc travailler sur un ordinateur précis sans vous trouver physiquement devant.
Et un peu de théorie au passage, aussi. Ores donc, au départ, il y a les terminaux. Un terminal, c'est un écran et un clavier, avec un tout petit cerveau. Un minitel, par exemple. Il est possible de brancher un terminal sur un ordinateur, et (pour peu que l'ordinateur sache faire, ce qui est le cas sous Unix) de l'utiliser ainsi comme un second poste de travail. Les possibilités sont certes plus limitées qu'avec un écran haute résolution relié par un câble vidéo, mais si les applications sont prévues pour, ça peut rendre de fiers services.
Une grande partie des applications que vous utilisez à l'École sont
justement prévues pour: pine
, forum
(flrn
),
etc. D'ailleurs, les fenêtres nommées xterm
, large
,
alpha
, etc, ont pour unique rôle d'imiter un terminal (on
appelle ça un émulateur; c'est également pour ça qu'il ne faut pas les
fermer avec le menu du coin: ça revient exactement à couper le courant
brutalement).
De nos jours, la technologie fait bien mieux que les câbles qui reliaient les terminaux à leur ordinateur hôte: les ordinateurs peuvent être reliés efficacement d'un bout du monde à l'autre par Internet. Néanmoins, le modèle du terminal reste une approche à la fois simple à utiliser, facile à programmer, et efficace. C'est pour ça qu'on a rapidement songé à utiliser des connexions via Internet pour relier un programme qui imite un terminal (encore un émulateur) à un ordinateur hôte.
C'est à ça que sert le protocole telnet. En général, il laisse simplement passer ce qui se tape d'un côté jusqu'à l'autre bout, et aussi ce qui revient de l'autre bout pour affichage. Il comprend aussi quelques rares codes pour faire passer des informations importantes, comme le modèle de terminal simulé à une extrémité, la taille de l'écran, etc...
On appelle serveur l'ordinateur sur lequel on essaie de se connecter, et client celui qui sert à se connecter (et donc simule un terminal).
Bref, telnet, c'est comment afficher la sortie «mode texte» d'un ordinateur sur l'écran d'un autre.
Quand vous êtes en interne à l'École (entre
les salles S, t15, du 46, Jourdan, Montrouge), il suffit de taper le nom
de la machine pour s'y connecter. Si vous êtes ailleurs, il faut utiliser
le programme Telnet. Pour vous connecter sur la machine galion
,
par exemple, il suffit de taper:
telnet galion.ens.fr
Vous pouvez ainsi vous connecter sur n'importe quelle machine de l'École
(galion
, bireme
, brick
, horus pour les
biologistes, etc.). Il existe aussi rlogin
(remote login), que
l'on utilise exactement de la même façon.
Vous devriez trouver le Telnet dans le menu
«Démarrer». S'il n'y est pas, vous pouvez choisir «Exécuter» dans le menu
«Démarrer», et taper telnet
. Vous pouvez aussi utiliser «Rechercher»
dans le menu «Démarrer» pour trouver le programme. Ensuite, vous indiquez le
nom de la machine comme indiqué ci-dessus.
Le Telnet par défaut de Windows fonctionne mal. On recommande plutôt TeraTerm, quand il est installé.
À l'École, cherchez le Telnet dans le lanceur (NCSA Telnet). S'il n'y est pas, allez dans le menu Pomme et utiliser «Recherche de fichiers» pour le trouver.
Telnet n'est pas installé par défaut sur les Macs. Il se peut donc que, hors de l'École, vous vous retrouviez sur des machines qui ne l'ont pas.
Si vous utilisez AOL comme fournisseur d'accès, vous ne pourrez pas faire de Telnet. En effet, AOL utilise son propre protocole maison, propriétaire et non documenté, pour faire communiquer les modems des abonnés avec leurs machines à eux.
Du coup, certaines opérations sont impossibles. Techniquement parlant, Telnet est un logiciel qui utilise Internet (le protocol natif, dit TCP/IP), et, quand on est connecté à AOL, on n'est pas connecté à Internet. C'est un autre réseau un peu séparé, et la firme AOL fournit une passerelle transparente vers les pages Web qui sont sur Internet.
Les usages dans le forum des élèves ne sont guère différents de ceux qui ont cours ailleurs sur Internet. On va donc voir les usages communs à toutes les formes de communication asynchrone, puis les usages spécifiques aux groupes de discussion (news et forum), et enfin les usages propres à forum.
Il s'agit ici des codes de politesse pour toute forme de communication électronique asynchrone: courrier électroniques, newsgroups. Pour la communication en temps réel (chats, talks, IRC, ICQ, etc), c'est différent.
Tout d'abord, faites des phrases. Les abréviations («vs» pour «vous») sont proscrites, ainsi que l'écriture phonétique («c cool ici, tu fé koi ce soir»). Vous avez le temps de rédiger vos messages, donc écrivez du français et orthographiez correctement.
Utilisez les majuscules avec beaucoup de parcimonie. Si vous en busez, on pensera que vous criez et ON VOUS CRIERA DESSUS EN RETOUR.
Formellement, limitez la longueur de vos lignes à environ 70 caractères, pour
faciliter la lecture. De plus, si un correspondant vous répond en citant votre
message, les lignes citées ne seront pas coupées. Si vous utilisez les
éditeurs pico
et nedit
reformatent automatiquement les
paragraphes quand vous tapez ^J
(Control-J).
Laissez des lignes blanches entre les paragraphes, ce sera plus lisible pour votre correspondant.
Citez le moins possible du message auquel vous répondez, lorsque vous postez
une réponse à un message. Il n'est nécessaire de citer que lorsque vous
voulez clairement faire comprendre que votre réponse se rapporte à une partie
précise du message précédent. Surtout, ne laissez pas de lignes citées
inutiles par paresse. Essayez la touche ^K
(Control-K) si votre
éditeur est pico
(ou emacs
).
Pour représenter du gras, utilisez des étoiles, *comme ceci*
. Pour
représenter le souligné, utilisez des traits de soulignement,
_comme ceci_
.
Utilisez des smileys pour indiquer les passages de vos messages à prendre au
second degré si ce n'est pas évident. Par exemple, «:-)
» est le smiley
générique; certains préfèrent «:)
». Le smiley «;-)
» signale un
clin d'oeil.
Quand vous postez dans les news, ou bien dans forum, il arrive que le message ait sa place dans plusieurs groupes différents à la fois, et qu'on le poste donc «transversalement». C'est ce qu'on appelle un cross-post, ou «multipostage» (X-post dans le jargon). Dans tous les cas, il faut décider du groupe dans lequel la discussion se poursuivra.
Par exemple, vous postez un message dans lequel vous vous demandez si,
dans un État laïque, il est légitime d'enseigner les religions à l'école.
Vous décidez de multiposter dans fr.education.divers
,
fr.soc.politique
et dans fr.soc.religion
. Le message figurera
dans ces trois groupes, mais la discussion ne doit se poursuivre que dans
un seul groupe, que vous signalez. C'est ce que l'on appelle un
follow-up («fu2» dans le jargon).
Outre ce que l'on vient de dire, voici quelques usages qui ont cours dans le forum des élèves.
Tout d'abord, évitez de signaler leurs fautes d'orthographe aux autres en
dehors du conti lettres.orthographe
. Et si vous le faites,
que ce soit dans un français irréprochable...
D'autre part, il y a un certain jargon en usage. Une partie est constituée d'abréviations anglicisantes d'usage fréquent dans les news: ROTFL: Rolling on the floor laughing («mort de rire»), IMHO: In my humble opinion («à mon humble avis», ou AMHA). Vous rencontrerez aussi les abréviations ou le jargon informaticiens (dont le fameux RTFM, «regarde dans ton foutu manuel»). Enfin, il y a un jargon plus ou moins spécifiquement normalien (groumph, grassouille, test...).
On est en droit de ne pas aimer. Dans ce cas, on évitera les hiérarchies
alt.*
, archeo-forum.*
, et, dans une certaine mesure,
informatique.*
. Si vous n'aimez pas les private jokes, restez
également en dehors de la hiérarchie alt.*
: le reste de forum en est
relativement exempt. Cependant, soyez compréhensif s'il y en a quand même çà
et là...
Si vous voulez comprendre un peu ces blagues internes, vous pouvez consulter
le Petit Lexique Normalien, avec l'explication des mots et la présentation des
habitués de forum
(http://www.eleves.ens.fr:8080/home/madore/ens/lexique.html
).
Le mois prochain, on expliquera ce qu'est le «blast».
David Madore, Émilia Robin
Ce cours explique progressivement ce qu'est un ordinateur. On connaît désormais la mémoire, les bus, le processeur, l'écran, le clavier, la souris... Ce mois-ci, on s'attaque aux éléments de stockage, disquettes, disques durs et CDROMs.
Qu'un ordinateur fonctionne, admettons. Ce pourrait être un effet de la science moderne. La technologie nous habitue à la voir aligner plus de miracles qu'un bataillon de messies arpentant la Palestine. Nous considérerons donc que l'ordinateur allumé, cela existe, et qu'il effectue de menus travaux intéressants quoique peu ménagers (ce qui serait vraiment utile, pour le coup).
Qu'un ordinateur ne fonctionne pas quand il n'y a pas de courant, c'est tout aussi compréhensible. Achille était frileux du talon et Popeye n'est qu'un pirate d'eau douce sans ses légumes verdâtres; aussi il est raisonnable de penser que l'ordinateur puise sa force d'une certaine source, et même, imaginer que cette source soit le courant électrique, ne semble pas être l'idée la plus stupide qui soit.
Mais rallumons un ordinateur qui a été préalablement éteint et débranché. Stupeur! Après avoir repris sa configuration opérationnelle, il semble contenir des informations qu'on avait soi-même rentrées avant cette éclipse forcée. Qu'est-ce à dire? Il y aurait, dans cette boîte, une entitée douée de mémoire qui résisterait à la pénurie de jus? Tout ne serait pas transistors et condensateurs, silicium et métal?
Eh bien oui, en effet, il y a des mécanismes de stockage de données qui subsistent sans la fée électricité. Les principaux, ceux qu'on rencontre le plus souvent sur une station de travail, sont les disques durs et les disquettes. Il y a aussi les CDROMs et les bandes magnétiques.
Pourquoi «disque»? Parce que c'est rond. Comment ça, rond? Ben oui, le genre circulaire. Mais y'a rien de rond dans la machine! Ah effectivement, c'est caché dans une boîte rectangulaire. Appréhendons la chose autrement. Le disque dur, c'est le truc qui fait crrcrrcrr de temps en temps quand la machine est allumée, comme si des cafards pédalaient pour la maintenir en vie. À l'intérieur, il y a en fait plusieurs disques, qu'on nomme «plateaux», rigides et recouverts d'une substance magnétisable, comme une cassette. Ces plateaux sont empilés et tournent très vite autour d'un même axe. Entre les plateaux circulent des sortes de bras mécaniques qui portent des «têtes» de lecture, à savoir des assemblages électromagnétiques qui peuvent émettre et recevoir des champs magnétiques.
Car dans le support magnétisable, il y a des molécules contenant des atomes de fer; ces atomes peuvent être orientés, et on peut savoir, avec une tête de lecture, dans quel sens ils sont orientés. Et, plus fort encore, on peut changer cette orientation en appliquant un champ magnétique avec une tête de lecture (qui, du coup, est une tête d'écriture). Enfin, c'est là l'astuce suprême: notre atome orienté ne va pas changer spontanément de sens. Il conserve son orientation, courant ou pas courant. Voilà comment une mémoire peut survivre entre deux allumages: comme pour le tricot, on a des atomes à l'endroit et des atomes à l'envers, ils représentent des 0 et des 1.
Le disque est dans une boîte hermétique afin d'éviter la poussière: la tête se déplace très près du disque, qui tourne très vite; l'analogie courante, c'est d'imaginer un Boeing 747 (ou un Airbus A340, ne boudons pas notre chauvinisme) voletant gaiement à une dizaine de centimètres du sol. Et il ne faut pas que ça touche! Sinon après ça ne marche plus du tout. C'est pour ça que faire tomber un ordinateur en marche n'est pas conseillé du tout (déjà, éteint, c'est plutôt mal vu, mais allumé, c'est l'assurance que les têtes de lecture vont faire un bel atterrissage sur les plateaux).
Par comparaison, une disquette est un disque dur à l'air libre, d'où un espace beaucoup plus important entre la tête et le disque (qui, pour l'occasion, est souple), ce qui rend la lecture et l'écriture plus lentes et moins précises (on ne peut plus viser aussi finement les atomes; du coup, une disquette contient beaucoup moins de données qu'un disque dur).
Mais pourquoi cet assemblage mécanique? Ben c'est parce qu'il faut bien amener la tête là où il y a les atomes à orienter. On s'en passerait bien: la mécanique ça s'use, ça fait du bruit et ça tombe en panne. Mais on ne sait pas faire autrement.
Les disques permettent donc de stocker des 0 et des 1. En pack. Comme des billes dans un sac. Combien peut-on en stocker? Pas loin de douze millions sur une disquette, et le moindre disque dur peut en contenir plusieurs centaines de milliards. N'essayez pas d'imaginer ça, car le milliard est une notion qui échappe à l'esprit humain1. Disons plutôt qu'une disquette suffit à stocker un texte comportant un bon million de lettres, soit un millier de pages.
En faisant attention à ne pas gaspiller, on peut mettre plus, la métaphore usuelle étant que la Bible tient sur une disquette, tout juste. Un CDROM peut contenir 700 bibles. Un disque dur de base à 1 000 balles contiendra 30 000 bibles2. Par comparaison, une image, une musique, ou un film, c'est très gros: un DVD contiendra deux heures de film sur 6 giga-octets (plus précisément, 4.7 Go pour la première couche, et 8.5 Go pour un DVD mono-face bi-couche). C'est là qu'on voit que dans un film il y a autre chose que le script.
1 octet | 1 caractère |
1 Ko (kilo-octet) | environ 1 000 caractères |
1 Mo (méga-octet) | environ 1 million de caractères |
1,4 Mo | 1 disquette; la Bible |
600 Mo | 1 CDROM: 600 fois la Bible |
1 CD audio: 1 h. de musique | |
1 Go (giga-octet) | environ 1 milliard de caractères |
8.5 Go | 1 DVD. |
Matrix: 1 DVD | |
Les 10 commandements: 2 DVDs |
On utilise souvent l'octet pour désigner un groupe de huit bits; un octet peut prendre 256 configurations différentes, voilà qui est suffisant pour représenter une lettre (en comptant les majuscules, les minuscules, les chiffres, les signes de ponctuation et les lettres accentuées). On possède aussi des multiples: le kilo-octet contient 1024 octets (et non 1000, car 1024 est un nombre plus «rond» quand on compte en binaire, comme les ordinateurs; et, par ailleurs, les informaticiens sont joueurs). Le méga-octet représente 1024 kilo-octets, et le giga-octet fait 1024 méga-octets. Le téra-octet, qui fait (surprise) 1024 méga-octets, est encore trop cher pour qu'on en parle ici. Un disque dur moderne fait quelques dizaines de giga-octets, la mémoire centrale d'un ordinateur quelques dizaines de méga-octets.
Une question qui se pose légitimement, c'est pourquoi diable la machine travaille-t-elle sur une mémoire qui disparaît quand on coupe le courant, alors qu'elle en a une autre qui résiste, et qui est en plus mille fois plus abondante? Parce que celle-ci est bien plus de mille fois plus lente, tout simplement. C'est pour ça qu'on édite un texte en mémoire, et que de temps en temps il faut «enregistrer le fichier», c'est-à-dire envoyer le résultat sur un support plus permanent, à savoir le disque dur.
Parlons-en des fichiers, justement. On l'a vu, les octets sont en vrac sur le disque dur. Or, un tel chaos, ce n'est pas intéressant. On a envie de trier tout ça, de faire des sections et des sous-sections, et des index qui permettent de retrouver un ensemble de fiches sans avoir à relire toute la bibliothèque, etc... pas de panique, c'est prévu! La machine est livrée avec un logiciel spécial, le système d'exploitation, qui sait faire ce rangement. Il récupère un peu des octets du disque pour se fabriquer des étiquettes, et hop, il fournit des dossiers et sous-dossiers, et dedans des fichiers. Dans le monde informatique, on dit «répertoire» plutôt que «dossier», mais des réformistes essayent d'assurer la suprématie de ce dernier terme. Notons bien que le système d'exploitation n'est pas du tout intéressé par le contenu des fichiers; pour lui, ce sont des 0 et des 1, c'est tout.
Vous avez probablement déjà manipulé des fichiers sans savoir ce que c'était. C'est presque aussi banal que de faire de la prose, de nos jours. Que cela ne vous donne pas la «grosse tête» (ça m'est réservé).
Thomas Pornin
Cette rubrique a pour but de présenter diverses utilisations des machines Unix, en indiquant à chaque fois les logiciels disponibles, et en présentant certains d'entre eux. Ce mois-ci, on va parler de l'impression de documents, en présentant les différents types d'imprimantes, les commandes Unix qui servent à imprimer, et les modalités d'impression à l'École.
La tête d'impression, ou chariot, se déplace ligne par ligne de gauche à droite (voire aussi de droite à gauche3) et imprime les caractères un par un.
Elle comporte une pièce appelée marguerite comportant les caractères imprimables gravés dessus. Cette pièce pivote afin de présenter le bon caractère face à la feuille, puis est frappée sur la feuille de papier, un ruban encré avançant au fur et à mesure de l'impression étant placé entre la feuille et la marguerite. Le papier est entraîné, souvent par engrènement sur des picots, afin de présenter d'abord le haut, puis le bas de la page à la tête d'impression.
C'est le système le plus ancien; les machines à écrire électriques fonctionnaient sur le même principe.
Elle a comme avantages d'être simple (notamment au niveau de l'électronique de commande), et d'avoir une bonne qualité d'impression. En revanche, elle est bruyante, et changer de police de caractères (italique, gras, caractères mathématiques...) oblige à changer la marguerite temporairement. Elle est généralement restreinte aux polices mono-espacées4.
L'image est constituée d'un grand nombre de petits points, comme sur les écrans informatiques. Plus les points sont petits, meilleure est la qualité car on ne remarque pas les points. Au contraire, dans le cas des modèles à faible qualité d'impression (caisses enregistreuses...), les points sont très visibles. La résolution, c'est à dire la finesse des points, est mesurée en points pour pouce (dots per inch ou dpi), un pouce valant environ 2,54 cm. À titre de comparaison, un écran informatique a une résolution de l'ordre de 75 à 100 dpi.
On distingue plusieurs sous-types d'imprimantes matricielles, qui sont les imprimantes à aiguilles, les imprimantes à jet d'encre et les imprimantes laser.
Comme dans une imprimante à marguerite, la tête d'impression, ou chariot, se déplace ligne par ligne de gauche à droite, voire aussi de droite à gauche. Au lieu de porter une marguerite, elle porte une rangée verticale d'«aiguilles», régulièrement espacées, généralement au nombre de 9, ou 24 pour les imprimante de qualité. Ces aiguilles appuient ou non sur un ruban encré placé entre la tête d'impression et le papier.
Ce type d'imprimantes était courante pour les ordinateurs personnels pendant les années 1980; il a même existé des modèles couleur avec rubans quadrichromiques. Actuellement, on s'en sert pour les tickets des distributeurs automatiques et aussi pour des factures, bordereaux, etc.
Le papier utilisé est chimiquement traité pour réagir à la chaleur. L'imprimante contient des aiguilles qui chauffent ou non localement le papier et provoque ou non son noircissement. Ce type d'imprimantes est souvent utilisé dans les télécopieurs, les terminaux cartes bancaires... en raison de son relatif silence.
La tête d'impression est formée d'une rangée de buses microscopiques laissant ou non sortir de l'encre.
De nos jours, toutes les imprimantes jet d'encre sont couleur (quadrichromie) et de nombreux modèles offrent une impression de qualité «photo» à l'aide d'encres et/ou de papier spécial.
Procédé analogue aux photocopieuses. De la poudre d'encre (toner) est déposée à l'endroit où il faut noircir le papier. Elle est ensuite fondue sur le papier par chauffage par le four ou fuser. Certains modèles impriment en couleur.
imprimantes de très haute qualité destinées à fournir les films pour l'impression professionnelle (offset...). Leur résolution typiquee est comprise entre 1 200 et 2 400 dpi.
L'impression de la couleur se fait généralement en quadrichromie (dit aussi CMYK, Cyan, Magenta, Yellow, blacK). Pour chacune de ces composantes, on imprime un nuage de points, avec plus ou moins de densité pour faire les nuances. Normalement, on pourrait reproduire toutes les teintes avec seulement le cyan (bleu-vert), le magenta et le jaune; on met du noir pour assurer des couleurs sombres profondes et économiser de l'encre.
L'impression couleur est chose délicate; il est rare que l'on retrouve exactement les mêmes couleurs à l'écran. Ce domaine est un maquis de brevets, où la qualité professionnelle se paye souvent au prix fort.
Toutes les imprimantes bureautiques, à jet d'encre comme à laser, demandent que la page à imprimer soit présentée sous la forme d'une image de petits points. Dans le cas des imprimantes couleur, on doit fournir 4 images, correspondant aux 4 couleurs d'encre. Pour obtenir de bons résultats, notamment avec les imprimantes jet d'encre couleur, il est recommandé que la génération de ces images se fasse en tenant compte des particularités spécifiques du modèle d'imprimante utilisé.
Il y a deux approches:
Cela impose d'embarquer dans l'imprimante un véritable micro-ordinateur, auquel l'ordinateur bureautique envoie des ordres de haut niveau («trace une ligne», «affiche les caractères ABC en police Times italique corps 12»). Dans le monde professionnel, les imprimantes comprennent surtout le langage de description de page PostScript. Celui-ci permet au logiciel bureautique d'envoyer à l'imprimante une description de la page très indépendante du modèle particulier d'imprimante utilisé; l'imprimante se débrouille ensuite pour imprimer au mieux.
Il existe 3 versions de PostScript: PostScript niveau 1, 2 et 3. Toutes les imprimantes de l'ENS comprennent au moins le PostScript niveau 2; il est recommandé d'utiliser du PostScript niveau 2 lorsque c'est possible, notamment en cas d'inclusion d'images scannées ou de copies d'écran.
Un des gros avantages du PostScript est qu'il permet de produire des
fichiers décrivant une page ou une partie de page qui sont totalement
portables: une figure PostScript produite avec Adobe Illustrator peut
être inclue dans un document LATEX sans difficulté. Il existe des
visualisateurs de PostScript pour Unix (par exemple gv
)
et pour Windows (gsview
;
http://www.cs.wisc.edu/~ghost/gsview/
).
Il est possible d'imprimer du PostScript sur une imprimante non
PostScript en faisant interpréter le PostScript sur l'ordinateur
(typiquement en utilisant GhostScript (gs
)).
C'est le cas avec les imprimantes bon marché. Sur l'ordinateur est alors installé un programme spécifique au modèle d'imprimante, généralement fourni par le fabricant d'imprimante.
La grande difficulté des systèmes d'exploitation autres que Windows (BeOS, Linux, FreeBSD...) avec les imprimantes est dûe à la politique des fabricants d'imprimantes. En effet, ceux-ci ne fournissent généralement pas de pilote* d'imprimante pour ces systèmes et fournissent rarement les informations indispensables à l'écriture de pilotes par des tiers. Dans certains cas, ces imprimantes ne peuvent pas du tout fonctionner sous Linux; dans d'autres, elles fonctionnent, mais la qualité d'impression est moyenne car les concepteurs du pilote n'ont pas eu accès à l'information nécessaire à une bonne exploitation des capacités de l'imprimante (p.ex. pour le rendu des couleurs).
David Monniaux
La première salle informatique libre-service date de la fin des années 1980; elle comprenait 5 MacIntoshs. Elle prenait à l'époque la place de l'infirmerie (d'où le terme «infirmatique»)5.
L'expérience a vite montré que cette salle, près de l'entrée de l'École, sans controle d'accès, imprimait beaucoup! Vraiment beaucoup. Plus que ce que faisaient uniquement les normaliens...
C'est ainsi que l'on a cherché --- et trouvé -- un filtre: les cartes (oui, payantes; à noter que la somme encaissée n'est pas ré-intégrée au budget du SPI). Durant les quelques mois où la salle du 46 a été sans filtrage, on a remarqué la différence!
Il y a donc des lecteurs de cartes:
À noter que les imprimantes HP 4000 actuelles ont un bouton
Annuler
, qui limite un des soucis longtemps présents: je
mets ma carte, et c'est un autre travail qui sort.
En 2000, on a changé 32 cartouches (18 en salle S, 6 à Jourdan, 4 au 46, 1 à Montrouge, 1 en Infi). Ceci a eu un coût de 25 000 france annuels, le prix de 2 machines neuves. La salle S imprime au rythme de 230 000 pages par an, 800 pages par jour...
À vous de voir où l'argent est le mieux dépensé!
Jacques Beigbeder
Tout d'abord, un certain nombre de logiciels ont des commandes d'impression:
bouton «Imprimer» de Netscape, bouton «Print» de gv
, éditeurs de
textes, etc. Ensuite, il existe des commandes plus ou moins
spécifiques.
dvips
dvips
sert à imprimer des fichiers DVI
(taper dvips
fichier.dvi
). L'option -pp
suivie d'un
numéro imprime la page correspondante, l'option -p
indique le numéro
de la première page à imprimer, et -l
le numéro de la dernière page à
imprimer:
dvips -pp 3 |
Imprimer la page 3 |
dvips -p 3 |
Imprimer à partir de la page 3 |
dvips -l 3 |
Imprimer jusqu'à la page 3 |
lpr
lpr
sert à imprimer les fichiers PostScript
(taper lpr
fichier.ps
). Si vous ne voulez imprimer que
certaines pages d'un fichier PostScript, ouvrez-le avec gv
(gv
fichier.ps
), et marquez les pages à imprimer en les
cochant avec le bouton droit de la souris. Ensuite, cliquez sur Print
marked
pour imprimer.
a2ps
C'est un utilitaire qui sert à imprimer. Par défaut, il imprime le document sur une demie-page (si bien que 2 pages A4 se retrouve côte à côte). Il imprime «au mieux» le fichier qu'on lui donne en entrée: si c'est un PostScript ou un DVI, il l'imprime, si c'est un fichier TeX, il le compile d'abord, si c'est simplement du texte, il l'imprime tel quel.
Question liminaire: voulez-vous vraiment imprimer ce courrier? Si c'est le cas, pensez à le récupérer: on trouve à côté de l'imprimante des piles de messages personnels, parfois vraiment intimes, que leurs destinataires ont oublié de prendre...
Donc: avec pine
, appuyez sur %
(la touche «pour-cent»). Avec
mutt
, appuyez sur p
(print). Dans les deux cas, le
logiciel demande confirmation.
C'est très facile: il suffit de se rendre à la photocopieuse la plus proche.
L'imprimante de la salle S fonctionne en
recto-verso. On utilise la commande lpr
avec l'option
-Zdouble
(c'est tellement barbare que c'en est poétique...). Par
exemple, pour imprimer rapport.ps
en recto-verso, tapez:
brick ~ $ lpr -Zdouble rapport.ps
Pour imprimer un fichier Word, il faut ouvrir ce fichier, avec StarOffice ou ApplixWare (voir le numéro 9 du , novembre 2000). Ensuite, chacun de ces logiciels possède un bouton «Imprimer» ou «Print».
C'est un logiciel qui a ses vapeurs, et qui parfois refuse d'imprimer. Des fois, ça marche. Souvent, ça ne marche pas.
Quand il ne veut pas imprimer, il crée un fichier PostScript dans son
répertoire axhome/
(Hublot, n° 9). Par exemple, s'il ne parvient
pas à imprimer rapport.rtf
, il va créer dans axhome/
le
fichier rapport.rtf.ps
. Un PostScript s'imprime avec
lpr
6.
Il suffit de mettre le transparent dans le tiroir à la place du papier. Attention! N'utilisez que des transparents certifiés HP, pour imprimantes, sinon le plastique fondra.
Émilia Robin
Vous pouvez aussi consulter la page des tuteurs appelée «Imprimer»: /tuteurs/unix/imprimer.html
.
Comme d'habitude, le risque n'est pas tant de pirater que de vous faire pirater. Quand vous vous connectez à distance, vous tapez votre mot de passe, que les câbles transportent docilement jusqu'à la machine sur laquelle vous voulez vous connecter. Comme les lettres transitent en clair, sans chiffrement, il est très facile d'espionner ce qui circule sur un câble et de récupérer les mots de passe (que ce soit lors d'un telnet ou quand vous vous connectez à un serveur POP ou IMAP pour lire votre courrier).
Il est même possible de reconstruire des sessions telnet afin par exemple de prendre les mots de passe, et aussi d'espionner ce que fait la personne qui se connecte.
Donc, quand vous vous connectez depuis une grande université avec un gros réseau ou quelque chose comme ça, vous courrez toujours un risque. Il y a donc deux mesures qui s'imposent:
slogin
à la place de rlogin
, il y a
juste une lettre à changer, et les transmissions seront chiffrées.
Évidemment, il faut que ce logiciel soit installé.Enfin, et c'est ce que nous allons expliquer ici, utilisez des logiciels sécurisés. Utiliser ssh n'est pas plus difficile qu'utiliser telnet. En particulier, le programme ssh pour Windows, en plus d'être sécurisé, est nettement plus agréable à utiliser que le telnet standard.
slogin
Une des principales activités auxquelles sert telnet, c'est se loguer sur
un ordinateur. Ce qui implique que le serveur envoie la question
«login:
» et «password:
» au client, et que l'utilisateur
saisisse tout ça (exactement comme s'il était directement devant l'autre
ordinateur). Certaines étapes peuvent être économisées. En particulier,
le login (et éventuellement le mot de passe) peuvent être indiqués une
bonne fois pour toutes au client, pour qu'il les envoie automatiquement
au serveur.
Pour introduire quelques points de confort supplémentaires, le protocole SSH (Secure SHell) a été mis au point. Il utilise des techniques de cryptographie solides pour assurer l'authenticité et la sécurité de ce qui circule.
La commande slogin
(secure login) repose sur SSH. Deux
cas: si vous avez des clés SSH, il s'en sert et demande votre passphrase
(voir plus bas); si vous n'avez pas de clé SSH, il chiffre l'ensemble de
la transmission (mot de passe et toutes les données qui circulent).
Sur une machines Unix, pour se
connecter à une machine nommée (au hasard, clipper.ens.fr
), il suffit
de taper:
chaland ~ $ telnet clipper.ens.fr chaland ~ $ slogin clipper.ens.fr chaland ~ $ ssh clipper.ens.fr
Par défaut, SSH et slogin
utilisent votre login actuel.
Pour en préciser un autre (par exemple si vous avez un login différent à
la fac et ici), il faut utiliser l'option -l
(«l» comme
«login»):
chaland ~ $ ssh -l george clipper.ens.fr
J'en vois déjà qui essaient le login de leur voisin; il restera évidemment à votre charge de prouver que vous avez le droit de vous connecter.
Notons enfin qu'à certains endroits (en France), il faudra écrire
ssf
au lieu de ssh
(SSF est une version de SSH
déposée au Ministère de l'Intérieur).
À l'École, comme nous avons un administrateur (très) compétent, et pas trop de gens mal intentionnés, certaines facilités sont proposées: d'une part, entre les machines du réseau élèves le mot de passe est inutile, et d'autre part des liens ont été mis en place, qui permettent de se connecter directement en tapant le nom de la machine:
chaland ~ $ vedette
On trouve du SSH pour Windows:
http://www.zip.com.au/~roca/ttssh.html
.
Sur un Macintosh, on peut télécharger un programme pour SSH (qui fait
aussi telnet):
http://www.lysator.liu.se/~jonasw/freeware/niftyssh/
.
La première fois que vous vous connectez depuis une machine A vers une machine B, A va relever la «signature» de B, et vous demander si vous l'acceptez. Si vous vous connectez sous Unix, il faut pour ça taper «yes» en toutes lettres. Les fois suivantes, A se contentera de comparer la signature de B avec celle qu'elle connaît, pour vérifier l'authenticité.
À noter, pour l'École: comme les signatures sont gardées dans un fichier sur votre compte, le fait de connaître une machine donnée est commun à toute une salle (mais pas le fait d'être connue).
SSH connaît un mécanisme de clés un peu compliqué, mais très
pratique à la longue. À la base, on a un programme, ssh-keygen
(générateur de clés de SSH). Ce programme crée deux fichiers, qui contiennent
respectivement une clé publique et une clé privée.
La clé privée est secrète, et doit être gardée jalousement. Elle reste sur la machine A.
La clé publique n'est pas particulièrement secrète, mais il n'est pas non plus utile de l'exposer au grand jour. Pour s'en servir, il suffit de mettre la clé publique au bon endroit sur une machine, et quiconque a la clé privée peut s'y connecter. Elle se trouve donc sur la machine B, et en fait partout où vous voulez vous connecter. En outre, la clé privée peut être elle-même dotée d'un mot de passe (passphrase).
En pratique, on commence par lancer ssh-keygen
sur la
machine A, et on bouge la souris jusqu'à ce qu'il ait fini7.
Il nous demande alors le nom d'un fichier où sauver les clés nouvellement
créées. Par défaut, il propose ~/.ssh/identity
. Si vous ne comptez
utiliser qu'une clé publique (qui peut servir sur plusieurs ordinateurs),
c'est un nom pratique. Il demande également une passphrase pour la clé.
La passphrase est en théorie nécessaire à chaque fois qu'on utilise la
clé, mais nous verrons un peu plus loin comment alléger ça. On peut
aussi ne pas mettre de passphrase du tout.
Quand c'est fini, ssh-keygen
écrit la clé privée dans le
fichier ~/.ssh/identity
, et la clé publique dans le fichier
~/.ssh/identity.pub
(ou tout autre paire de noms formée de la même
manière que vous auriez indiquée). Chacun de ces fichiers contient en
fait une longue ligne de texte.
Pour vous loguer avec SSH sur la machine B, il suffit d'ajouter le
contenu de identity.pub
de la machine A dans le fichier
~/.ssh/authorized_keys
de la machine B. Attention à ne pas
laisser ce fichier en lecture libre pour le reste du monde (voir le
numéro 4 du Hublot: /tuteurs/docs/hublot/hublot4.html#concept
).
Vous pouvez maintenant vous loguer sur la machine B en tapant
ssh clipper.ens.fr
. SSH vous demande votre passphrase, à moins
que vous n'en ayez pas mis.
Pour simplifier ces
histoires de clés, et de mots de passe, il existe quelque chose qui
s'appelle l'agent SSH. C'est un programme, ssh-agent
, qui tourne
en arrière plan sans déranger personne. Quand SSH a besoin d'une clé,
il la lui demande d'abord, vous n'avez donc pas à l'indiquer
explicitement. En outre, vous ne tapez qu'une seule fois votre
passphrase.
Ceci est un peu abstrait, voyons d'abord comment lancer ce fameux client
SSH. Si vous avez la config conscrits 2000, ssh-agent
est
déjà lancé quand vous vous loguez physiquement sur une machine du réseau
élèves. Si vous n'avez pas cette config, il faut alors modifier le fichier
.profile
: cherchez une ligne disant exec $STARTX
, et
insérez: exec ssh-agent $STARTX
(mais récupérer la config conscrits
serait aussi une bonne idée). Ceci signifie qu'il restera actif tant que
startx
continuera à tourner, ce qui veut dire jusqu'à ce que vous
partiez.
Ensuite, tapez ssh-add
pour fournir votre passphrase à l'agent
SSH. Tant que vous resterez logué, vous n'aurez plus besoin de fournir
cette passphrase; c'est l'agent SSH qui se charge de la donner lors de
vos connexions vers les machines B.
Si vous êtes conscrits 2000, éditez votre fichier .xinitrc
et
décommentez* cette ligne, en supprimant le dièse du début (cherchez cette
ligne vers la ligne 92):
#sleep 3 && ssh-add </dev/null &
Au moment où vous vous loguerez sur la machine A, celle-ci vous demandera votre passphrase, et vous n'aurez plus rien à taper pour toutes vos connexions.
Nicolas George
%
, en HTML les commentaires sont insérés entre
<!--
et -->
. Dans les fichiers de
configuration qui indiquent la taille de vos fenêtres, leur couleur, etc,
les lignes de commentaires commencent le plus souvent par #
ou "
.Le Hublot est le journal des tuteurs informatiques de l'ENS. Il paraît chaque mois à 350 exemplaires. Il est également disponible sur le Web:
Rédaction: Émilia Robin.
Ont collaboré à ce numéro: Jacques Beigbeder, Nicolas George, David Madore, David Monniaux, Thomas Pornin, Laurent Rineau, Olivier Verzelen.
Merci à Nicolas Thiéry pour ses relectures.