lsblk: 모든 블록 디바이스 나열
fdisk, parted: 디스크 파티션 관리
blkid: UUID(Universal Unique Identifier)와 같은 블록 디바이스 식별자 및 속성 표시표시
file -s: 파일 시스템, 파티션 정보 표시
stat, df -i, ls -i: 아이노드와 관련된 정보 표시 및 목록 출력
가상 파일 시스템(VFS: Virtual File System)은
클라이언트(시스템 콜)와 개별 파일시스템 사이에 간접 계층을 도입한다.
이때, 개별 파일시스템은 구체적인 디바이스 or 다른 리소스 유형을 위한 연산을 한다.
로컬 파일시스템: 드라이버를 사용하여 로컬 블록 디바이스(HDD, SSD)에 접근한다.
ex) ext3, XFS, FAT, NTFS 파일시스템
인메모리 파일시스템: 메인 메모리(RAM)에 상주한다 (장기 저장 디바이스 지원 X)
ex) tmpfs
의사 파일시스템: 커널 인터페이스와 디바이스 추상화에 사용된다 (본질적으로는 인메모리)
ex) procfs, sysfs, devfs
(process, system, device)
네트워크 파일시스템: 드라이버를 사용한다. 로컬이 아닌 원격으로 연결되어 있다.
ex) NFS, Samba, Netware
아이노드: chmod, chown, stat
파일: open, close, seek, truncate, read, write
디렉터리: chdir, getcwd, link, unlink, rename, symlink
파일시스템: mount, flush, chroot
그 외: mmap, poll, sync, flock
우분투 리눅스에서 범용 최상위 디렉터리를 나열하고, 모두 설명해봐
아래의 디렉터리들은 리눅스 시스템의 구성요소를 각각 담당하며,
시스템의 안정성과 성능을 유지하는 데 중요한 역할을 합니다.
/ (root):
전체 파일 시스템의 루트 디렉터리입니다. 모든 파일과 디렉터리의 시작 지점입니다.
/usr (user):
사용자가 설치한 소프트웨어, 라이브러리, 문서 등이 저장되는 디렉터리입니다.
/bin (binaries):
기본적인 시스템 실행 파일이 위치하는 디렉터리입니다.
시스템 부팅 및 복구에 필요한 명령어들이 포함되어 있습니다.
/sbin (system binaries):
시스템 관리자를 위한 실행 파일이 위치하는 디렉터리입니다.
주로 시스템 관리에 필요한 명령어들이 여기에 있습니다.
/boot:
부트 로더와 커널 이미지가 저장되는 디렉터리입니다.
시스템이 부팅될 때 필요한 파일들이 여기에 위치합니다.
/dev (devices):
장치 파일들이 저장되는 디렉터리입니다.
시스템의 하드웨어 디바이스와 관련된 파일들이 있습니다.
/etc (et cetera):
시스템의 설정 파일들이 저장되는 디렉터리입니다.
여러 프로그램의 구성과 관련된 설정 파일들이 위치합니다.
/home:
사용자 홈 디렉터리들이 위치하는 디렉터리입니다.
각 사용자는 자신의 홈 디렉터리에서 개인 파일들을 관리합니다.
/lib (libraries):
실행 파일들이 필요로 하는 라이브러리 파일들이 위치하는 디렉터리입니다.
공유 라이브러리들이 여기에 있습니다.
/media:
외부 장치(USB 드라이브, CD-ROM 등)가 자동으로 마운트되는 디렉터리입니다.
/mnt (mount):
일시적으로 파일 시스템을 마운트할 때 사용하는 디렉터리입니다.
/opt (optional):
여분의 소프트웨어 패키지들이 설치되는 디렉터리입니다.
주로 상용 소프트웨어들이 여기에 설치될 수 있습니다.
/proc (process):
커널 및 현재 실행 중인 프로세스에 대한 가상 파일 시스템입니다.
프로세스와 관련된 정보가 여기에 있습니다.
/run:
시스템 부팅 중 생성되는 일시적인 파일이나 데이터를 저장하는 디렉터리입니다.
/srv (service):
시스템에서 제공하는 서비스들의 데이터가 저장되는 디렉터리입니다.
/sys:
리눅스 커널의 파라미터와 상태에 대한 정보를 제공하는 가상 파일 시스템입니다.
/tmp (temporary):
일시적인 파일들이 저장되는 디렉터리입니다.
시스템 재부팅 시 삭제되는 파일들이 여기에 위치합니다.
/var (variable):
시스템 운영 중에 변경되는 변수 데이터들이 저장되는 디렉터리입니다.
로그 파일, 프로세스가 생성하는 임시 파일 등이 여기에 위치합니다.
attr: 보안 속성 (디렉터리)
cgroup, 제어 그룹 (파일)
cmdline: 커맨드라인 (파일)
cwd: 현재 작업 디렉터리 (링크)
environ: 환경변수 (파일)
exe: 프로세스 실행 파일 (링크)
fd: 파일 디스크립터 (디렉터리)
io: 스토리지 I/O (바이트or문자 읽기/쓰기) (파일)
limits: 리소스 한계 (파일)
mem: 사용된 메모리 (파일)
mounts: 사용된 마운트 (파일)
net: 네트워크 통계 (디렉터리)
stat: 프로세스 상태 (파일)
syscall: 시스템 콜 사용량 (파일)
task: 작업별(스레드별 정보) (디렉터리)
timers: 타이머 정보 (파일)
block/: 발견된 블록 디바이스의 심볼릭 링크다.
bus/: 커널에서 지원하는 각 물리 버스 유형마다 1개씩 하위 디렉터리가 있다.
class/: 디바이스 클래스를 포함한다.
dev/: (major-ID:minor-ID로 특정 디바이스를 고유하게 식별)
dev/block/: (블록 단위로 데이터를 읽고 쓰는 디바이스용) ex. 하드 디스크
dev/char/: (문자 단위로 데이터를 읽고 쓰는 디바이스용) ex. 터미널(입출력 장치)
devices/: 커널은 디바이스를 트리 형태로 표현한 정보를 제공한다
firmware/: 펌웨어 관련 속성을 관리한다
fs/: 일부 파일시스템의 하위 디렉터리를 포함한다
module/: 여기서 커널에 로드된 각 모듈의 하위 디렉터리를 찾을 수 있다
/dev 파일시스템은
특수 파일(특정 디바이스를 나타냄)을 호스팅한다 (=파일을 관리하고 제어한다) (=파일을 읽고 쓴다)