趣味のOSは、カーネルのものについて学ぶのに役立ち、最終的にLinuxカーネルの開発に入ります。現在、サポートしています:
私は、コードを読みやすく、よく組織化することを目指しています。ブログは、このプロジェクトの開発に続きます。ここでhttps://jmnl.xyz/で、Wikiはプロジェクトとその内部に関する詳細情報を提供しています。
次のパッケージをインストールします。
xorriso ; Archlinuxのlibisoburngrubmtoolsimagemagickqemu (推奨)bochs (オプション)clang +開発パッケージ、例:Archlinuxのbase-devel (オプション)走る
make toolchain
スノーフレケをコンパイルするために必要なクロスコンパイラーを構築するため。このコマンドは、GNU FTPサーバーからgccおよびbinutilsのビルドスクリプトをダウンロードして実行し、 toolchain/compilerにクロスコンパイラをインストールします。
独自のツールチェーンを構築する代わりに、システムのclangでスノーフレケスをコンパイルできます。メインMakefileの次のグループのグループを単純に除外してください。
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 ディストリビューションがクロスコンパイラを提供する場合は、時間を節約して使用することができます。そのためには、メインMakefileの次の変数を編集して、クロスコンパイラの実行可能ファイルと一致するようにする必要があります。
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
HOSTを編集するか、実行可能ファイル名を直接ハードコードすることができます。
どちらかを実行します
make qemu # or
make bochs
VMで雪片をテストする。スノーフレケスをコンパイルして実行する方法については、編集/デバッグサイクルを参照してください。
本物のハードウェアでこのプロジェクトをテストすることは可能です。別のOSのライブUSBを作成するときと同じように、 ddを使用してSnowflakeOS.iso DDを使用してUSBドライブにコピーして、直接起動できます。
これがテストされることはめったにありません。誰が何をするかを知っています:)これを試してみると、どのハードウェアなどを試してみたいと思います...
貢献は、どんな形でも大歓迎です! CONTRIBUTING.mdとこのプロジェクトのWikiをガイダンスについてご相談ください。