www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README

Gruntnetwork-20230507204643-export-all-fix-pre.xml (28406B)


      1 <mediawiki xmlns="http://www.mediawiki.org/xml/export-0.3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.3/ http://www.mediawiki.org/xml/export-0.3.xsd" version="0.3" xml:lang="fr">
      2   <siteinfo>
      3     <sitename>Gruntnetwork</sitename>
      4     <base>https://wiki.gruntnetwork.com/Accueil</base>
      5     <generator>MediaWiki 1.15.1</generator>
      6     <case>first-letter</case>
      7     <namespaces>
      8       <namespace key="-2">Média</namespace>
      9       <namespace key="-1">Spécial</namespace>
     10       <namespace key="0" />
     11       <namespace key="1">Discussion</namespace>
     12       <namespace key="2">Utilisateur</namespace>
     13       <namespace key="3">Discussion utilisateur</namespace>
     14       <namespace key="4">Gruntnetwork</namespace>
     15       <namespace key="5">Discussion Gruntnetwork</namespace>
     16       <namespace key="6">Fichier</namespace>
     17       <namespace key="7">Discussion fichier</namespace>
     18       <namespace key="8">MediaWiki</namespace>
     19       <namespace key="9">Discussion MediaWiki</namespace>
     20       <namespace key="10">Modèle</namespace>
     21       <namespace key="11">Discussion modèle</namespace>
     22       <namespace key="12">Aide</namespace>
     23       <namespace key="13">Discussion aide</namespace>
     24       <namespace key="14">Catégorie</namespace>
     25       <namespace key="15">Discussion catégorie</namespace>
     26     </namespaces>
     27   </siteinfo>
     28   <page>
     29     <title>Accueil</title>
     30     <id>1</id>
     31     <revision>
     32       <id>11737</id>
     33       <timestamp>2011-06-21T11:25:11Z</timestamp>
     34       <contributor>
     35         <ip>193.239.192.194</ip>
     36       </contributor>
     37       <text xml:space="preserve">== gruntnetwork ==
     38 
     39 gruntnetwork est un système d'exploitation sous licence Affero GPL. Actuellement il est en phase de développement, dans le cadre d'un projet pédagogique à l'Université Montpellier 2.
     40 
     41 == Nouveau Développeur ? ==
     42 {{:Nouveau Développeur}}
     43 
     44 [[notes]]</text>
     45     </revision>
     46   </page>
     47   <page>
     48     <title>Affichage Graphique</title>
     49     <id>12</id>
     50     <revision>
     51       <id>67</id>
     52       <timestamp>2009-03-04T15:14:06Z</timestamp>
     53       <contributor>
     54         <username>Jsmaniac</username>
     55         <id>1</id>
     56       </contributor>
     57       <comment>correspond pas à ce qu'on a fait</comment>
     58       <text xml:space="preserve" />
     59     </revision>
     60   </page>
     61   <page>
     62     <title>Conventions</title>
     63     <id>3</id>
     64     <revision>
     65       <id>31</id>
     66       <timestamp>2009-02-08T17:02:59Z</timestamp>
     67       <contributor>
     68         <ip>78.115.6.242</ip>
     69       </contributor>
     70       <comment>/* En C */</comment>
     71       <text xml:space="preserve">Les conventions suivantes seront utilisées pour un code homogène.
     72 
     73 == En C ==
     74 
     75 * L'indentation se fait à 4 espaces par tabulation.
     76 * Pas de transformation des espaces en tabulation.
     77 * &lt;code&gt;nomsDeVariables&lt;/code&gt;
     78 * &lt;code&gt;NOMS_DE_CONSTANTE&lt;/code&gt;
     79 * Fonctions :
     80 &lt;pre&gt;
     81  type_retour nom_fonction(type_param_1 param_1, ..., type_param_n param_n) {
     82  code;
     83  }
     84 &lt;/pre&gt;
     85 * Boucles for, avec déclaration locale à la boucle de l'itérateur s'il n'a pas lieu d'être à l'extérieur (int i=a) :
     86 &lt;pre&gt;
     87  for (int i=a; i&lt;b; i++) {
     88  code;
     89  }
     90 &lt;/pre&gt;
     91 
     92 == En assembleur ==
     93 
     94 On utilisera la syntaxe Gas, car elle est compatible avec le compilateur GCC</text>
     95     </revision>
     96   </page>
     97   <page>
     98     <title>Drivers/mode reel.h:int86</title>
     99     <id>20</id>
    100     <revision>
    101       <id>54</id>
    102       <timestamp>2009-02-11T13:40:21Z</timestamp>
    103       <contributor>
    104         <ip>162.38.218.206</ip>
    105       </contributor>
    106       <comment>Nouvelle page : {{fonctionC |void|int86|{{dec_param_d|int|interruption}}, {{dec_param_d|regs86|registres_in}}, {{dec_param_r|regs86|registres_out}} |{{param_d|registres_in}} est la valeur des regist...</comment>
    107       <text xml:space="preserve">{{fonctionC
    108 |void|int86|{{dec_param_d|int|interruption}}, {{dec_param_d|regs86|registres_in}}, {{dec_param_r|regs86|registres_out}}
    109 |{{param_d|registres_in}} est la valeur des registres
    110 avant l'interruption {{param_d|interruption}},
    111 {{param_r|registres_out}} est la valeur des registres après interruption.
    112 
    113 Cette fonction n'est pas encore écrite.
    114 }}</text>
    115     </revision>
    116   </page>
    117   <page>
    118     <title>Environnement de programmation</title>
    119     <id>8</id>
    120     <revision>
    121       <id>27</id>
    122       <timestamp>2009-01-06T11:51:51Z</timestamp>
    123       <contributor>
    124         <ip>162.38.218.206</ip>
    125       </contributor>
    126       <comment>/* Tests */</comment>
    127       <text xml:space="preserve">== Éditeur ==
    128 
    129 Votre préféré :) Personne ne vous oblige à quoi que ce soit. Prévoyez-en un avec indentation et coloration syntaxique quand même, nano et cat sont un peu rudimentaires de ce point de vue…
    130 
    131 == Gestion des versions ==
    132 
    133 SVN sera utilisé pour la gestion des versions.
    134 
    135 &lt;pre&gt;
    136  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/gruntnetwork/systeme 
    137  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/gruntnetwork/applications
    138 &lt;/pre&gt;
    139 
    140 Voir [http://faq.tuxfamily.org/SVN/Fr la faq de TuxFamily] pour plus d'infos sur l'utilisation.
    141 
    142 == Compilateur ==
    143 
    144 Pour le C : '''gcc'''. Car c'est le plus courant sous linux, car il gère directement l'assembleur (syntaxe gas), car beaucoup de monde l'utilise donc on trouvera facilement de la documentation, car il est sous licence libre.
    145 
    146 On utilisera la version 4.3, de préférence 4.3.2 (c'est celle par défaut sous ubuntu, et sous debian testing/unstable). Si vous avez une autre version, pas de problème, mais en cas de bug bizarre, il vaudra mieux vérifier que c'est bien le code qui plante et non pas une version bugguée de gcc (c'est arrivé par le passé…)
    147 
    148 == Tests ==
    149 
    150 '''NE TESTEZ JAMAIS gruntnetwork SUR UN PC RÉEL''', à moins que vous n'ayez pas peur d'un effacement de disque.
    151 Je possède moi-même un PC avec un vieux disque dur vide de quelques Go, ça pourra servir pour faire des tests grandeur nature lorsque le projet sera viable.
    152 
    153 Pour les tests nous utiliserons [http://bellard.org/qemu/ qemu], un émulateur de PC libre, fonctionnant sous linux et windows, probablement sous mac aussi. Seule l'architecture x86 sera supportée pour l'instant.
    154 
    155 Lorsque nous en viendrons à écrire les drivers, il sera possible d'utiliser bochs pour voir si les bons drivers sont chargés lorsque la configuration matérielle (l'ensemble du matériel disponible sur un PC) change.
    156 
    157 Le démarrage (boot) sera assuré par [[GRUB]], installé sur une image de disquette vierge (un fichier de 1.44 Mo simulant une disquette sur laquelle seront présents GRUB, gruntnetwork et rien d'autre). Cette configuration simple évitera que d'autres facteurs de causent des bugs.</text>
    158     </revision>
    159   </page>
    160   <page>
    161     <title>GRUB</title>
    162     <id>11</id>
    163     <revision>
    164       <id>28</id>
    165       <timestamp>2009-01-06T11:53:42Z</timestamp>
    166       <contributor>
    167         <ip>162.38.218.206</ip>
    168       </contributor>
    169       <comment>Nouvelle page : Grub est le chargeur de démarrage utilisé par gruntnetwork.  Lors du démarrage de l'ordinateur, il est chargé en mémoire par le BIOS (Basic Input Output System), puis il est ex...</comment>
    170       <text xml:space="preserve">Grub est le chargeur de démarrage utilisé par gruntnetwork.
    171 
    172 Lors du démarrage de l'ordinateur, il est chargé en mémoire par le BIOS (Basic Input Output System), puis il est exécuté. Sa tâche consiste alors à afficher un menu à l'écran permettant à l'utilisateur de choisir le système d'exploitation qu'il souhaite démarrer.</text>
    173     </revision>
    174   </page>
    175   <page>
    176     <title>Langage</title>
    177     <id>9</id>
    178     <revision>
    179       <id>25</id>
    180       <timestamp>2009-01-04T05:54:38Z</timestamp>
    181       <contributor>
    182         <username>Jsmaniac</username>
    183         <id>1</id>
    184       </contributor>
    185       <minor/>
    186       <comment>a renommé [[Langage/]] en [[Langage]]</comment>
    187       <text xml:space="preserve">gruntnetwork utilise de manière interne un langage de programmation graphique, qui se présente de la manière suivante :
    188 
    189 * Les fonctions sont représentées par des blocs
    190 * Les blocs possèdent des ports d'entrée (paramètres de la fonction) et de sortie (valeur'''s''' de sortie)
    191 * Un bloc n'est pas caractérisé par son nom, mais par un identifiant interne, donc pas de conflits de nommage
    192 
    193 * Les ports ont des conditions sur leurs valeurs (type, intervalle de valeurs, …)
    194 * Les ports peuvent (devraient) avoir une valeur par défaut
    195 * Les ports ont un nom et une description associée
    196 
    197 * Les blocs sont reliés entre eux en connectant leurs ports
    198 * Un port de sortie peut être connecté à plusieurs ports d'entrée, la valeur de sortie étant conservée en mémoire tant qu'elle est nécessaire (ceci est l'équivalent d'un &lt;code&gt;let&lt;/code&gt; en scheme, ou d'une variable locale)
    199 * Un bloc est composé d'autres blocs dont certains ports sont connectés aux ports du bloc englobant.
    200 
    201 Il y a une certaine analogie entre les blocs et des circuits éléctroniques : l'information circule au travers des connexions et est modifiée par les blocs. Un bloc effectue une tâche définie, et peut être vu comme un composant électronique : on n'a pas besoin de voir à l'intérieur pour l'utiliser.
    202 
    203 Le langage s'écrit au travers d'une interface de recherche, qui permet de sélectionner le bon bloc parmi plusieurs homonymes s'il y en a.</text>
    204     </revision>
    205   </page>
    206 <!--
    207   <page>
    208     <title>Langage/</title>
    209     <id>10</id>
    210     <revision>
    211       <id>26</id>
    212       <timestamp>2009-01-04T05:54:38Z</timestamp>
    213       <contributor>
    214         <username>Jsmaniac</username>
    215         <id>1</id>
    216       </contributor>
    217       <comment>a renommé [[Langage/]] en [[Langage]]</comment>
    218       <text xml:space="preserve">#REDIRECT [[Langage]]</text>
    219     </revision>
    220   </page>
    221 -->
    222   <page>
    223     <title>Liens</title>
    224     <id>4</id>
    225     <revision>
    226       <id>73</id>
    227       <timestamp>2009-12-31T01:15:10Z</timestamp>
    228       <contributor>
    229         <ip>195.83.178.10</ip>
    230       </contributor>
    231       <comment>Annulation des modifications 70 de [[Special:Contributions/94.253.24.87|94.253.24.87]] ([[User talk:94.253.24.87|discussion]])</comment>
    232       <text xml:space="preserve">== Notions ==
    233 
    234 * [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] pour ceux qui ne savent pas ce que c'est
    235 
    236 === Assembleur ===
    237 
    238 * [http://mark.masmcode.com/ Optimisation]
    239 * [http://www.asmcommunity.net/ asmcommunity.net]
    240 * [http://gok.customer.netspace.net.au/resources/ Hacks SVGA]
    241 * [http://www.x86-guide.com/ Guide pour l'assembleur X86]
    242 * [http://asm.sourceforge.net/ asm.sourceforge.net]
    243 * [http://www.ctyme.com/intr/int.htm Interruptions du BIOS]
    244 * [http://heim.ifi.uio.no/~stanisls/helppc/idx_interrupt.html Encore les interruptions]
    245 * [http://www.penguin.cz/~literakl/intel/intel.html 80x86 instruction set]
    246 
    247 === Démarrage (boot) ===
    248 
    249 * [http://susam.in/articles/boot-sector-code/ Secteur de boot]
    250 * [http://www.osdcom.info/content/view/33/39/ Après GRUB (multiboot)]
    251 * Premier boot de la première version de linux : [http://www.oldlinux.org/Linux.old/kernel/0.00/linux-0.01/boot/boot.s] et [http://www.oldlinux.org/Linux.old/kernel/0.1x/linux-0.10/boot/bootsect.s]
    252 * [http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders Chargeurs de démarrage] sur le wiki X86_Assembly
    253 * [http://www.vnutz.com/content/program_a_bootstrap_loader Programmer un chargeur de démarrage]
    254 * [http://www.pixelbeat.org/docs/disk/ Organisation du disque dur] (secteur de boot et fichiers de grub)
    255 * [http://www.gnu.org/software/grub/manual/multiboot/multiboot.html Multiboot Specification]
    256 * [http://www.sfr-fresh.com/linux/misc/grub-0.97.tar.gz/ Grub-0.97.tar.gz] (Téléchargement des sources)
    257 
    258 === Modes du processeur (réel, protégé, ...) ===
    259 * [http://www.x86.org/articles/pmbasics/tspec_a1_doc.htm Protected Mode Basics] : Les bases, y entrer, en sortir '''sur le processeur 80286''' (donc pas pour nous)
    260 * [http://en.wikibooks.org/wiki/X86_Assembly/Protected_Mode X86 Assembly/Protected Mode]
    261 * [http://osdev.berlios.de/v86.html Virtual 8086 Mode] : du réel dans du protégé
    262 * [http://benoit.papillault.free.fr/c/l32/pm.asm pm.asm] : passage en mode protégé puis retour en mode réel + du V86 quelque part.
    263 * [http://www.sudleyplace.com/pmtorm.html Transition from Protected Mode to Real Mode]
    264 
    265 === Affichage Graphique ===
    266 Voir l'article [[Affichage Graphique]].
    267 
    268 * [http://heim.ifi.uio.no/~stanisls/helppc/ascii.gif Table des caractères ascii]
    269 * [http://www.faqs.org/faqs/pc-hardware-faq/supervga-programming/ SuperVGA/VESA programmer's notes]
    270 * [http://en.wikipedia.org/wiki/VESA_BIOS_Extensions VESA BIOS Extensions] sur wikipedia
    271 * [http://atschool.eduweb.co.uk/camdean/pupils/amac/vga.htm#11 Tutorial on VGA Graphics] : VGA, souris, bitmap
    272 * [http://osdev.berlios.de/v86.html Virtual 8086 Mode] : Utiliser le mode 8086 virtuel pour accéder aux fonctions VESA du BIOS
    273 * [http://www.inversereality.org/tutorials/graphics%20programming/videomodesvesa.html VESA Video Modes] Comment obtenir la liste des modes disponibles et des informations les concernant.
    274 * [http://www.student.cs.uwaterloo.ca/~cs452/grub/ patch vbe] pour que grub nous passe en mode graphique
    275 * [http://svn.navi.cx/misc/trunk/metalkit/lib/vbe.c Utilisation de l'interface en mode protégé de VBE]
    276 
    277 ==== Références VESA ====
    278 
    279 * [http://docs.ruudkoot.nl/vesasp12.txt VESA BIOS Extension 1.2]
    280 * [http://docs.ruudkoot.nl/vbe20.txt VESA BIOS Extension 2.0]
    281 * [http://www.vesa.org/public/VBE/vbe3.pdf VESA BIOS Extension 3.0]
    282 
    283 === Drivers ===
    284 
    285 ==== Souris ====
    286 * [http://wiki.osdev.org/Mouse_Input Mouse Input] : Comment configurer et écouter une souris PS/2 sur osdev.org
    287 
    288 ==== Clavier ====
    289 * [http://wiki.osdev.org/PS2_Keyboard#Protected_Mode_Keyboard_Driver PS2 Keyboard] : driver sur osdev.org
    290 * [http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html Keyboard scancodes] Quel code envoyé par le clavier correspond à quel caractère.
    291 
    292 == Portails ==
    293 
    294 * [http://www.osdev.org/ osdev.org] : Wiki + Forum sur le développement d'OS
    295 * [http://www.nondot.org/sabre/os/articles OSRC] : Operating System Ressource Center
    296 * [http://www.osdever.net/ Bona Fide OS Development]
    297 
    298 == Tutoriels ==
    299 
    300 * [http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.TutoOS Pépin] : tuto du boot au shell, très complet.
    301 * [http://aaprog.blogspot.com/2008/04/systme-dexploitation-1-les-outils.html AAProg] : Pas beaucoup de code mais de très bonnes explications
    302 * Tutoriels sur [http://www.osdever.net/tutorials.php?cat=0&amp;sort=1 Bona Fide]
    303 
    304 == Petits systèmes d'exploitation ==
    305 Toujours pratique pour s'inspirer…
    306 
    307 * [http://wiki.osdev.org/Projects Liste de projets d'OS] sur osdev.org
    308 * [http://www.dynatos.org/ dynatos]
    309 * [http://gok.customer.netspace.net.au/resources/ UNIOS]
    310 * [http://www.sarg.ryerson.ca/~cmwilson/code/funos/funos.html funos]
    311 * [http://www.ninj4.net/kinetic/ kinetic], écrit en haskell. Ça vaut le coup d'oeuil.
    312 
    313 == Divers ==
    314 * [http://www.siteduzero.com/forum-83-276054-p1-creer-son-propre-systeme-d-exploitation.html Sujet] sur le site du zéro, pas mal de liens</text>
    315     </revision>
    316   </page>
    317   <page>
    318     <title>Notes</title>
    319     <id>24</id>
    320     <revision>
    321       <id>11738</id>
    322       <timestamp>2011-06-21T11:27:13Z</timestamp>
    323       <contributor>
    324         <ip>193.239.192.194</ip>
    325       </contributor>
    326       <comment>Page créée avec « Permettre à une construction de déclarer des mot-clés (keywords) qui seront valides ou non à certains endroits du code dans la construction, mais ne pourront pas être re… »</comment>
    327       <text xml:space="preserve">Permettre à une construction de déclarer des mot-clés (keywords) qui seront valides ou non à certains endroits du code dans la construction, mais ne pourront pas être redéclarés tant que la construction a un effet. C'est une alternative à la possibilité de rajouter des variables &quot;par nom&quot; pour qu'elles soient utilisées par ex. par le code d'une fonction.</text>
    328     </revision>
    329   </page>
    330   <page>
    331     <title>Nouveau Développeur</title>
    332     <id>7</id>
    333     <revision>
    334       <id>29</id>
    335       <timestamp>2009-02-02T00:31:55Z</timestamp>
    336       <contributor>
    337         <ip>90.9.192.151</ip>
    338       </contributor>
    339       <comment>Ajout de la sous partie S'inscrire</comment>
    340       <text xml:space="preserve">== S'inscrire ==
    341 * Créez-vous un compte sur [http://tuxfamily.org/fr/subscribe TuxFmaily] et adhérez au projet gruntnetwork
    342 * Créez-vous un compte sur le [http://wiki.gruntnetwork.com/index.php5?title=Special:Connexion&amp;type=signup&amp;returnto=Nouveau_D%C3%A9veloppeur wiki]
    343 * Créez-vous un compte sur le [http://tracker.gruntnetwork.com/index.php?do=register tracker]
    344 
    345 == À lire ==
    346 * [[Prérequis]] : Un peu de lecture pour les vacances. Si vous ne savez rien sur les sujets listés dans cette page, vous risquez d'être à la traîne.
    347 * [[Conventions]] : À respecter, pour un code homogène. Si vous avez quoi que ce soit à redire dessus, faites-le vite, avant qu'on ait des centaines de lignes à reformater :)
    348 * [[Environnement de programmation]] : Avec quoi on travaille (Emacs ou Vim + gcc + qemu ou bochs).
    349 * [http://tracker.gruntnetwork.com/roadmap Feuille de route] : Qui fait quoi, Quand, dans Quel ordre.
    350 * [[Liens]] : Quand vous ne saurez plus comment faire un truc en assembleur :)</text>
    351     </revision>
    352   </page>
    353   <page>
    354     <title>Prérequis</title>
    355     <id>2</id>
    356     <revision>
    357       <id>33</id>
    358       <timestamp>2009-02-08T17:15:49Z</timestamp>
    359       <contributor>
    360         <ip>78.115.6.242</ip>
    361       </contributor>
    362       <comment>/* Connaissance du C et de l'assembleur */</comment>
    363       <text xml:space="preserve">'''Une chose à retenir''' : Si vous êtes largués, si vous ne comprenez pas, si vous piétinez sur un bout de code qui compile pas : n'attendez pas le déluge pour vous signaler !
    364 Il y aura toujours quelqu'un pour vous aider à comprendre ce qui vous pose problème.
    365 
    366 Certaines pages lisées ici sont en anglais : si vous avez du mal, envoyez-moi un message et je ferai une traduction.
    367 
    368 == Un peu de lecture ==
    369 
    370 === Conception D'OS (GNU/Linux Magazine) ===
    371 
    372 Dans GNU/Linux Magazine France est paru il y a quelques années une série d'articles sur la conception de systèmes d'exploitation. Les articles expliquent, pas à pas, comment créer un système simple. Je recommande vivement à tout le monde d'avoir lu ces articles d'ici la mi-janvier, comme ça on saura tous de quoi on parle.
    373 
    374 [http://sos.enix.org/fr/SOSDownload Les articles] sont disponibles gratuitement sur internet.
    375 
    376 N°s des magazines :
    377 
    378 * 62 : Boot + Console
    379 * 63 : Segmentation et Interruptions
    380 * 65 : Pagination
    381 * 68 : Multitâche et changement de contexte
    382 * 69 : Threads
    383 * 70 : Espaces d'adressage, appels système et applications utilisateur
    384 * 72 : Gestion de l'espace virtuel utilisateur
    385 * 74 : VFS (système de fichiers virtuel)
    386 
    387 Vu que ce dernier numéro contient la deuxième partie d'un article très intéressant sur la compression de données, vous voudrez peut-être la première partie : n° 73.
    388 Le site [http://www.ed-diamond.com/ ed-diamond] vous permet de commander ces anciens numéros. Il propose un « PowerPack x10 » à 25€, donc ça fait un bon cadeau de noël pour pas trop cher :)
    389 
    390 === a Simple Operating System ===
    391 
    392 Un système d'exploitation simple : [http://minso.free.fr/cavinfo/systeme/sos.html sos]
    393 
    394 == Connaissance du C et de l'assembleur ==
    395 
    396 ==== Cours de C : ====
    397 * http://c.developpez.com/cours/
    398 * http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html
    399 * http://c.developpez.com/faq/
    400 
    401 ==== Cours d'ASM pour plateforme x86 : ====
    402 * http://benoit-m.developpez.com/assembleur/tutoriel/
    403 * http://www.scribd.com/search?c=all&amp;query=x86&amp;commit=Search
    404 
    405 == Compréhension de la procédure de démarrage (Boot) ==
    406 
    407 * [http://fr.wikipedia.org/wiki/Master_boot_record MBR]
    408 * [http://www.pixelbeat.org/docs/disk/ GRUB]
    409 * (Une des) [http://fr.wikipedia.org/wiki/Init procédure(s) d'initialisation] de GNU/Linux (Nous n'utiliserons probablement pas cette méthode, mais c'est bon à connaître).
    410 
    411 
    412 Nous utiliserons Grub et le standard Multiboot plutôt que de programmer notre propre chargeur de démarrage, cependant les méchanismes du MBR et de GRUB sont à comprendre pour maîtriser la chose (et pour la soutenance orale...).
    413 
    414 == Interruptions du BIOS (pages de référence) ==
    415 
    416 * [http://www.ctyme.com/intr/int.htm Liste des interruptions] et de comment on s'en sert
    417 * Les interruptions int 10h et int 13h seront utilisées.
    418 * [http://courses.ece.uiuc.edu/ece390/books/labmanual/graphics-int10h.html int 10h]
    419 * [http://courses.ece.uiuc.edu/ece390/books/labmanual/graphics-mode13h.html int 13h (VGA)]
    420 * [http://pdos.csail.mit.edu/6.828/2008/readings/hardware/vgadoc/VESA.TXT Modes VESA]</text>
    421     </revision>
    422   </page>
    423   <page>
    424     <title>Test fonctionC</title>
    425     <id>6</id>
    426     <revision>
    427       <id>12</id>
    428       <timestamp>2009-01-01T01:05:50Z</timestamp>
    429       <contributor>
    430         <ip>90.14.26.225</ip>
    431       </contributor>
    432       <comment>Nouvelle page : {{fonctionC |int|floor|float x |Renvoie l'arrondi à l'inférieur de x }}</comment>
    433       <text xml:space="preserve">{{fonctionC
    434 |int|floor|float x
    435 |Renvoie l'arrondi à l'inférieur de x
    436 }}</text>
    437     </revision>
    438   </page>
    439   <page>
    440     <title>Nouveau Développeur</title>
    441     <id>7</id>
    442     <revision>
    443       <id>29</id>
    444       <timestamp>2009-02-02T00:31:55Z</timestamp>
    445       <contributor>
    446         <ip>90.9.192.151</ip>
    447       </contributor>
    448       <comment>Ajout de la sous partie S'inscrire</comment>
    449       <text xml:space="preserve">== S'inscrire ==
    450 * Créez-vous un compte sur [http://tuxfamily.org/fr/subscribe TuxFmaily] et adhérez au projet gruntnetwork
    451 * Créez-vous un compte sur le [http://wiki.gruntnetwork.com/index.php5?title=Special:Connexion&amp;type=signup&amp;returnto=Nouveau_D%C3%A9veloppeur wiki]
    452 * Créez-vous un compte sur le [http://tracker.gruntnetwork.com/index.php?do=register tracker]
    453 
    454 == À lire ==
    455 * [[Prérequis]] : Un peu de lecture pour les vacances. Si vous ne savez rien sur les sujets listés dans cette page, vous risquez d'être à la traîne.
    456 * [[Conventions]] : À respecter, pour un code homogène. Si vous avez quoi que ce soit à redire dessus, faites-le vite, avant qu'on ait des centaines de lignes à reformater :)
    457 * [[Environnement de programmation]] : Avec quoi on travaille (Emacs ou Vim + gcc + qemu ou bochs).
    458 * [http://tracker.gruntnetwork.com/roadmap Feuille de route] : Qui fait quoi, Quand, dans Quel ordre.
    459 * [[Liens]] : Quand vous ne saurez plus comment faire un truc en assembleur :)</text>
    460     </revision>
    461   </page>
    462   <page>
    463     <title>Affichage Graphique</title>
    464     <id>12</id>
    465     <revision>
    466       <id>67</id>
    467       <timestamp>2009-03-04T15:14:06Z</timestamp>
    468       <contributor>
    469         <username>Jsmaniac</username>
    470         <id>1</id>
    471       </contributor>
    472       <comment>correspond pas à ce qu'on a fait</comment>
    473       <text xml:space="preserve" />
    474     </revision>
    475   </page>
    476   <page>
    477     <title>Drivers/mode reel.h:int86</title>
    478     <id>20</id>
    479     <revision>
    480       <id>54</id>
    481       <timestamp>2009-02-11T13:40:21Z</timestamp>
    482       <contributor>
    483         <ip>162.38.218.206</ip>
    484       </contributor>
    485       <comment>Nouvelle page : {{fonctionC |void|int86|{{dec_param_d|int|interruption}}, {{dec_param_d|regs86|registres_in}}, {{dec_param_r|regs86|registres_out}} |{{param_d|registres_in}} est la valeur des regist...</comment>
    486       <text xml:space="preserve">{{fonctionC
    487 |void|int86|{{dec_param_d|int|interruption}}, {{dec_param_d|regs86|registres_in}}, {{dec_param_r|regs86|registres_out}}
    488 |{{param_d|registres_in}} est la valeur des registres
    489 avant l'interruption {{param_d|interruption}},
    490 {{param_r|registres_out}} est la valeur des registres après interruption.
    491 
    492 Cette fonction n'est pas encore écrite.
    493 }}</text>
    494     </revision>
    495   </page>
    496   <page>
    497     <title>Modèle:Dec param d</title>
    498     <id>17</id>
    499     <revision>
    500       <id>52</id>
    501       <timestamp>2009-02-11T13:34:50Z</timestamp>
    502       <contributor>
    503         <ip>162.38.218.206</ip>
    504       </contributor>
    505       <text xml:space="preserve">d:{{{1}}} {{{2}}}</text>
    506     </revision>
    507   </page>
    508   <page>
    509     <title>Modèle:Dec param r</title>
    510     <id>18</id>
    511     <revision>
    512       <id>53</id>
    513       <timestamp>2009-02-11T13:35:32Z</timestamp>
    514       <contributor>
    515         <ip>162.38.218.206</ip>
    516       </contributor>
    517       <text xml:space="preserve">r:{{{1}}} {{{2}}}</text>
    518     </revision>
    519   </page>
    520   <page>
    521     <title>Modèle:FonctionC</title>
    522     <id>5</id>
    523     <revision>
    524       <id>15</id>
    525       <timestamp>2009-01-01T01:08:08Z</timestamp>
    526       <contributor>
    527         <ip>90.14.26.225</ip>
    528       </contributor>
    529       <text xml:space="preserve">== {{{2}}} ==
    530 
    531 &lt;code&gt;
    532 {{{1}}} {{{2}}}({{{3}}});
    533 &lt;/code&gt;
    534 
    535 === Description ===
    536 {{{4}}}</text>
    537     </revision>
    538   </page>
    539   <page>
    540     <title>Modèle:Param d</title>
    541     <id>14</id>
    542     <revision>
    543       <id>47</id>
    544       <timestamp>2009-02-11T13:32:45Z</timestamp>
    545       <contributor>
    546         <ip>162.38.218.206</ip>
    547       </contributor>
    548       <text xml:space="preserve">d:&lt;code&gt;{{{1}}}&lt;/code&gt;</text>
    549     </revision>
    550   </page>
    551   <page>
    552     <title>Modèle:Param r</title>
    553     <id>15</id>
    554     <revision>
    555       <id>45</id>
    556       <timestamp>2009-02-11T13:29:35Z</timestamp>
    557       <contributor>
    558         <ip>162.38.218.206</ip>
    559       </contributor>
    560       <comment>Nouvelle page : r:&lt;code&gt;{{{1}}}&lt;/code&gt;</comment>
    561       <text xml:space="preserve">r:&lt;code&gt;{{{1}}}&lt;/code&gt;</text>
    562     </revision>
    563   </page>
    564   <page>
    565     <title>Environnement de programmation</title>
    566     <id>8</id>
    567     <revision>
    568       <id>27</id>
    569       <timestamp>2009-01-06T11:51:51Z</timestamp>
    570       <contributor>
    571         <ip>162.38.218.206</ip>
    572       </contributor>
    573       <comment>/* Tests */</comment>
    574       <text xml:space="preserve">== Éditeur ==
    575 
    576 Votre préféré :) Personne ne vous oblige à quoi que ce soit. Prévoyez-en un avec indentation et coloration syntaxique quand même, nano et cat sont un peu rudimentaires de ce point de vue…
    577 
    578 == Gestion des versions ==
    579 
    580 SVN sera utilisé pour la gestion des versions.
    581 
    582 &lt;pre&gt;
    583  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/gruntnetwork/systeme 
    584  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/gruntnetwork/applications
    585 &lt;/pre&gt;
    586 
    587 Voir [http://faq.tuxfamily.org/SVN/Fr la faq de TuxFamily] pour plus d'infos sur l'utilisation.
    588 
    589 == Compilateur ==
    590 
    591 Pour le C : '''gcc'''. Car c'est le plus courant sous linux, car il gère directement l'assembleur (syntaxe gas), car beaucoup de monde l'utilise donc on trouvera facilement de la documentation, car il est sous licence libre.
    592 
    593 On utilisera la version 4.3, de préférence 4.3.2 (c'est celle par défaut sous ubuntu, et sous debian testing/unstable). Si vous avez une autre version, pas de problème, mais en cas de bug bizarre, il vaudra mieux vérifier que c'est bien le code qui plante et non pas une version bugguée de gcc (c'est arrivé par le passé…)
    594 
    595 == Tests ==
    596 
    597 '''NE TESTEZ JAMAIS gruntnetwork SUR UN PC RÉEL''', à moins que vous n'ayez pas peur d'un effacement de disque.
    598 Je possède moi-même un PC avec un vieux disque dur vide de quelques Go, ça pourra servir pour faire des tests grandeur nature lorsque le projet sera viable.
    599 
    600 Pour les tests nous utiliserons [http://bellard.org/qemu/ qemu], un émulateur de PC libre, fonctionnant sous linux et windows, probablement sous mac aussi. Seule l'architecture x86 sera supportée pour l'instant.
    601 
    602 Lorsque nous en viendrons à écrire les drivers, il sera possible d'utiliser bochs pour voir si les bons drivers sont chargés lorsque la configuration matérielle (l'ensemble du matériel disponible sur un PC) change.
    603 
    604 Le démarrage (boot) sera assuré par [[GRUB]], installé sur une image de disquette vierge (un fichier de 1.44 Mo simulant une disquette sur laquelle seront présents GRUB, gruntnetwork et rien d'autre). Cette configuration simple évitera que d'autres facteurs de causent des bugs.</text>
    605     </revision>
    606   </page>
    607   <page>
    608     <title>Test fonctionC</title>
    609     <id>6</id>
    610     <revision>
    611       <id>12</id>
    612       <timestamp>2009-01-01T01:05:50Z</timestamp>
    613       <contributor>
    614         <ip>90.14.26.225</ip>
    615       </contributor>
    616       <comment>Nouvelle page : {{fonctionC |int|floor|float x |Renvoie l'arrondi à l'inférieur de x }}</comment>
    617       <text xml:space="preserve">{{fonctionC
    618 |int|floor|float x
    619 |Renvoie l'arrondi à l'inférieur de x
    620 }}</text>
    621     </revision>
    622   </page>
    623 </mediawiki>