組込みosを 作ってみよう! - ospn · 2009/12 電設部の勉強会で紹介 2009/12...
TRANSCRIPT
![Page 1: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/1.jpg)
組込みOSを作ってみよう!
坂井弘亮(KOZOSプロジェクト)
![Page 2: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/2.jpg)
1997年頃 プログラミングに傾倒 X Window System プログラミング オブジェクト指向プログラミング OSに興味を持つ1999年 就職 組込みシステムに興味を持つ2007年 自作組込みOS「KOZOS」の開発を 趣味で開始2009年 OSC出展 KOZOSを実ボードに移植
略歴
![Page 3: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/3.jpg)
KOZOSの近況2009/09 秋月のH8,SH2ボードに移植2009/10 OSC2009Tokyo/Fall出展2009/12 電設部の勉強会で紹介2009/12 組込みOS自作本を執筆開始2010/01 書籍用にソース整理、公開2010/05 組込みOS自作本出版2010/06 OSC2010Hokkaido出展2010/07 OSC2010Kansai@Kyoto出展2010/08 OSC2010Nagoya出展
![Page 4: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/4.jpg)
組込みOSを作る前に...
そもそも「組込みOS」って何?
![Page 5: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/5.jpg)
組込み機器で動作するOSです
![Page 6: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/6.jpg)
こんなのの上で動くOSです
ボードコンピュータっていいます
こんなのとか こんなのとか
![Page 7: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/7.jpg)
いわゆる「PC」で動作する
OSではありません
![Page 8: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/8.jpg)
組込み機器のソフトウエア開発
![Page 9: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/9.jpg)
メモリ容量が数KB~数百MBそれでもひとくくり
![Page 10: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/10.jpg)
お金で例えるなら...2千円しか持って
いない人もいれば、2億5千6百万円持っている人も
![Page 11: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/11.jpg)
混沌とした世界です
![Page 12: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/12.jpg)
組込み機器でも「OS」って
必要なの?
![Page 13: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/13.jpg)
例えば...コマンド応答プログラムを考えてみよう
![Page 14: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/14.jpg)
・送受信割込み・コマンド処理スレッド・文字出力スレッド・アイドルスレッド
これだけの動きでも
![Page 15: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/15.jpg)
![Page 16: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/16.jpg)
炊飯器にもOSは必要か?
![Page 17: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/17.jpg)
(実演)OSが無いとは
どういうことか?
![Page 18: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/18.jpg)
組込み機器といえど
資源を有効利用したいならばOSは必要!
![Page 19: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/19.jpg)
・CPU・メモリ・I/O
「資源」とは何か?
![Page 20: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/20.jpg)
・CPU時間の割当て (スレッド管理)・メモリ管理・I/O管理 (デバドラと割込みの管理)
(坂井が考える)「OSの最低条件」
![Page 21: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/21.jpg)
組込みOSと汎用OS
![Page 22: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/22.jpg)
・汎用機器 ワークステーション、PC (そのままでは役立たず、 アプリを入れて使う)
・組込み機器 携帯電話、カーナビ、炊飯器、 電子レンジ、プリンタ、自動車... (アプリは製品の一部であり ユーザは意識しない)
![Page 23: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/23.jpg)
・汎用OS Windows、Mac、Linux、 *BSD、Solaris...
・組込みOS μITRON、VxWorks、 uClinux、OSEK...
![Page 24: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/24.jpg)
汎用機器と組込み機器の決定的な違い
ユーザがアプリを自由にインストール
するかどうか
![Page 25: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/25.jpg)
「バグのあるアプリ」「悪意のあるアプリ」
「わがままなアプリ」がインストールされるかも
しれない!
汎用機器に必要なこと
![Page 26: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/26.jpg)
汎用機器に必要なこと
「他のアプリに悪さをせず」「すべて平等に」そのために...・仮想メモリ、メモリ保護・TSSによるスケジューリング・ファイルシステム
![Page 27: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/27.jpg)
組込み機器に必要なこと
ある処理の最中なのに、突然別の処理が必要になるかもしれない!
![Page 28: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/28.jpg)
組込み機器に必要なこと
「応答性を保証したい」「タスクを優先度づけしたい」「リアルタイム制御を行いたい」そのために...・優先度によるスケジューリング・リアルタイム性の提供
![Page 29: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/29.jpg)
アプリも含め、ひとつのシステムとして閉じられるので・おかしなアプリがインストール されることはない!・おかしなアプリがいたら、 アプリ側を直すべき!・システム全体に渡っての調整 が可能(優先度など)
ただし組込み機器では
![Page 30: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/30.jpg)
汎用OSは「性悪説」に組込OSは「性善説」に
もとづくOSです
![Page 31: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/31.jpg)
組込みOSを作ってみよう!
![Page 32: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/32.jpg)
「OS自作」はホビープログラミングの題材として最適です!(いろいろな知識が身につきます)
![Page 33: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/33.jpg)
必要な知識...コンパイラ、リンカ、アセンブラ、ローダ、メモリ管理、I/O操作、ブートストラップ、CPU、スレッド、システムコール、ライブラリ、クロス開発、割込み、スタック、...
![Page 34: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/34.jpg)
「OS自作」すれば、これらの知識がぜんぶ身について
とってもお得!
![Page 35: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/35.jpg)
組込みOSで遊んでみたいが
敷居が高い!
![Page 36: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/36.jpg)
まず考えなければならないこと
![Page 37: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/37.jpg)
ターゲットボードを何にするか?
![Page 38: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/38.jpg)
各種CPUの評価ボード
商用コンピュータボード
Linuxサーバ向けボード
![Page 39: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/39.jpg)
まず、高い
フラッシュROM書き込みの問題
高機能すぎる
開発環境は?
ブートローダーは?
![Page 40: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/40.jpg)
実話1
○○万円です!
ボードが高い!
展示会場で...
このボード、個人購入でいくらくらいですか?
![Page 41: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/41.jpg)
開発は何で進めるんですか?
当社の○○を使っていただきます!
実話2 展示会場で...
開発環境が高い!(○○万円)
![Page 42: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/42.jpg)
OSは何をいじってみるか?
![Page 43: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/43.jpg)
そもそもOSが高い!
本書で利用しているOSは××で、個人でも購入可能な価格です!
ずばり、○万円です!
実話3 書籍で...
![Page 44: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/44.jpg)
LinuxならμITRONなら
ソースコードが巨大で読みきれない!
![Page 45: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/45.jpg)
組込みOS初心者がパッと試して遊べるような
学習向けOSが無い!
![Page 46: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/46.jpg)
組込みOS自作のサンプルや、
まとまった資料が無い!つまみ食いで
勉強するしかない!
![Page 47: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/47.jpg)
なんとかならんもんか...
![Page 48: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/48.jpg)
じゃ、作るか!
![Page 49: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/49.jpg)
3原則!
![Page 50: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/50.jpg)
安いこと(ボード、環境、もろもろ込みで)
ソースコードが初心者でも読みきれること(分量的に)
つぶしが効く勉強ができること(GNU環境は必須)
これなら自分でも作れるじゃん!と思わせられること
![Page 51: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/51.jpg)
そこで、
![Page 52: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/52.jpg)
「KOZOS/H8」です!
![Page 53: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/53.jpg)
秋月電子:H8/3069Fマイコンボード
↓ここで動きます!
![Page 54: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/54.jpg)
何が必要?
![Page 55: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/55.jpg)
マイコンボード
PC電源アダプタ
シリアルケーブル
USBシリアルアダプタ
![Page 56: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/56.jpg)
開発環境は...FreeBSD
GNU/Linux(Ubuntu,Fedora)WinXP+cygwin
![Page 57: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/57.jpg)
特徴は?
![Page 58: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/58.jpg)
5000円くらいで一式そろいます
2000行程度のソースコード量
GNU環境での開発
半田付け不要のターゲットボード
ブートローダーも自作!
可能な限り、Cで記述
OSとしての最低限の機能
オープンソース、フリーソフト
ROMライタ不要!
多様な開発環境
![Page 59: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/59.jpg)
国産ボード/国産CPUなので
日本語資料が充実!
![Page 60: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/60.jpg)
「12ステップで作る組込みOS自作入門」
書籍が出ています!
2010/5/24発売!(カットシステム)
![Page 61: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/61.jpg)
![Page 62: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/62.jpg)
秋月のボードで動くブートローダーと
組込みOSを自作します(完全フルスクラッチ!)12ステップなので、授業や教材にもべんり!
![Page 63: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/63.jpg)
第1部 ブートローダーの作成 第1回 開発環境構築と「Hello World」作成 第2回 各種ライブラリ関数を実装 第3回 静的変数の書き換え対応 第4回 XMODEMによるファイル転送 第5回 ELF形式の解析を実装 第6回 ブートローダーからプログラム起動 第2部 OSの作成 第7回 割込み処理の実装 第8回 スレッド動作を実装 第9回 優先度スケジューリング実装 第10回 メモリ管理を実装 第11回 スレッド間通信を実装 第12回 割込みハンドラ実装
![Page 64: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/64.jpg)
次の一歩は?
![Page 65: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/65.jpg)
DRAM対応TCP/IP実装各種サーバ(telnet, web)デバッガ対応ROM化エミュレータ作成多ボード展開 他H8ボード、SH2ボード、 ARMボード、arduinoボード、...
まとまったら、また本を出したいなあ
![Page 66: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/66.jpg)
組込みOSで遊んでみたいと思ったら
![Page 67: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/67.jpg)
KOZOSをいじってみるのはどうでしょうか?
![Page 68: 組込みOSを 作ってみよう! - OSPN · 2009/12 電設部の勉強会で紹介 2009/12 組込みOS自作 ... 第2回 各種ライブラリ関数を実装 ... 第6回 ブートローダーからプログラム起動](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2f70eb371e76f1a462e49/html5/thumbnails/68.jpg)
おしまい