본문 바로가기
코딩이야기/운영체제

파일시스템(File system) - 1. files and directories

by GiraffeB 2016. 4. 11.

#File system- 1. files and directories


1. file

: A named collection of bytes on stored storage.

유닉스 파일시스템에서 파일은 저장장치에 기록된 바이트들의 이름있는 집합으로 정의됩니다.

파일을 연속된 바이트들로 봄으로써 매우 간단하게 표현해 낸 것을 알 수 있습니다.

이 파일은 후에 사용자, 커널, 장치의 관점에서 달리 정의 될 수 있습니다.


파일의 종류에는

1) ordinary : 사용자 프로그램, 시스템 유틸리티 프로그램에 의해 입력된 정보를 포함하는 파일이다

2) directory : 파일의 이름과 아이노드를 위한 포인터를 포함한다. 디렉터리는 계층적으로 구성되며, 디렉터리 파일은 쓰기 보호 속성을 가진 일반 파일로서 파일 시스템만이 이 파일에 기록을 할 수 있고, 사용자 프로그램은 읽기만 허용된다.

3) special : 터미널이나 프린터와 같은 입출력 장치들의 접근을 위해 사용된다.

4) named : 지명 파이프이다.

가 있습니다.



2. file descriptor

파일은 파일관리에 필요한 정보를 저장하는 meta data와

파일의 컨텐츠 정보를 저장하는 contents data로 나뉘어 집니다.

file descriptor는 meta data를 저장하는 자료구조로 OS에서 관리하며, file의 content data를 접근하게 해주는 정보를 가지고 있습니다.

유닉스 파일 시스템에서 file descrtor(fd)는 inode라는 이름으로 부르며, 이 inode들은 일정한 크기를 가지고 array로 관리됩니다.

이 inode들의 array의 index를 inumber라고 부릅니다.


- file descriptor는 일정한 크기를 가지는 자료구조로써 운영체제에 의해 array로 관리되며,

file content data에 접근하기 위한 meta data를 가지고 있습니다.



3. directory

1) 디렉토리는 텍스로 된 파일이름과 아이넘버로 이루어져 있습니다.

2) 디렉토리는 텍스트 파일이름을 파싱할 수 있는 역할 을 합니다.

디렉토리 역시 파일의 형태중 하나로써 위와 같은 정보를 저장하고 있습니다.


디렉토리 덕분에 파일 시스템은 tree형태의 구조를 가지며 이에 따라, file을 unique하게 식별할 수 있는 

path name을 가질 수 있습니다.


4. features

파일시스템에서는 사용자를 위한 몇가지 기능을 제공하는데 그중에서

1) work directoy

: 특정 디렉토리에서 text file name만 사용하더라도 현재 디렉토리의 주소를 prepend시켜주는 기능입니다.

본래 파일을 실행하기 위해서는 유니크한 full path name을 붙여줘야 하지만, 이러한 긴 full path name을 작성하는 대신에

현재 디렉토리의 주소를 자동으로 prepend시켜 사용의 편리성을 부여하는 기능입니다.


2) symbolic link

: 현재 디렉토리의 계층에 존재하지 않는 다른 디렉토리에 접근하기 위해서는 

매번 긴 full path name을 작성하거나 접근하는 과정이 필요한데, 이를 대신해

특별한 파일을 만들고 이 파일에 디렉토리처럼 목표한 파일의 <text file name, full path name>을 저장해서 찾아 갈 수 있도록하는 기능입니다.

사용자는 해당 파일처럼 사용할 수 있습니다.


3) hard link

위의 symbolic link와 같이 full path name을 대신해 특별한 파일을 만든다는 개념과 목적은 동일합니다.

하지만, hard link에 저장되는 내용은 symbolic link와는 달리 <text file name, inumber>를 저장합니다.

바로 inumber로 접근이 가능한 것이죠.

다만 inumber가 partition(volume, 하나의 logical file system, 하나의 장치)내에서만 유효한 값이므로 이 장치(혹은 partition)을 벗어나면

사용할 수 없습니다.





출처 : 

[1] https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%89%EC%8A%A4_%ED%8C%8C%EC%9D%BC_%EC%8B%9C%EC%8A%A4%ED%85%9C - 위키피디아

[2] http://snui.snu.ac.kr/ocw/index.php?mode=view&id=683 - 서울대학교 평생교육원