wiki:User

Exécution d'un programme en mode user

Gestion du périphérique block-device

  1. Ajout du driver block-device (arch/soclib/driver_bd.c)
    • Très semblable à celui du DMA, vous devez (mais ce n'est pas obligatoire) gérer la file d'attente des requêtes pendantes.
  1. Ajout d'une API minimale (kernel/libk/disk.c)
    • open / read / write / close
    • ssize_t write(int fd, const void *buf, size_t count);
    • ssize_t read(int fd, const void *buf, size_t count);
    • intopen(const char *pathname, intflags);
    • intclose(int fd);
    • Pour les deux dernières, on ne peut pas les concevoir sans système de fichiers (on ne va pas créer un système de fichiers)
    • pour les deux premières
      • fd sera le numéro de bloc sur le disque
      • buf une adresse dans la mémoire physique
      • count nombre de bloc à transferer
  2. Test de lecture d'image au format pgm (obtenu à partir d'une image quelconque par convert)
    • Création d'un heap USER dans la ram
    • Lecture depuis le disque dans un zone de mémoire créer dans le heap USER
      • lecture du premier bloc
      • décodage du header
      • lecture des autres bloc
      • déplacement de l'image dans le FB

... la suite la prochaine fois

Last modified 12 years ago Last modified on May 3, 2012, 1:37:12 PM