Accueil > Non classé > HISTORIQUE ¤ PMOS486 ¤ Protected Mode Operating System 486

HISTORIQUE ¤ PMOS486 ¤ Protected Mode Operating System 486

PMOS486 s’appelait initialement PRO286 ( PRO pout PROtected, 286 car il ciblait un i80286).

C’est un programme écrit en 1990, 100% en assembleur, dont le but initial est de basculer un processeur 80286 en mode protégé afin de gérer tout la mémoire puis de le faire revenir en mode réel (le DOS) sans rebooter. Pour l’anecdote, je l’ai développé et testé sur un Amstrad PC 2286 avec 2 lecteurs de disquette 3.5’ de 1.44Mo, et 1Mo de RAM ! Imaginez le nombre de reboot … sur disquette 😉

Il met en œuvre tout les concepts de base de la programmation en mode protégé (protected mode … d’où le nom du programme) des processeurs Intel x86 ( table d’interruption IDT, table d’adressage locale LDT, table d’adressage globale GDT, ring 0 et 3, …),déplacement des interruptions hardwares (clavier/horloge entre autres).

Le processeur 80286 (une fois en mode protégé) ne peut pas revenir en mode réel sans reset. La version 286 utilisait la feinte des bios d’IBM (généralisé par la suite sur tout les PC-AT) pour revenir en mode réel sans reboot du DOS : positionnement dans la RAM non volative d’une adresse de retour en mode réel, reset du 80286 vers le mode réel par une triple erreur d’adressage mémoire, le BIOS prend la main puis bascule directement l’exécution à l’adresse stocké dans la ram non volatile, restauration du contexte DOS et on rend la main au DOS.

Les interruptions hardwares sont décalées en mode protégé car elles chevauchent les gestionnaires d’exception du mode protégé.

Les interruptions hardwares provenant du clavier et de l’horloge sont gérées par un minidriver (clignotement du CLK en bas à gauche de l’écran) et transformation des scancodes provenant du clavier en caractères affichés à l’écran. un mini pilote d’affichage gère les retours à la ligne automatique et le scrolling vertical.

la touche Echappe (ESC) déclenche le retour au DOS.

Ce programme correspond aux taches élémentaires réalisés par un système d’exploitation bootant sur un PC (Que ce soit Linux, Vista, XP, BSD, …. ).

En 1994 dans le cadre d’une présentation de projet étudiant (Iut A Informatique, Lyon 1), le code source à été remanié pour supporter les processeurs 80386/486 et supérieurs (détection des processeurs, retour au mode réel géré proprement).

Le code source est téléchargeable ici

Un disque virtuel (.VHD pour Virtual PC) basé sur FreeDOS et préinstallé est disponible ici. Ils suffit d’utiliser ce VHD pour une machine virtuelle basique (Autres OS, 4mo de RAM).

Les applications PRO486/PRO282 et leurs codes sources sont fournis sans aucune garanties.Ils sont libre de droits. Faites moi juste un coucou si vous elles vous ont servies à quelque chose 🙂

Catégories :Non classé
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire