Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ファイルシステムへのアクセス方法
Search
Satoru Takeuchi
PRO
August 24, 2025
Technology
0
99
ファイルシステムへのアクセス方法
以下動画のテキストです。
https://youtu.be/Ea-vQPKuDKM
Satoru Takeuchi
PRO
August 24, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
79
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
160
様々なファイルシステム
sat
PRO
0
300
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
400
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
150
「Linux」という言葉が指すもの
sat
PRO
4
230
APIとABIの違い
sat
PRO
5
260
ファイルシステム
sat
PRO
1
86
Other Decks in Technology
See All in Technology
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
310
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
980
Capture Checking / Separation Checking 入門
tanishiking
0
110
21st ACRi Webinar - AMD Presentation Slide (Nao Sumikawa)
nao_sumikawa
0
150
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
150
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
9
6.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.3k
段階的に進める、 挫折しない自宅サーバ入門
yu_kod
5
2.2k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
16k
知っていると得する!Movable Type 9 の新機能を徹底解説
masakah
0
190
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
540
その設計、 本当に価値を生んでますか?
shimomura
2
150
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
How to train your dragon (web standard)
notwaldorf
97
6.4k
What's in a price? How to price your products and services
michaelherold
246
12k
Unsuck your backbone
ammeep
671
58k
The Invisible Side of Design
smashingmag
302
51k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Six Lessons from altMBA
skipperchong
29
4.1k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Visualization
eitanlees
150
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
GitHub's CSS Performance
jonrohan
1032
470k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Transcript
ファイルシステムへの アクセス方法 Aug. 24th, 2025 Satoru Takeuchi X: satoru_takeuchi 1
ファイルシステムへのアクセス方法 • 全てのファイルシステムをPOSIXで定められた関数で操作可能 ◦ 内部的にはシステムコールを呼んでいる • 用途によって使う関数が異なる ◦ ファイル作成、削除 ▪
creat(), unlink() ◦ ファイル開閉 ▪ open(), close() ◦ 読み書き ▪ read(), write() ◦ 読み書きだけでは表現できない特殊な操作 ▪ ioctl() • 上記以外にもたくさんある 2
ioctl • 他の関数では表現できない操作が詰め込まれている ◦ ioctl()関数に機能ごとに定義されたフラグを渡す • ファイルシステム依存 ◦ サポートされていなければエラーを返す •
ext4, XFS, Btrfsでのサポート有無の違い ◦ FIEMAP: ファイルからブロックデバイスへのマップ情報を得る ▪ ext4, XFS, Btrfsすべてがサポート ◦ FICLONE: ファイルのshallow copy(cp –reflink相当) ▪ XFS, Btrfsのみがサポート ◦ BTRFS_IOC_SNAP_CREATE_V2: subvolumeのsnapshotを作成 ▪ Btrfsのみがサポート 3
Virtual File System(VFS) • 全ファイルシステムに共通の処理をまとめたカーネル内の部品 4 ユーザモード カーネルモード プロセス ファイルシステムB
ファイルシステムC ファイルシステムA VFS ext4処理用コード 物理デバイス XFS処理用コード disk disk disk 注: 本当は個々のファイルシステム処理 用コードの下にブロック層とデバイスドラ イバがあるが省略
まとめ • ファイルシステムへのアクセスにはファイルシステムの種類によらずPOSIXで定義 された関数を使う • ファイルシステム共通部分はカーネル内のVFSが処理する • 基本的な処理以外はioctl()関数を使う ◦ ファイルシステムごとにサポートする機能が違う
5