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 ? "
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. C.A.D que c'est un vrais système d'exploitation qui démarre nativement.
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 "
"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é )
- 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