0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C言語で作る学習用32ビット簡素OS

0
Last updated at Posted at 2025-12-13

初めに

C言語を用いて32ビットのOSを開発します。

一般的なOSは、呼び出しの流れが複雑で、マクロや抽象層が多く、ソース間の関係も入り組んでいます。そのため、どのコードがどこから呼ばれているのか追いにくく、全体の動作を理解するのが難しい場合があります。

そこで本OSでは、なるべく構造を簡素に保ったOSを作り、誰でもOSの仕組みを直感的に理解できることを目指しています。学習や実験のための教材として活用できるよう設計しています。

以下の目次にOSに関する記事をまとめています。
https://qiita.com/earthen94/items/b5d77f98f0cf85a13346

ソースは以下に載せています。

記事投稿時点:
https://github.com/ooe1220/KansoOS/tree/553801f2a9bdbd7df615f781f2791e90427c1791

最新:
https://github.com/ooe1220/KansoOS

起動した様子

d086b880315578.jpg
668689d7b2de08.jpg

OS構成

構成
├── build # ビルド後の成果物はここに生成される
├── build.sh # ビルド用スクリプト
└── src
├── arch
│ └── x86 # CPUや割り込み制御、ハードウェア操作のコード
│ ├── cmos.c
│ ├── cmos.h
│ ├── console.c
│ ├── console.h
│ ├── init.c
│ ├── init.h
│ ├── io.h
│ ├── pic.c
│ ├── pic.h
│ ├── rtc.c # 時間取得関連
│ └── rtc.h
├── boot
│ └── boot.asm # ブートローダ
├── kernel
│ ├── kernel.c # カーネル入り口
│ └── switch32.asm # CPUを16bit→32bitへ切り替えてkernel.cを呼び出す
├── lib
│ └── stdint.h # 標準整数型定義
└── linker.ld # メモリ配置やリンク方法を指定

ビルド手順

KansoOS/直下にbuildフォルダを作成し、./build.shを実行します。
生成されたdisk.imgをエミュレータもしくは記憶媒体に書き込んで実機から起動します。
最近のOSはUEFIから起動している為、実機から起動する場合はBIOSの設定を開いてレガシーBIOSへ変更してから起動して下さい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?