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
510
第3回 GNU/Linux勉強会
Hiroto Sasagawa
July 09, 2023
Tweet
Share
More Decks by Hiroto Sasagawa
See All by Hiroto Sasagawa
IP Anycastとリバースプロキシ
nagutabby
0
430
HSTSについて調べた
nagutabby
0
400
第1回 AWS勉強会
nagutabby
0
540
第1回 GNU/Linux勉強会
nagutabby
0
520
第2回 GNU/Linux勉強会
nagutabby
0
440
DNSを標的とする攻撃
nagutabby
0
460
EC2とCloudWatchで始める高対話型ハニーポット運用
nagutabby
0
540
Other Decks in Programming
See All in Programming
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
500
20250708_JAWS_opscdk
takuyay0ne
2
130
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
220
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
250
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
870
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
270
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
880
What's new in AppKit on macOS 26
1024jp
0
150
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
300
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7k
Done Done
chrislema
184
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
RailsConf 2023
tenderlove
30
1.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
340
How GitHub (no longer) Works
holman
314
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Gamification - CAS2011
davidbonilla
81
5.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
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の領域を確保していれば⼗分