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
Hiroto Sasagawa
July 09, 2023
Programming
0
520
第3回 GNU/Linux勉強会
Hiroto Sasagawa
July 09, 2023
Tweet
Share
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
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.6k
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
240
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
550
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
130
SourceGeneratorのマーカー属性問題について
htkym
0
180
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
420
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
730
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
360
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.2k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
270
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
200
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
710
Featured
See All Featured
Docker and Python
trallard
47
3.8k
[SF Ruby Conf 2025] Rails X
palkan
2
820
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Navigating Team Friction
lara
192
16k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
190
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
390
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
WENDY [Excerpt]
tessaabrams
9
36k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
140
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
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の領域を確保していれば⼗分