À propos du projet
egos-2000 est un système d'exploitation éducatif dont l'objectif affiché est de permettre à chaque étudiant de lire tout son code. Le projet maintient l'implémentation à exactement 2000 lignes (comptées avec cloc, hors Markdown), ce qui rend l'ensemble du système suffisamment petit pour être étudié de bout en bout.
Architecture
Le nom « egos » reflète une conception à trois couches :
- Couche Earth : abstractions spécifiques au matériel, notamment les interfaces de périphériques tty et disque ainsi que les interfaces de gestion du minuteur et de la mémoire.
- Couche Grass : abstractions indépendantes du matériel, notamment le bloc de contrôle de processus et l'interface d'appel système.
- Couche Application : système de fichiers, shell et commandes utilisateur.
Les interfaces entre les couches sont définies par struct earth et struct grass dans le fichier d'en-tête egos.h.
Plateformes et utilisation
Le système fonctionne sur QEMU et sur les cartes RISC-V. USAGES.md documente comment l'exécuter, et les manuels de l'ISA privilégié RISC-V sont référencés pour les détails du jeu d'instructions. Les portages communautaires mentionnés dans le README incluent mriscv (un processeur SystemVerilog), Allwinner D1 et le module de calcul Sipeed Lichee RV64 Nezha. Un portage de DOOM a également été démontré sur egos-2000.
Matériel pédagogique
Le livre EGOS contient neuf projets de cours basés sur egos-2000. Le projet a été utilisé dans des cours universitaires tels que Northeastern CS4973/6640 et Cornell CS4411/5411, et le README crédite une bourse Facebook ainsi que plusieurs conseillers académiques et contributeurs.
À qui il s'adresse
Il s'agit principalement d'une ressource d'étude et d'enseignement pour les systèmes d'exploitation : des étudiants et des enseignants qui souhaitent un noyau complet et lisible ainsi qu'un ensemble de projets guidés, plutôt qu'un OS de production destiné au déploiement.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.