reference: https://pages.cs.wisc.edu/~remzi/OSTEP/, 시스템 프로그래밍, 운영체제 수업(최종무 교수님)
※ Computer system
- 4가지 중요 추상화
- process(thread)
- virtual memory
- lock(for concurrency)
- file(by file system)
- 파일은 저장장치 안에 있다! (hard disk, ssd)
- storage: 비휘발성 vs memory: 휘발성
- Advantages: 영속성 지원
- 비휘발성 저장장치의 issues
- 파일 시스템 내부구조(Layout)
- file, directory, inode, FAT, superblock ..
- 접근 방법(interface)
- open, read, write, close, mkdir, link, mount ..
File
정의: 일련의 바이트들의 배열(bytes), 영속적으로 저장되는 객체
- 각 파일들은 다양한 자료구조를 갖는다.(ex, c 소스코드, record, multimedia ..)
- 그러나 OS는 내용이 어떻게 이루어지든 일련의 바이트들의 집합으로 다룬다.
- 각 각의 파일은 이름을 갖는다.(절대경로, 상대경로)
- 또한 low-level의 일종으로의 이름을 갖는다.(ex, inode)
- 각 각의 파일은 OS 내부적으로 'inode'라는 자료구조로 관리된다.(마치 프로세스를 PCB 자료구조로 관리되는 것과 같다.)
Directory
Others are also treated as a file!!
- 시스템에서 보는 모든 객체는 파일로 접근된다.
- ex, Device, Pipe, Socket, and Process..
(pipe: IPC 메커니즘, IPC의 가장 단순한 형태)
(socket: 통신 경로)
- 이는 곧 일관된 API를 사용할 수 있다는 뜻이다(read, write)