J'espère que vous allez bien en cette période de rentrée. J'extrais aujourd'hui ce projet du forum programmeur devant ses dernières avancées.
De quoi parlons nous ? D'un kernel écrit entièrement en assembleur pour la lignée de calculatrice 83 premium CE. Il ne remplace évidemment pas un OS complet mais cherche à fournir une base UNIX like solide pour programmer tout un OS en C (ou en assembleur, soyons fou !) tout en s'axant sur la simplicité, la rapidité et la sécurité.
Tout d'abord, un petit screen :

Mais Jamy, qu'y a-t-il dans ce kernel ?
Features
- Gestion concurrente de 64 threads, entièrement préemptibles
- Primitives atomic
- Scheduler en O(1) avec multiqueue et gestion de la priorité
- Système de fichier virtuel sur RAM
- Drivers minimum (LCD, keyboard, spi, rtc, flash, timer, console)
- Des interruptions hardwares et software réactives (il faut lire ici, c'est optimisé à mort)
- Un système de ramfs initial
- Design UNIX like (sys V), avec l'accès aux device via le système de fichier
-
Des syscall qui devraient être plutôt optimisées
- Gestion mémoire paginée
- Slab mémoire pour les drivers / le kernel
-
Exécution de programme réalloué et librairies dynamiques
Bref, un kernel qui cherche a ne pas rester dans les pattes des programmeurs, le tout dans moins de 16K de code. Les features avec un

Beaucoup de choses lui manque. Déjà toute une toolchain C et sa libc pour pouvoir développer facilement ses programmes pour le kernel. De même il manque des choses un peu partout, l'exécution de programme dans la console, toute la partie système de fichier sur la flash, l'exécution depuis la flash, presque toutes les syscall UNIX (qui seront implémentées, je sais que vous l'avez toujours rêvé !), et ce que je suis entrain de faire actuellement, un slab système efficace pour la mémoire du kernel (accessible aux drivers aussi). Ultimement, les drivers devraient être découplés du kernel pour réaliser un vrai micro kernel.
Installation
Pour les plus curieux, voici le procédé actuel d'installation :
- Linux : Pour l'instant la toolchain du kernel est faite pour fonctionner sous linux
- fasmg : l'assembleur, trouvable ici fasmg sur github
- Téléchargez le repo github de sorcery Sorcery et mettez fasmg dans le dossier
sorcery
- Lancez le build.sh et envoyez le fichier
SORCERY.8xp
sur votre calculatrice, puis exécutez le. Vous rebooterez directement sur le kernel.
Pour désinstaller, appuyez sur
![[2nde/2nd] :f21:](./images/smilies/z80/21.png)
![[suppr/del] :f23:](./images/smilies/z80/23.png)
Lien de la source
https://github.com/TheMachine02/Sorcery/
Développeurs :
TheMachine02
Grosged (merci pour les optimisations !)
Epharius (vivement internet hein ?

Ti64CLi++ pour son support moral proche de celui d'une loutre (c'est beaucoup)