reference: https://pages.cs.wisc.edu/~remzi/OSTEP/, 시스템 프로그래밍, 운영체제 수업(최종무 교수님)
File system
파일 시스템은 SSD나 HDD, USB 메모리처럼 물리적인 기억 장치에 존재한다.
SSD나 HDD와 같은 경우, 디스크를 파티션 단위로 나눠 그 위에 파일 시스템을 얹어 마운트한다. 그러면 거대한 디렉터리 트리가 생성된다.
1. fidisk: 파티션 생성 및 mkfs: 파일 시스템 생성 명령어
- 파일 시스템 생성
- file system: 디렉터리와 파일들의 집합
- related metadata: 파일 시스템이 생성되면, 파일 시스템은 superblock(fs의 size, inode 생성 가능 갯수..), bitmap(어느 블록이 사용가능하고, 사용할 수 없는지 확인)과 같은 메타 데이터들을 생성하고 관리한다.
- command: mkfs
디스크 파티션에 비어있는 파일 시스템을 만든다.
(비어있는 파일 시스템이란 root 디렉터리만 가지고 있음을 뜻한다
- 파티션 생성
- command: fdisk
- ex, /dev/sda5: 스카시 타입의 디스크, 첫번째(a) 디스크, 파티션 넘버(5)
- patitioning and mkfs => Ext2/3/4, NFS, LFS, proc, sysfs ... per a partition
2. mount
- 특정 파티션에 생성된 파일 시스템에 유저가 접근할 수 있도록 한다.
- 또한 다양한 파일 시스템들을 디렉터리 트리에 연결시킨다.
- command: mount
- ex) $mount -t ext3 /dev/sda4 /mnt
Appendix
그림1. disk partition
그림2. 디렉터리 계층 구조
/dev/sda1 파티션에 생성된 ext4 타입의 파일 시스템이 '/'(루트 디렉터리)에 마운트됨(mounted).
그림3. sda