「30日間の自家製オペレーティングシステム」(川崎Hikaruによって書かれた)コード適応をサポートしています。著者は一連の標準のツールを使用したため、自分自身を書いて非窓のプラットフォームで実行できませんでした。このプロジェクトは、NASM、GCC、QEMU、その他のツールを使用して、元のコードに基づいてコンパイルおよび実行します。
このプロジェクトは、0〜28日目の内容(28日目の日本のディスプレイ部分を除く)を完了し、プロジェクトの主な実装が完了しました。本の最後の2つの章の内容はよりアプリケーション指向であるため、このプロジェクトでは実装されていません。興味のある友人は、以前に基づいてそれを完了し続けることができます。
nasmgccbinutilsqemu-system-i386mtoolsgdb (デバッグの使用)デフォルトのXcodeコマンドラインツールは、GCCをMACOSのClangのエイリアスとして使用します。 Clangはこのプロジェクトの実装ではテストされておらず、問題がある可能性があります。
MACの下でのコンパイルにx86_64-elf-gccツールチェーンを使用することをお勧めします。 brew install x86_64-elf-gcc x86_64-elf-binutils x86_64-elf-gdb使用してインストールできます。
対応するフォルダーを入力し、次のコマンドで実行します。
$ make qemu
# 若使用工具链包含前缀,如x86_64-elf-,可以使用GCCPREFIX
$ make qemu GCCPREFIX=x86_64-elf- GDBを使用してデバッグするには、 DEBUGを設定します。
$ make qemu DEBUG=1app :アプリケーションソースコードinclude :システムカーネルヘッダーファイルkernel :システムカーネルコードlibc :Simple C標準ライブラリの部分実装strcmpstrncmpXV6の実装を参照してください:
vsprintfsprintf「Cプログラミング言語」から:
randこのプロジェクトは、29日目と30日目からコンテンツを追加し続けることはありません。興味のある友人は、後続の章を読み続けることができます。
io_stihltの代わりにio_stiを使用すると、タイマーの実行が止まります__allocaは28日目に無効で、 sosu2実行できませんプロジェクトのコードの著作権は、主に元の著者に属します。直接実行できない部品のコードを部分的に変更するだけです。