Directory & File
- base strucutre

Directory 관련 명령어
- mkdir: 디렉토리 생성
- rmdir: 디렉토리 제거
- mv: 파일 이름 변경 또는 파일 이동
- cd: 특정 디렉토리로 이동
- pwd: 현재 작업 디렉토리 경로명 출력
ln 명령어
$ ln ../a/x d1/xlink
-> 파일 x와 xlink를 연결
$ ls > d1/xlink
-> d1/xlink 파일을 변경: a/x 파일도 동일한 내용으로 변경
-> 두 파일의 inode 값을 보면 동일함
Tree Commands
- ls -R: 전체 tree 항목을 출력(디렉토리 + 서브 디렉토리)
- chmod -R: 하위 폴더의 모든 파일의 권한 변경
- du: Disk usage: 디렉토리가 사용하고 있는 disk block의 수를 출력
- find: 모든 하위 디렉토리의 파일 검색
File System의 3개 영역
- superblock
- 파일 시스템 자체의 구송에 대한 정보를 저장하는 영역
- 각 영역의 크기, 사용되지 않는 데이터 블록의 위치 등
- inode table
- 각 파일에는 파일 크기, 소유자의 ID, 마지막 수정된 시간 등의 속성들을 가짐
- 이런 속성들이 inode 구조체에 저장
- 모든 inode는 동일한 크기, inode table은 구조체 배열
- data area

inode
- Unix 시스템에서 파일 정보를 저장하는 자료구조
저장 정보
- 파일 유형: 일반 파일, 디렉터리, 심볼릭 링크 등
- 파일 권한: 파일 소유자, 그룹, 다른 사용자에 대한 읽기, 쓰기, 실행 권한
- 소유자 정보: 파일 소유자의 사용자 ID(uid)와 그룹 ID(gid)
- 파일 크기: 파일의 바이트 단위 크기
- 파일 생성, 수정, 접근 시간: 파일이 생성되거나, 마지막으로 수정되거나, 접근된 시점의 타임스탬프
- 링크 수: 하드 링크의 수, 즉 같은 inode를 참조하는 파일 이름의 개수
- 데이터 블록 위치: 파일의 실제 데이터를 저장하고 있는 디스크 블록의 위치 정보. 인덱스와 같은 역할을 하여 파일의 실제 데이터를 찾는 데 사용
- 중요한 점: inode는 파일 이름을 저장하지 않음. 파일 이름은 디렉터리에 저장되며, 디렉터리 엔트리는 파일 이름과 해당 파일의 inode 번호를 연결하는 역할
작동 방식
-
파일 생성
- 시스템에서 사용할 수 있는 inode 번호를 찾아서 할당
-
파일 접근
- 파일을 열거나 읽을 때 디렉토리를 검색하고 해당 inode 번호를 찾음
- 실제 위치를 참조하여 데이터를 읽거나 씀
한계
- 파일 개수가 inode 한계치를 넘으면 파일 생성 X
- inode에는 파일 이름이 포함되어 있지 않기 때문에 제약이 생김
- inode 파일은 kernel에서 OS가 관리하기 때문에 직접 열어볼 수 없고 stat과 같은 함수로 간접적으로 정보를 얻어올 수 있음
