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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoru Takeuchi
PRO
August 20, 2025
Technology
1
100
ファイルシステム
以下動画のテキストです
https://youtu.be/0X0g2rephE8
Satoru Takeuchi
PRO
August 20, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
3.2k
ファイルシステムの不整合
sat
PRO
2
120
書籍執筆での生成AIの活用
sat
PRO
1
390
ChatGPTに従って体調管理2026
sat
PRO
0
160
eBPF
sat
PRO
1
130
waruiBPF
sat
PRO
0
120
eBPFとwaruiBPF
sat
PRO
5
4.1k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
110
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
210
Other Decks in Technology
See All in Technology
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
2
340
OSSで構築するIT基盤管理実践事例: NetBox・Snipe-IT・FreeRADIUS+PrivacyIDEA / Practical Case Studies of IT Infrastructure Management Using OSS
nttcom
0
190
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
1
980
Webアクセシビリティ技術と実装の実際
tomokusaba
0
210
マネージャー版 "提案のレベル" を上げる
konifar
16
11k
Security Diaries of an Open Source IAM
ahus1
0
190
Digitization部 紹介資料
sansan33
PRO
1
7k
ブラックボックス観測に基づくAI支援のプロトコルのリバースエンジニアリングと再現~AIを用いたリバースエンジニアリング~ @ SECCON 14 電脳会議 / Reverse Engineering and Reproduction of an AI-Assisted Protocol Based on Black-Box Observation @ SECCON 14 DENNO-KAIGI
chibiegg
0
140
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
3
180
大規模サービスにおける レガシーコードからReactへの移行
magicpod
1
120
組織のSREを推進するためのPlatform EngineeringとEKS / Platform Engineering and EKS to drive SRE in your organization
chmikata
0
180
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
260
How GitHub (no longer) Works
holman
316
140k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
84
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
99
Information Architects: The Missing Link in Design Systems
soysaucechin
0
810
Crafting Experiences
bethany
1
75
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
200
Git: the NoSQL Database
bkeepers
PRO
432
66k
Color Theory Basics | Prateek | Gurzu
gurzu
0
220
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Scaling GitHub
holman
464
140k
It's Worth the Effort
3n
188
29k
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