Fixix
Fiwix est un noyau de système d'exploitation écrit à partir de zéro, basé sur l'architecture UNIX et entièrement axé sur la compatibilité POSIX. Il est conçu et développé principalement comme un système d'exploitation de loisir et, comme il sert également à des fins éducatives, le code du noyau reste aussi simple que possible pour le bénéfice des étudiants et des passionnés du système d'exploitation. Il est de petite taille (moins de 50 000 lignes de code), fonctionne sur la plate-forme matérielle i386 et est compatible avec une bonne base d'applications GNU existantes.
Caractéristiques
- Écrit en langage ANSI C (Assemblage utilisé uniquement dans les pièces nécessaires).
- Conforme à la spécification GRUB Multiboot v1.
- Noyau non préemptif en mode protégé 32 bits complet.
- Pour les processeurs i386 et supérieurs.
- Multitâche préventif.
- Conforme à POSIX (pour la plupart).
- Groupes de processus, sessions et contrôle des tâches.
- Communication interprocessus avec des tuyaux, des signaux et des sockets de domaine UNIX.
- UNIX System V IPC (sémaphores, files d'attente de messages et mémoire partagée).
- Mécanisme de verrouillage des fichiers BSD (POSIX limité aux fichiers et aux conseils uniquement).
- Répartitions de la mémoire virtuelle (utilisateur/noyau) : 3 Go/1 Go et 2 Go/2 Go.
- Pagination à la demande avec la fonction Copy-On-Write.
- Le système Linux 2.0 ABI appelle la compatibilité (principalement).
- Prise en charge du format exécutable ELF-i386 (lié statiquement et dynamiquement).
- Algorithme de planification basé sur Round Robin (pas encore de priorités).
- Couche d'abstraction VFS.
- Prise en charge de Kexec avec les protocoles de démarrage Multiboot Spécification v1 et Linux.
- Prise en charge du système de fichiers EXT2 avec des tailles de blocs de 1 Ko, 2 Ko et 4 Ko.
- Prise en charge des systèmes de fichiers Minix v1 et v2.
- Prise en charge du système de fichiers PROC de type Linux (lecture seule).
- Prise en charge du pseudo-système de fichiers PIPE.
- Prise en charge du système de fichiers ISO9660 avec les extensions Rock Ridge.
- Prise en charge des périphériques RAMdisk.
- Prise en charge initiale de l’image du disque RAM (initrd).
- Prise en charge des applications basées sur SVGAlib.
- Prise en charge du bus local PCI.
- Prise en charge des périphériques série QEMU PCI.
- Prise en charge de l'adaptateur graphique QEMU/Bochs.
- Contrôleur IDE Intel PIIX3 PCI ISA.
- Pilote de clavier avec prise en charge des claviers Linux.
- Prise en charge de la souris PS/2.
- Prise en charge du périphérique Framebuffer pour les cartes graphiques compatibles VESA VBE 2.0+.
- Prise en charge de la console Framebuffer (fbcon).
- Prise en charge du pilote de port série (RS-232).
- Prise en charge de la console série à distance.
- Prise en charge de la console de débogage de style QEMU Bochs.
- Prise en charge du pilote d'imprimante sur port parallèle.
- Implémentation de base d'un générateur de nombres pseudo-aléatoires.
- Pilote de périphérique de disquette et gestion DMA.
- Pilote de périphérique de CD-ROM IDE/ATA ATAPI.
- Pilote de périphérique de disque dur IDE/ATA.
Compilation
La commande nécessaire pour construire le noyau Fiwix est make clean ; make
. Cela créera les fichiers fiwix (le noyau lui-même) et System.map.gz (la table des symboles) dans le répertoire racine de l'arborescence du code source.
Avant de compiler, vous souhaiterez peut-être modifier la configuration du noyau en modifiant les valeurs par défaut dans include/fiwix/config.h
et include/fiwix/limits.h
.
Gardez à l'esprit que le noyau ne fait rien tout seul, vous devez créer un environnement d'espace utilisateur pour l'utiliser. Au démarrage, le noyau monte le système de fichiers racine et essaie d'exécuter /sbin/init
dessus, vous devrez donc fournir ce programme vous-même. Heureusement, FiwixOS fournit un environnement de type UNIX en espace utilisateur complet pour tester le noyau Fiwix.
Installation
Vous pouvez procéder à l'installation de FiwixOS sur un disque dur soit en démarrant à partir du CD-ROM, soit à partir d'une disquette. Si vous avez choisi cette dernière option, vous aurez également besoin d'insérer le CD-ROM d'installation pour installer les packages qui constituent tout l'environnement système.
Laissez le système démarrer et lorsque vous êtes prêt, tapez simplement install.sh
.
La configuration matérielle minimale requise est la suivante :
- Architecture IBM PC-AT standard.
- Processeur i386 (avec processeur à virgule flottante).
- 4 Mo de mémoire RAM (128 Mo recommandés).
- CD-ROM IDE/ATAPI ou disquette (3,5", 1,44 Mo).
- Disque dur ATA de 1 Go.
Veuillez garder à l'esprit qu'il s'agit d'un noyau à ses tout premiers stades et qu'il peut très bien contenir de sérieux bugs et des fonctionnalités défectueuses qui n'ont pas encore été identifiées ou résolues.
Permettez-moi de le répéter.
Veuillez garder à l'esprit qu'il s'agit d'un noyau à ses tout premiers stades et qu'il peut très bien contenir de sérieux bugs et des fonctionnalités défectueuses qui n'ont pas encore été identifiées ou résolues.
*****************************
*** USE AT YOUR OWN RISK! ***
*****************************
Références
- Site web
- IRC
- Liste de diffusion
Licence
Fiwix est un logiciel libre sous licence selon les termes de la licence MIT, voir le fichier LICENSE pour plus de détails.
Copyright (C) 2018-2024, Jordi Sanfeliu.
Crédits
Fiwix a été créé par Jordi Sanfeliu.
Vous pouvez me contacter à [email protected]. Voir aussi le dossier CRÉDITS.