SlideShare a Scribd company logo
1 of 6
OS(自作)を創る前に
Mini Maker Oogaki 2014/8/23
最小セット愛好会
小川清 @kaizen_nagoya
kaizen@gifu-u.ac.jp
岐阜大学非常勤講師
技術士(情報技術)・工学博士
どんなOSがあるの?
PC用: Windows 8, Mac OS X, Linux …
携帯用:iOS, Android(実はLinux)
自動車用: ISO OSEK, Autosar(実は
OSEK)…TOPPERS/ATK2
家電用: TOPPERS/ASP…
航空宇宙用:TOPPERS/HRP…
一番小さい:TOPPERS/SSP(smallest Set Profile)
https://www.toppers.jp/ssp-kernel.html
12ステップで作る組込みOS自作入門
第1部 ブート・ローダーの作成
1stステップ:開発環境の作成
2ndステップ:シリアル通信
3rdステップ:静的変数の読み書き
4thステップ:シリアル経由でファイルを転送
する
5thステップ:ELFフォーマットの展開
6thステップ:もう一度,Hello World
第2部 OSの作成
7thステップ:割込み処理を実装する
8thステップ:スレッドを実装する
9thステップ:優先度スケジューリング
10thステップ:OSのメモリ管理
11thステップ:タスク間通信を実装する
12thステップ:外部割込みを実装する
30日でできる! OS自作入門
開発を始める前に
PCの仕組みからアセンブラ入門まで
アセンブラ学習とMakefile入門
32ビットモード突入とC言語導入
C言語と画面表示の練習
構造体と文字表示とGDT/IDT初期化
分割コンパイルと割り込み処理
FIFOとマウス制御
マウス制御と32ビットモード切替
メモリ管理
重ね合わせ処理
ついにウィンドウ
タイマ1
タイマ2
高解像度・キー入力
...開発を終えた後で
C言語によるリアルタイム組込OS自作講座
組込みシステムとソフトウェア
リアルタイムOSとは
リアルタイムOSが提供する機能の概要
リアルタイムOSの内部
スケジューラ
同期・通信機能
メモリ管理機能
組込み処理機能
時間管理機能
信頼性を高める機能
リアルタイムOSの設計
タスク管理機能の実装
タスク間通信機能の実装
割込み管理機能の実装
...
まとめ
写経:短いものを写してみる
TOPPERS/ssp
開発環境のライブラリを使う
SWEST16: カーネルソース勉強会
OS自作本を読む
12ステップで作る組込みOS自作入門
30日でできる! OS自作入門
C言語によるリアルタイム組込OS自作講座
自作OSをコミケに出そう
MISRA-C対応でより強固なOSを

More Related Content

What's hot

UEFIベアメタルプログラミング
UEFIベアメタルプログラミングUEFIベアメタルプログラミング
UEFIベアメタルプログラミングYuma Ohgami
 
Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!nmrmsys
 
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)kozossakai
 
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)Wataru Kimura
 
Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Go Saito
 
x86_64向け自作OSの紹介
x86_64向け自作OSの紹介x86_64向け自作OSの紹介
x86_64向け自作OSの紹介Yuma Ohgami
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing EnvironmentNaruhiko Ogasawara
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようguest468ec6
 
Open@Microsoftを眺めてみる
Open@Microsoftを眺めてみるOpen@Microsoftを眺めてみる
Open@Microsoftを眺めてみるKyohei Moriyama
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道uchan_nos
 
Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0Hideaki Sago
 
クリミ2013年12月26日(Gentoo Linux)
クリミ2013年12月26日(Gentoo Linux)クリミ2013年12月26日(Gentoo Linux)
クリミ2013年12月26日(Gentoo Linux)Takamasa Mitsuji
 
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711エンジニア勉強会 エスキュービズム
 
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータ三七男 山本
 
Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0Hideaki Sago
 
Cisco ios textpart01
Cisco ios textpart01Cisco ios textpart01
Cisco ios textpart01UmeNishi
 

What's hot (18)

UEFIベアメタルプログラミング
UEFIベアメタルプログラミングUEFIベアメタルプログラミング
UEFIベアメタルプログラミング
 
Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!Makeblockでキミだけの最強ロボットをつくろう!
Makeblockでキミだけの最強ロボットをつくろう!
 
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
 
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)
 
Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇Plan 9 MEETS "YUREX" 発動篇
Plan 9 MEETS "YUREX" 発動篇
 
x86_64向け自作OSの紹介
x86_64向け自作OSの紹介x86_64向け自作OSの紹介
x86_64向け自作OSの紹介
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみよう
 
Open@Microsoftを眺めてみる
Open@Microsoftを眺めてみるOpen@Microsoftを眺めてみる
Open@Microsoftを眺めてみる
 
UIMAウマー
UIMAウマーUIMAウマー
UIMAウマー
 
Apache UIMA
Apache UIMAApache UIMA
Apache UIMA
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
 
Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0
 
クリミ2013年12月26日(Gentoo Linux)
クリミ2013年12月26日(Gentoo Linux)クリミ2013年12月26日(Gentoo Linux)
クリミ2013年12月26日(Gentoo Linux)
 
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
 
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
 
Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0
 
Cisco ios textpart01
Cisco ios textpart01Cisco ios textpart01
Cisco ios textpart01
 

Similar to 最小セット

2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回Ryuichi Ueda
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)Toshihiko Yamakami
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
クライアント部会成果報告2011/日本OSS推進フォーラム
クライアント部会成果報告2011/日本OSS推進フォーラムクライアント部会成果報告2011/日本OSS推進フォーラム
クライアント部会成果報告2011/日本OSS推進フォーラムnamioto
 
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとかLispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとかたけおか しょうぞう
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMFAtomu Hidaka
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということKazuho Oku
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51holypong
 
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」PC Cluster Consortium
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶKenichiro MATOHARA
 
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011Akiko Kosaka
 

Similar to 最小セット (20)

What's Operating System?
What's Operating System?What's Operating System?
What's Operating System?
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
クライアント部会成果報告2011/日本OSS推進フォーラム
クライアント部会成果報告2011/日本OSS推進フォーラムクライアント部会成果報告2011/日本OSS推進フォーラム
クライアント部会成果報告2011/日本OSS推進フォーラム
 
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとかLispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
Osc2017 nagoya
Osc2017 nagoyaOsc2017 nagoya
Osc2017 nagoya
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
 
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
 
Openhard150114
Openhard150114Openhard150114
Openhard150114
 
DevConf.cz 2020参加報告
DevConf.cz 2020参加報告DevConf.cz 2020参加報告
DevConf.cz 2020参加報告
 
Nishimotz pycon2011jan
Nishimotz pycon2011janNishimotz pycon2011jan
Nishimotz pycon2011jan
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011
Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011
 

More from Kiyoshi Ogawa

Misracompliant20162020
Misracompliant20162020Misracompliant20162020
Misracompliant20162020Kiyoshi Ogawa
 
High Quality Design with Hcd and hazop
High Quality Design with Hcd and hazopHigh Quality Design with Hcd and hazop
High Quality Design with Hcd and hazopKiyoshi Ogawa
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddockerKiyoshi Ogawa
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddockerKiyoshi Ogawa
 
Who like C++ coding standard
Who like C++ coding standardWho like C++ coding standard
Who like C++ coding standardKiyoshi Ogawa
 
Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30Kiyoshi Ogawa
 
Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20Kiyoshi Ogawa
 
Who enjoy a coding standard?
Who enjoy a coding standard?Who enjoy a coding standard?
Who enjoy a coding standard?Kiyoshi Ogawa
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)Kiyoshi Ogawa
 
How can we resolve problems.
How can we resolve problems.How can we resolve problems.
How can we resolve problems.Kiyoshi Ogawa
 
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.Kiyoshi Ogawa
 
Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)Kiyoshi Ogawa
 
Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)Kiyoshi Ogawa
 
Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)Kiyoshi Ogawa
 
Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)Kiyoshi Ogawa
 
Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)Kiyoshi Ogawa
 
Raspberrypitraining20171027
Raspberrypitraining20171027Raspberrypitraining20171027
Raspberrypitraining20171027Kiyoshi Ogawa
 

More from Kiyoshi Ogawa (20)

Misracompliant20162020
Misracompliant20162020Misracompliant20162020
Misracompliant20162020
 
High Quality Design with Hcd and hazop
High Quality Design with Hcd and hazopHigh Quality Design with Hcd and hazop
High Quality Design with Hcd and hazop
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddocker
 
Deep learningwithgithubanddocker
Deep learningwithgithubanddockerDeep learningwithgithubanddocker
Deep learningwithgithubanddocker
 
Nagoya2018
Nagoya2018Nagoya2018
Nagoya2018
 
Hazop tokyo201809
Hazop tokyo201809Hazop tokyo201809
Hazop tokyo201809
 
Who like C++ coding standard
Who like C++ coding standardWho like C++ coding standard
Who like C++ coding standard
 
Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30
 
Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20
 
Who enjoy a coding standard?
Who enjoy a coding standard?Who enjoy a coding standard?
Who enjoy a coding standard?
 
機械と標準
機械と標準機械と標準
機械と標準
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
 
How can we resolve problems.
How can we resolve problems.How can we resolve problems.
How can we resolve problems.
 
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
Datamining Introduction using R with Raspbian on Raspberry Pi 3B.
 
Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)Hazop Safety and Security at Fukui 2017(2/2)
Hazop Safety and Security at Fukui 2017(2/2)
 
Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)Hazop Safety and Security at Fukui 2017(1/2)
Hazop Safety and Security at Fukui 2017(1/2)
 
Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)Hazop and triz by/of/for the children(3/3)
Hazop and triz by/of/for the children(3/3)
 
Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)Hazop and triz by/of/for the children(2/3)
Hazop and triz by/of/for the children(2/3)
 
Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)Hazop and triz by/of/for the children(1/3)
Hazop and triz by/of/for the children(1/3)
 
Raspberrypitraining20171027
Raspberrypitraining20171027Raspberrypitraining20171027
Raspberrypitraining20171027
 

最小セット