MMPS - Un systeme d'exploitation multi-process pour PC-1500

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

MMPS - Un systeme d'exploitation multi-process pour PC-1500

Message par cgh » 10 janv. 2014 04:05

Et voici MMPS - Un petit systeme d'exploitation multi-process pour le PC-1500 :-D

C'est le projet le plus complexe, le plus fou et le plus difficile que j'ai eu a mener sur cette machine.
C'est lors d'un deplacement sur site durant l'annee 1994 que j'ai travaille sur MMPS, meme si l'idee d'un OS avait germee durant l'annee 1992.
A l'epoque, je nourissais le "Beau Reve" de m'affranchir de la ROM BASIC et de la remplacer par un OS autonome avec tous ses outils.
Bon, une fois le kernel developpe, j'ai vite du revoir mes ambitions a la baisse, car en dehors d'un manque de temps et d'une baisse de motivation, j'avais atteint les limites de la machine pour un developpement natif ! Mon ensemble PC-1500 + CE-161 etait devenu trop petit ... Imaginez:

Code : Tout sélectionner

&00C5-&17FF : Le kernel MMPS
&1800-&1FFF : Le systeme de fichiers minimal et les utilitaires
&2000-&2FFF : Zone de developpement: tests, sauvegardes, essais...
&3000-&3FFF : XMON moniteur/assembleur/debugger
&4000-&41FF : Les donnees volatiles de MMPS
&4200-&47FF : Le file systeme et les blocs memoires.
Le choix de cette repartition est voulue, car l'espace du CE-161 (&0000-&3FFF) est desactivable en ecriture. Ce qui est bien pratique durant les developpements pour se proteger des crash eventuels et violents. La restauration de l'ensemble prennant pres de 20 minutes...

Cela fait deja plusieurs mois que je travaille a la redaction de la documentation de ce systeme. Voila c'est fait. La documentation en PDF fait 94 pages... Elle decrit les mecanismes du kernel, presente l'environnement, fourni un manuel des 62 appels systemes et des exemples de programmation.

Le projet, sans etre formellement arrete aujourd'hui, est en sommeil. A ce jour sont disponibles:
  • Le kernel MMPS (revision du 9 avril 1998)
  • Un file system minimal avec les utilitaires:
    STARTER (un shell hyper-hyper-hyper leger)
    FILES (liste toutes les entrees du file system)
    PROCESS (liste tous les processus crees)
    DISPLAY (liste le contenu d'un fichier)
    DEBUG (debug un processus fils)
    RUNPRO (un exemple mis en oeuvre)
Ce qu'il manque:
  • D'autres utilitaires dont un vrai SHELL...
  • Et bien sur une chaine de developpement native sous MMPS, car meme si tous est pret maintenant (il y a un debugger), le developpement de programmes (executables) doit etre realise en externe (via XMON, par exemple), et le file system modifie "a la main".
Qu'apporte MMPS ?

MMPS est un systeme d'exploitation multi-processus (on peut lancer plusieurs executables en meme temps, et bien sur, plusieurs instances d'un meme executable) avec un file system propre (permettant un stockage permanent d'executables et donnees), une gestion memoire pour allouer des blocs aux processus, et un mecanisme de consoles virtuelles, permettant d'avoir l'ecran et le clavier en relation avec un process a un instant donne.

MMPS supporte 62 appels systemes (curieusement nommes "kernel-jump") portant sur les fonctionnalites suivantes:
  • Gestion memoire: allocation, re-allocation, liberation.
  • File systeme: creation, destruction, ouverture, lecture, ecriture,... et supporte les types d'entrees suivantes: fichiers, consoles, queue, duplex, memoire partagee, memoire mappee et verrous.
  • Gestion des processus: creation, destruction, envoi de messages synchrones, gestions d'evenements asynchrones, delais et debug.
  • Un ordonnanceur (scheduler) permettant de "reveiller" les differents processus, en fonction des etats de ceux-ci.
MMPS est noyau monolithique. Il est autonome et ne requiert que 4 appels aux routines de la ROM BASIC pour afficher, effacer l'ecran et obtenir une touche pressee.

Les executables/utilitaires peuvent evoluer dans leur coin, sans perturber le kernel et vice-versa. Seuls les codes et les interfaces des kernel-jumps doivent etre figes.
Les executables doivent cependant etre relogeables et re-entrants (ou se proteger contre).

Le mecanisme de kernel-jump est realise par l'instruction SBR (&E3), l'accumulateur A devant contenir le code du kernel-jump a executer. Les registres BC, DE et HL etant utilises pour le passage d'arguments et/ou pour recevoir les valeurs retournees. Au retour, la CARRY est levee si le kernel-jump est realise sans erreur; sinon la CARRY est baissee et A contient alors le code d'erreur produite.

Par exemple, pour ouvrir un fichier, le kernel-jump OPN:

Code : Tout sélectionner

    LD    BC,adresse-du-nom
    LD    E,mode-d'ouverture (lecture, ecriture, ajout, exclusif...)
    LDA    &14
    SBR    (&E3)
    ;; Si la carry est baissee, une erreur s'est produite et A contient
    ;; alors le code d'erreur. Dans ce cas, aucun registre autre que A
    ;; n'est modifie
    JR    NC,saut-erreur
    ;; D contient le descripteur ouvert sur ce fichier. Il sera utilise
    ;; pour toutes operations sur le fichier jusqu'a la fermeture.
Pour simplifier les structures et les etats du kernel, les appels systemes ne peuvent pas etre interrompus.

Pour la version de developpement, seul un CE-161 (ou equivalent) est requis.
MMPS a ete teste et fonctionne avec les ROM1 et ROM2. Il n'a pas ete teste avec la ROM0.
Le kernel N'est PAS relogeable.

L'utilisation de MMPS avec un emulateur peut-etre problematique, car le kernel utilise certaines instructions mettant en oeuvre le registre MN (ou V); si le moteur d'emulation ne les supporte pas, MMPS ne sera pas operationnel. Les instructions LDA N (code &34) et POP MN (code &3A) doivent etre emulees.

J'espere pouvoir ecrire un article de presentation plus complet sur MMPS pour une prochaine gazette de Silicium.

Attention cependant: MMPS etant autonome, il y a un effet de bord important. Il ne faut jamais laisser l'auto-power-OFF eteindre la machine en etant sous MMPS, car le BASIC redonnera la main a la tache CONSOLE, qui ne sera plus schedulee a cause du mecanisme de power-off. C'est le verrou mortel: tout le monde s'attend. Dans ce cas, un appui "rapide" sur RESET permet de redemarrer sous BASIC.
J'ai commence a regarder plusieurs solutions pour palier a ce probleme, mais ce n'est pas tres facile... donc en attendant !

Bon amusement... :-D
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par badaze » 10 janv. 2014 08:31

T'es un malade toi aussi.
8)
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3397
Inscription : 06 sept. 2011 14:57
Localisation : Normandie

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par Hobiecat » 10 janv. 2014 08:33

Quel talent ! Bravo pour tous ces développements !

Avatar de l’utilisateur
Rom1500
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 701
Inscription : 29 nov. 2013 17:24
Localisation : Pas très loin de Lyon
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par Rom1500 » 10 janv. 2014 08:34

Beau boulot !
On va tacher de lui faire de la place dans le PC-1500 en poussant un peu les meubles :wink:
Toutes les infos : http://www.pc-1500.info
PC-1500+CE-150 : EU PC1500, PC1500A / JP PC1500, PC1500D, PC1501 / HU PTA4000, PTA4000+16 / US TRS80 PC2 / BR PC-1500RP, PC-1500RP2 / CN PC-1500, PC-1500A, Nanfeng PC-1500A
PC-1600 : PC-1600K V2, CE-1600M, CE-1604L, CE-515P, module 32Ko, module 512Ko
Extensions en boite : CE-150/151/152/153/154/155/156/157/158/159/160/161/162E/163 sans boite

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5599
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par ledudu » 10 janv. 2014 08:36

Mais, bon, dans l'entreprise des fous, tu es au conseil d'administration !
Chapeau ! :D

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par gege » 10 janv. 2014 10:23

Wow !!! 8O 8O
Félicitations, mais où peut-on s'emparer de la doc et du beau bébé ??
Ca marche avec un CE163 je suppose ?
Il faut vraiment qu'on t'alimente en projets déments !
Ma suggestion : qu'on puisse programmer (pourquoi pas en Basic) sous MMPS, avec une bonne _mmunité aux plantages (le LM ça fait un peu peur).
Merci pour le boulot, à te lire dans la Gazette,
G.E.

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par cgh » 10 janv. 2014 10:39

gege a écrit :Félicitations, mais où peut-on s'emparer de la doc et du beau bébé ??
MMPS est arrive sur le site de repaire :-D
gege a écrit :Ca marche avec un CE163 je suppose ?
Oui. Tous mes PC-1500 ont un CE-163. Mais la commutation n'est pas geree. Par contre, on peut avoir MMPS en page 1 et commuter avant de le lancer (sauvegarder et restorer la partie volatile, pour cohabiter avec le BASIC...) A voir, a penser, a faire. C'est note.
gege a écrit :Il faut vraiment qu'on t'alimente en projets déments !
Ma suggestion : qu'on puisse programmer (pourquoi pas en Basic) sous MMPS, avec une bonne _mmunité aux plantages (le LM ça fait un peu peur).
Impossible. Bien que MMPS ne touche absolument pas aux donnees du BASIC, il ne peut pas devenir un process de MMPS. Il faudrait pouvoir patcher la ROM et que MMPS devienne le maitre du PC-1500. Le BASIC se retrouvant "en extension". Par contre, c'etait faisable avec mon noyau multi-tache.
gege a écrit :Merci pour le boulot, à te lire dans la Gazette
Oui. Cela me plairait d'ecrire un article dessus :-D
Dernière édition par cgh le 10 janv. 2014 20:39, édité 2 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par cgh » 10 janv. 2014 10:41

badaze a écrit :T'es un malade toi aussi.
8)
Le terme est faible... Mais j'assume totalement 8)
ledudu a écrit :Mais, bon, dans l'entreprise des fous, tu es au conseil d'administration !
Chapeau ! :D
J'ai pris le controle de l'entreprise :pirat: et vous etes tous vires :mrgreen:
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
Alexandre
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 747
Inscription : 26 janv. 2007 22:14
Localisation : RP
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par Alexandre » 10 janv. 2014 12:18

Comme d'hab: Je comprends queue dalle, mais félicitations!!
Sharp PC1211/1212, CE122, PC1245/47/46s/51/60/61/62/70, CE125, PC1360/50, CE140P, PC1402, CE129P, PC1500/A, CE150, PC E500, EL1195. Canon X-07. Ti 57. Newton 110. HP-12C. Psion3a

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par jvernet » 10 janv. 2014 13:15

En lisant le post de CGH, j'ai pensé "il est fou".

Et c'est l'avis général :lol: :lol: :lol: :lol:

La même chose sur PC-1600 ?
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par cgh » 10 janv. 2014 13:41

jvernet a écrit :La même chose sur PC-1600 ?
Je n'ai pas essaye sur le PC-1600 :oops: Mais en mode compatibilite LH5801, les interruptions sous MACBAS ou sous XMON ne fonctionnent pas sur ce dernier. Et en plus, je n'ai pas de CE-161 pour le slot1 du PC-1600.
Par contre, si le PC-1600 est bien documente, on peut imaginer un portage de MMPS sur l'architecture z80. Il faut que les interruptions soient derivables et pouvoir programmer un timer dessus.
Et posseder un assembler/moniteur/debugger LM digne de ce nom :geek:
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

icho
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 580
Inscription : 20 juin 2012 13:47
Localisation : venelles 13770

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par icho » 10 janv. 2014 13:47

Cgh c'est pour Complément Gaga l'Humain ? :D

En tout cas c'est un boulot de haut niveau, même si je suis, comme beaucoup ici, dans l'incapacité de comprendre la moitié de ce que tu as fais.

Tu n'es pas encore Président du Conseil d'Administration ?
Collection Apple
Apple //, //e, //c, Plus, SE, SE/30, Classic I, II, Color, IIci, IIsi, IIcx, II, IIfx, Quadra 700, LC, I, II, 475, PM 6400, 6500, 7600, 9600, G3 DT, G3 MTower, Cube, G4, G5, iMac G3, G4 15", G4 20" T, 20", 24" , 27" i7, MacPro .

MacPortable, PB Duo 2300C, iBook G3, G4 12" et 14", PB G4 12" et 15" Alu, 15" Ti, MB Pro CD 15", MBP 15", MBP 17", MBP 13".

IWriter I, II, StyleWriter I, II, QuickTake 100, Newtons, etc ...

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par Paul Tergeist » 10 janv. 2014 14:32

Un système multi process sur PC-1500... Chapeau...

Avatar de l’utilisateur
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4594
Inscription : 31 oct. 2006 16:08
Localisation : 67310 Westhoffen
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par pir2 » 10 janv. 2014 14:51

Bravo au fou du labo :D

Ca mérite bien une choucroute, pas de mission prévue sur Strasbourg ces prochaines semaines ?
Image
Image

Avatar de l’utilisateur
repaire
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 30
Inscription : 02 sept. 2012 09:21
Contact :

Re: MMPS - Un systeme d'exploitation multi-process pour PC-1

Message par repaire » 10 janv. 2014 15:31

MMPS accessible ici: http://www.pc1500.com/#utils
cgh = :ugeek: 8)
Dernière édition par repaire le 11 janv. 2014 15:16, édité 2 fois.

Répondre

Revenir vers « Tous les Pockets »