파일
- 컴퓨터에서 의미가 있는 정보를 담은 논리적인 단위
- 실행 파일 : exe(윈도우), 리눅스는 따로 확장자 없음
- 데이터 파일: mp3, docx 등
파일 시스템 왜 필요한가?
- 새로운 파일 생성하고 싶은데 하드 디스크 몇 번째 주소가 빈 공간이지?
- 저장해놓은 파일이 디스크 몇 번째 주소에 있지?
파일 시스템
- NTFS, APFS 등의 파일시스템 형식이 있음
- 리눅스는 EXT (extended file system) 사용중!
리눅스 파일 시스템의 기능
1. 파일의 할당
- 블록: 하드디스크와 데이터를 주고받을 때 사용되는 논리적인 단위 (일반적으로 4KB)
- 메타데이터와 실제 데이터를 가지고 있음
- 리다이렉트를 많이 두면 저장할 수 있는 파일의 크기가 커짐
2. 파일의 접근
- 디렉터리_경로/파일_이름
- 링크: 서로다른 디렉토리에서 같은 파일 접근하는 방법
3. 파일의 보호
- ACL (Access Control List): 누가 어떤 연산을 할 수 있는지 리스트 형식으로 관리 "rwx"
- 접근 권한 비트: (소유자-그룹-기타) == (111101100) == (rwxr-xr--)
- 계속 나오는 rwx
- read: 디렉터리 내의 파일의 리스트 접근 권한
- write: 디렉터리 내 파일의 생성/삭제/이름 변경 권한
- execute: 디렉터리 내 파일의 실행 권한
4. 파일의 일관성
- 파일 생성 도중에 디스크 전원 꺼진다면?
- 저널링: inode나 비트맵의 수정이 있다면 그 내용을 로그로 남긴다