Soumettre la recherche
Mettre en ligne
30分で分かる!OSの作り方 ver.2
•
5 j'aime
•
4,979 vues
uchan_nos
Suivre
OS自作とは何なのか,どうやったら最初の一歩を踏み出せるのか,最新のOSの研究事情,自作OS界隈の歴史などを紹介します.
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 50
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
uchan_nos
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Recommandé
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
uchan_nos
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
UMLモデルを使った自動生成
UMLモデルを使った自動生成
Norihito Ohshima
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
目grep入門 +解説
目grep入門 +解説
murachue
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
QEMUでARM64bitベアメタルプログラミング
QEMUでARM64bitベアメタルプログラミング
Yuma Ohgami
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
VirtualTech Japan Inc.
Contenu connexe
Tendances
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
UMLモデルを使った自動生成
UMLモデルを使った自動生成
Norihito Ohshima
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
目grep入門 +解説
目grep入門 +解説
murachue
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
QEMUでARM64bitベアメタルプログラミング
QEMUでARM64bitベアメタルプログラミング
Yuma Ohgami
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
Tendances
(20)
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
UEFI時代のブートローダ
UEFI時代のブートローダ
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
DockerとPodmanの比較
DockerとPodmanの比較
UMLモデルを使った自動生成
UMLモデルを使った自動生成
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Glibc malloc internal
Glibc malloc internal
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
目grep入門 +解説
目grep入門 +解説
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
QEMUでARM64bitベアメタルプログラミング
QEMUでARM64bitベアメタルプログラミング
プログラムを高速化する話
プログラムを高速化する話
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
ファイルシステム比較
ファイルシステム比較
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Similaire à 30分で分かる!OSの作り方 ver.2
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
VirtualTech Japan Inc.
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える
辰徳 斎藤
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
潤司 渡部
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
Takahiro Shinagawa
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
Mizuno Osamu
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
202005 log analyse
202005 log analyse
SAKURUG co.
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
SYUE-SIANG SU
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
ru pic
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
You&I
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
TypeScript x Bot Framework
TypeScript x Bot Framework
Kazumi IWANAGA
2019 summercamp 02
2019 summercamp 02
openrtm
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
アセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみる
RYUTARO OSAFUNE
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Makoto SAKAI
Similaire à 30分で分かる!OSの作り方 ver.2
(20)
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
お手軽マイコンを用いた 水槽管理システム あくあたんの紹介
私とOSSの25年
私とOSSの25年
202005 log analyse
202005 log analyse
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
TypeScript x Bot Framework
TypeScript x Bot Framework
2019 summercamp 02
2019 summercamp 02
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
アセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみる
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Plus de uchan_nos
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
uchan_nos
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
自作言語でお絵描き
自作言語でお絵描き
uchan_nos
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
uchan_nos
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返る
uchan_nos
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
uchan_nos
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
uchan_nos
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
uchan_nos
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
uchan_nos
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
uchan_nos
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
Building libc++ for toy OS
Building libc++ for toy OS
uchan_nos
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
uchan_nos
Introduction of security camp 2019
Introduction of security camp 2019
uchan_nos
Timers
Timers
uchan_nos
USB3 host driver program structure
USB3 host driver program structure
uchan_nos
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
uchan_nos
1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術
uchan_nos
Plus de uchan_nos
(20)
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
自作言語でお絵描き
自作言語でお絵描き
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返る
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
Building libc++ for toy OS
Building libc++ for toy OS
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
Introduction of security camp 2019
Introduction of security camp 2019
Timers
Timers
USB3 host driver program structure
USB3 host driver program structure
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術
30分で分かる!OSの作り方 ver.2
1.
30分で分かる! OSの作り方 ver.2 2019/05/07 内田 公太
@uchan_nos
2.
自己紹介 1/2 • 内田公太
@uchan_nos • サイボウズ株式会社 SREチーム • 1000台規模の物理サーバの管理ツール群 • 顧客データのリアルタイムバックアップ • 障害監視、ログ収集 • 東京工業大学 特任助教 • 情報理工学院 情報工学系 権藤研究室 • W8 E棟 8階 • 火曜日・金曜日
3.
自己紹介 2/2 • 自作OSもくもく会コアメンバー •
『30日でできる! OS自作入門』 の校正を担当 • 『自作エミュレータで学ぶ x86アーキテクチャ』の著者
4.
OSとは • Operating System Microsoft
Windows 10 のスクリーンショット
5.
OSとは • 定義はいろいろ • 「OSとは、ソフトウェアの 種類の一つで、機器の基本 的な管理や制御のための機 能や、多くのソフトウェア が共通して利用する基本的 な機能などを実装した、シ ステム全体を管理するソフ トウェア。」 http://e-words.jp/w/OS.html https://en.wikipedia.org/wiki/Operating_ system#/media/File:Kernel_Layout.svg
6.
OSとは • 『30日でできる! OS自作入門』の定義 結局のところ、それぞれの作者が 「これはOSなんだ」と言い張って、 周囲の人も「まあそうかな」と思 えばどんなソフトでもOSなんです。
7.
OS自作とは • ほかのOSの力を借りずに起動するソフトウェ ア(なんでもいい)を作ること • ハードウェアに近い世界 •
→ パソコンを支配する感覚 • → エキサイティング!
8.
Linuxと平成 • 1991(平成3)年8月25日 リーナス・トーバルズがLinuxの初版を公開 • 1993(平成5)年 Linuxカーネルに関わる開発者が100人を越えた •
… • 2014(平成26)年 Ubuntuのユーザ数が2,200万と公表された • 2019(平成31)年3月5日 Linux 5.0正式リリース 日本の元号なんてリーナスには関係ないけど(笑)
9.
OS自作も一歩から 自作OSにおける “Hello World”
10.
有名な 自作OSたち http://z-slash.net/os/osask/osask.png OSASK Mona OS https://a.fsdn.com/con/app/proj/monaos/screenshots/90657.jpg はりぼてOS http://hrb.osask.jp/figures.html
11.
OS自作の方向性 • システムプログラミングを楽しむ • OS理論を学ぶ •
実用的なOSを作る • 既存OSを改良する
12.
システムプログラミング を楽しむ • 『 30日でできる!OS自作入門』の方向性 •
単純にOS作成を楽しむ=娯楽 • コンピュータのハードウェアを支配してる感じ で楽しい • CPUと戯れる • デバイスと戯れる • 低レイヤに詳しくなれる! http://cdn-ak.f.st-hatena.com/images/fotolife/r/rinie/20090409/20090409144532.jpg
13.
OS理論を学ぶ • 『オペレーティングシステム 第3版 設計と実装』などを読んだりする •
メモリ管理、プロセス管理、ファイルシステム、 デバイスドライバの仕組みなどを学ぶ Intel 64 and IA-32 Architectures Software Developer’s Manual より引用 ページングによる メモリ管理の仕組み
14.
実用的なOSを作る • 既存OSが移植されてないハードウェアのOS • 特定の処理のオーバーヘッドが小さいOS •
例:liva氏作の、Intel e1000ギガビットイーサに 対応したOS。Linuxより低遅延に通信できる。 • 一人で汎用かつ実用的なOSを作ることは現代 ではほぼ無理 • 汎用性を捨てれば活路がある →後で詳述
15.
既存OSを改良する • LinuxやFreeBSDなどを改造する • 現代において汎用かつ実用的なOSを目指すな らこの路線 •
この発表でいう「OS自作」ではない
16.
OSを自作する方法 • 入門書を手に入れる • 取りあえずその通り作ってみる •
後は自由に改造したり知識を深めたり
17.
OSを自作する方法 • 入門書を手に入れる • 取りあえずその通り作ってみる •
後は自由に改造したり知識を深めたり たったの3ステップ!
18.
入門書を手に入れる 『30日でできる! OS自作入門』 から始めるのがおすすめ 30日後
19.
OS自作入門:一日目 • P.14「とにかくやるのだぁ」 • バイナリエディタだけで 1.4MBのFDイメージを作成
20.
OS自作入門:二日目 • p.29「まずはテキストエディタの紹介」 • テキストエディタがバイナリエディタの後 にくる書籍なんて聞いたことない!
21.
OS自作入門:四日目 • p.69「C言語と画面表示の練習」 • p.95でなんとなく「OS」らしき画面が! http://hrb.osask.jp/figures.html
22.
OS自作入門:八日目 • マウスが動くようになる • メモリ管理ができるようになる http://hrb.osask.jp/figures.html
23.
OS自作入門:三十日目 • 32ビット、マルチタスク、 ウィンドウシステム、JPGデコーダ http://hrb.osask.jp/figures.html
24.
その後の進路はいろいろ1 • OSの機能を拡張していく • 高機能なシェル •
タスク間通信 • UEFI起動に対応 • OSの理論を勉強する • ページング、仮想記憶 • mutex、共有メモリ • ファイルシステム ウィンドウサイズが 変えられなくて辛い
25.
その後の進路はいろいろ2 • いろんな言語で再実装する • C/C++/D/Rust/C#など •
他のアーキテクチャへの移植 • 2006年当時、いち早くC++化に成功したブログ記事 • 自作OSもくもく会では Rustでの再実装を試みる人がいたり。 「はりぼてOSでC++言語を使いたい」 http://d.hatena.ne.jp/Bayside/20060518/p1
26.
その後の進路はいろいろ3 • デバイスドライバを充実させる • ディスク読み書き •
ネットワークドライバ • USB機器の制御 • グラフィックボード • 既存OSのドライバの移植 http://yourdriversdownload.blogspot.jp/2011/12/ realtek-rtl8139-family-pci-fast.html
27.
OS本体の製作の参考書 • 『30日でできる! OS自作入門』川合
秀実 • 『12ステップで作る組込みOS自作入門』坂井 弘亮 • 『オペレーティングシステム 第3版 設計と実 装』Andrew S. Tanenbaum • 『はじめて読む486』蒲地輝尚 • 『Intel 64 and IA-32 Architectures Software Developer’s Manual』Intel Corporation • 『Microsoft Extensible Firmware Initiative FAT32 File System Specification』Microsoft Corporation • 『詳解 Linuxカーネル 第3版』Daniel P. Bovet, Marco Cesati • 『リンカ・ローダ実践開発テクニック』坂井 弘亮
28.
ドライバ製作の参考書 • 『パソコンのレガシィI/O活用大全』桑野 雅彦 •
Web 版 http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/ • 『組み込み機器へのUSBホスト実装技法』イン ターフェース編集部 • 『PCIバス&PCI‐Xバスの徹底研究』インターフェー ス編集部 • 『Ethernetのしくみとハードウェア設計技法』イン ターフェース編集部 • 『Serial ATA AHCI: Specification, Rev. 1.3.1』Intel Corporation • 『PCI Specification, Revision 3.0』PCI-SIG
29.
クラウド時代のOS 1/4 • クラウド環境が流行ってきた •
→仮想マシン,コンテナが多用される • →これらを効率よく動かしたい! Linux OS1 OS2 アプリ1 アプリ2 スケジューリング スケジューリング ハードウェア QEMU QEMU 無駄 LinuxのKVM機能を使って複数のゲストOSを動かす例 …
30.
クラウド時代のOS 2/4 • アプリ1つにつき,OSを1つ •
OSを「ライブラリ」として考える • OSv Linux OSv OSv アプリ1 アプリ2 スケジューリング ハードウェア QEMU QEMU LinuxのKVM機能を使って複数のゲストOSを動かす例 OSv アプリ3 QEMU スケジューリング 効率的
31.
クラウド時代のOS 3/4 • 必ずVMM(ハイパーバイザ)上で動かす •
→ネットワーク,ディスク等があれば十分 • →ほとんどのドライバが不要! • USB機器 • ディスプレイ • その他さまざまなドライバ • クラウド専用OSは求められる機能が少ない = 作るのが(比較的)楽
32.
クラウド時代のOS 4/4 • 1台のマシンのI/Oには上限がある •
クラウドにはたくさんのマシンがある • →複数台のマシンのI/Oが透過的に使えたら 柔軟なリソース活用が可能 • LegoOS https://www.usenix.org/sites/default/files/conference/ protected-files/osdi18_slides_shan.pdf
33.
現代のOSの研究 • 2000年代は「サーバOS=Linux」 • クラウド全盛になり,Linux一強でもなくなっ てきた •
http://raphine.hatenablog.com/entry/2018/11/02/195815 • livaさん(東大のOS系の研究室の博士学生) による興味深い論文のまとめ • OS系の論文探しの取っ掛かりとして有用
34.
Appendix 日本のOS自作の歴史
35.
日本のOS自作の歴史 1992 - 1994 第1期自作OSブーム BTRON系がメイン BTRON386 B-Free
OS 主にここから引用 http://osask.net/w/197.html 2000 - 第2期自作OSブーム OSASKが初リリース 1994年3月14日 Linux 1.0.0
36.
OSASK • 川合さんが主担当 • 100KB以下の極小 OSイメージ •
ウィンドウシステム • プリエンプティブ・ マルチタスク
37.
2002/06/18 2chに伝説のスレが立つ Mona OSが初リリース2002
38.
NWSOS, MEG-OSリリース2002 @uchan_nos OSASKを知る 2002?
39.
2003 第2期ブーム最盛期 osdev-jというWikiが発足 →のちのdev-j 派生してOS-Wikiが発足 OS-Wiki http://community.osdev.info/ より
40.
2005 第2期ブーム終焉 dev-j界が徐々に停滞 OSASKリリース停滞 NWSOS開発終了 MEG-OS中断 →おれんじぺこになるも、 それも開発終了
41.
2005 第2期ブーム終焉 dev-j界が徐々に停滞 OSASKリリース停滞 NWSOS開発終了 MEG-OS中断 →おれんじぺこになるも、 それも開発終了
42.
2006 第3期自作OSブーム 『 30日でできる! OS自作入門』出版 はりぼて友の会結成 2007 はりぼて友の会 @IT
に取材される http://jibun.atmarkit.co.jp/lcom01/rensai/comtan02/comtan01.html
43.
2008 第4期自作OSブーム OSASK-HB内部リリース おれんじぺこリリース再開 NWSOS開発再開(宣言) 2007 Mona OS開発停滞 →2002年までに誕生した 古参のOSプロジェクト は壊滅状態に。 2007
はりぼて友の会活動停滞 2009 OSASK一般公開停止
44.
2016 osdev-jp結成 自作OSもくもく会が始動 第5期自作OSブームへ 2013 KたんがOSASKコミュニティ へ復帰 2012
OSECPU-VM開発開始 OS自作関係の3人が 偶然出会ってしまった
45.
セキュリティ・キャンプ 全国大会2019
46.
セキュリティキャンプ • 第一線で活躍する講師が • 全国から集まった学生に •
セキュリティとプログラミングを教育する • 公式サイト https://www.ipa.go.jp/jinzai/camp/2019/zenkoku2019_index.html • セキュリティキャンプ全国大会 • 8/13(火)~8/17 (土)
47.
セキュリティキャンプ • 第一線で活躍する講師が • 全国から集まった学生に •
セキュリティとプログラミングを教育する • 公式サイト https://www.ipa.go.jp/jinzai/camp/2019/zenkoku2019_index.html • セキュリティキャンプ全国大会 • 8/13(火)~8/17 (土) ・宿泊費 ・交通費 ・食費 すべて支給!
48.
システムプログラミング トラック • セキュリティキャンプ全国大会 • 選択コース •
集中開発コース • システム プログラミング トラック • OS開発ゼミ • Cコンパイラを自作してみよう!ゼミ
49.
OS開発ゼミ • フルスクラッチOSを書こう! • 最先端OS談義 •
Linux開発者を目指そう! • Raspberry Pi向け組み込みOSを作ろう! x86やRaspberry向けの OSを開発します 定員8人
50.
是非応募してね! • 応募締め切り:5/27(月)16:00 • 「僕なんて無理だよ…」と遠慮せずに! •
熱意が伝わる応募書類ならチャンスあります • (応募しないと絶対に受かりませんし)
Télécharger maintenant