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
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
860
Other Decks in Technology
See All in Technology
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
280
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
260
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
0
170
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
18k
ルネサンス開発者を育てる 1on1支援AIエージェント
yusukeshimizu
0
130
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
150
20251203_AIxIoTビジネス共創ラボ_第4回勉強会_BP山崎.pdf
iotcomjpadmin
0
160
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
580
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
160
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.3k
Directions Asia 2025 _ Let’s build my own secretary (AI Agent) Part 1 & 2
ryoheig0405
0
110
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
240
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
880
From π to Pie charts
rasagy
0
97
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
32
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
26
We Have a Design System, Now What?
morganepeng
54
8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Skip the Path - Find Your Career Trail
mkilby
0
28
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
100
Everyday Curiosity
cassininazir
0
110
Building an army of robots
kneath
306
46k
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)に移行する ◦ 安全かつ安心して書きたいものを書ける 未定義を踏まないのでデバッグもしやすい
おわり