Linux Kernel

유닉스 파일 시스템 UNIX File System

커피살인마 2022. 7. 11. 16:39

파일

유닉스 파일은 일련의 바이트로 이루어진 정보를 담는 일종의 그릇. 라이브러리에 있는 프로그램은 커널이 제공하는 시스템 콜을 사용해야 함. 사용자 관점에서 보는 파일은 트리형태의 이름 공간으로 조직됨. 

 

Root directory : 트리의 뿌리에 해당하는 디렉토리. 전통적으로 루트 디렉토리 명은 /(슬래시)

경로명이 /(슬래시)로 시작하면 그 경로명은 시작 지점이 루트 디렉토리이기 때문에 절대 경로(absolute path)라 하며 시작 지점이 현재 디렉토리일 때는 상대 경로(relative path)라고 함. 

. : 현재 작업 디렉토리

.. : 부모 디렉토리 

현재 작업 디렉토리가 루트 디렉토리인 경우 '.' 과 '..'은 동일. 

 

하드 링크(Hard Link) 

디렉토리에 있는 파일명을 '파일 하드 링크(file hard link)', 혹은 링크(link)라 함. 똑같은 파일에 대해 같은 디렉토리나 다른 디렉토리에서 여러 개의 링크를 가짐으로써, 한 파일이 여러 파일명을 가질 수도 있음. 

디렉토리에 대한 하드 링크를 만들 수 없고 동일한 파일시스템에 들어있는 파일 사이에서만 하드 링크를 만들 수 있음. 

 

소프트 링크(Soft Link)

심볼릭 링크(Symbolic Link)라고도 하며 이는 다른 파일의 경로명을 포함하는 작은 파일임. 경로명은 어떠한 파일시스템에 들어있는 파일이라도 가리킬 수 있으며 실제로 존재하지 않는 파일도 가리킬 수 있음. 

 

파일 디스크립터(File Descriptor)

유닉스는 파일의 내용과 파일에 관련된 정보를 명확하게 구별. 장치 파일과 특수 파일을 제외하고 각 파일은 일련의 문자로 이뤄짐. 파일에는 파일의 길이나 파일의 끝(EOF, End Of File)을 나타내는 구분자와 같은 제어 정보가 들어 있지 않음. 파일시스템이 파일을 다루는 데 필요한 모든 정보는 아이노드(inode)라는 자료 구조에 들어있음. 각 파일은 자신만의 아이노드를 가지며 파일시스템은 파일을 구별할 때 이 아이노드를 사용.