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
18行のLinuxカーネルモジュールを 作ってみる
Search
Satoru Takeuchi
PRO
November 28, 2023
Technology
1
210
18行のLinuxカーネルモジュールを 作ってみる
以下動画のテキストです
https://youtu.be/U6cCXndBDVU
Satoru Takeuchi
PRO
November 28, 2023
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
280
俺とキャンプ2
sat
PRO
1
100
俺とキャンプ3
sat
PRO
0
85
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
39
RAIDの実現方法
sat
PRO
2
76
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
120
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
63
ボリュームマネージャLVM
sat
PRO
2
93
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
2.1k
Other Decks in Technology
See All in Technology
テストコードを書きながらCompose Multiplatformを乗りこなす
subroh0508
0
130
Dungeons and Dragons and Rails
joelq
0
220
能動学習のいろは:書籍「Human-in-the-Loop機械学習」3〜5章
hiroyoshiito
0
290
Domain-driven Design: A Complete Example
ewolff
2
230
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
2k
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
310
知識と実践を紡ぐGenAI / Connecting Knowledge and experience with GenAI
aki_moon
2
150
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
8
8.1k
「できる!」を増やすGitHub Copilot活用法 / How to use GitHub Copilot to expand your possibilities
sansan_randd
1
220
ハードウェアを動かすTypeScriptの世界
9wick
3
1.1k
From here to resilience - a travel guide
ufried
1
160
本番環境で Cloudflareを 使ってみた話
miu_crescent
2
120
Featured
See All Featured
Web development in the modern age
philhawksworth
203
10k
Atom: Resistance is Futile
akmur
260
25k
Teambox: Starting and Learning
jrom
128
8.4k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Writing Fast Ruby
sferik
622
60k
Fireside Chat
paigeccino
22
2.7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
Facilitating Awesome Meetings
lara
43
5.6k
Web Components: a chance to create the future
zenorocha
306
41k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
Transcript
18行のLinuxカーネルモジュールを 作ってみる Nov. 28th, 2023 Satoru Takeuchi X: satoru_takeuchi 1
今回話すこと • Linuxのカーネルモジュールを作ってカーネル開発の入口の入口に立つ • Ubuntu 22.04.3で実験 2
そもそもカーネルモジュールとは • Linuxカーネルの機能の一つ • システムの動作中にカーネルに機能を組み込む • 組み込まれた機能はlsmodコマンドでリストできる • カーネル本体を拡張するのは大変 •
単純なカーネルモジュールを作るくらいなら簡単 3
カーネル開発にはお作法がある • Kbuildという独自のビルドフレームワークに沿ったMakefileを書く ◦ 頑張ってKbuildを理解する必要はなくてコピペでいい ◦ Building External Modules ▪
https://github.com/torvalds/linux/blob/master/Documentation/kbuild/modules.rst • モジュールの作者、ライセンス、簡単な説明などを書く • カーネルモジュールのコードを書く ◦ 所定のシグネチャを持つ初期化関数と終了関数を書く ◦ あとは自由 ◦ C言語なのでちょっと大変かも ▪ 最近はRustで書ける(そのうち紹介するかもしれない ) 4
この動画で作るもの: helloモジュール 1. ロード時に”Hello world!\n”という文字列をカーネルログに出力 2. たった18行 5
まとめ • Linuxのカーネルモジュールは凄く簡単なものならすぐ作れる • ソース ◦ https://github.com/satoru-takeuchi/youtube-sample/0061-linux-kernel-module 6