Tilck Project, un noyau simplifié compatible avec Linux

cocher

Tilck est un noyau x86 monolithique éducatif conçu pour être compatible avec Linux au niveau binaire.

La nouvelle est tombée d'un nouveau développement qui porte le nom de «Project Tilck», dans lequel un employé de VMware développe un noyau monolithique fondamentalement différent de Linux, mais conçu pour être compatible binaire avec Linux et capable d'exécuter des applications conçues pour Linux.

Le développement vise à mettre en œuvre les caractéristiques minimales requises, évitant la surcharge de fonctionnalités, architecture simple et compréhensible, simplification maximale du code, petite taille des fichiers binaires, comportement prévisible (déterministe), garantissant des retards minimaux, atteignant une fiabilité élevée et simplifiant les processus de développement et de test.

Tilck est fondamentalement différent de Linux en ce qu'il ne cible pas les serveurs multi-utilisateurs ou les machines de bureau, pas du tout parce que cela n'aurait aucun sens : Linux n'est pas grand et complexe à cause d'une mauvaise implémentation, mais à cause du nombre incroyable de fonctionnalités dont il dispose. offres et la complexité intrinsèque qu'elles nécessitent. En d'autres termes, Linux est génial compte tenu du problème qu'il résout. Tilck offrira moins de fonctionnalités en échange de :

code plus simple (de loin)
plus petite taille binaire
comportement extrêmement déterministe
latence ultra faible
développement et tests plus faciles
robustesse supplémentaire

Le projet non destiné à être utilisé dans des environnements de serveur multi-utilisateurs ou des systèmes de bureau. Parmi les systèmes de fichiers, FAT16 et FAT32 sont pris en charge en mode lecture, tout comme ramfs, devfs et sysfs. Les dispositifs de bloc n'ont pas encore été mis en œuvre ; tout est en mémoire.

VFS est fourni pour résumer les opérations de FS. Le multithreading au stade actuel de développement n'est disponible qu'au niveau du noyau (pas encore fourni dans l'espace utilisateur).

Le noyau prend en charge le multitâche préemptif et implémente environ 100 appels de base. au système Linux, tels que fork(), waitpid(), read(), write(), select() et poll(), qui sont suffisants pour exécuter des applications console telles que BusyBox, Vim, TinyCC, Micropython et Lua, ainsi que des applications graphiques basées sur un framebuffer comme le jeu fbDOOM. Pour créer des programmes pour Tilck, un ensemble d'outils basés sur la bibliothèque Musl est fourni.

Il est mentionné que l'ensemble de pilotes proposé permet d'exécuter Tilck à la fois dans l'environnement QEMU comme dans les systèmes conventionnels démarrant à partir d'une clé USB. En plus de cela, il est également noté qu'il existe un support pour les jeux d'instructions étendus SSE, AVX et AVX2. Il propose son propre chargeur de démarrage interactif qui prend en charge les systèmes BIOS et UEFI, mais il est également possible d'utiliser des chargeurs de démarrage tiers tels que GRUB2. Lorsqu'il est chargé dans QEMU, le noyau peut fonctionner dans un environnement avec 3 Mo de RAM.

Actuellement, le projet se positionne comme un projet pédagogique, mais à long terme, il est possible que Tilck atteigne un niveau adapté à une utilisation en tant que noyau pour les systèmes embarqués nécessitant un comportement prévisible et une faible latence.

Bien que Tilck utilise en interne le concept de thread, le multithreading n'est actuellement pas exposé à l'espace utilisateur (les threads du noyau existent, bien sûr). fork() et vfork() sont implémentés correctement et la copie sur écriture est utilisée pour les processus forkés. L'appel système waitpid() est entièrement implémenté (ce qui implique des groupes de processus, etc.).

Une fonctionnalité intéressante dans ce domaine mérite une mention spéciale : malgré l'absence de multithreading dans l'espace utilisateur, Tilck prend entièrement en charge TLS.

Il est prévu que Cocher combler le fossé entre les solutions basées sur le noyau Linux et les systèmes d'exploitation temps réel dédiés, comme FreeRTOS et Zephyr. Les plans incluent la migration de Tilck vers des processeurs ARM et non-MMU (Memory Management Unit), l'ajout d'un sous-système réseau, la prise en charge des périphériques de bloc et des systèmes de fichiers supplémentaires comme ext2.

Le code est écrit en C et est distribué sous licence BSD. Au stade actuel de développement, le noyau ne prend en charge que l'architecture x86, mais le code est conçu dans un souci d'universalité et de mise en œuvre pour la prise en charge future d'autres architectures.

enfin si tu es intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.