| 162 |  |  | 
                      
                        |  | 162 | - Le code de boot ne fait que sauter dans la fonction kinit avec l'instruction `j`, | 
                        |  | 163 | il n'y a pas de retour, ce n'est donc pas un `jal`, mais pourquoi ne pas avoir utiliser | 
                        |  | 164 | `j init` et donc pourquoi passer par un registre ? | 
                        |  | 165 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 166 | ''''''''''''''' | 
                        |  | 167 | - On ne sait pas le code de boot est en `0xBFC00000`. | 
                        |  | 168 | L'instruction `j imm26` permet de sauter à n'importe quelle adresse d'instruction `0xB.......` | 
                        |  | 169 | (dans le memento MIPS `j imm26` : `PC <- PC[31:28] || imm26*4` | 
                        |  | 170 | ''''''''''''''' | 
                        |  | 171 | }}} | 
                        |  | 172 | - Dans `kernel.ld`, la définition de la mémoire est plus complète, elle contient 3 régions : | 
                        |  | 173 | pour le code de boot `boot_region` pour le code du noyau `ktext_region` et | 
                        |  | 174 | pour les données globales du noyau `kdata_region`. | 
                        |  | 175 | Ces régions ne contiennent qu'une section de sorties (resp. `.boot`, `.ktext` et `.kdata`) | 
                        |  | 176 | remplies avec les sections d'entrées produites par le compilateur.\\ | 
                        |  | 177 | Que signifie `*(.*data*)` ? | 
                        |  | 178 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 179 | ''''''''''''''' | 
                        |  | 180 | - C'est une manière de désigner toutes les sections nommées `.*data*` avec `*` = n'importe quoi | 
                        |  | 181 | présentes dans n'importe quel fichier objets reçus par le compilateur. | 
                        |  | 182 | ''''''''''''''' | 
                        |  | 183 | }}} | 
                        |  | 184 | - Quelle est la valeur de `__kdata_end` ? Pourquoi, selon vous, mettre 2 «`_`» au début des variables ? | 
                        |  | 185 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 186 | ''''''''''''''' | 
                        |  | 187 | - `__kdata_end` est l'adresse du premier octet placé juste après la région data. | 
                        |  | 188 | - les 2 «`_`» permettent d'éviter les conflits avec les noms des symboles (fonction, variable, type, etc.) | 
                        |  | 189 | présents dans le programme. | 
                        |  | 190 | ''''''''''''''' | 
                        |  | 191 | }}} | 
                        |  | 192 | - | 
                        |  | 193 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 194 | ''''''''''''''' | 
                        |  | 195 | - | 
                        |  | 196 | ''''''''''''''' | 
                        |  | 197 | }}} | 
                        |  | 198 | - | 
                        |  | 199 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 200 | ''''''''''''''' | 
                        |  | 201 | - | 
                        |  | 202 | ''''''''''''''' | 
                        |  | 203 | }}} | 
                        |  | 204 | - | 
                        |  | 205 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 206 | ''''''''''''''' | 
                        |  | 207 | - | 
                        |  | 208 | ''''''''''''''' | 
                        |  | 209 | }}} | 
                        |  | 210 | - | 
                        |  | 211 | {{{#!protected ------------------------------------------------------------------------------------ | 
                        |  | 212 | ''''''''''''''' | 
                        |  | 213 | - | 
                        |  | 214 | ''''''''''''''' | 
                        |  | 215 | }}} |