Challenge of handmade OS
Go to file
2020-08-30 19:19:19 +09:00
docs Add wine-windows.md 2020-08-30 19:19:19 +09:00
.gitignore フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
fb.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
fb.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
font.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
gdt.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
gdt.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
int_handler.s フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
interrupt.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
interrupt.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
io.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
io.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
LICENSE Add LICENSE 2020-07-25 09:09:36 +00:00
main.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
note.md Update note.md 2020-07-28 16:49:27 +00:00
README.md Update README.md 2020-08-30 18:06:39 +09:00
sprinkleos.dec フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
sprinkleos.dsc フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
sprinkleos.inf フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
text.c フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00
text.h フレームバッファ 割り込みの実装 2020-08-29 17:13:36 +09:00

必要そうなもの

OS の基本機能 (優先度順?)

  • メモリ管理
  • タスク管理
  • 入出力管理
  • CUI
  • ファイルシステム (ファイルシステムドライバとかをinitramfsみたいな形で持つ)
  • アプリの実行 (ELF形式?)
  • GUI (フレームバッファ)

アプリケーション開発に必要になりそうなもの

  • gcc / binutils / glibc移植

上記以外の機能

  • シェル
  • テキストエディター
  • ターミナル (CUI 脱却後)

あったらうれしいけど絶対実装が面倒な奴

  • Windows/Linux 互換ドライバーレイヤー
  • Windows/Linux 互換アプリケーションレイヤー (gcc移植には必須?)

参考になりそうな資料

ビルド方法

git clone https://github.com/tianocore/edk2.git
cd edk2
git clone https://gitlab.pepepper.cf/ecri/sprinkleos.git
. edksetup.sh
make -C BaseTools/Source/C
Conf/target.txtのACTIVE_PLATFORMをsprinkleos/sprinkleos.dscに TARGET_ARCHをX64に TOOL_CHAIN_TAGをGCC5に
build
出来上がったBuild/SprinkleOSX64/DEBUG_GCC5/X64/sprinkleos.efiを上手いこと起動