Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2024年秋 中村研 WIP発表資料
Search
kota-yata
January 30, 2025
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2024年秋 中村研 WIP発表資料
kota-yata
January 30, 2025
More Decks by kota-yata
See All by kota-yata
リアルな遅延を測る仕様
kota_yata
1
170
Arch輪読: 詳解システムパフォーマンス 第二版 第6章
kota_yata
0
77
RG-Arch 輪講資料: Binary Hacks Rebooted 数値演算など
kota_yata
0
91
結局QUICで通信は速くなるの?
kota_yata
10
8.1k
RG-Arch輪考資料: QUIC is not Quick Enough over Fast Internet
kota_yata
0
210
RG-Arch輪考資料: Implementation and Performance Evaluation of the QUIC Protocol in Linux Kernel
kota_yata
0
250
パタヘネ輪読: 第五章
kota_yata
0
100
パタヘネ輪読: 第一章
kota_yata
0
430
Media over QUICとRTMP+HLSの比較
kota_yata
1
860
Other Decks in Programming
See All in Programming
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
120
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
240
Performance Optimization With LLMs
xleitix
0
230
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
270
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
250
パスワード再設定メールのURLについて知っておこう
uyuki234
0
200
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
320
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.3k
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
170
Getting Started with Vibe Coding
miccheng
0
140
Crash Auto Pipelines
veronikapj
1
300
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
350
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.6k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Amusing Abliteration
ianozsvald
1
370
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
Building AI with AI
inesmontani
PRO
1
1.4k
How to build a perfect <img>
jonoalderson
1
6.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Leo the Paperboy
mayatellez
10
2.4k
Automating Front-end Workflow
addyosmani
1370
210k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
RISC-V向けOS上でのICMPプロトコルスタック実装 Arch B2 Kota 親: macchan
背景 2 • ⼤学⼊学時からトランスポートプロトコルに興味がある ◦ 特にQUIC • IETFに参加した際に、カーネルの知識不⾜から満⾜に議論に参加できなかった • またQUICに関する調査を進める中で低いレイヤーのコードを読む必要が⽣ま
れ、背景知識を得る必要が⽣まれた • 今期はよりコンピュータアーキテクチャ、ネットワークアーキテクチャの理解 を深めるためにICMP Echo Request/Reply送受信(ping)に対応するプロトコ ルスタックを実装した
ベースにしたOS 3 • 「1000⾏で作るOS」[1] ◦ RISC-V 32bits向け ◦ OpenSBI[2]を⽤いてQEMU[3]上で動作する ◦
より⼤規模のOS実装も検討したが時間の制約により⼩さな実装に⽌まった • プロセス切り替え時のメモリ解放など、50⾏ほど追加機能を拡張した
プロトコルスタックの実装 4 • OS上でICMP送受信の実装を⾏った ◦ 準仮想デバイス virtio-net[4]を利⽤ ◦ Ethernet/IP/ICMPとARPに対応する簡易的なプ ロトコルスタックを実装
• 追加した実装が700⾏ほど ◦ ARP Request/Reply ◦ ICMP Echo Request/Reply リポジトリ: https://github.com/kota-yata/small-nick-os
⾃作プロトコルスタックからICMPリクエストを送信する際のシーケンス 5 • 最初の通信時のみARP Request/Replyのやり取りが発⽣する • 2回⽬以降はすでに対応表が存在するのでICMPの往復だけで通信は完了する
ICMPリクエストを受信する際のシーケンス 6 • 最初の通信時のみARP Request/Replyのやり取りが発⽣する • 2回⽬以降はすでに対応表が存在するのでICMPの往復だけで通信は完了する
結果 7 ⾃作プロトコルスタックからのリクエスト送信と応答のパケットキャプチャの結果 ↑⾃作PSからEcho Requestを送信。ARPの送受信後Echo Replyが返ってきた ↑⾃作PS宛てのEcho RequestにEcho Replyで応答
今後の計画 8 • TCP/UDP/QUICのプロトコルスタックを設計/実装する ◦ ネットワークソケットの実装 ◦ ステートフルな通信の処理を書く • 物理NIC(e1000など)でネットワーク処理を書く
◦ virtioに関する実装はほとんどが共有メモリの初期化作業だった ◦ あまりNICを触っているという気持ちにならなかった ◦ 本物のNICのための処理を書いてみたい 本実装に関する今後の計画
参考⽂献 9 [1] "Operating System in 1000 Lines." Operating System
in 1000 Lines, n.d., https://operating-system-in-1000-lines.vercel.app/ja/. [2] "RISC-V Open Source Supervisor Binary Interface (OpenSBI)." GitHub, n.d., https://github.com/riscv-software-src/opensbi. [3] QEMU Project. “QEMU - The Fast Processor Emulator.” QEMU, n.d, https://www.qemu.org. [4] Tsirkin, Michael S., and Cornelia Huck, editors. Virtual I/O Device (VIRTIO) Version 1.1. OASIS, 20 Dec. 2018, https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html.