Source: http://sos.enix.org/fr/SOSPatches
Timestamp: 2013-05-25 06:39:46+00:00

Document:
SimpleOS:SOSPatches
SOSPatches
Contributions et propositions de patches pour SOS Cette page est destin�e � rassembler diff�rents patches qui rajoutent ou �tendent les fonctionnalit�s de SOS. Pour les patches de correction de bugs, voir la page des bugs.
Combinaison de touches ctrl-alt-del pour rebooter (article >= 2) Mettre ce fichier sos/reboot.c dans sos/, rajouter sos/reboot.o dans la variable OBJECTS du Makefile, et un appel � setup_ctrlaltdel(); dans sos/main.c.
Le principe est simple : � chaque interruption clavier, on tient � jour la variable ctrlaltdel en fonction des touches appuy�es ou rel�ch�es, parmi celles qui nous int�ressent (ctrl, alt, et del). Chaque touche appuy�e/rel�ch�e est obtenue par lecture du port 0x60. On distingue une touche appuy�e/rel�ch�e suivant que le bit 7 de l'octet lu est � 1 ou pas. Le reste constitue le code de la touche. Quand on remarque que les 3 touches sont dans l'�tat "appuy�e", la fonction reboot() est appel�e.
Cette routine reboot() r�initialise le processeur en provoquant une faute triple. Pour cela, elle initialise une IDT vide, dans laquelle en particulier aucun handler pour la faute double n'est d�fini. Puis elle appelle une interruption quelconque, ce qui provoque le reboot imm�diat de la machine. Cette m�thode est brutale et ne fonctionnera pas sur toutes les machines. Regarder arch/i386/kernel/reboot.c de Linux pour avoir toutes les variantes de cette fonction.
printk avec scrolling et prise en compte de '\n' (article >= 1) Dans l'article 1 nous avions pr�cis� que le "driver" de console �tait tr�s primitif et n'interpr�tait rien du tout, en particulier pas le '\n'. Christophe Lucas propose un patch implantant le comportement classique de printk avec scrolling correct de l'�cran de la console : appliquer ce patch.
Utilisation du secteur de boot SOS pour tous les articles D�s l'article 1, les sources de SOS contiennent un secteur de boot. Celui-ci suffisait � charger SOS pour l'article 1. A partir de l'article 2, il ne suffisait pas car il ne renseignait pas sur la taille de la m�moire physique disponible. Christopher Goyet nous a propos� un petite modification au secteur de boot pour qu'il soit utilisable au-del� de l'article 1 : la modification consiste � indiquer la taille de la RAM disponible en appelant l'interruption 15H du BIOS. Cette technique devrait fonctionner sur la plupart des machines, mais pas forc�ment sur toutes. Pour un r�sultat garanti, utilisez Grub.
Voici le patch sur l'article 7.5. Ce patch est int�gr� au code des articles >= 8.
[Int�gr� dans l'article 8]
Patch pour le support du port 0xe9 dans qemu Dans les sources de sos figure un patch pour que le port I/O 0xe9 soit utilis� comme sortie d'affichage quand sos s'ex�cute dans qemu. C'est un hack bien pratique repris de bochs. Le code source de sos dispose d�j� d'un patch pour cela mais il risque de ne pas �tre applicable sur les versions r�centes de qemu (code en perp�tuelle �volution).
Voici donc une version remise � jour de ce patch, version moins basique et plus int�gr�e � qemu : patch sur qemu 0.7.0 et patch sur qemu 0.7.1 par Christophe Lucas (version originale : http://lists.gnu.org/archive/html/qemu-devel/2005-01/msg00391.html par Thomas).
Am�liorations de l'allocateur slab Anthoine Bourgeois nous a annonc� les am�liorations suivantes sur l'allocateur slab pr�sent� dans l'article 5 :
J'ai ajout� les fonctionnalit�s propos�es dans l'entete kmem_slab.h, a savoir:
le cache coloring
le parametre align pour cache_create
et les free_list en dehors des slabs.
J'ai constat� une am�lioration de la rapidit� du calcul de 1000! de 24% principalement grace au cache coloring.
Merci � lui ! Son patch est disponible dans ce fichier.
Passage d'arguments et de variables d'environnement aux nouveaux programmes, PID de processus (article >= 7.5) Nous proposons une s�rie de patches pour permettre :
Premier ensemble de fonctionnalit�s :
passer des arguments aux nouveaux programmes (syscall exec)
passer des variables d'environnement aux nouveaux programmes (syscall exec)
g�rer les variables d'environnement du programme en cours (fonctions de la libc : setenv/getenv/...)
Ce patch modifie le noyau de SOS. Il est comment� dans ce message diffus� sur la mailing list.
Patch pour ces fonctionnalit�s relatif au code de l'article 9.5 (�galement au format HTML)
Deuxi�me ensemble de fonctionnalit�s :
associer des PID � chaque processus
g�rer les op�rations DUPFD, GETFD, SETFD, GETFL de fcntl d'une mani�re g�n�rique
Ces modifications sont comment�es dans ce message diffus� sur la mailing list.
Patch pour ces fonctionnalit�s et les pr�c�dentes relatif au code de l'article 9.5 (�galement au format HTML)
[Int�gr� dans l'article 10]
Dernière modification : 2006-03-19 12:23:46

References: l'article 1
 l'article 1
 l'article 1
 l'article 2
 l'article 1
 l'article 7
 l'article 8
 l'article 5
 l'article 9
 l'article 9
 l'article 10