SlideShare una empresa de Scribd logo
1 de 9
自作OS Mul lightアプリケーション編
自己紹介 佐合 秀昭(さごう ひであき) twitter:@hideaki_sago facebook, google+もやってます。 将来の夢はPC用汎用OSを世に売り出すこと。 打倒Microsoft!! OS屋のつもりですが、、仕事はAndroidアプリを作ってます。
自作OSMul lightって? マルライトと読む 学生の頃、作っていたOS x86上で動作する汎用OS ブートからアプリケーションまですべて自作(Clib除く) Gnu assembler, C, C++で作成
自作OS Mul lightの実装機能 CDブート(El Torito FDDエミュレート) メモリ管理(セグメンテーション方式、仮想記憶無し) デバイス管理 タイマ、キーボード、マウス、ATAPI(CD)、etc… 割り込み管理 GUI(←実はここが一番大変だった;) ファイルシステム(ISO 9660) システムコール アプリケーションシステム マルチタスク
Mul lightのアプリケーション起動の流れ CDからデータ(ファイル)を読み取る ヘッダ情報を読み取り、必要なメモリを確保 テキスト領域とデータ領域を読み取り、メモリに配置 プログラム・カウンタやスタック・ポインタを設定 プロセスにCPUを割り当て、実行
1.CDからのデータ読み取り CD(ATAPI)ドライバを実装 ISO 9660(CDのファイルシステム)読み取りプログラムを実装
2.ヘッダ情報読み取り・メモリ確保 アプリケーションファイルの先頭にある独自形式のヘッダを読み取る ヘッダに記述されているサイズに従ってメモリを確保 アプリケーションファイルの構成 ヘッダ部分 現在製作中のOSはelfフォーマットにする予定・・
3.テキスト・データ領域の配置 CDからデータ(テキスト・データ領域)を読み取り、メモリに展開 アプリケーションのメモリマップ ここに展開
4.プログラム カウンタ、スタック ポインタの設定 プログラム カウンタを0に設定 セグメンテーション方式により、プロセス毎にメモリ領域を設定しているため、0でOK スタック ポインタをスタック領域の末尾に設定

Más contenido relacionado

La actualidad más candente

Summercamp2020 group1
Summercamp2020 group1Summercamp2020 group1
Summercamp2020 group1openrtm
 
クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算Teng Tokoro
 
Summercamp2020 group3
Summercamp2020 group3Summercamp2020 group3
Summercamp2020 group3openrtm
 
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみたRyodo Tanaka
 
Summer camp2018 group3
Summer camp2018 group3Summer camp2018 group3
Summer camp2018 group3openrtm
 
Summer camp2018 group1
Summer camp2018 group1Summer camp2018 group1
Summer camp2018 group1openrtm
 
Summer camp2019 group1
Summer camp2019 group1Summer camp2019 group1
Summer camp2019 group1openrtm
 
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)Yukihiko SAWANOBORI
 
Summer camp2019 group2
Summer camp2019 group2Summer camp2019 group2
Summer camp2019 group2openrtm
 
チームラボ サマーインターン発表スライド
チームラボ サマーインターン発表スライドチームラボ サマーインターン発表スライド
チームラボ サマーインターン発表スライドKodai Takao
 
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。Suzuki Mitsuhiro
 
OSとWindowsとMicrosoft
OSとWindowsとMicrosoftOSとWindowsとMicrosoft
OSとWindowsとMicrosoftMasato Hanayama
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るmonochrojazz
 
biosを知ろう
biosを知ろうbiosを知ろう
biosを知ろうKumi Okamoto
 
深層学習(ディープラーニング)入門勉強会資料(浅川)
深層学習(ディープラーニング)入門勉強会資料(浅川)深層学習(ディープラーニング)入門勉強会資料(浅川)
深層学習(ディープラーニング)入門勉強会資料(浅川)Shin Asakawa
 
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話翔 石井
 
セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介Yuma Ohgami
 

La actualidad más candente (19)

Summercamp2020 group1
Summercamp2020 group1Summercamp2020 group1
Summercamp2020 group1
 
クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算
 
Summercamp2020 group3
Summercamp2020 group3Summercamp2020 group3
Summercamp2020 group3
 
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた
 
Summer camp2018 group3
Summer camp2018 group3Summer camp2018 group3
Summer camp2018 group3
 
Summer camp2018 group1
Summer camp2018 group1Summer camp2018 group1
Summer camp2018 group1
 
Summer camp2019 group1
Summer camp2019 group1Summer camp2019 group1
Summer camp2019 group1
 
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
Chef Casual Talks 出張版京セラドーム公演 (JAWS FESTA Kansai 2013内イベント)
 
Summer camp2019 group2
Summer camp2019 group2Summer camp2019 group2
Summer camp2019 group2
 
OpenStreetMapの紹介
OpenStreetMapの紹介OpenStreetMapの紹介
OpenStreetMapの紹介
 
チームラボ サマーインターン発表スライド
チームラボ サマーインターン発表スライドチームラボ サマーインターン発表スライド
チームラボ サマーインターン発表スライド
 
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
 
Rosjp37 live ros
Rosjp37 live rosRosjp37 live ros
Rosjp37 live ros
 
OSとWindowsとMicrosoft
OSとWindowsとMicrosoftOSとWindowsとMicrosoft
OSとWindowsとMicrosoft
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 
biosを知ろう
biosを知ろうbiosを知ろう
biosを知ろう
 
深層学習(ディープラーニング)入門勉強会資料(浅川)
深層学習(ディープラーニング)入門勉強会資料(浅川)深層学習(ディープラーニング)入門勉強会資料(浅川)
深層学習(ディープラーニング)入門勉強会資料(浅川)
 
WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話WebGLで浮動小数点テクスチャを扱う話
WebGLで浮動小数点テクスチャを扱う話
 
セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介
 

Destacado

iOS/Android/WP7アプリ開発比較
iOS/Android/WP7アプリ開発比較iOS/Android/WP7アプリ開発比較
iOS/Android/WP7アプリ開発比較Tomonori Ohba
 
Android-Binding Before/After (Hokuriku,NET)
Android-Binding Before/After (Hokuriku,NET)Android-Binding Before/After (Hokuriku,NET)
Android-Binding Before/After (Hokuriku,NET)Tomonori Ohba
 
20100925 Hangame for iphone 開発秘話
20100925 Hangame for iphone 開発秘話20100925 Hangame for iphone 開発秘話
20100925 Hangame for iphone 開発秘話NHN Japan (hangame)
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumilab
 
Few command line tools for help Android development
Few command line tools for help Android developmentFew command line tools for help Android development
Few command line tools for help Android developmentTomoki YAMASHITA
 
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術karupanerura
 
C# で i phone ゲーム開発
C# で i phone ゲーム開発C# で i phone ゲーム開発
C# で i phone ゲーム開発Katsutoshi Makino
 
Android-Binding Before / After
Android-Binding Before / AfterAndroid-Binding Before / After
Android-Binding Before / AfterTomonori Ohba
 
わんくま大阪47 LT
わんくま大阪47 LTわんくま大阪47 LT
わんくま大阪47 LTTomonori Ohba
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用についてKatsutoshi Makino
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5Shin Ise
 
Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCrossCross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCrossShin Ise
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 
The Crystal language *recently* update
The Crystal language *recently* updateThe Crystal language *recently* update
The Crystal language *recently* updatekarupanerura
 
Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Katsutoshi Makino
 
Asset bundleなどの、Unity3d基礎知識
Asset bundleなどの、Unity3d基礎知識Asset bundleなどの、Unity3d基礎知識
Asset bundleなどの、Unity3d基礎知識Nobukazu Hanada
 
Android Hacks - 合宿 Service
Android Hacks - 合宿 ServiceAndroid Hacks - 合宿 Service
Android Hacks - 合宿 ServiceMasanori Ohkawara
 
Port Bluedroid to RTOS
Port Bluedroid to RTOSPort Bluedroid to RTOS
Port Bluedroid to RTOSeggmansan
 

Destacado (20)

最小セット
最小セット最小セット
最小セット
 
iOS/Android/WP7アプリ開発比較
iOS/Android/WP7アプリ開発比較iOS/Android/WP7アプリ開発比較
iOS/Android/WP7アプリ開発比較
 
Mmo game networking_1
Mmo game networking_1Mmo game networking_1
Mmo game networking_1
 
Android-Binding Before/After (Hokuriku,NET)
Android-Binding Before/After (Hokuriku,NET)Android-Binding Before/After (Hokuriku,NET)
Android-Binding Before/After (Hokuriku,NET)
 
20100925 Hangame for iphone 開発秘話
20100925 Hangame for iphone 開発秘話20100925 Hangame for iphone 開発秘話
20100925 Hangame for iphone 開発秘話
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
 
Few command line tools for help Android development
Few command line tools for help Android developmentFew command line tools for help Android development
Few command line tools for help Android development
 
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
 
C# で i phone ゲーム開発
C# で i phone ゲーム開発C# で i phone ゲーム開発
C# で i phone ゲーム開発
 
Android-Binding Before / After
Android-Binding Before / AfterAndroid-Binding Before / After
Android-Binding Before / After
 
わんくま大阪47 LT
わんくま大阪47 LTわんくま大阪47 LT
わんくま大阪47 LT
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
 
Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCrossCross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
The Crystal language *recently* update
The Crystal language *recently* updateThe Crystal language *recently* update
The Crystal language *recently* update
 
Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化
 
Asset bundleなどの、Unity3d基礎知識
Asset bundleなどの、Unity3d基礎知識Asset bundleなどの、Unity3d基礎知識
Asset bundleなどの、Unity3d基礎知識
 
Android Hacks - 合宿 Service
Android Hacks - 合宿 ServiceAndroid Hacks - 合宿 Service
Android Hacks - 合宿 Service
 
Port Bluedroid to RTOS
Port Bluedroid to RTOSPort Bluedroid to RTOS
Port Bluedroid to RTOS
 

Similar a Mul light アプリケーション編 1.0

マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入Daisuke Nikura
 
2016 0422 io tlt勉強会
2016 0422 io tlt勉強会2016 0422 io tlt勉強会
2016 0422 io tlt勉強会yasuyuki_suzuki
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 Mikito Yoshiya
 
iPadに真似ぶ windows 8 タブレットプログラミング
iPadに真似ぶ windows 8 タブレットプログラミングiPadに真似ぶ windows 8 タブレットプログラミング
iPadに真似ぶ windows 8 タブレットプログラミングMasuda Tomoaki
 

Similar a Mul light アプリケーション編 1.0 (7)

What's Operating System?
What's Operating System?What's Operating System?
What's Operating System?
 
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
 
2016 0422 io tlt勉強会
2016 0422 io tlt勉強会2016 0422 io tlt勉強会
2016 0422 io tlt勉強会
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
 
高専カンファIn京都
高専カンファIn京都高専カンファIn京都
高専カンファIn京都
 
iPadに真似ぶ windows 8 タブレットプログラミング
iPadに真似ぶ windows 8 タブレットプログラミングiPadに真似ぶ windows 8 タブレットプログラミング
iPadに真似ぶ windows 8 タブレットプログラミング
 

Mul light アプリケーション編 1.0