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
第3回 GNU/Linux勉強会
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiroto Sasagawa
July 09, 2023
Programming
520
0
Share
第3回 GNU/Linux勉強会
Hiroto Sasagawa
July 09, 2023
More Decks by Hiroto Sasagawa
See All by Hiroto Sasagawa
IP Anycastとリバースプロキシ
nagutabby
0
450
HSTSについて調べた
nagutabby
0
410
第1回 AWS勉強会
nagutabby
0
590
第1回 GNU/Linux勉強会
nagutabby
0
540
第2回 GNU/Linux勉強会
nagutabby
0
460
DNSを標的とする攻撃
nagutabby
0
470
EC2とCloudWatchで始める高対話型ハニーポット運用
nagutabby
0
600
Other Decks in Programming
See All in Programming
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
290
おれのAgentic Coding 2026/03
tsukasagr
1
150
iOS機能開発のAI環境と起きた変化
ryunakayama
0
180
実用!Hono RPC2026
yodaka
2
220
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
140
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
240
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
810
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
250
2026_04_15_量子計算をパズルとして解く
hideakitakechi
0
110
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
500
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
250
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
210
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.3k
Being A Developer After 40
akosma
91
590k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
130
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
39k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
270
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
A Soul's Torment
seathinner
6
2.7k
Transcript
第3回 GNU/Linux 勉強会 ディレクトリ構造、ファイルシステム 2022/8/10 笹川 尋翔
ディレクトリとファイルシステム • “ディレクトリ”という機能はファイルシステムによって 提供されている • ファイルシステムが実装されていないオブジェクトストレージ などは階層構造を持たない • 現在のLinuxはext4というファイルシステムがデフォルト
ディレクトリ構造 • treeコマンドでファイルやディレクトリ をツリーで表⽰ • -d: ディレクトリのみを表⽰ • -L: 最⼤の深さを指定
• ⽔⾊はシンボリックリンク • tmpは特殊なディレクトリ(後述)
/usr - ユーザ間で共通のプログラム - • 複数のユーザが共通して利⽤するプログラムが配置される • usr/include: C⾔語のヘッダファイル(glibc) •
/usr/bin, /usr/sbin: バイナリファイル(後述) • /usr/lib: ライブラリ
/usr/bin, /usr/sbin - バイナリファイル - • bin(binary)ファイル(コマンド)が配置される • /usr/binや/usr/sbinはデフォルトで環境変数PATHに 設定されている
• /usr/bin: ⼀般ユーザ⽤のコマンドを配置 • /usr/sbin: 管理者⽤のコマンドを配置
/boot - カーネル, GRUB - • OSを起動するために必要なファイルなどが 配置される • カーネルイメージ,
起動の際に使われる設定ファイルなど • /bootディレクトリを削除してしまうとLinuxが起動しなくなる • GRUB(GRand Unified Bootloader)の設定ファイルが 格納されている • /boot/grub/grub.cfg
/dev - デバイスファイル - • キーボード⌨やマウス🖱などと接続する際に使⽤される ファイル(デバイスファイル)が配置される • /dev/sd[a-z][数字]: HDD
• /dev/sda1: 1番⽬にロードされたHDDの1番⽬のパーティション • /dev/sdb1: 2番⽬にロードされたHDDの1番⽬のパーティション • dev/tty[数字]: 制御端末 • それぞれの端末で⼊出⼒を実現するための特殊ファイル
/etc - 設定ファイル - • システムの様々な設定ファイルが配置される • NGINX(/etc/nginx/nginx.conf), cron(/etc/cron.d) •
/etc/passwd: パスワード以外のユーザ情報 • どのユーザでも閲覧できる • /etc/shadow: 暗号化されたパスワードなどのユーザ情報 • 管理者のみが閲覧できる
/home - ホームディレクトリ - • それぞれのユーザのホームディレクトリが配置される • ただし、rootユーザのホームディレクトリは含まれない • rootユーザのホームディレクトリは/root
• ⼀般ユーザはrootユーザのホームディレクトリにはアクセス できない
/opt - サードパーティのソフトウェア - • デフォルトのシステムにはインストールされない、 サードパーティのソフトウェアが配置される • 実際には、サードパーティのソフトウェアのほとんどは /usr/local/binなどに配置されるため、あまり使われない
/tmp - ⼀時的なファイル - • ⼀時的なファイルが配置される • 全てのユーザが読み書きできる • /tmpにあるファイルやディレクトリはシステムを再起動すると
全て削除される • スティッキービットが付与されている
スティッキービット • スティッキービットが付いたディレクトリの特徴 • オーナー(所有者)と管理者のみが削除できる • 全てのユーザが読み書きできる • lsコマンドの-lオプションを⽤いて確認できる
スティッキービット • スティッキービットを付与するにはchmodを使う • 通常のパーミッションに1000を加算した値を指定する
/var - 動的なファイル - • ログやキャッシュなどの動的なファイルが配置される • /var/log: ログファイル •
/var/cache: キャッシュファイル
ファイルシステム • ストレージを管理するための機能 • 階層構造やファイルを⽤いてデータを読み書きできる • ファイルを通じてシステムのリソースにアクセスできる • /devにあるデバイスファイルが代表的な例 •
Linuxで採⽤されている有名なファイルシステム • ext(ext1), ext2, ext3, ext4, Btrfs, FAT32
ext(extended file system) • 1992年に公開された、Linux向けのファイルシステム • 16ビットのシステムに対応 • ファイルサイズの上限は64MB •
ファイル名の上限は14⽂字
ext2 • 1993年に公開された、ext1の後継のファイルシステム • ファイルサイズの上限は4TB • ボリュームサイズの上限は16TB • ファイル名の上限は255⽂字
ext3 • 2001年に公開された、ext2の後継のファイルシステム • ファイルサイズ、ボリュームサイズ、ファイル名の上限などの 基本的な仕様は同じ • ジャーナリングファイルシステム
ジャーナリングファイルシステム • ジャーナリング • “ジャーナル”という更新内容を定期的に記録する技術 • 障害が発⽣した際に、ジャーナルを元にシステムを復旧できる • 起動を⾼速化できる •
ジャーナリングファイルシステム • ジャーナリング機能を備えたファイルシステム • ジャーナリングを利⽤してメタデータの整合性を取ることで、 ファイルシステム全体のデータを保護できる
ext4 • 2008年に公開された、ext3の後継のファイルシステム • 現在、Linuxで標準的に利⽤されている • ファイルサイズの上限は16TB • ボリュームサイズの上限は1EB(1000PB) •
ジャーナリングファイルシステム
Btrfs(B-tree file system, バターエフエス) • 2007年にOracleがGPLライセンスで公開 • フォールトトレランスに重点を置いて開発 • 耐障害性が⾼い
• メタデータを⾃動的に複製することで⾼い耐障害性を実現 • B⽊に格納することから名称が付けられた • ファイルサイズの上限は16EiB
FAT32(File Allocation Table 32) • EFIシステムパーティションでよく⽤いられる • 他のファイルシステム(FAT12, FAT16)で EFIシステムパーティションを作成することもできるが、
UEFIの仕様ではFAT32を使って作成することが推奨されている
EFIシステムパーティション • ブートローダやデバイスドライバなどを格納する パーティション • Linuxをインストールする際に必要となるパーティションの1つ • Linuxの場合は1GBの領域を確保していれば⼗分