J'ai commencé un noyau de système d'exploitation, mais je ne sais pas commet le désigner.
Bonjour tout le monde,
mauvaise nouvelle : je suis de retour avec mes questions bizarres.
Et justement j'ai une question qui me trotte dans la tête.
J'ai commencé un noyau de système d'exploitation. Jusque là, tout va bien.
Mais j'ai eu beau chercher sur internet, je n'ai pas trouvé comment désigner mon système d'exploitation. (le bureau, les fenêtres, les icones etc...)
Voilà ma question et merci d'avance à celui qui me trouvera une réponse
dsl si j'oublie les accents, j'ai tellement utilisé la console Windows que j'ai pris l'habitude de ne plus les mettre
Permets-moi de reformuler ta question :
Ce que tu veux faire ne s'appelle pas un système d'exploitation. Ce qu'on appelle un système d'exploitation c'est un ensemble de logiciels qui pilotent les ressources de base (processeur, mémoire, lecteurs, fichiers, processus, réseaux, graphisme, son ...). Ce que tu veux faire c'est plus probablement un bureau. Un bureau (desktop) c'est un ensemble de services (briques de base) pour construire et exploiter des applications.
Maintenant que c'est moi qui ai posé la question je sais y répondre (oui parce que si c'est toi qui pose les questions alors où va-t-on ? on peut se le demande encore longtemps...).
Il y a des environnements dits jouets (du toyware) ou bac à sable (ou sandbox) qui ont été inventés (par des universitaires) dans l'unique but d'expérimenter de nouveaux bureaux plutôt que d'en fabriquer une fois pour toute pour le vendre et devenir le maître du monde. Bon, Wikipedia.org ne connaît pas le mot toyware, normal c'est moi qui l'ai inventé (parce que je suis un génie).
Historiquement il y a 5 types de ce genre de toyware, ils se distinguent principalement par le langage de programmation :
Les toywares lispeux. Ce genre (basé sur Lisp) très en vogue dans les années 1980 a aujourd'hui disparu. Il s'agissait de créer puis d'assembler les composants fondamentaux d'une IA super-évoluée et de mettre ces capacités à portée d'un clic de souris.
Les toywares smalltalkeux. Ce genre (basé sur Smalltalk) a encore beaucoup de succès. Il s'agit d'expérimenter de nouvelles interfaces ou de nouveaux paradigmes d'interactivité. Va voir du côté de Squeak.
Les toywares pascaleux. Ce genre (basé sur Oberon) est très lié à l'aura de Niklaus Wirth. Il s'agit de faire du componentware dans un langage fortement typé. Va voir du côté de ETH Oberon, existe aussi en version native (mais il faut un lecteur de disquette pour l'installer !!).
Les toywares linuxeux. C'est le genre le plus fécond, basé sur le noyau Linux et le langage C. Il y a trop d'exemples pour tous les citer. Par exemple Anubis, un projet inspiré de feu Amiga OS. Ou, plus mature, Enlightenment.
Les toywares lispeux-zombies. Ce 5ième genre (basé sur Haskell) consiste à repenser l'interactivité en termes de FRP (Functional Reactive Programming). Ne me demande même pas ce que ça veut dire si tu ne souhaites pas repeindre les murs avec ta cervelle !
Conclusion
Choisi d'abord le langage de programmation (obligatoirement 1 parmi ces 5 familles) et ça te dira quel type de "système d'exploitation" tu veux faire, comment le faire, où trouver des personnes qui font la même chose ...
Pour le language, je vais utiliser le C ou l'assembleur.
Je vais commencer par un systeme ' monotache'' (pour les ignorant comme moi dans certains cas, un systeme qui traite une fenêtre à la fois).
Ouah, c'est un projet ambitieux pour le moins ! De ce que je connais des systèmes d'exploitation, la partie graphique est l'une des plus complexes et instables que tu auras à réaliser.
Je te conseille donc de le réserver pour la fin quand tu auras déjà ton noyau en place. Par curiosité, à quel stade en es-tu ?
J'en ai fais un en Oberon 2 (toyware pascaleux).
Dans l'ordre j'avais implémenté :
un module de (dé-)sérialisation des objets
un module de gestion des I/O (graphisme, souris, clavier)
un module d'opérations sur les figures géométriques (intersection d'un rectangle avec 1 segment ou 1 rectangle, intersection d'une ellipse avec 1 segment, sélection d'un point et d'un segment avec la souris,...)
un module de fenêtrage et de contraintes d'affichages (zones d'affichages, dimensions min/max, alignements, panneaux structurés,...)
un module de résolution des contraintes d'affichages
En tout ça faisait environ 1000 lignes en Oberon 2.
Donc c'était un jouet.
Mais n'importe qui n'a pas forcément l'expérience pour réaliser ce genre de jouet.
Merci.
Au pire, je vais me debrouiller avec paint (qui est un mauvais logiciel) mais au moins , je pourraitavoir un apperçu de mon bureau