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
270
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
51
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
1
57
ファイルシステムの整合性を回復するfsck
sat
PRO
1
58
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
4.8k
ファイルシステムの不整合
sat
PRO
2
150
書籍執筆での生成AIの活用
sat
PRO
2
500
ChatGPTに従って体調管理2026
sat
PRO
0
180
eBPF
sat
PRO
1
160
waruiBPF
sat
PRO
0
140
Other Decks in Technology
See All in Technology
React、まだ楽しくて草
uhyo
7
4k
運用を見据えたAIエージェント設計実践
amacbee
1
2.7k
Dynamic Workersについて
yusukebe
2
580
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.2k
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
6.7k
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
740
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Ruby::Boxでできること、Refinementsでできること
joker1007
3
380
Spring Boot における AOT Cache 活用テクニックと 起動時間改善事例
ntt_dsol_java
0
210
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
130
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
大学生が本気でDatabricksを活用してDiscordサークルをデータ駆動させてみた
phantomjuju
1
340
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Faster Mobile Websites
deanohume
310
31k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Thoughts on Productivity
jonyablonski
76
5.2k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
960
Speed Design
sergeychernyshev
33
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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のソースコードはめっちゃデカい • バージョンごとの差分もデカい • サブシステムごとにディレクトリが分かれている ◦ それぞれメンテナがいる ◦
開発もサブシステム単位