Une histoire d’ordinateurs

À l’occasion des 50 ans du Loria et des 40 ans de l’Inria dans le grand-est, j’ai prêté au laboratoire un de mes anciens ordinateurs. À une époque où la programmation semble pour certains ne plus pouvoir se faire sans l’aide d’une ʽʽintelligence artificielleʼʼ, il m’a semblé intéressant de revenir sur les étapes de mon apprentissage de l’informatique.

Origines

Je n’ai pas connu, comme certains de mes collègues (pas encore partis à la retraite), l’époque où la programmation des ordinateurs se faisait avec des cartes perforées (UPC, WP). Et encore moins celle de Turing, où il me semble qu’il fallait régler des rhéostats ou commuter des interrupteurs d’une ʽʽbombeʼʼ.

C’est durant l’été 1983, lors d’un séjour linguistique en Californie (à Los Angeles, pas si loin du garage à l’origine d’Apple), que j’ai eu mon premier contact avec l’informatique. En effet, mon correspondant était inscrit à un club d’informatique, et passait plusieurs heures chaque mercredi à se familiariser à la programmation.

Un Apple IIe et son écranDe retour en France, j’ai eu envie de suivre son exemple. Je n’ai pas trouvé de club d’informatique (même à Paris, l’informatique était encore un domaine peu répandu), mais j’ai eu la chance d’avoir un camarade qui avait un Apple IIe (image de droite). Il a gentiment accepté de me laisser en profiter de temps en temps. J’ai donc eu la chance de commencer la programmation en Basic avec un clavier et un écran, même si celui_ci était monochrome (en dégradés de vert, comme la pluie numérique de Matrix).

Débuts difficiles

téléviseur noir & blanc Brionvega Algol 11Évidemment, cela ne m’a pas suffit. Ma sœur et moi avons réussi à convaincre nos parents de nous offrir un (très) petit ordinateur : un Sinclair ZX81 (image ci-dessous). Son prix modique a du aider (c’était peut-être même un modèle d’occasion). Nous le branchions sur un (tout petit) téléviseur noir & blanc (un Brionvega Algol 11, image de droite, © DocTSF), pour taper des programmes proposés dans un magazine (probablement Hebdogiciel).

Sinclair ZX81Nous nous sommes vite aperçu que ce n’était pas un cadeau. Son clavier à membrane, intégré à la coque de l’ordinateur, semblait déformer celle-ci à chaque fois que nous appuyions sur une touche : il fallait parfois (souvent) insister pour que le caractère apparaisse. Et il arrivait souvent que cette déformation appuie sur le bloc d’alimentation, déclenchant (beaucoup trop souvent à notre gout) une coupure de courant et donc l’effacement de la mémoire et la perte du programme en cours de rédaction. Le pire est que les coupures d’alimentation se produisaient même pendant l’enregistrement du programme (sur cassette audio, s’il vous plaît, avec un magnétophone – sans doute un baladeur, produit incontournable des années ’80).

RévolutionAtari 1040STf et son écran

Continuer dans ces conditions n’était pas possible. J’ai réussi à convaincre mes parents (ma mention « assez bien » au bac, en 1986, a dû aider) de m’aider à acheter un vrai ordinateur, un Atari 520 STf. Et, quand je parle de vrai ordinateur, je fais référence à la véritable révolution démarrée en 1984 par le Macintosh : l’apparition d’ordinateurs personnels dotés d’une vraie interface graphique (comme le montre l’image de droite).

Attention, quand je parle de vrai interface graphique, je veux dire un programme capable de tracer des formes géométriques, ce qui permet de définir un bureau, des fenêtres et le pointeur de la souris. Il faut savoir que, sur les ordinateur avant le Macintosh, l’affichage graphique se faisait en utilisant des caractères dont la forme était spécialement définie pour allumer les pixels voulus. Ces interfaces graphiques changent toute la donne, même si la résolution n’est pas encore au rendez-vous : là où un ZX81 avait une résolution monochrome de 256 × 192, le Macintosh était à 512 × 342 (aussi monochrome). L’Atari, de son coté, laissait le choix entre 320 × 200  en 16 couleurs, 640 × 200 en 4 couleurs ou 640 × 400 en monochrome. On était très loin de la 4K : je l’utilisais avec un téléviseur cathodique de 36 cm de diagonale.

Atari 520 STf personnelJe ne saurais indiquer le nombre d’heures que j’ai passées sur cet ordinateur (pas même un ordre de grandeur), à programmer ou à jouer à un des nombreux jeux que j’avais : Arkanoid, Ultima III, Star Wars, Star Teck, Dungeon Master, The Bard’s Tale, Stunt Car, Vroom, et tant d’autres. Tout cela avec l’aide de l’incroyable ST magazine. Nostalgie, nostalgie : 40 ans après, j’ai ressorti cet ordinateur du carton de mon grenier, pour qu’il soit exposé au Loria à l’occasion de ses 50 ans, parmi d’autres machines de cette époque.

Spécialisation

Sparc 1 et son écranPendant mon magistère (bac. +3 à +5) d’informatique et modélisation, de 1989 à 1992, j’ai découvert de nombreuses notions (logique & programmation, système, parallélisme, etc.) et beaucoup d’autres langages : impératifs (Pascal, C), fonctionnels (Lisp et ProLog), à objets (Eiffel), de scripts (csh puis tcsh), etc. J’ai du coup utilisé les stations de travail de mon école, des Sun sous SunOS (basé sur BSD) avec XWindows/X11. Le changement de sortie graphique (monochrome mais à plus grande résolution, bien pratique pour gérer de nombreuses fenêtres réparties sur plusieurs bureaux virtuels) s’est accompagnée d’une montée en puissance de calcul, pour un aspect extérieur plus strict (format pizzabox, un parallélépipède rectangle).

SGI Indy et son écranJ’ai ensuite fait mon armée (scientifique du contingent) et ma thèse à Grenoble, dans l’équipe Sharp du Lifia (près de la gare) puis du laboratoire Gravir et de l’Inria Rhône-Alpes, à Montbonnot. Nous utilisions des Sparc – génération suivante de Sun, avec Solaris (Unix), toujours monochrome – ou des SGI avec Irix, pour simuler en 3D et en couleur des bras manipulateurs (mais pas que). Par manque de machine, il m’est quand même arrivé de travailler au Lifia sur un VT 100 (terminal textuel). C’est à cette époque que j’ai commencé à administrer des machines (les Sun de l’équipe, un collègue se chargeant des SGI).

ProfessionThymio 2

Lego MindstormsDepuis mon arrivée à Nancy en 1999, dans l’équipe Maia puis Larsen du Loria et de l’Inria Grand-Est, j’ai utilisé (et administré) majoritairement des Dell (d’abord des tours, puis des portables), avec toujours plus de résolution et de couleurs (qui sont pratiques pour la reconnaissance syntaxique ou la clarté des schémas – quoique), utilisant Red Hat jusqu’à 2005 environ puis Ubuntu depuis. Je continue à suivre l’évolution du système Linux (cf mon dernier article), mais je passe plus de temps à enseigner et à gérer les robots (Thymio – à droite – et Lego Mindstorms– à gauche) du département informatique de la faculté des sciences et technologies de l’université de Lorraine, et à poursuivre mes recherches quand il me reste un peu de temps.

Splitting an Ubuntu encrypted partition

Context

When using a laptop, having an encrypted partition is now a security requirement. The simplest way to have one under Ubuntu is to ask for it during the installation. However, the default LVM + encrypted installation only creates one partition, containing both / and /home.

Objective

Having two partitions allows to separate the system (in /) from the configurations and data (in /home). In that situation, any system modification (e.g., an update or an upgrade) operates in a separate partition of the disk, and has nearly no risk to modify your configurations and data.

It does not mean you don’t have to save them, it just limits the risks of system operations.

Process

Splitting the partition in two has two drawbacks: you cannot do it on your system (you need to run an external one, e.g. on a USB key, as a mounted ext4 partition cannot be shrank), and it uses some line commands (I did not find any GUI – as e.g. gparted – able to do it) which are rarely used.

As I did not find any help on that process online, I did some mistakes and had to reinstall my system from scratch twice. Reading this page should help you to avoid that!

Once your system is installed (on an encrypted partition with a single LVM logical volume), you will have to:

  1. Start your laptop on an external system, using for example the USB key used to install your system.
    This may require some change in the BIOS (which can prevent a boot on USB).
  2. Unlock your encrypted partition (but do not decrypt it, as re-encryption is not possible without data loss), using

    sudo cryptsetup open <partition_device> <partition_name>

    where <partition_device> is your partition device (/dev/…, which can be found either using gparted or with lsblk), and <partition_name> is the name you choose for the decrypted device. The command will ask for your passphrase.

  3. Shrink the logical volume containing your system, using

    sudo lvresize -r -L <size> <LV system name>

    where <size> is the desired size of your system logical volume (e.g. 128G for 128 GB) and <LV system name> is the name of this logical volume, which can be found using lvs, and is of the form <VG name>/<LV name>, i.e. is composed of the name of the volume group and the name of the logical volume in it.

    This is the action which requires to be on an external system, as the -r argument will also ask fsadm to shrink the contained ext4 partition using resize2fs, which cannot be done on a mounted partition.

  4. Create the additional logical volume, using

    sudo lvcreate -l 100%FREE -n <LV data name> <VG name>

    where <VG name> is the name of the volume group containing your system logical volume (in which you add the new logical volume) and <LV data name> is the name of this new logical volume.

    You also have to format this logical volume to add an ext4 partition, using

    sudo mkfs -t ext4 /dev/mapper/<VG name>-<LV data name>

  5. Mount the two partitions (/ and /home) and move your data from the home directory of the / partition to the /home partition : using two tar allows to keep any special file (as, e.g., symbolic links).
  6. Update the file system table (etc/fstab in /) to mount the two partitions : you can use /dev/disk/by-id/dm-name-<VG name>-<LV data name> as first parameter, to identify your partitions ; last parameter is 1 for / partition and 2 for the /home partition.

You can then restart your computer normally, and check with df -h / /home that system and data are separated.