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
Satoru Takeuchi
PRO
July 23, 2022
Technology
1
240
Linuxカーネルのソースについての小ネタ集
以下動画のテキストです。
https://youtu.be/b8O8zj5bXB4
Satoru Takeuchi
PRO
July 23, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Linuxのブートプロセス
sat
PRO
6
99
シェルのジョブ
sat
PRO
1
21
常駐サービスを実現するデーモンプロセス
sat
PRO
0
26
絶対殺すSIGKILLシグナルと絶対死なないプロセス
sat
PRO
3
91
シェルのセッション
sat
PRO
2
33
RubyでKubernetesプログラミング
sat
PRO
4
190
プロセスの生成 exec編
sat
PRO
1
44
プロセスの生成 fork&exec編
sat
PRO
0
38
プロセスの生成 コピーオンライトを使ったfork編
sat
PRO
0
38
Other Decks in Technology
See All in Technology
マルチアカウント環境における組織ポリシーについて まとめてみる
nrinetcom
PRO
2
110
アジリティを高めるテストマネジメント #QiitaQualityForward
makky_tyuyan
1
490
「頑張る」を「楽しむ」に変換する技術
tomoyakitaura
1
310
生成AIがローコードツールになる時代の エンジニアの役割を考える
khwada
0
150
フォーイット_エンジニア向け会社紹介資料_Forit_Company_Profile.pdf
forit_tech
1
1.7k
Pwned Labsのすゝめ
ken5scal
2
580
x86-64 Assembly Essentials
latte72
4
630
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
210
AIエージェント入門
minorun365
PRO
34
20k
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.9k
IAMのマニアックな話2025
nrinetcom
PRO
6
1.5k
[OpsJAWS Meetup33 AIOps] Amazon Bedrockガードレールで守る安全なAI運用
akiratameto
1
140
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
53
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Statistics for Hackers
jakevdp
797
220k
What's in a price? How to price your products and services
michaelherold
244
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
KATA
mclloyd
29
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Bash Introduction
62gerente
611
210k
Agile that works and the tools we love
rasmusluckow
328
21k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
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のソースコードはめっちゃデカい • バージョンごとの差分もデカい • サブシステムごとにディレクトリが分かれている ◦ それぞれメンテナがいる ◦
開発もサブシステム単位