Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Projet FiXos (OS pour casio fx-9860/Prizm)
Kristaba Hors ligne Membre Points: 614 Défis: 22 Message

Projet FiXos (OS pour casio fx-9860/Prizm)

Posté le 07/11/2011 20:11

maj 14/11/2013 : un peu d'actualités
maj 03/03/2013 : mon (presque) dernier pavé
maj 06/03/2015 : Dépôts GitLab du projet.


Vu que le sujet d'OS unix-like pour nos chères G85 (fx-9860) et dérivées, ainsi que pour la Prizm (fx-cg20) fait réagir pas mal de gens, j'ouvre un topic pour en parler plus en détail
(début du sujet sur ce topic)

Déjà, quelques précisions, mes posts précédent étaient simplement des idées pour montrer l'utilité et ma vision d'un possible OS, je n'avais pas vraiment pour projet de le concrétiser dans l'immédiat. L'idéal serait de bosser là dessus conjointement avec des gars d'omnimaga, cemetech, et les autres communautés.
Ceci dit, j'ai déjà quelques idées dans la tête, donc autant les faire partager

(au passage, j'en profite pour répondre un peu aux posts de l'ancien topic)
DJ_Omnimaga : sur Casio on a jamais eu l'occasion de créer un OS tiers jusqu'à la fx-9860 (excepté la Graph100 mais c'était loin d'être le modèle le plus répandu), les processeurs étant non documentés. Depuis que tous les nouveaux modèles de Casio utilisent la même architecture plus ouverte, il est possible de créer un OS custom, mais si il n'y a toujours pas eu de projet d'OS c'est entre autre par ce que les addins permettaient déjà de faire des programmes sympa, et probablement aussi à cause du manque de "programmeurs systèmes" dans le monde Casio.

Vdragon.b: Oui, un OS est généralement codé en C (pas une obligation, mais Linux en est un bon exemple ouaip). Ceci dit, vaut mieux "bien coder", par ce que l'expérience permet de d'optimiser le code, d'utiliser des syntaxes très barbares -mais pratiques-, de comprendre la structure générale de l'OS. Après, si il s'agit de code hors-noyau (un petit utilitaire ou autre) bien entendu les performances sont moins critiques, donc si tu te sens tu pourras aider j'imagine.
Pour les grayscales et le multitâche c'est prévu dans mon idée perso effectivement.
(dans un premier temps, multitâche coopératif avant d'écrire un vrai ordonnanceur)

Pour le moment, les idées que j'ai pour le kernel :
- une fonction init pour initialiser le MMU, le cache, créer la pile kernel, initialiser les interruptions, charger le système de fichiers...
- un FS type FAT par exemple, serait potentiellement créé en tant que fichier du FS de Casio (pour permettre la cohabitation des deux systèmes, en évitant de se tapper le FS de Casio complètement en carton *siflotte*)
- système de virtual FS pour permettre une uniformité des API d'écriture de fichiers
- possibilité de lancer un programme binaire "pur" (binaire sans header G*A), un binaire G1A, ou un fichier ELF (ce dernier permettrait l'utilisation de techniques avancées)
- gestion des bibliothèques dynamiques (du .so si le format est pas trop lourd, custom sinon), dont Newlib (lib stdc) pour alléger les addins, profiter de fonctions spécifiques à chaque calculatrice...
- gestion du MMU en mode activé et pour environnement multiprocessus (basculement en monoprocessus si nécessaire pour assurer la retro-compatibilité G*A?)
- évidemment, les addins seraient lancés en mode 'user' pour assurer la sécurité du kernel
- syscalls utilisant l'instruction TRAPA de l'assembleur SH3 (interruption logicielle), pour basculer en mode protégé et accéder à l'espace noyau
- des drivers d'affichage dépendant du modèle de la calculatrice, permettant de gérer un mode "terminal" et un mode "graphique"

Si vous avez des questions, des choses à proposer, des contacts avec des gens intéressés ou quoi que ce soit n'hésitez pas.
Je ne sais toujours pas si je vais vraiment me lancer là dedans (c'est un gros projet encore une fois, peu de chances d'être fini un jour si y'a que moi dessus ), mais dans le pire des cas, les idées présentées serviront bien à quelqu'un, un de ces quatres



Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Suivante
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 03/10/2014 19:02 | #


C'est un OS, comme celui de casio, mais crée de 0, il pourra permettre d'utiliser la calculatrice sans se tapper tout les bugs/limitations de l'os de casio
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 19:02 | #


C'est un kernel développé par Kristaba pour les calculatrices de type fx9860, pour avoir un kernel bien codé, contrairement à celui de Casio.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 03/10/2014 19:07 | #


Ok, merci !! Et qu'est ce qu'il proposera de mieux que l'OS actuel développé par Casio ? Parce que je ne suis pas sûr que cet OS proposera des modules (RUN MATH, Graph, STAT ...) aussi performants que ceux présents dans L'OS casio.
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 19:08 | #


Ben ça sera avec des programmes autour, pas intégré au kernel.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 03/10/2014 19:10 | #


Donc cet OS utilisera RUN MATH, STAT, E-Act ... et tout les autres "add ins" développés par CASIO ?

JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 19:11 | #


Je n'ai pas du tout dit ça! On ne peut pas récupérer RUN MATH, ou un autre, de l'OS officiel et le faire marcher sur FiXos…
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 03/10/2014 19:14 | #


Comment cet OS permettra de faire des calculs, de tracer des graphs ... alors ? Kristaba ne va quand même pas tout reprogrammer lui même

Au passage désolé à ceux qui me trouvent débile de poser ces questions, mais je ne suis pas un king en programmation, je me limite à ma calto
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 19:15 | #


Ben d'autres gens peuvent le faire, tout les programmes de GNU n'ont pas été programmé par un seul mec
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1243 Défis: 54 Message

Citer : Posté le 03/10/2014 19:16 | #


Après rien n'empêchera (enfin je suppose (quoique j'ai un léger doute sur les capacités matérielles requises), même si il faudra avoir du temps ) de porter un moteur de "maths" déjà existant tel Giac ou autre, mais bon, ça n'est pas forcément pour tout de suite tout de suite ^^.


Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 03/10/2014 19:16 | #


En gros, pour faire des calculs, il y aura un "add in" comme Reckon (http://www.voidware.com/reckon/) à la place de Run Maths, c'est ça ?
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 19:18 | #


Je suppose qu'on appellera pas ça un add-in, mais c'est à peu près ça oui. Je prévois moi même de faire un interpréteur LISP quand ma calculatrice sera supporté pour ceux que ça intéresserait.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 03/10/2014 19:59 | #


ça peut être intéressant pour ton projet Kristaba : http://www.voidware.com/reckon/
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 22:13 | #


Ça ne sert pas à grand chose, ce programme n'étant pas libre (sans mention, je suppose que ça ne l'est pas), donc on peut pas l'adapter à un autre OS…
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 03/10/2014 22:23 | #


Non mais déjà ce programme n'est PAS un OS
Donc ça sert à rien d'essayer de le reprendre
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/10/2014 22:36 | #


Dark Storm : Je pense qu'il voulait dire adapter ce programme pour le faire marcher sur FiXos.
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 03/10/2014 22:45 | #


Au passage, j'en profite pour dire que FiXos, en tant qu'OS communautaire, ne sera pas fait pour remplacer entièrement les fonctionnalités de Casio, mais pour fournir une base fiable aux programmeurs : si vous souhaitez bénéficier de plus de possibilités sur les ressources de la calto, etc. FiXos devrait pouvoir exécuter des applis utilisateur 100% personnalisables.

Après, rien ne vous empêche de créer des programmes pour remplacer ceux de Casio, mais à moins que vous ne souhaitiez flasher l'OS de Casio pour le supprimer totalement (ce qui est déconseillé à l'heure actuelle ), cela ne servira à rien.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 03/10/2014 22:48 | #


Il existe déjà un programme de calcul ayant pas mal de possibilité de Run Math + calcul formel ( appelé CAS ) donc si il y a des intéresse ...
1337
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 04/10/2014 10:20 | #


Ray a écrit :
@Eiyeron: je suis en train de lire ce qu'est un descripteur de fichiers.
Je pense que j'ai dit n'importe quoi :
Cliquez pour découvrir
Cliquez pour recouvrir
j'ai été voir ce qu'était un file descriptor et au final je pense connaître un peu car sur un langage il fallait utiliser des filehandle pour les opérations sur les fichiers. C'est bien un nombre entier donné par la fonction open qui désigne le "numéro" associé au fichier ouvert qui permet par la suite d'être utilisé par les fonctions de lecture / écriture ?

Enfin bref je lis le manuel pour les fonctions open close et read. À la fin je dois faire quoi au juste ?


Alors grosso merdo, à chaque processus est attribué une table de FD. Ceux-ci permettent de tracer quel fichier tu as ouvert.
Quand tu appelles open, tu reçois l'index du FD que tu viens de créer pour accéder à un fichier/pipe/autre truc. Tu vas devoir passer ce FD en argument un peu comme tu le ferais avec les fonctions de la lib standard.

NOTE: On ne mélange pas les fonctions de la stdlib (genre fopen, fwrite and co) avec celles de Unix.

@Leffe execve écrase le processus actuel pour le remplacer par un processus du programme que tu veux exécuter. C'est au dev de soit choisir d'écraser le processus actuel ou de créer un fork pour l'enfant soit écrasé et que le père puisse attendre la mort du processus fils.

Ajouté le 04/10/2014 à 10:22 :
Xavier tu veux pas plutôt parler de xCAS?

Ah oui Leffe, un dernier détail à propos de tes arguments : les pointeurs font la même chose

Dark storm a écrit :
Au passage, j'en profite pour dire que FiXos, en tant qu'OS communautaire, ne sera pas fait pour remplacer entièrement les fonctionnalités de Casio, mais pour fournir une base fiable aux programmeurs : si vous souhaitez bénéficier de plus de possibilités sur les ressources de la calto, etc. FiXos devrait pouvoir exécuter des applis utilisateur 100% personnalisables.

Après, rien ne vous empêche de créer des programmes pour remplacer ceux de Casio, mais à moins que vous ne souhaitiez flasher l'OS de Casio pour le supprimer totalement (ce qui est déconseillé à l'heure actuelle ), cela ne servira à rien.


Merci Darky de rappeler le but théorique de FiXOS (après celui d'être terminé)
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 04/10/2014 10:25 | #


Eiyeron a écrit :
@Leffe execve écrase le processus actuel pour le remplacer par un processus du programme que tu veux exécuter. C'est au dev de soit choisir d'écraser le processus actuel ou de créer un fork pour l'enfant soit écrasé et que le père puisse attendre la mort du processus fils.

En gros le premier cas correspond à un saut inconditionnel alors que le second correspond à l'appel d'une subroutine ?

Eiyeron a écrit :
Ah oui Leffe, un dernier détail à propos de tes arguments : les pointeurs font la même chose

Euh... j'ai pas compris là... les arguments pour passer au processus fils ? Et quels pointeurs ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1243 Défis: 54 Message

Citer : Posté le 04/10/2014 10:28 | #


Perso je serai pourquoi pas partant pour aider sur le long terme, même si je n'ai pas non plus les capacités pour toucher à tout, si il y a des choses à faire, why not ;).

Enfin, faut déjà que je me trouve une calculatrice sur laquelle on peut charger FiXos (ou alors le porter sur Prizm) ...
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 04/10/2014 10:37 | #


Leffe pas exactement : un fork créé un clone de ton processus (à un détail qui permet de savoir si c'est le fils ou le père). Ils ne partagent rien (les FD, la mémoire, mes ressources sont copiées et chacun a a son propre truc). La famille de fonction "exec" remplace juste le processus actuel par un nouveau processus. Pas de partage de ressource par stack avec l'assembleur ici, tu ne peux communiquer qu'avec les signaux ou les types de fichiers conçus expres comme les pipes.

Ajouté le 04/10/2014 à 10:39 :
Tenez, c'est le lien vers les cours Unix de mon prof : http://pageperso.lif.univ-mrs.fr/~edouard.thiel/ens/unix/index.html

Ça vous aidera très certainement à comprendre quelques trucs!
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 216 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd