30日でできない 自作Linuxクローン開発
この記事は 自作OS Advent Calendar 2014 - Adventar 12/25の記事です。
一ヶ月程前からLinuxカーネルのコードを読み始めたので、解読ついでに自分でもカーネルを作ってみました。
とはいっても、まだ半分も完成してないです() 当初は、30日でできる 自作Linuxクローン開発 を予定していたのですが、
予想以上の規模で、解読とフルスクラッチ開発を併行するのは結構大変でした...
という訳で、現在実装できている所まで紹介します。
開発レポジトリはこちらです。
RKX1209/Abyon · GitHub
(インストール方法や実行方法はここに書いてます)
実装した機能
そのうち実装する予定の機能
- シグナル
- Slabアロケーター
- セマフォ
- VFS
- 各種ドライバ
- TCP/IP
- 簡易X Window System
Linuxカーネル理解のために開発した物なので、当然設計も実装も
殆どLinuxと同じ物になっています。
が、本家と違い、例えばSMPやNUMAといったアーキテクチャへの考慮や、初期化時のメモリ調査などを
かなり怠っています。またメモリのレイアウトもかなり大雑把で、32bit境界ギリギリにカーネル本体を
置いて、仮想とストレートに対応させているだけです。HIGHMEMも実装してません。
あくまで理解のためという名目なので、コードもそんなに長くないです。(現在約5000行)
まあこんな感じで割といい加減なカーネルなのですが、教育目的には充分使えるんじゃないかなぁと思います。
なにせ本家はかなり規模が大きいので....
参考書籍,サイト
最後に、Linux解読と自作カーネル開発にあたって参考にさせてたいただいた書籍、サイト
を紹介します。もしカーネルや自作OSに興味がある方は参考にしていただけると嬉しいです。
書籍:
(Linux解読ならこの二冊が定番だと思います。)
Amazon.co.jp: Linuxカーネル2.6解読室: 高橋浩和, 小田逸郎, 山幡為佐久: 本
(UNIX解読から始めたい方用です)
Amazon.co.jp: はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus): 青柳 隆宏: 本
(自作OS入門書の定番。ご存知 川合先生の書籍です。)
Amazon.co.jp: 30日でできる! OS自作入門: 川合 秀実: 本
サイト:
(Linuxカーネルのコードが一つ一つとても細かく説明されています。効率良く解読を進められると思います)
LKH-jpの概要 - LinuxKernelHackJapan
(19日の記事を担当されていたyabusameさんのサイトです。自作OSを開発する際は絶対に読むべきです。本当に素晴らしいサイトです)
0から作るOS開発
(こちらもyabusameさんのサイトです。x86命令でここまで詳しく載っている日本語資料は(仕様書以外で)ここしかないです。有り難うございます)
Tips IA32(x86)命令一覧
(OS開発wikiです。開発ノウハウや周辺機器の仕様が載っています)
Expanded Main Page - OSDev Wiki
FrontPage - OS-Wiki
FrontPage - OS-Wiki
(言わずもがな、最終兵器intel SDMです。得にIA-32下巻が役立ちます)
日本語技術資料のダウンロード
私の記事はここまでです。読んでくださって有難うございました!
皆様良いお年を。Happy Hacking~!