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
480
第3回 GNU/Linux勉強会
Hiroto Sasagawa
July 09, 2023
Tweet
Share
More Decks by Hiroto Sasagawa
See All by Hiroto Sasagawa
IP Anycastとリバースプロキシ
nagutabby
0
410
HSTSについて調べた
nagutabby
0
390
第1回 AWS勉強会
nagutabby
0
510
第1回 GNU/Linux勉強会
nagutabby
0
500
第2回 GNU/Linux勉強会
nagutabby
0
430
DNSを標的とする攻撃
nagutabby
0
440
EC2とCloudWatchで始める高対話型ハニーポット運用
nagutabby
0
510
Other Decks in Programming
See All in Programming
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
180
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
890
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
似たもの同士のPerlとPHP
uzulla
1
130
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.4k
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
42 best practices for Symfony, a decade later
tucksaun
1
180
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
350
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Done Done
chrislema
181
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Rails Girls Zürich Keynote
gr2m
94
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
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の領域を確保していれば⼗分