suivant:
Table des matières
 
Table des matières
Projet Système - MiniKernel
Frédéric Fauque - Jean-Baptiste Wons
Table des matières
Introduction
Rappel du sujet
Notre projet
Les grandes étapes de la mise en route de Barbux
Le booter
Setup
Head
Main
Création des processus
Création du processus Shell
Gestion de la mémoire
Le passage en mode protégé
Le passage en mode paginé
Principe
Mappage du kernel
La table des zones
La page d'indirection
L'allocation de pages
Gestion de heap
kalloc
kfree
kalloc = danger!!
En résumé
L'espace d'adressage kernel
Détail: le premier méga-octet
Multiprocess
Structures de données mises en oeuvre
struct process
struct processi_context
Le scheduling
Mise en place du timer
Entrée dans le kernel, sauvegarde du contexte
Scheduler
Retour dans les process, restauration du contexte
Multiprocess et gestion de la mémoire
Création d'un processus en mémoire
L'allocation de pages d'un processus
La LibB et les appels système
La libB
Les appels système
Gestion de console
void putchar(char c)
char getchar()
int console_create()
Gestion des processus
int exec(char * file, int console)
void exit(void)
int kill(int uid)
int sleep(int sec)
int usleep(int usec)
int geterreur(char * erreur)
int getpid(void)
int getuid(void)
int setuid(int uid)
int addpriority(int incr)
Gestion de fichier
int mount(void)
int open(char * file)
int read(int fd,char * src,int nb)
int write(int fd, char * dest,int nb)
int seek(int deplac)
int close(int fd)
int pipe(uid)
Gestion de la mémoire
void * page_alloc(void * dest)
void * page_partage(int clée,void * dest)
Général
int gettime(void)
int uptime(void)
int P(sem s)
int V(sem s)
Gestion des périphériques
Ecran
Clavier
Lecteur de disquette
À propos de ce document...
2003-03-30