데이터를 관리할 때 메모리는 휘발성이기 때문에 부적절
보조기억장치에 어떠한 특수한 형태로 잘 저장을 해야함
그래서 나온 개념이 File이며 이 File을 어떻게 정의했는지가 File System
보조기억장치에 저장되어 있는 관련된 정보의 한 덩어리
OS가 이 파일의 구분, 분류, 관리를 책임
파일에는 다양한 속성과 메타데이터가 포함되어 있음
File을 열고 닫기, 저장, 읽기, 쓰기 등의 System call또한 존재
운영체제가 File system으로 이해하는 부류
device, directory, symbolic link(바로가기 링크)
운영체제가 알지는 못하고 그 주변 middleware이 이해하는 부류
exe, dll, 소스코드, 오브젝트 파일, txt 등
application들이 이해하는 부류
hwp, jpg, mpg, mp3 등
운영체제마다 파일 타입을 어떻게 인코딩하는지가 다름
윈도우
exe, bat, dll, jpg 등 확장자 명을 뒤에 나타내줌
Unix
magic number, initial character → Type마다 약속된 상수값 존재
Sequential Access
디스크에 순차적으로 저장된 데이터를 순차적으로 A부터 Z까지 접근
반대되는 개념은 아래 3가지의 Random Access 방식
Direct Access
블록, 바이트 주소를 통해 직접적인 접근
Record Access
Index Access
특정 파일의 레코드가 어떤 위치에 있는지 위치정보가 필요
파일은 디렉토리라고 부르는 공간에 위치
디렉토리 또한 파일로 취급하여 관리
흔히 폴더라고 부르기도 함
이 Directory를 Hierarchical하게 관리해서 Path(경로)가 등장
(파일 이름, 파일 속성)의 리스트를 나열
정렬이 되어있지는 않음(랜덤하게 액세스하기 때문)
하지만, 사용자에게 GUI로 보여질때는 정렬해서 보여줌
UNIX
/
슬래쉬를 통해 경로 구분
절대경로: root 디렉토리는 ~
틸다로 표시해서 접근
상대경로: ./
현재경로나 ../
부모경로로 접근하는 방식
Window
C:\
역슬래쉬를 통해 경로 구분
NFS
UNIX에서 사용되는 원격 파일을 공유할 수 있는 프로토콜
CIFS
윈도우에서 사용되는 원격 파일을 공유할 수 있는 프로토콜
Distributed Information Systems
LDAP, DNS, NIS 등 다양한 방식 존재
Access Control Lists(ACLs)
Column 세로 레벨로 관리(파일이 관점)
Capabilities
Row 가로 레벨로 관리(사용자의 관점)
실제에서는 효율적이고 쉬운 ACL을 사용
Capabilities는 하나의 사용자가 모든 파일을 다뤄야하므로 오버헤드가 큼
총 10비트의 데이터로 1은 디렉토리인지 아닌지
2~4 / 5~7 / 8~10으로 owner / group / public 의 권한을 설정
mmap()
이라는 시스템콜로 존재