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
Linuxカーネルの インタフェースは変わりうる?
Search
Satoru Takeuchi
PRO
August 25, 2026
Technology
120
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Linuxカーネルの インタフェースは変わりうる?
以下動画のスライドです。
https://youtu.be/i8zsuhX8xmk
Satoru Takeuchi
PRO
August 25, 2026
Transcript
8 slides
Linuxカーネルの インタフェースは変わりうる? Aug. 25th, 2026 Satoru Takeuchi X: satoru_takeuchi 1
Linuxカーネルのインタフェースの種類 • ユーザが意識する外部インタフェース(e.g. システムコール, sysfs, procfs) ◦ ◦ ◦ ◦
• 一般的なユーザが使用するようなものは通常互換性は保たれ続ける 開発初期の機能は変わることもある 誰も使ってないなどの理由によって稀に削除されることもある 詳細は公式ドキュメントを参照 ▪ Documentation/ABI/README カーネルのサブシステムが内部で使うインタフェース(API) ◦ ◦ 変わりうると明言されている (Documentation/process/stable-api-nonsense.rst) これをもって外部インタフェースが変わり得ると誤解している人が多い 2
カーネルモジュール用にexportされているAPIも変わる • • Linuxはカーネルの機能をカーネルモジュールという形で挿入できる Linuxのソースに同梱されていなくてもカーネルモジュールは作れる ◦ • • • Linuxに同梱ではないカーネルモジュールを
out-of-treeモジュールと呼ぶ カーネルモジュールを作るためにLinuxはAPIをexportしている このAPIもカーネルバージョンが違えば変わりうる カーネルバージョンが変わるとout-of-treeモジュールがビルドできなくなった…とい うことはザラに起きる ◦ 追従が大変! 3
例: 2012年に私が教育用に書いたカーネルモジュール … struct timer_list mytimer; #define MYTIMER_TIMEOUT_SECS 10 static
void mytimer_fn(unsigned long arg) { printk(KERN_ALERT "10 secs passed.\n"); } static int mymodule_init(void) { init_timer(&mytimer); mytimer.expires = jiffies + MYTIMER_TIMEOUT_SECS*HZ; mytimer.data = 0; mytimer.function = mytimer_fn; add_timer(&mytimer); } … return 0; 4
2018年に出たv4.18でビルドできなくなっていた! • • コンパイラ「init_timer()なんて関数は無い」 なぜだ!? 5
調査結果 • • init_timer()はセキュリティホールを生みやすいなどの欠点があった 2017年9月にinit_timer()の代替となるtimer_setup()という関数ができた ◦ • https://github.com/torvalds/linux/commit/686fef928bba6be13cabe639f154af7d72b63120 しばらくは新旧インタフェースが共存していて、2017年11月にinit_timer()は削除さ れた
◦ https://github.com/torvalds/linux/commit/7eeb6b893bd28c68b6d664de1d3120e49b855cdb 6
このようなことが起きたときの対処 • カーネルソース内の機能 ◦ ◦ ◦ • インタフェースを変えた人が全呼び出し箇所を置き換えることがある init_timer()のように新旧インタフェースをしばらく共存させて、いずれ全部新しいほうで置き換えるこ とがある
どちらにせよ、いずれ対応される out-of-treeモジュール ◦ ◦ ◦ 気づかないうちにビルドできなくなっていることがある 定期的に追従できているか確認する必要がある 公式カーネルに取り込むと比較的楽ができる 7
まとめ • • • Linuxのユーザ向け外部インタフェースは滅多に変わらない 開発者向け内部インタフェースは頻繁に変わる out-of-treeドライバ開発者は変化に追従するのが大変 8
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
コピーオンライト型ファイルシステムと ランダム書き込み
sat
PRO
2
52
119-多機能ファイルシステムBtrfs_のコピー.pdf
sat
PRO
1
85
あなたの知らないバージョン命名規則
sat
PRO
3
940
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
84
Machine Check Exception
sat
PRO
2
74
バイナリダンプの模様を読む
sat
PRO
0
120
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
120
114-ファイルのshallow_copy.pdf
sat
PRO
2
75
113-Btrfsのスナップショット.pdf
sat
PRO
0
55
Other Decks in Technology
See All in Technology
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
430
Gemma4 Hands-on at Nagoya
tsho
0
100
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
880
AI対話型分析を作成し、リリースするまでの話 / The Road to Release: Buiding AI Conversational Analytics
yappli_developers
0
120
異夢同船〜異なる夢でも同じ船でなんとかする〜
fortegp05
0
230
うちなーぐちが認識できるなら、秋田弁もいけるはず!? Amazon Transcribe方言チューニング検証
ryouto715
1
170
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
AIが会計業務の伴走者に。 マネーフォワード クラウド会計MCPサーバーで実現するAI前提の新しい業務プロセス
nobitabashi
0
130
[NW-JAWS DAY]「うちのAWS、インターネット出られないんで」― AWS外の自社サービスをPrivateLinkでシュッと公開する方法
ykimi
2
300
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
300
SREのためのFinOps入門
muziyoshiz
3
1.5k
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.7k
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
3
810
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
940
Speed Design
sergeychernyshev
33
2.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
2
520
Why Our Code Smells
bkeepers
PRO
340
58k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
2k
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Practical Orchestrator
shlominoach
192
12k