Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RustでOS作りたい話
Search
segfo
August 05, 2018
Technology
1k
4
Share
RustでOS作りたい話
第13回:自作OSもくもく会LT
segfo
August 05, 2018
More Decks by segfo
See All by segfo
AI/LLM入門
segfo
0
120
ELFバイナリ静的解析入門
segfo
0
870
Other Decks in Technology
See All in Technology
MCPで決済に楽にする
mu7889yoon
0
170
OpenClawでPM業務を自動化
knishioka
2
360
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
140
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
890
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
160
マルチモーダル非構造データとの闘い
shibuiwilliam
1
130
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
130
昔話で振り返るAWSの歩み ~S3誕生から20年、クラウドはどう進化したのか~
nrinetcom
PRO
0
130
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
5
1.3k
FlutterでPiP再生を実装した話
s9a17
0
240
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
170
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Music & Morning Musume
bryan
47
7.1k
How GitHub (no longer) Works
holman
316
150k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
140
Everyday Curiosity
cassininazir
0
180
We Have a Design System, Now What?
morganepeng
55
8.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Designing for Timeless Needs
cassininazir
0
180
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
How to train your dragon (web standard)
notwaldorf
97
6.6k
Transcript
RustでOS作りたい そんな話
はじめに
自己紹介 Twitter: @segfo Qiitaとかでいろいろ書いてます。 https://qiita.com/segfo 30日で作る本(30日では書けないけど)でこの世界に入門しました。
C言語難しくない???? 作りたいものを作れず、そこらじゅうエラー・例外ハンドラだらけ ちょっとコード書くとバッファオーバーフロー ちゃんと書かないとすぐ汚くなる。(だんだん混乱してくる) プログラミングが下手なので厳しさだけを感じる
つらい C言語以外でデバイス叩きたい
「RustでOSを作る」という選択肢 今回は「Rust」という言語を紹介します。 • 速度はC++並み • コンパイル時にバッファオーバーフローを一部検出できる • プログラミングが下手でも、ほぼ正常系で記述できる
Rustってなに? Mozillaが開発しているプログラミング言語 マルチパラダイムで、割と今風(※OOPとか)に書ける
そこでRust 簡潔に言うとC++の上位互換っぽい(C++よくわからない) クラス・継承の概念が使える GCを使わないけど、リソース管理ができる(Drop Traitという仕組みを使う) BOFするコードが有ったらコンパイルできない もしコンパイルできたとしても、実行時エラーで確実に止まってくれる
デモ x86_64 UEFI (LONGモード(64bit)で動作) デモで使用するプログラム https://github.com/segfo/rust-uefi-sample
コード コンパイルエラー
コード 実行時エラー(QEMU上)
panicの実装 panicしたらとりあえず、無限ルー プしとく実装。 RebootでもOK
UEFIブート&RustでOSを作る意味 • やりたいことに集中できる ◦ BIOSブート:Real mode→Protected mode→Long mode ▪ しかもコード書ける領域が
512バイト縛り(1セクタ分)しかない ◦ UEFIブート:Long mode ▪ コード書ける領域が実質無限 ◦ Rustは例外処理やパターンマッチが書きやすい ▪ 例外処理ばっかりなコードとはお別れできる • C/C++では「未定義動作」が一番OS作る上では一番厄介 ◦ Rustでは、未定義動作が徹底的に排除されている ◦ 典型的な「配列の溢れ」なんかは すべて定義された動作 (基本はpanic)に移行する ◦ 安全かつ安心して書きたいものを書ける 未定義を踏まないのでデバッグもしやすい
おわり