Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    skiftOS - Un système d'exploitation inspiré d'UNIX, fait main pour les processeurs intel x86.


    Un système d'exploitation inspiré d'UNIX, fait main pour les processeurs intel x86.

    GitHub



    Interface en ligne de commande de skiftOS

    Bonjour à tous !

    Je m'appelle Nicolas, j'ai 21 ans, je suis belge et je fais un bachelier en informatique de gestion. Je suis ici pour vous présenter le fruit d'un peu plus d'une année de travail : skiftOS.

    Présentation et avancement

    skift est un système d'exploitation que j'ai commencé à écrire dans le but d'apprendre le C, la programmation système, et l'architecture et implémentation d'un SE. Il est composé d'un noyau nommé hjert, de librairies (libsystem, libwidget, libterminal, etc), des commandes de base inspirer d'UNIX (cat, ls, cd, sh, ...) et d'un environnement graphique (WIP).

    Au cœur de skiftOS il a hjert, un noyau monolithique fonctionnant en multitâche préemptif avec pagination qui est capable de charger des applications au format ELF.

    Le système dispose de plusieurs librairies dont :
    • libsystem: qui effectue la communication qui fournit les APIs de base (gestion des processus, système de fichier, communication, ...);
    • libcompat: pour faciliter le portage d'application existante en fournissant une interface POSIX ce qui devrais permettre dans le futur de porter des programme comme bash, make ou gcc;
    • libgraphic: pour le rendu de graphisme en 2D notamment utiliser par libwidget;
    • libwidget: création d'interfaces graphiques (boutons, fenêtres, etc.)


    Il peut faire tourner DOOM


    Le portage de DOOM est possible grâce à `libcompat` et doomgeneric ([code source du portage](https://github.com/skiftOS/port-doom))

    Objectifs

    Mon objectif initial d'apprendre le C est atteint je crois, mais voici d'autre objectif que j'aimerais biens accomplire:
    • Des tests automatiques, car actuellement, je testes tout à la main, pour commencer les syscalls puis libsystem.
    • Un bureau avec barre des taches, explorateur de fichier, etc
    • Une pile réseau, de quoi faire des pings, télécharger des fichiers depuis HTTP ^^
    • Supporter d'autre architectures notamment ARM


    Tester le système

    Vous pouvez télécharger l'ISO du système depuis GitHub

    Je vous recommande d'utiliser QEMU pour tester le système, mais VirtualBox est aussi supporté.
    Vous pouvez aussi l'essayer sur votre propre machine en créant une USB bootable, mais c'est à vos risques et périls :p

    QEMU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qemu-system-x86_64 -cdrom bootdisk.iso -m 256M -serial mon:stdio -enable-kvm
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qemu-system-i386 -cdrom bootdisk.iso -m 256M -serial mon:stdio -enable-kvm
    VirtualBox
    • Generique 32bit
    • Minimum 256MB de RAM
    • Pas besoin de disque dur


    Contribuer

    Je vous invite à faire un petit tour sur le GitHub et me donner votre avis sur mon code, je suis encore un débutant en C donc tout les critiques sont bonnes à prendre Si vous voulez m'envoyer une pull request je me ferais un plaisir de la merge

    Bonne journée et merci de m’avoir lu

  2. #2
    Responsable 2D/3D/Jeux

    Félicitations !
    Impressionnant !

    Le DOOM, il rame quand même un peu, non ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    @LittleWhite Oui, le système avait quelques problèmes de timing qui fessaient que le jeu tournais plus lentement que normal. Et aussi que mon pc est un vieux thinkpad qui n'est pas non plus très rapide et encore moins avec OBS.