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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
170
No More NoSuchMethodError
exoego
1
120
ActionController meets Protocol Buffers
sorah
1
770
Next.js: The final boss of Web Performance
guaca
0
380
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
300
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
250
SODA - FACT BOOK(JP)
sodainc
1
40k
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.8k
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
230
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
310
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
200
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
160
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
660
Balancing Empowerment & Direction
lara
6
1.4k
Navigating Team Friction
lara
192
16k
HDC tutorial
michielstock
2
990
Everyday Curiosity
cassininazir
0
390
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
350
Thoughts on Productivity
jonyablonski
76
5.4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Optimizing for Happiness
mojombo
378
71k
Accessibility Awareness
sabderemane
1
280
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
440
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.