Compilation d'un noyau Linux nativement sur macOS : un voyage en enfer

2025-07-03
Compilation d'un noyau Linux nativement sur macOS : un voyage en enfer

Cet article détaille l'expérience de l'auteur lors de la compilation d'un noyau Linux (architecture RISC-V) nativement sur macOS. Le processus a été semé d'embûches : une version obsolète de make, l'incompatibilité du ld de macOS avec les attentes de Linux, l'absence des fichiers d'en-tête elf.h et byteswap.h, et des conflits de version avec uuid_t et sed. L'auteur a surmonté ces problèmes en utilisant Homebrew pour installer des chaînes d'outils à jour (make, llvm, lld, libelf, gnu-sed) et en créant des correctifs pour résoudre les incohérences des fichiers d'en-tête et les conflits de définition de type. Le noyau a été compilé avec succès, macOS étant plus rapide que Docker pour les compilations complètes, mais plus lent pour les compilations incrémentales. L'auteur conclut que la résolution des problèmes de compilation est un processus itératif et continu, similaire à l'intégration continue.

Lire plus
Développement

Starina : Un système d'exploitation micro-noyau avec une approche d'hyperviseur comme bibliothèque

2025-05-20
Starina : Un système d'exploitation micro-noyau avec une approche d'hyperviseur comme bibliothèque

Cet article présente une approche innovante de la compatibilité Linux dans le système d'exploitation Starina : l'intégration du moniteur de machine virtuelle (VMM) comme bibliothèque au sein des applications. Contrairement aux VMM traditionnels autonomes, l'API `starina_linux::Command` de Starina permet aux développeurs d'exécuter des programmes Linux de manière similaire à `std::process::Command`, en interagissant avec la VM via un système de fichiers virtuel (virtio_fs). Cette conception simplifie le développement et a le potentiel d'atteindre des temps de démarrage plus rapides que Linux natif. Actuellement, les E/S de fichiers de base sont prises en charge ; les travaux futurs incluent l'ajout de la mise en réseau, du stockage persistant et d'une conteneurisation améliorée.

Lire plus
Développement micnoyau

Construction d'un hyperviseur RISC-V dans le système d'exploitation Starina : de Hello World au démarrage de Linux

2025-05-17
Construction d'un hyperviseur RISC-V dans le système d'exploitation Starina : de Hello World au démarrage de Linux

Cet article documente le parcours de l'auteur dans la construction d'un hyperviseur léger basé sur l'extension RISC-V H au sein du système d'exploitation Starina. En utilisant l'émulation de l'extension RISC-V H de QEMU, l'auteur a implémenté progressivement l'entrée en mode invité, la gestion des appels système, un simple programme Hello World et, enfin, le démarrage du noyau Linux. Des défis tels que la gestion des tables de pages, la configuration de l'arbre des périphériques, la prise en charge du temporisateur et le MMIO ont été surmontés, avec des étapes et des solutions détaillées. L'article se termine par un démarrage réussi de Linux sur l'hyperviseur Starina.

Lire plus
Développement