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
ファイルシステム
Search
Satoru Takeuchi
PRO
August 20, 2025
Technology
1
83
ファイルシステム
以下動画のテキストです
https://youtu.be/0X0g2rephE8
Satoru Takeuchi
PRO
August 20, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
140
様々なファイルシステム
sat
PRO
0
300
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
380
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
140
「Linux」という言葉が指すもの
sat
PRO
4
230
APIとABIの違い
sat
PRO
5
230
ファイルシステムへのアクセス方法
sat
PRO
0
92
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.2k
Other Decks in Technology
See All in Technology
自己的售票系統自己做!
eddie
0
340
Flutter DevToolsで発見! 本番アプリのパフォーマンス問題と改善の実践
goto_tsl
1
140
Databricks Free Editionで始めるMLflow
taka_aki
0
870
Proxmox × HCP Terraformで始めるお家プライベートクラウド
lamaglama39
1
150
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
2
420
AI時代におけるドメイン駆動設計 入門 / Introduction to Domain-Driven Design in the AI Era
fendo181
0
620
Sansan BIが実践する AI on BI とセマンティックレイヤー / data_summit_findy
sansan_randd
0
130
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
140
仕様駆動 x Codex で 超効率開発
ismk
2
1.2k
Data Engineering Guide 2025 #data_summit_findy by @Kazaneya_PR / 20251106
kazaneya
PRO
10
2.1k
どうなる Remix 3
tanakahisateru
2
350
AIエージェントを導入する [ 社内ナレッジ活用編 ] / Implement AI agents
glidenote
1
350
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
The Invisible Side of Design
smashingmag
302
51k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Designing for humans not robots
tammielis
254
26k
BBQ
matthewcrist
89
9.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Making Projects Easy
brettharned
120
6.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Transcript
ファイルシステム Aug. 20th, 2025 Satoru Takeuchi X: satoru_takeuchi 1
ユーザのデータはどこに保存(永続化)するのか • ストレージデバイス(ブロックデバイス)に保存 ◦ 📝 その58「Linuxの色々なブロックデバイス」 ◦ 📝 その98「デバイスにアクセスするデバイスファイル」 ◦
📝 その100「デバイスドライバ」 • ストレージデバイスを直接扱うのは大変で現実的ではない ◦ 「文書、スプレッドシートといったデータをストレージデバイスに保存して、保存した場所を人間が覚 えておく」というのは現実的ではない • そこでファイルシステムですよ 2
ファイルシステム • コンピュータがデータの読み書き、管理をするための仕組みの一つ • Linuxで広く使われるファイルシステムの利用者から見た構造 ◦ 「ファイル」と「ディレクトリ」という基本単位から構成される ◦ 「ルート」と呼ばれるディレクトリの下に木構造を構成する ▪
ディレクトリは内部ノード。子ノードとしてファイルとディレクトリを持てる ▪ ファイルは利用者のデータを保持するバイト列 3 root dir0 dir1 f0 f1 f2 dir2 f3
内部構造 • 「ファイルを保存するためのデータ構造」と「データにアクセスするコード」の2つから 構成されるプログラム • 様々な実装がある: ext4, XFS, Btrfs ◦
それぞれ「データ構造」「コード」が全然異なる ◦ 性能、機能も全然違う • どれを使えばいいのか? ◦ 完璧なものはない ◦ 自分の要件を定義して、それに合う好きなものを使えばいい ◦ 厳しい要件がなければ、迷ったら「 distroのデフォルトのもの」を使えばよい 4
概念図 5 ユーザモード カーネルモード ストレージデバイス プロセス ファイルシステムの コード どこに何のファイルがあ るかを保存するメタデー
タ f0のデータ 1. ファイルf0を読み 出すよう依頼 2. f0の場所を検索 3.データ読み出し 4.データを渡す
TIPS • データを整理、管理する方法はLinuxのようなツリー構造のファイルシステムだけで はない • オブジェクトストレージ ◦ ディレクトリという概念が無い ◦ バケットという1つの名前空間の下に様々な大きさのオブジェクトが全て保存される
• データセット ◦ メインフレームで使われているデータ保存方式 ◦ 個々のデータはバイトストリームではなく固定長のレコード ◦ 📝 Wikipediaのデータセットの項目 ▪ https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E 3%83%83%E3%83%88_(IBM%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%95% E3%83%AC%E3%83%BC%E3%83%A0) 6
まとめ • 通常はストレージデバイス上のデータにファイルシステムを使ってアクセス • Linuxのファイルシステムはファイルとディレクトリから成るツリー構造 • 様々なファイルシステムがあり、どれも一長一短 • Linuxのようなファイルシステム以外にもデータを保存する様々な方法がある 7