File System Call
- File concept은 다양한 종류가 있다: Numeric, Character, binary
- 그리고 Program File도 하나의 파일이라고 할 수 있다.
File Structure
- 일반 파일 : 문자열, binary file
- 단순 기록 구조(Simple record structure)
- 줄글
- 고정값
- 변수값
- 복잡한 구조(Complex Structure)
- 형식이 있는 문서
- 재 할당 파일
- 이 모든 파일이 OS와 프로그램이 결정지어줌
File Attribute
파일의 속성에는 다음과 같은 속성들이 있다.
- Name
- Type
- Location
- Size
- Protection
- Time, date, User ID
File Operate
File을 다루는 함수에는 다음과 같은 함수가 있다.
- Create: 파일 열람 / 생성
- Write: 파일 수정
- Read: 파일 열람
- Fileseek: 파일 수정점 설정
- Delete: 파일 삭제
- truncate: 파일을 새로운 용량만큼 덮어쓰기
- Open(Fi): 파일을 열람을 하기위해 파일소스를 메모리로 가져오는 함수
- close(Fi): 파일을 다시 메모리에거 Flush하는 함수
File Type
파일의 종류에는 다음이 있다.
- Regular: Text, binary 파일
- Directory: File info, meta Data
- Block device file: IO File, Printer File (/Dev)
- Character device file: Character device, block device
- Domain socket
- Pipe: Inter-process File
- Symbolic link: hyper link File
File Access Permission
- 파일의 접근권한 형식
- 유저 : User / 그룹 : Group / 일반사용자: Other
- r : 읽기 권한 / w : 쓰기 권한 / x : 실행권한
- 디렉토리 접근 권한 형식
- Read Permission : 디렉토리 내 파일 리스트 열람 권한
- Write Permission : 디렉토리 내 파일 생성이나 파일 삭제 권한
- Execution Permission: 디렉토리 열람/접근 권한
- 이외 실행파일(Excutable File)의 권한
- User ID: 유저가 사용중인 프로세스를 책임지는 ID로 구별
- 이러한 User ID를 가진 유저가 파일생성하고 접근권한을 처크하기 위해서는 Process에 Signal을 송신해주어야한다. 이때 시스템은 setuid(uid) System call을 이용해 수정하는 잠시 동안 root권한을 가져와서 파일을 가져옴
- 특수 파일권한
- Set-user-id bit(04000) : 파일이 시작해 프로세스를 시작하면 UID(파일 소유자 권한)으로 실행
- Set-Group-id bit(02000) : 파일이 시작해 프로세스를 시작하면 GID(파일 그룹 권한)으로 실행
- Sticky bit(01000) : 사용후 흔적이 남아있어서 이후 호출에 쉽게 파일을 불어와줄수 있음. 누구든 파일을 쓰고 실행할수있지만 파일 소유자 만이 파일을 삭제 할수 있음
- Inode
- 파일의 관리 정보를 가지고 있어서 이를 효율적으로 관리할 수 있는 자료구조임
- 각 Inode 10칸 마다 4K의 블록을 가지며 4K블록이 1024^3제곱으로 총 inode 10칸에 4TB의 용량을 저장 할 수 있다.
- UNIX 커널에서 파일 시스템의 지원
- File discriptor table
- File table
- Inode table
- 그래서 파일을 open하게 되면
- File Discripter를 받는다.
- File Discripter Table에 저장된 주소로 File Table을 읽어 파일 정보를 읽어 오고 해당 정보중 Inode를 읽어옮으로서
- 해당 실질 데이터가 Disk에 담긴 부분을 읽어 메모리에 올림
- File Discriptor: 시스템으로 부터 할당 받은 파일의 대표 정숫값, 프로세스에 열린 파일 목록을 관리하는 파일 인덱스
- Hard link는 기존의 것에 직접연결 , Symbolic link는 새로운 Inode를 만들고 거기에 경로를 저장하는 파일을 연결
'공부 학습' 카테고리의 다른 글
운영체제 4주차 -1 (0) | 2021.03.22 |
---|---|
운영체제 3주차 - 2 (1) | 2021.03.16 |
운영체제 3주차 - 1 (0) | 2021.03.15 |
시스템 논문 리뷰 1 (0) | 2021.03.15 |
운영체제 2주차 - 3 (0) | 2021.03.09 |