Système d'exploitation Winix
Winix est un système d'exploitation minimal, amateur, éducatif et de style UNIX pour le microprocesseur d'architecture Waikato RISC (WRAMP).
Inspiré du système d'exploitation Minix1, Winix comprend un noyau complet avec des fonctionnalités telles que la gestion des processus et de la mémoire, un système de fichiers en mémoire, le contrôle des exceptions et un shell bourne en espace utilisateur avec ligne de commande interactive. Et, pour vous amuser un peu, vous pouvez même jouer au jeu classique du serpent en tapant simplement snake
dans la ligne de commande.
Démo
Jouer au serpent
Utiliser Pipe dans le shell
Caractéristiques
- Gestion de la mémoire du noyau : mémoire virtuelle, mappage de pages
- Gestion des processus : thread du noyau, création de processus
- Contrôle des exceptions et gestionnaire d'interruptions
- Système de fichiers en mémoire prenant en charge la plupart des API POSIX
- Un shell Bourne prenant en charge plusieurs tuyaux et la redirection
- Gestion de la mémoire utilisateur : malloc() free()
- Coroutine utilisateur avec prise en charge
ucontext.h
- Dump Stacktrace, analyse des défauts de segmentation
Commandes prises en charge
- serpent
- coquille
- chat
- CP
- écho
- grep
- histoire
- ls
- mkdir
- mv
- ps
- mot de passe
- rm
- statistique
- test
- touche
- disponibilité
- toilettes
- df
- du
- dans
- queue
Test unitaire
essais
Comment courir
Téléchargez le dernier Rexsimulator à partir d'ici
NB mono
est requis pour fonctionner dans un environnement Linux/MacOS, télécharger les instructions
Téléchargez le dernier binaire WINIX winix.srec
à partir d'ici
Exécutez Rexsimulator.exe
Cliquez sur Quick Load
, sélectionnez winix.srec
Chargement de Winix
Comment compiler
L'environnement Linux NB est requis pour la compilation
Condition préalable
Debian/Ubuntu
sudo apt-get install xutils-dev gcc
Cloner et compiler
git clone https://github.com/halfer53/winix.git
cd winix
make -j $(( `nproc` + 2 ))
Conseils de débogage
Déboguer le Makefile
Semblable à Linux kbuild, Winix prend en charge l'option verbeuse, vous pouvez déboguer Makefile en définissant verbose sur 1
Noyau de débogage
kprintf()
: est votre ami.
trace
: tapez trace dans le shell pour imprimer tous les appels système sur le port série 2
Appel système pris en charge
- fois
- sortie
- fourchette
- fourchette
- exécutif
- Br
- alarme
- signature
- sigret
- attendre
- tuer
- getpid
- info
- erreur
- dprintf
- configuration système
- sigsuspendre
- en attente
- masque de signature
- setpgid
- getpgid
- ouvrir
- lire
- écrire
- fermer
- créer
- tuyau
- mknod
- chdir
- chown
- chmod
- statistique
- état rapide
- dup
- dup2
- lien
- dissocier
- getdent
- accéder
- mkdir
- synchroniser
- je cherche
- umask
- fcntl
- ioctl
- identifiant
- nanosommeil
- getppid
- signal
- sbrk
- statuts
- obtenircwd
- fourchette
- sétitimer
Crédits
Paul Monigatti