Changes between Version 92 and Version 93 of Archi-1-TP9


Ignore:
Timestamp:
Dec 6, 2020, 3:48:40 PM (4 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP9

    v92 v93  
    718718'''''''''''''''
    719719}}}
     720
    720721**Exercices**
    721722
     
    724725'''''''''''''''
    725726* Non, c'est le même comportement :-)
     727'''''''''''''''
     728}}}
     729- Ouvrez les fichiers `kinit.o.s` et `kernel.x.s`, le premier fichier est le désassemblage de `kinit.o` et le second est le désassemblage de `kernel.x`. Dans ces fichiers, vous avez plusieurs sections. Les sections `.MIPS.abiflags`, `.reginfo` et `.pdr` ne nous sont pas utiles (elles servent au chargeur d'application, elles contiennent des informations sur le contenu du fichier et cela ne nous intéresse pas).\\Notez l'adresse de kinit dans les deux fichiers, est-les mêmes ? Sont-elles dans les mêmes sections ? Expliquez pourquoi.
     730{{{#!protected ------------------------------------------------------------------------------------
     731'''''''''''''''
     732* Dans kinit.o.s, l'adresse de `kinit` est `0` alors que `kernel.x.s` l'adresse est `0x80000000`.
     733* Dans kinit.o.s, `kinit` est dans la section `.text` alors que dans `kernel.x.s` `kinit` est dans la section `.ktext`.
     734* La raison est que
     735  * dans `kinit.o`, `kinit` n'a pas encore été placé, le compilateur commence toutes ses sections à 0, donc `kinit` est dans la section `.text` et elle commence à 0.
     736  * dans `kernel.x.s` `kinit` est placé et mis dans la section `.ktext` comme le fichier `kernel.ld` le demande.
    726737'''''''''''''''
    727738}}}
     
    761772**Questions**
    762773
    763 1. ?
    764 {{{#!protected ------------------------------------------------------------------------------------
    765 '''''''''''''''
    766 -
    767 '''''''''''''''
    768 }}}
    769 
    770 **Exercices**
    771 
     7741. Dans le fichier `kinit.c`, il est question d'un loopback, à quoi cela sert-il ?
     775{{{#!protected ------------------------------------------------------------------------------------
     776'''''''''''''''
     777- Par défaut les caractères tapés au clavier ne sont pas afficher par le matériel. Or, l'utilisateur s'attend au fait que s'il tape sur une touche, celle-ci s'affiche. Comme ce n'est pas le matériel qui le fait c'est au logiciel de le faire.
     778'''''''''''''''
     779}}}
     7801. Dans le fichier `kinit.c`, on trouve `__tty_regs_map[ tty%NTTYS ].write = *s`, explique le modulo ?
     781{{{#!protected ------------------------------------------------------------------------------------
     782'''''''''''''''
     783* C'est une sécurité, un peu inutile ici, qui permet de ne pas écrire en dehors de la zone des registres du contrôleur de tty
     784'''''''''''''''
     785}}}
    772786- Exécutez le programme sur le simulateur.
    773787  - Qu'observez-vous ?
     
    783797'''''''''''''''
    784798}}}
     799
     800**Exercices**
     801
    785802- Modifiez le code pour afficher un message sur le second terminal, il y a toujours une attente sur le premier terminal.
    786803{{{#!protected ------------------------------------------------------------------------------------