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
Linuxカーネルのソースについての小ネタ集
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoru Takeuchi
PRO
July 23, 2022
Technology
260
1
Share
Linuxカーネルのソースについての小ネタ集
以下動画のテキストです。
https://youtu.be/b8O8zj5bXB4
Satoru Takeuchi
PRO
July 23, 2022
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
40
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
1
45
ファイルシステムの整合性を回復するfsck
sat
PRO
1
45
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
3.9k
ファイルシステムの不整合
sat
PRO
2
140
書籍執筆での生成AIの活用
sat
PRO
2
480
ChatGPTに従って体調管理2026
sat
PRO
0
180
eBPF
sat
PRO
1
150
waruiBPF
sat
PRO
0
130
Other Decks in Technology
See All in Technology
古今東西SRE
okaru
1
120
小さいVue.jsを30分で作る
hal_spidernight
0
140
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
180
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
190
アクセシビリティはすべての人のもの
tomokusaba
0
250
知ってた?JavaScriptの"正しさ"を検証するテストが5万以上もあること(Test262)
riyaamemiya
1
140
Fabric MCPの紹介と使い分け
ryomaru0825
1
120
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
170
音声言語モデル手法に関する発表の紹介
kzinmr
0
160
Forget technical debt
ufried
0
160
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
2.8k
ハーネスエンジニアリング入門
knishioka
0
110
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Are puppies a ranking factor?
jonoalderson
1
3.4k
Tell your own story through comics
letsgokoyo
1
910
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
130
My Coaching Mixtape
mlcsv
0
120
Balancing Empowerment & Direction
lara
6
1.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
110
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
210
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
Linuxカーネルの ソースについての小ネタ集 Jul 22nd, 2022 Satoru Takeuchi twitter: satoru_takeuchi
概要 • Linuxカーネルのソースコードについての小ネタを紹介 ◦ 規模、ディレクトリ構造、開発スタイル • 対象バージョンはv5.18 • 個々の機能について深入りしない •
コードはほぼ読まない
どれくらいの規模? • 主にC言語で書かれているので.cファイルと.hファイルの行数をカウント ◦ find -type f -name "*.[ch]" -not
-path ".git/*" | xargs cat | wc -l • バージョン間の変更量も見る ◦ コミット数 ▪ git log --oneline v5.17..v5.18 | wc -l ◦ 変更行数 ▪ git diff --stat v5.17..v5.18 | tail
ディレクトリの構造は? • トップディレクトリを眺めてみる ◦ ls • ちょっとだけ掘ってみる ◦ kernel: コア部分
◦ mm: メモリ管理 ◦ fs: ファイルシステム ◦ drivers: デバイスドライバ ◦ arch: アーキテクチャ依存コード
どうやって開発してるの? • サブシステムごとにメンテナがいる ◦ MAINTAINERファイルを参照 • パッチがマージされるまでの流れ ◦ 開発者のパッチをサブシステム開発用の branchにマージ
▪ このへんはメーリングリスト経由だったり githubだったり ◦ サブシステム開発用の branchをLinus(Linuxのオリジナル開発者 )がmaster branchにマージ ▪ サブシステムメンテナが Linusにpull requestメールを送る • ここでいうpull requestはgithubのPRとは別物 • pull候補のbranchのURLと変更点を書いたメールを送る • 2~3ヶ月に一回新しいバージョンが出る ◦ たまにメジャーバージョンが上がるが、大した意味はない (4.19の次が5.0、など)
まとめ • Linuxのソースコードはめっちゃデカい • バージョンごとの差分もデカい • サブシステムごとにディレクトリが分かれている ◦ それぞれメンテナがいる ◦
開発もサブシステム単位