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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
segfo
August 05, 2018
Technology
4
1k
RustでOS作りたい話
第13回:自作OSもくもく会LT
segfo
August 05, 2018
Tweet
Share
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
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
670
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
150
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
620
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
20260204_Midosuji_Tech
takuyay0ne
1
160
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
170
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Introduction to Bill One Development Engineer
sansan33
PRO
0
360
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
The Spectacular Lies of Maps
axbom
PRO
1
520
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
70
YesSQL, Process and Tooling at Scale
rocio
174
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
The Pragmatic Product Professional
lauravandoore
37
7.1k
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)に移行する ◦ 安全かつ安心して書きたいものを書ける 未定義を踏まないのでデバッグもしやすい
おわり