Qu'est-ce Cpcdos ?

Cpcdos est un projet de co-noyau modulaire multitâche 32 bits, visant à simplifier le développement de vos projet de système d'exploitation, tout en privilégiant l'interface graphique.

Ce projet grauit inclut principalement le langage de programmation CpcdosC+ pour simplifier la programmation d'OS et d'application, puis le, C/C++ 98,11, 14, 17 (Lua, python, et html/css à venir) pour les amateurs avertis. Le tout dans un style terminal/lignes de commandes et avec ou sans interface graphique, à votre choix!

Interface visuelle


Utilisant des procédés générique VESA, VGA, SVGA, vous pourrez attribuer des résolutions d'écran supportés par votre carte graphique et moniteur.

Les résolutions suivantes

  • Standard 4:3 comme 800x600, 1024x768 ...
  • Haute définition 16:9, 16:10 comme 1920x1080, 1600x900
  • 4K ... à voir ;)

Les profondeurs de couleurs

  • 16 bits (65 536 couleurs)
  • 24 bits (16 777 216 couleurs)
  • 32 bits (4 294 967 296 couleurs)

Vous pourrez créer des fenêtres, des boutons, des picturebox, des bloc de texte, des textbox, des checkbox, des slidebar, des progressbar... créer vos interactions graphiques, des évenements à la volée, des animations... c'est-à-dire tout ce dont un système d'exploitation a besoin pour interagir avec l'utilisateur.
Nous avons en projet de rendre compatible le parsing des fichiers graphique XAML de Microsoft Visual Studio pour pouvoir la créer AUSSI depuis ce dernier.

Mémoire

Etant un système 32 bits, Cpcdos est théoriquement capable de supporter 4 Giga octets de RAM (Cela dépend de si vous avez une mémoire graphique dédiée ou non), ce qui suffit largement pour le moment. Le noyau seul en exécution consomme en moyenne 2 à 30 méga octets de RAM.

Ce noyau gère partiellement tout seule sa mémoire (En expérimentation).
En effet, en vue de la séparation avec le boot FreeDOS, l'allocation mémoire doit être gérée uniquement par Cpcdos. A ce jour, toute la partie interne (Shell, client, serveur tcp,udp, threads, processus, interface graphique, bitmaps RGBA, 3D engines) est soumise à l'allocation mémoire de cpcdos, excepté la LLVM.

Système

De manière approfondi, Cpcdos est capable de gérer une infinité de threads, processus, leur temps d'exécution se compte en microsecondes selon leur priorité d'execution. Il permet aussi d'exécuter du code natif "externe".

Executer du code natif externe.

Voilà d'où vient la notion du «noyau modulaire». Cpcdos est capable de charger et d'exécuter de manière dynamique une infinité de modules (Bloc de code/d'instruction x86) venant de l'extérieur du noyau et de créer des liaisons. Cela peut être des programmes dans des fichiers compilés tels que des exécutables Windows .EXE, .DLL, LLVM/Clang ou bien des drivers.

Il gère également son propre langage de programmation "à double syntaxe" sous le nom de CpcdosC+. C'est-à-dire qu'il est possible d'utiliser à la fois la syntaxe (FR) francophone et (EN) anglo-saxon ou bien les deux ! Il a la particularité de simplifier et d'automatiser l'exécution de séquences de code compliqué à gérer pour les débutants.

Petite innovation, Cpcdos est capable d'exécuter plusieurs OS en parallèle (Aucune virtualisation). Il est également possible de switcher entre les OS exécutés et à l'avenir de fenêtrer l'OS en arrière plan.

Cpcdos est actuellement capable de gérer de manière autonome

  • L'interface visuelle au pixel près
  • Multi-OS
  • Rendu 3D via GZE Engine/OpenGL
  • Curseur graphique
  • Lecture des images bmp, jpg, png, gif
  • Lecture et écriture des fichiers.
  • Caractères UTF-8
  • Polices d'écritures
  • Ping ICMP
  • Client/Serveur UDP/TCP, TELNET et HTTP
  • Protocoles Client/Serveur HTTP, FTP (en cours)
  • Langage CpcdosC+, POO, Fonction(), routines, variables, calculs, exécution de code
  • Mémoire RAM
  • Garbage collector
  • Gestionnaire des tâches
  • LLVM (Low-Level-Virtual-Machine)
  • Chargeur d'exécutable Win32 PE
  • Mémoire virtuelle
  • BIOS APM v1.0 v1.1 v1.2+ (Advanced Power Management)
  • Multi-threading
  • ISR
  • etc...

Réseau