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
290
俺とキャンプ2
sat
PRO
1
110
俺とキャンプ3
sat
PRO
0
87
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
39
RAIDの実現方法
sat
PRO
2
78
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
120
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
65
ボリュームマネージャ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
データベース05: SQL(2/3) 結合質問
trycycle
0
110
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
12
7.9k
エムスリーマルチデバイスチーム紹介資料 / Introduction of M3 Multi Device Team
m3_engineering
1
170
iThome2024 Wailing Wall of Enterprise Security
notsurprised
0
300
【リラン】AIの光と闇?失敗しないために知っておきたいAIリスクとその対応 ①政府の動き編
tkhresk
0
140
.NET GraphQL Client のリアル
sansantech
PRO
1
430
パフォーマンス最適化のベストプラクティス
databricksjapan
0
210
My road to OSEE Part1
yunolay
0
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
38k
Databricksの生成AI戦略
taka_aki
1
380
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
1
140
TailwindCSSでUIライブラリを作る際のハマりどころ
shuta13
0
230
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
26
5.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Statistics for Hackers
jakevdp
790
220k
Automating Front-end Workflow
addyosmani
1357
200k
Documentation Writing (for coders)
carmenintech
60
4k
Infographics Made Easy
chrislema
238
18k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
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