Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


skiftOS: Un système d’exploitation fais main et avec amour :3

Partagez
avatar
TheMonax
Nouveau
Nouveau

Masculin Nombre de messages : 64
Age : 19
Localisation : Ma maison :D
Emploi/loisirs : Développement sous SZ 2014, VB.NET, C, C++, C#, LUA
Humeur : Il fais un peu chaud dans mon pays mais aussi non ça passe :)
Date d'inscription : 15/03/2014

skiftOS: Un système d’exploitation fais main et avec amour :3

Message par TheMonax le Lun 6 Aoû 2018 - 1:07

Bonjour, je m’appelle Monax et vous vous souvenez surement de moi pour LoozerOS.
J'ai maintenant 19 ans et ressassement j'ai fait un peu de tri dans mes favoris et je suis retombé sur ce bon vieux forum velersoftware.
Et je me suis dit "Tiens, et si je leur parlais de mon projet actuel en plus il est écrit avec Visual Studio code donc sa compte ? non ? Razz "



skiftOS


skiftOS est un système d'exploitation pour CPU x86 32bit entièrement écris a la main en C.
 Il ne dépend ni de Windows, ni de linux, ni de rien du tout en fait.
L' objectif est de ce projet est l'apprentissage du fonctionnement détailler d'un système d'exploitation.


"Oui sa un peu moins de classe que la version original écrite en VB.NET Embarassed"

"L'écran de panic du système, c'est un peu l’équivalent d'un BSOD"


Histoire
[En rédaction]


"LoozerOS écrit avec SoftwareZator puis porter vers VisualStudio 2010 (2013-2014)"



"SkiftOS réécriture de LoozerOS en full VB.NET (2014-2015)"


Fonctionnalités
Le système est encore à ces premiers pas de bébé car il n'est en développement que depuis un mois, mais il est déjà capable de:

 - initialiser le CPU (GDT, IDT, IRQ, ...)
 - gérer la mémoire physique et virtuelle avec la pagination.
 - faire du multitâche préemptif avec ordonnanceur.
 - quelque driver (disk, port série et vga en mode texte) 

Il dispose aussi de sa propre libc.


Roadmap
Les objectifs a moyen et long terme sont:
 - écris un système de fichier.
 - charger et exécuter des programmes utilisateurs au format ELF (https://wiki.osdev.org/ELF).
 - écrire un shell comme bash(GNU/LINUX) ou sh(UNIX)
 - être compatible POSIX pour pouvoir porter certain utilitaire UNIX/LINUX pour mon système (genre VIM, GCC,...).
 - résaux ? TCP?, IP?, HTTP? 
 - écrire un bootloader pour ne plus dépendre de grub?
 - un site internet ?

Outils de développement
 - GCC: compilateur C
 - NASM: assembleur
 - QEMU: machine virtuelle x86
 - IDE: Visual Studio Code
 - GDB: débogueur


Téléchargements
Code source sur github
ISO virtual box (Indisponible pour le moment)

Comment compiler le système - /!\ Ubuntu 18.04 est recommander.
0. cloné le repos git 
Code:
git clone https://github.com/maker-dev/skift
cd skift

1. Dépendances
- Une environnement Linux (Ubuntu ou Windows subsystem for linux)
- Make, build-essential, NASM, binutils, qemu
- bison, flex, libgmp3-dev, libmpc-dev, libmpfr-dev, texinfo
Code:
apt install build-essential nasm binutils bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo qemu

Code:
dnf group install "Development Tools" "C Development Tools and Libraries"


2. Mettre en place la chaîne d'outils (peu prendre 5min donc faites-vous un bon café Wink )
Code:
make toolchain

3. Compiler le noyau
Code:
make

4. Démarer le système avec qemu
Code:
make run


Remerciement
 - Blackorion35 : sans qui je ne me serais jamais mis à la programmation sans ces videos de MantrixERS qui m'ont beaucoup inspiré pour créer LoozerOS puis SkiftOS.

Merci d'avance pour vos retours Smile

    La date/heure actuelle est Sam 18 Aoû 2018 - 6:42