10.2 File(파일)
- 각 Linux 파일은 시스템에서의 역할을 나타내는 type을 가지고 있다.
- 일반 파일(regular file)은 임의의 데이터를 포함한다. 응용 프로그램은 종종 텍스트 파일과 이외의 바이너리 파일을 구분한다. 그러나 커널의 입장에서는 텍스트와 바이너리 파일 사이의 차이는 없다.
- 디렉토리(directory)는 링크(link) 배열로 구성된 파일이며, 각 링크는 파일 이름을 파일로 매핑한다. 각 디렉토리는 최소한 두 개의 항목을 포함한다. "."(점)는 디렉토리 자체를 가리키는 링크이고, ".."(점-점)는 디렉토리 계층 구조에서 부모 디렉토리를 가리킨다. mkdir 명령어로 디렉토리를 생성하고, ls로 내용을 확인하며, rmdir로 삭제할 수 있다.
- 소켓(socket)은 네트워크를 통해 다른 프로세스와 통신하는 데 사용되는 파일이다(11.4 절 참조).
- 기타 파일 유형으로는 이름이 지정된 파이프(named pipes), 심볼릭 링크(symbolic links) 및 문자 및 블록 장치(character and block devices)가 있습니다. 이는 이 책의 범위를 벗어난다.
- Linux 커널은 / (슬래시)로 명명된 루트 디렉터리를 기준으로 모든 파일을 단일 디렉터리 계층 구조로 구성한다. 시스템의 각 파일은 루트 디렉터리의 직접 또는 간접 후손이다. 아래 Figure 10.1은 Linux 시스템의 일부 디렉토리 계층 구조를 보여준다.
- 각 프로세스에는 현재 작업 디렉토리(current working directory)가 있어서 디렉토리 계층 구조에서 현재 위치를 식별한다. cd 명령어를 사용하여 쉘의 현재 작업 디렉토리를 변경할 수 있다.

- 디렉토리 계층 구조에서 위치는 경로명으로 지정된다. 경로명은 슬래시로 구분된 파일 이름의 시퀀스 뒤에 옵션 슬래시가 따르는 문자열이다. 경로명에는 두 가지 형식이 있다.
- 절대 경로명(relative pathname)은 슬래시로 시작하며 루트 노드에서의 경로를 나타낸다.
- 예를 들어, Figure 10.1에서 hello.c의 절대 경로명은 /home/droh/hello.c이다.
- 상대 경로명(relative pathname)은 파일 이름으로 시작하며 현재 작업 디렉토리에서의 경로를 나타낸다.
- 예를 들어, Figure 10.1에서 /home/droh가 현재 작업 디렉토리인 경우, hello.c의 상대 경로명은 ./hello.c이다. 반면에 /home/bryant가 현재 작업 디렉토리인 경우, 상대 경로명은 ../home/droh/hello.c이다.
- 절대 경로명(relative pathname)은 슬래시로 시작하며 루트 노드에서의 경로를 나타낸다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[CSAPP] 10.3 Opening and Closing Files (0) | 2023.03.18 |
---|---|
[CSAPP] 10.1 Unix I/O (1) | 2023.03.18 |
[CSAPP] Chapter 10. System-Level I/O (0) | 2023.03.18 |
[CSAPP] 9.9 Dynamic Memory Allocation(동적 메모리 할당) (0) | 2023.03.08 |
[CSAPP] 4.5 Pipelined Y86-64 implementations (0) | 2023.03.01 |