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
200
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
270
俺とキャンプ2
sat
PRO
1
100
俺とキャンプ3
sat
PRO
0
84
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
34
RAIDの実現方法
sat
PRO
2
69
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
110
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
57
ボリュームマネージャLVM
sat
PRO
2
92
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
2k
Other Decks in Technology
See All in Technology
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
320
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
150
止まらないLinuxシステムを構築する_高信頼性クラスタ入門
koedoyoshida
2
460
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.7k
require(ESM)とECMAScript仕様
uhyo
4
990
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
510
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
120
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
1k
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
2
400
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
400
Azureの基本的な権限管理の勉強会
yhana
1
2.1k
Featured
See All Featured
Statistics for Hackers
jakevdp
790
220k
KATA
mclloyd
16
12k
Agile that works and the tools we love
rasmusluckow
325
20k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Code Review Best Practice
trishagee
56
15k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
For a Future-Friendly Web
brad_frost
172
9k
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