print · rss · source

TutoOS | Introduction >


Programmer son propre noyau

Sommaire

  1. Sommaire
  2. Introduction
    1. Pourquoi ce tutoriel ?
    2. Pré-requis
    3. Ressources sur le web
  3. Réaliser un secteur de boot qui affiche un message
    1. Comment est chargé le secteur de boot au démarrage de l'ordinateur
    2. Un secteur de boot qui affiche un message
  4. Réaliser un secteur de boot qui charge et exécute un noyau
    1. Un programme de boot qui charge et exécute un noyau
    2. Un premier noyau
    3. Compiler et tester le boot loader et le noyau
  5. Réaliser un secteur de boot qui passe en mode protégé
    1. Pourquoi utiliser le mode protégé ?
    2. Addresser la mémoire en mode protégé
    3. Un boot loader qui passe en mode protégé
    4. Un noyau très simple
  6. Écrire un noyau en C
  7. Un noyau en C qui recharge la GDT
    1. Pourquoi changer de GDT ?
    2. Un noyau qui recharge la GDT
  8. Gérer les interruptions - la théorie
    1. Des interruptions pour prévenir le processeur d'un événement
    2. Un chipset pour gérer les interruptions matérielles : le 8259A
    3. Exécuter la bonne routine de service grâce à la table des descripteurs d'interruptions
  9. Gérer les interruptions - la mise en oeuvre
    1. Préalable : étendre le code C du noyau à l'aide de directives en assembleur
    2. Initialiser la table IDT
    3. Un noyau qui gère les interruptions
  10. Gérer les interruptions du clavier
    1. Le chipset 8042
    2. La gestion du curseur
  11. Créer et exécuter une tâche
    1. Mode noyau et mode utilisateur
    2. Définir des segments de mémoire distincts
    3. Copier le code exécutable en RAM
    4. Créer et initialiser un TSS
    5. Exécuter une tâche
    6. Sauvegarder le contexte d'une tâche
    7. Compiler et exécuter le noyau
  12. Les appels systèmes
    1. Charger une tâche
    2. Appeler une routine privilégiée à l'aide d'une interruption logicielle
    3. Exécuter le noyau
  13. Gérer la mémoire - utiliser la pagination
    1. Comprendre l'adressage de la mémoire avec la pagination
    2. Une première implémentation très simple
    3. Exécuter le noyau
  14. Gérer la mémoire - utiliser la pagination pour une tâche utilisateur
    1. Préalable : un noyau capable de gérer la mémoire
    2. Comment organiser l'espace d'adressage d'une tâche utilisateur
    3. Créer une tâche
    4. Exécuter la tâche utilisateur
  15. Un système multi-tâches simple
    1. Le contexte d'une tâche
    2. Charger une tâche en mémoire
    3. Activer une nouvelle tâche à chaque interruption d'horloge
    4. Exécuter plusieurs tâches
  16. Un système multi-tâches : des appels systèmes préemptibles
    1. Un scheduler qui tient compte du contexte d'exécution
    2. Utiliser les TrapGate pour rendre les appels systèmes interruptibles
  17. Booter avec Grub
    1. Le standard multiboot
    2. Un premier noyau minimaliste
    3. Booter Pépin avec Grub
  18. Gérer la mémoire physique et la mémoire virtuelle
    1. Une nouvelle organisation de la mémoire
    2. Allouer dynamiquement de la mémoire pour le noyau
    3. Mettre à jour le répertoire et les tables de pages
    4. Compléments sur les répertoires de pages
    5. Compléments sur la pagination
    6. Structure d'une tâche
  19. Lire et écrire sur un dique IDE
    1. Créer et utiliser une image d'un disque dur sous Unix
    2. Tester
  20. Utiliser un système de fichier Ext2FS
    1. Description d'un système de fichier Ext2FS
    2. Lecture dans un système de fichier Ext2FS
    3. Créer et utiliser une image d'un disque dur sous Unix avec un système de fichier Ext2FS
  21. Créer et lancer une application au format ELF à partir du système de fichier
  22. Quelques structures élémentaires pour gérer les fichiers
  23. Annexe A - Compilation séparée en assembleur sous Unix
    1. Compilation séparée en assembleur
    2. Création d'exécutables sous Unix
  24. Annexe B - Arithmétique en base 16
  25. Annexe C - Bochs en mode debug
  26. Annexe D - Gérer les arguments sur la pile avec les Stack Frame
  27. Annexe E - Déboguer le noyau avec gdb
  28. Liste des fichiers attachés
  29. GNU Free Documentation License
  30. F.A.Q.

TutoOS | Introduction >

print · rss · source
Page last modified on November 27, 2008, at 10:58 AM