π
<-
Chat plein-écran
[^]

[83PCE] Sorcery : un micro-kernel hybride

Assembleur, Axe, C/C++, ICE...

[83PCE] Sorcery : un micro-kernel hybride

Message non lude TheMachine02 » 04 Sep 2020, 15:26

Bonjour à tous,
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é.

Vous pouvez actuellement installer le kernel sur le matériel, mais vous ne pourrez globalement ... rien faire pour l'instant.


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 /! sont peu ou mal implémentées pour l'instant.
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 :
Prérequis :
  • 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.
Désinstallation :
Pour désinstaller, appuyez sur :f21: et :f23: et lancez un reset (bouton au dos). Vous pouvez de nouveau envoyer un OS de TI.


Pour l'instant, un reboot hardware invalidera le kernel sur tous les boot code >5.3. De plus vous ne pourrez pas le lancer sur la python édition, ni sur un OS > 5.5, puisque celui ci supprime l'assembleur.


Lien de la source
https://github.com/TheMachine02/Sorcery/
Développeurs :
TheMachine02
Grosged (merci pour les optimisations !)
Epharius (vivement internet hein ? :p )
Ti64CLi++ pour son support moral proche de celui d'une loutre (c'est beaucoup)
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude Noury » 04 Sep 2020, 15:31

Il te manque clairement un Steve Jobs pour vendre ton OS.
La présentation est trop "technique", pas assez "grand public".
Elle fait un peu peur...
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude TheMachine02 » 04 Sep 2020, 15:34

Normal, puisque ce n'est pas un OS fait pour l'utilisateur final, mais l'outil essentiel pour construire un OS/desktop environnement par dessus sans trop s'embêter (comme le kernel linux, en somme) ;) . Et puis pour l'instant, c'est très très proche du matériel...
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude grosged » 04 Sep 2020, 17:05

Beau travail, @TheMachine02 ! Et bonne continution! Une alternative au "monopolistique" système d'exploitation texan, ça ne peut faire que du bien, non? :p
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude Adriweb » 05 Sep 2020, 18:18

Excellent boulot, en effet :)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14605
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

En ligne

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude Epharius » 09 Sep 2020, 12:39

Troooooop bien !!! Promis je t'aide à faire le processus de communication entre l'ordi et la calcu un jour :troll:

Mais Jamy

Ça commence à s'inspirer de mes posts ? 0:] :whistle:
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7%
 
Messages: 1107
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude Lionel Debroux » 09 Sep 2020, 18:57

Super boulot, en effet :)

Pour la communication avec un host USB, l'utilisation d'un protocole standard serait préférable.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude TheMachine02 » 09 Sep 2020, 20:20

ça je suis parfaitement d'accord ;) Je me demande dans quelle mesure il serait possible de pouvoir exposer la calculatrice comme un périphérique de stockage USB ... Après, j'y connais vraiment rien en USB / protocole, donc bon
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude Adriweb » 09 Sep 2020, 20:22

Jacobly a deja fait ca pour CE avec du PTP, ca marche suffisamment bien (drag'n'drop de fichiers TI dans une fenetre explorer de base linux/macOS/win, en gros comme une clé USB / peripherique media)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14605
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [83PCE] Sorcery : un micro-kernel hybride

Message non lude TheMachine02 » 09 Sep 2020, 20:23

Ah excellent :) Il faudra faire tout le côté driver & système de fichier par contre, et ça, ça risque de prendre du temps :P
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
957 utilisateurs:
>937 invités
>15 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)