Le nouveau kernel Cpcdos OSx 2018 maintenant disponible !
Le co-noyau 32 bits qui vous permet de créer votre propre système d'exploitation en toute simplicité
Cpcdos OSx
Version OS2.1 Bêta 1.0
by SPinti Software(tm)
Bonjour à tous !
Notre communauté a le plaisir de vous informer qu'après 3 ans de silence, le projet de Cpcdos revient à la charge !
GenèseLe projet Cpcdos, créé en Juillet 2011, est un projet
gratuit de
co-noyau 32 bits modulaire multi-tâche préemptif compatible sur tout système type PC Intel/AMD x86.
Ouvert à tous les débutants passionnés par le développement de systèmes d'exploitation 32 bits, il est capable d'afficher une interface graphique HD, un moteur 3D, d'exécuter plusieurs tâches, de communiquer sur le réseau, d'exécuter quelques applications Windows et LLVM et, cerise sur le gâteau, exécuter plusieurs systèmes d'exploitation en parallèle.
Écrit en Assembleur x86, C/C++ et FreeBasic/GAS, embarquant ses propres fonctionnalités:
Shell, Réseau, Mémoire, Multi-threading... Cpcdos est passé de
80% à
20% de dépendance à FreeDOS,
0% Linux 0% Microsoft, une évolution qui a permis de se faire remarquer auprès des développeurs passionnés notamment dans un public jeune, le but étant de devenir totalement indépendant. Ce co-noyau a la particularité d'être
simple d'utilisation, les syntaxes et messages sont en Français ou Anglais, il embarque son propre langage de programmation, interprêtable, sous le nom du CpcdosC+
Initiales CC+/CCP pour simplifier le développement des applications et de systèmes d’exploitation 32 bits.
Vous pourrez développer un système serveur avec ou sans interface graphique, ou bien un système purement graphique... C'est votre choix!
Une grosse partie de Cpcdos est Open-Source, mais est pour le moment réservée aux membres du
groupe Ultima Test. Il s'agit de Cpcdos SDK, ce qui vous permet de programmer nativement vos propres modules et votre propre "CPCLDR" du noyau. Le groupe est encore ouvert, et ce SDK sera prochainement hébergé sur GitHub.
Le terme exact --> Cpcdos
n'est pas un "
noyau" ni un "
système d'exploitation" mais bien un "
co-noyau" car il dépend
encore de FreeDOS. Même si c'est une toute petite partie,
le terme "noyau" ne verra pas le jour tant qu'il ne sera pas totalement indépendant de FreeDOS. C'est au projet ! Beaucoup de routines ont déjà été réécrites. Cpcdos gère sa propre segmentation de mémoire, ses privilèges, ses tâches, etc... beaucoup de temps mis en œuvre, il devient par conséquent beaucoup plus autonome que les précédentes version.
Info : Les premières versions du système ReactOS sont partis sur le même principe.
Quoi de neuf ?En effet, durant ces 3 années de silence, le projet a entièrement été réécrit à la base afin de faire face aux multitudes de bogues et de fonctionnalités limitées de la dernière version sortie en février 2015. Ce projet revient avec des objectifs beaucoup plus ambitieux. Cette refonte totale du projet a permis de perfectionner les points suivants :
- Le langage CpcdosC+

Maintenant en version 3, de plus en plus proche de la programmation orientée objet, (pour rappel) le CpcdosC+ est le langage haut niveau, natif, pré-compilant du noyau à double syntaxe, Française et Anglaise; d'une extrême simplicité, elle vous permet de développer vos programmes, votre système d'exploitation 32 bits, et toute la configuration bas niveau jusqu'à l'interface graphique du noyau.
Un programme Client C++ pour se connecter à un serveur TCP, envoyer et recevoir un message peut faire de 30 à 80 lignes de codes. Alors qu'en CpcdosC+ le même programme prendra seulement 8 à 10 lignes de code. Imaginez alors pour un OS ! 
De plus, ce langage introduit les notions de "Fonctions" et de "Variables" avec des niveaux de visibilités, des évènements graphiques KeyPress, MouseEnter, MouseMove, MouseLeave, MouseClic ..., des commandes graphiques tout comme des commandes réseaux et système.
Il est possible de programmer avec du C++, voir section système.
- L'interface graphique

Toutes les résolutions natives de votre carte graphique sont supportées. Les plus courantes sont 800x600, 1024x768, 1600x900, 1920x1080
Les couleurs au choix entre 16, 24 et 32 bits, transparences. Elle devient cette fois-ci beaucoup plus personnalisable : tous les éléments graphiques sont modifiables tout comme les fenêtres, boutons, checkbox, picturebox, textbloc, textebox, progressbar, messagebox... Les formats des fichiers d'images tels que JPG, JPEG, PNG, JFIF et MJPG (Pour flux vidéo) sont supportés.
La GUI, tout comme le reste du système, peut être découpéé sous plusieurs threads, et plusieurs processus. Si un processus/thread crash, ou est bloqué dans une boucle, ceci n'impacte pas le reste du système, le thread/processus bloquant peut être fermé sur demande.
- Le moteur 3D

Sous GZE ou bien OpenGL mesa, Cpcdos est capable d'afficher des rendus 3D avec un moteur sur un ou plusieurs threads.
Exploit 2 : Scène 3D plein écran
Les performances ne sont malheureusement pas optimales. Malgré la bonne gestion de la VRAM, le rendu se fait 100% sur le CPU et, selon la résolution de rendu choisie, les performances réelles pour 24bits peuvent varier dans les 60 FPS pour 400px, 20 FPS pour 600px, 10 FPS pour 800px et 5 FPS pour 1080px.
Autre problème, le moteur 3D est très grincheux, ne supporte pas beaucoup de PC récent...GRRR!
- Le réseau

Précisément la couche 3 du modèle OSI, le réseau est désormais géré par Cpcdos et non FreeDos/NDIS2. Une avancée majeure, notamment dans la répartition des tâches multi-thread et la possibilité de contrôler son système à distance depuis votre téléphone ou depuis votre PC ou bien depuis un port COM Série RS232. Vous pouvez ouvrir un serveur TCP/UDP en mode Normal, Telnet, Echo. Il est possible de télécharger des fichiers WEB depuis une URL via le protocole HTTP1.1 désormais nativement géré par Cpcdos. Vous pourrez donc faire des requêtes HTML, PHP, des WebServices.. Tout! Le protocole FTP sera très bientôt mis en place!
En plus du Telnet, vous pourrez également contrôler/débugger votre système depuis les ports COM Série RS232 avec putty ou un terminal quelconque!
- Le système

- Noyau de nouvelle génération, capable d'exécuter en parallèle plusieurs systèmes d'exploitation ! Les performances restent correctes. Il est possible de "switcher" sur un autre OS et sur l'interface graphique d'un OS à l'autre en 1 commande!
Un CPU du type Intel PENTIUM 4 minimum et au moins 256 Mo de RAM est recommandé !
Exploit 3 : Présentation brève + Test multi OS
- Gère une multitude de threads, ce système préemptif exécute les tâches en se basant sur une horloge en micro-secondes. Les priorités sont automatiquement gérées par le système. Par exemple si vous exécutez un serveur TCP MAIS qu'il n'y a aucune activité, alors le système va prioriser les autres tâches. Et vice versa!
Info : La préemption est "désactivée" sur les modules externes. Sous-entendu que les .exe, .bc, et routines C++ sont exécutés en mode "Section critique" pour combler temporairement les crashs liés à une mauvaise gestion de la mémoire virtuelle de Cpcdos et sauvegardes/restaurations des contextes des tâches.
- Étant modulaire, vous pouvez programmer des modules en C++ et y compiler en .exe (Win32 PE) ou en .bc/.LL (Clang/LLVM) à la fois compatible sur Windows, Ubuntu, Debian... Mais aussi Cpcdos ! Et oui Cpcdos supporte nativement les exécutables Windows et Clang. A condition de limiter le plus possible des dépendances Windows. L'idéal est donc des applications type console, évitez le .NET, utilisez les IDEs tel que Code::Block, WinDev avec si possible le compilateur GCC/GPP 32 bits.
Autrement, pour éviter tout problème de compatibilité, nous avons packagé des outils de compilation C++ Win/Cpcdos préconfigurés, proposés sur le site web de Cpcdos. Il contient également une version du compilateur CWC par Michael BANVILLE spécifiquement pour Windows&Cpcdos où vous pouvez "sectionner" du code Cpcdos et Windows séparément.
- La mémoire

Théoriquement 4Go de RAM, les allocations, désallocations, gestionnaires de bitmaps sont désormais gérés par le système. Comme une "surcouche virtuel" au-dessus de FreeDos, les performances sont raisonnables, malheureusement rien n'est parfait, certains PC crashs mystérieusement.
Cpcdos embarque son propre Garbage collector, toutes les instances et bitmaps sont référencés par un numéro de handle parent. Si ce dernier n'existe plus, il sera supprimé automatiquement de la mémoire si le développeur oublie de le supprimer lui-même.
Quelques Screenshots
Tout ça c'est bien, mais avec des photos c'est mieux 
Exemple d'un OS --> Test de la transparence d'une fenêtre et d'une image PNG sur une autre.

Serveur internet Cpcdos On Line

Scène 3D OpenGL plein écran
Revoir les médias suivant
Exploit 2 : Scène 3D plein écran
Téléchargement & Informations
Remerciements
Nous remercions
* Tous les adhérents au groupe Ultima Test et aux contributeurs tiers dont Esteban CADIC et son Discord, cités dans le manuel PDF en page 110.
* Simon MICHENAUD pour l'hébergement et la mise en place du nouveau site web.
* Charline GOYET, Lionnel SARRAZIN, Alexis BELMONTE, Jerôme SENEZ pour les corrections, rédactions & traductions du site web.
* Michael BANVILLE pour son moteur 3D Gze et sa précieuse aide du support Win32 et LLVM.
* Aux personnes présentes pour répondre aux problématiques Cpcdos du forum Developpez.net.
* A la communauté du monde entier et leurs encouragements.
Partager