Actu

Les FAILS du mois

Chiptune: Kyary Pamyu Pamyu – Isshin Doutai

Sujet : Le 286

Alors que Linux abandonne le support des processeurs 486, et qu’on vient de passer l’émission numéro 286 (on m’a piqué mon sujet !), je trouvais intéressant de revenir sur ce membre mal-aimé de la famille Intel.

C’est pourtant ce CPU qui a apporté à l’architecture Intel la possibilité d’utiliser plus d’un Mo de mémoire (jusqu’à 16 Mo !), le « mode protégé », même si celui du 286 a posé quelques soucis comme on va le voir, et l’embryon de quelque ce qui plus tard sera l’occasion de plusieurs failles de sécurité.

Si un 80186 a existé, il était plus spécifiquement destiné au matériel embarqué, et ses périphériques intégrés étaient incompatibles avec le PC. C’est donc le suivant qui a succédé au 8086.

Avec l’arrivée des interfaces graphiques sur PC, arrivèrent aussi le besoin de plus de mémoire, mais aussi faire fonctionner plusieurs applications en même temps.
Plutôt que de simplement rajouter des bits d’adresses sur le CPU, ce qui aurait cassé la compatibilité, les ingénieurs d’Intel ont préféré introduire une autre façon de gérer l’adressage mémoire, qui serait activée par le logiciel. Ainsi, le 286 démarre comme un vulgaire 8086, juste plus rapide, avant qu’on lui demande de faire les choses différemment.

Cette autre façon sera nommée « mode protégé » (protected mode) et utilisera des adresses logiques passant par des tables de traduction en mémoire, par opposition au « mode réel » qui utilise directement les adresses sur le bus, comme le faisait le 8086.

La légende raconte que les ingés chez Intel étaient si fiers de leur mode protégé qu’il ne leur est même pas venu à l’idée que quelqu’un veuille en sortir. Il était donc possible de configurer le processeur pour entrée en mode protégé, après avoir remplis l’arbre de traduction d’adresses de la MMU, mais pas de revenir au « mode réel ».

Ceci força les fabricants de PC à introduire certaines bidouilles pour contourner ce qu’ils considéraient comme un problème. La méthode la plus répandue pour sortir du mode protégée consistait donc à forcer un redémarrage du processeur en demandant au contrôleur clavier, non sans avoir mis un drapeau en mémoire (une valeur bien spécifique à une adresse précise) pour indiquer qu’il ne s’agissait pas d’un démarrage normal mais d’une sortie vers le mode réel. Le BIOS vérifiait ainsi ce drapeau, et rendait la main au logiciel au lieu de continuer la séquence de démarrage.

Il y a pourtant d’autres méthodes pour sortir du mode protégé, même si certaines n’ont été découvertes que très récemment.
Une des méthodes consiste à forcer le processeur à faire une triple faute dans un certain état, ce qui de fait déclenche un reset. Si c’est bien fait ça fonctionne aussi sur 386 sans causer de reset, donc ça va plus vite.

Un article de cette année explique aussi l’origine de certaines instructions non documentées, dont STOREALL, qui étaient en fait utilisées uniquement lors du mode ICE (In Circuit Emulation, ou émulation en circuit), c’est à dire lors du développement du processeur lui-même. STOREALL permettait justement de sortir du mode protégé, mais malheureusement ne fonctionne pas correctement sans le support ICE qui est désactivé sur les puces en production. Ce mode ICE donnera ensuite dans les processeurs suivant le SMM, System Management Mode, puis des choses encore pires comme le Management Engine, dont on sait à quel point sa « sécurité par l’obscurité » a posé problème.

Bref, hormis IBM qui a tenté de vendre des PC à base de 286 longtemps après que les autres soit passés directement au 386 pour éviter la honte, ce processeur aura eu un court destin, mais aura posé les bases des générations suivantes, pour le meilleur et pour le pire.

D’autant que le 386 a changé la façon d’utiliser le mode protégé, notamment pour la mémoire virtuelle, donc les programmes devaient avoir une version spécifique au 286.
C’était le cas pour Windows 2.1, qui avait une version 386 et une version 286.
Windows 3 pouvait quant-à lui fonctionner en 3 mode distincts : le mode réel (sur un 8086 donc), le « mode standard », c’est à dire avec le mode protégé du 286 minimum, et le « mode étendu » qui nécessitait un 386 et au moins 2Mo de RAM.

Je me rappelle encore avoir dû coder un pilote DOS pour activer la totalité du Mo de RAM de mon portable 386, et avoir enfin accès au mode standard de Windows 3…

Certains youtubeurs comme Adrian Black réparent parfois des PC à base de 286.
Il a aussi utilisé des cartes PC pour Amiga avec ce CPU.

Et le mois prochain c’est DOScember, on aura donc probablement de nouvelles vidéo intéressantes !

Il existait aussi des émulateurs de PC utilisant un 286 pour les Atari et Amiga, notamment de marque Vortex, qui remplaçaient le 68000.

Attention, les PC 286 aussi peuvent être victimes du « battery bombing », ces piles qui fuient et détruisent irrémédiablement les cartes-mères. C’est moins précieux qu’un Amiga, mais ce n’est pas une raison, si vous en avez un, ouvrez-le tout de suite, et si vous voyez une pile, enlevez-là, quitte à couper les fils avec ce que vous avez sous la main !

Chiptune: VCS Desire by Triace

Agenda

Rappelons que l’agenda est celui de la semaine passée lors des rediffusions le samedi.

Apéro code ADD

Tu aimes boire un coup, tu aimes coder et tu as envie de changer le monde du dev ? Alors, rejoins nous à l’apéro code organisé par ADD. On va faire un ensemble programme avec un pico projecteur dans un bar pour implémenter un plugin IntelliJ qui permet de lancer les tests de manière collaborative.

Sur inscription ;
lundi 19 décembre 2022 de 19:00 à 21:00 ;
Le Jakadi, 18 Place Maurice Faure, Romans-sur-Isère.

Des ateliers enfants au 8fablab

  • Spiro-grave ton truc : Lundi 19 décembre de 10h à 12h
  • Cookies Cutter : Mardi 20 décembre de 10h à 12h
  • Programmation Microbit Jeudi 22 décembre de 10h à 12h

Payant, sur inscription ;
8fablab, 8 rue Courre-Commère, 26400 Crest.

Formation découpe laser au Fabrico

Apprenez à utiliser la découpeuse laser du Fabrico, pourquoi pas pour faire vous-même des cadeaux ?

Payant, sur inscription ;
Jeudi 22 décembre, de 10h à 12h ;
Fabrico, 7 rue Belle Image, 26000 Valence.

Du lien et des liens

MineCity 2000, un programme convertissant les villes de SimCity 2000 en mondes Minecraft.

Un générateur de film avec Christian Clavier.

Enjoy Phoenix vous donne l’heure… ou pas.

Une histoire des laptops dans l’espace… avec un Macintosh Portable qui éjecte une disquette en gravité zéro.

Mathics, alternative libre à Mathematica.

CVE Trends, pour suivre les failles dont on parle le plus.

Une vidéo montrant comment obtenir des cartes pour faire de la course d’orientation (ou autre chose) à l’école.

ELKS, Embedded Linux Kernel Subset, une version de Linux pour les 8086 et 286, si si, c’est toujours maintenu !

Astrologeek

  • sysadmin : La restauration de la connexion c’est Wifilippe ?
  • technocritique : Il faut prendre de la hauteur quand on parle de toutes ces failles, y a un facteur des FAILS !
  • nerd : Quand j’insère une disquette, je prends mes précautions, je suis en mode protégé !
  • atariste : Un pingouin sur un aigle, c’est pas très aérodynamique ça…
  • procrastinateur : De toute façon, le temps qu’il démarre ce 286, on sera déjà demain.
  • webdesigner : Tu as sombré dans le thème, je crois que c’est clair !

Comments are closed

Articles récents

    Commentaires récents

    Aucun commentaire à afficher.