Un hobby OS pour m'aider à découvrir des trucs de noyau, pour éventuellement entrer dans le développement du noyau Linux. Actuellement, il prend en charge:
Je vise à rendre le code lisible et bien organisé. Un blog suit le développement de ce projet, ici https://jmnl.xyz/, et le wiki fournit plus d'informations sur le projet et ses internes.
Installez les packages suivants:
xorriso pour Debian / Ubuntu; libisoburn sur archlinuxgrubmtoolsimagemagickqemu (recommandé)bochs (facultatif)clang +, par exemple, base-devel sur Archlinux (facultatif)Courir
make toolchain
Pour construire le compilateur croisé nécessaire pour compiler des flocones de neige. Cette commande téléchargera et exécutera des scripts de construction pour gcc et binutils à partir de serveurs GNU FTP, et installe le compilateur croisé dans toolchain/compiler .
Au lieu de construire votre propre chaîne d'outils, vous pouvez compiler des flocones de neiges avec clang de votre système: tout simplement le groupe de lignes suivantes dans le principal Makefile :
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 Si votre distribution vous fournit un compilateur croisé, vous voudrez peut-être gagner du temps et l'utiliser. Pour ce faire, vous devez éditer les variables suivantes dans le Makefile principal afin qu'ils correspondent aux exécutables de votre compilateur croisé:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
Vous pouvez modifier HOST ou le code hardage directement les noms des exécutables.
Courir non plus
make qemu # or
make bochs
pour tester les flocones de neige dans une machine virtuelle. Voir le cycle d'édition / débogage pour plus d'options sur la façon de compiler et d'exécuter des flocones de neige.
Le test de ce projet sur du matériel réel est possible. Vous pouvez copier SnowflakeOS.iso sur un lecteur USB à l'aide de dd , comme vous le feriez lorsque vous faites un USB en direct d'un autre système d'exploitation, et le démarrer directement.
Notez que cela est rarement testé, qui sait ce qu'il fera :) J'adorerais en entendre parler si vous essayez ceci, sur quel matériel, etc ...
Les contributions sont les bienvenues, sous quelque forme que ce soit! Consultez CONTRIBUTING.md et le wiki de ce projet pour obtenir des conseils.