Nicolas's profileFlying over Clouds ... (...PhotosBlogLists Tools Help

Blog


    12/29/2008

    HISTORIQUE ¤ PMOS486 ¤ Protected Mode Operating System 486

    image

    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 :)

    Comments

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.
    Nicolas CLERC has turned off comments on this page.

    Trackbacks

    The trackback URL for this entry is:
    http://flyingoverclouds.spaces.live.com/blog/cns!13F8EFC2E48DC1B3!634.trak
    Weblogs that reference this entry
    • None