보안/개념

유닉스 파일 시스템 구조 총정리

수달정보보호 2023. 12. 26. 18:23

1. UFS(Unix File System)의 개념

유닉스 파일 시스템은 대량의 정보를 관리하기 쉬운 방식으로 구성하고 저장하는 시스템이다. 여기서 '파일'은 정보가 저장되는 가장 작은 단위이다. 유닉스의 모든 데이터는 파일로 구성되며, 모든 파일은 디렉터리로 구성된다. 이러한 디렉터리는 파일 시스템이라는 트리 구조로 구성된다. 유닉스 시스템의 파일은 디렉터리 트리라고 알려진 계층 구조로 구성되는 것이다. 이런 파일 시스템의 최상단에는 /(root)라는 디렉터리가 존재한다. 그외의 다른 모든 파일은 루트의 하위 항목이라 할 수 있다.

 

유닉스 파일 시스템은 일련의 권한을 사용하여 파일 및 디렉터리에 대한 엑세스를 제어한다. 각 파일과 디렉터리는 소유자와 연관된 그룹이 있으며, 이러한 엔티티에 대한 엑세스를 허용하거나 제한하도록 권한을 설정할 수 있는 것이다.

 

유닉스 파일 시스템의 가장 중요한 기능 중 하나는 다른 파일이나 디렉터리에 대한 심볼릭 링크를 지원한다는 것이다. 이를 통해 파일과 디렉터리를 물리적으로 이동하지 않고도 유연하게 구성할 수 있다.


전반적으로, 유닉스 파일 시스템은 수십 년 동안 사용되어 왔으며, 계속해서 많은 최신 운영체제의 기반이 될 것이다. 그렇기에 유닉스에 대한 학습은 지속적으로 이뤄져야 한다.

 

1.1 디렉터리 또는 해당 파일 설명

/: /문자는 파일 시스템 트리의 루트를 나타낸다.

/bin: 바이너리를 나타내며, ls나 cp처럼 일반적으로 모든 사용자에게 필요한 특정 유틸리티를 포함한다.

/boot: 성공적인 부팅 프로세스에 필요한 모든 파일이 포함되어 있다.

/dev: 주변장치를 포함한 device를 의미한다.

/etc: 시스템 전반의 구성 파일과 파일 시스템 데이터베이스가 포함되어 있다. 

/home: 사용자의 홈 디렉터리를 포함한다.

/lib: 시스템 라이브러리와 커널 모듈, 장치 드라이버 같은 중요 파일이 포함되어 있다.

/media: USB 스틱, 미디어 플레이어 등과 같은 이동식 장치의 기본 마운트 지점이다.

/mnt: 마운트를 의미한다. 파일 시스템 마운트 지점을 포함한다.

/proc: 프로세스에 대한 정보를 파일로 표시한다.

/root: 시스템 관리자의 홈 디렉터리이다.

/tmp: 임시 파일을 위한 장소이다. 

/usr: 원래 사용자 홈 디렉터리가 들어 있었지만, 용도가 바뀌었다. X Window System과 같이 시스템에 중요치 않은 실행 파일, 라이브러리 및 공유 자원을 보유한다.

/usr/bin: 이 디렉터리는 /bin, /sbin 또는 /etc에 상주하지 않는 운영체제와 함께 배포되는 모든 바이너리 프로그램을 저장한다.

/usr/include: 시스템 전체에서 사용되는 헤더를 저장한다.

/usr/lib: /usr 또는 다른 곳에 저장된 프로그램에 필요한 라이브러리와 데이터 파일을 저장한다.

/var: 시스템 사용자에게 전송된 이메일이나 프로세스 ID 파일과 같이 크기가 자주 변경될 수 있는 파일을 위한 장소이다. 그래서 variable이다.

/var/log: 시스템 로그 파일이 포함되어 있다.

/var/mail: 모든 수신 메일이 저장되는 장소다. 루트 이외의 사용자는 자신의 메일에만 엑세스할 수 있다.

/var/spool: 인쇄 작업, 메일 스풀 및 기타 대기 작업이 포함되어 있다.

/var/tmp: 시스템 재부팅 사이에 보존되어야 하는 임시 파일을 위한 장소이다.

 

2. 유닉스 파일 유형

ㄱ. Ordinary Files

일반 파일은 데이터, 텍스트 또는 프로그램 지침이 포함된 시스템 파일이다. 작성한 테스트나 이미지 등의 정보를 저장한다고 볼 수 있다.

 

ㄴ. Directories

디렉터리에는 특수 파일과 일반 파일이 모두 저장된다. 윈도우나 맥에 익숙한 사용자의 경우, 유닉스 디렉터리를 '폴더'라는 개념과 동일시 해도 무방하다. 디렉터리 파일에는 해당 파일이 포함된 모든 파일과 하위 디렉터리에 대한 항목이 포함되어 있다. 디렉터리에 10개의 파일이 있다면, 해당 디렉터리에는 10개의 항목이 존재할 것이다. 각 항목은 파일 이름과 파일 또는 디렉터리의 고유 식별 번호(아이노드 번호)를 지니게 된다.

 

ㄷ. Special Files

특수 파일은 입출력 작업에 사용되는 프린터, 터미널과 같은 실제 물리적 장치를 나타내는 데 사용된다. 유닉스 및 리눅스 시스템에서는 장치 입출력에 장치 또는 특수 파일이 사용된다.

 

ㄹ. Pipes

유닉스에서 파이프는 명령을 서로 연결하기 위한 것이다. 파이프는 다른 명령을 읽을 때까지 한 명령의 데이터를 보관하기 위해 존재하는 임시 파일 역할을 수행하기도 한다. 이때 유닉스 파이프는 양방향이 아닌 단방향 데이터 흐름임을 인지해야 한다. 첫 번째 명령의 출력 혹은 결과는 새로운 명령에 대한 입력으로 사용된다.

 

ㅁ. Sockets

유닉스 소켓은 고급 프로세스 간 통신을 허용하는 특수 파일이다. 클라이언트-서버 애플리케이션 프레임워크에서 사용되는데, 본질적으로 이는 네트워크 스트림과 매우 유사하다고 할 수 있다.

 

ㅂ. Symbolic Links

심볼릭 링크는 파일 시스템의 다른 파일을 참조하는 데 사용된다. 일종의 '바로가기' 기능으로 이해할 수 있다. 파일명이 너무 길면 심볼릭 링크를 만들어서 짧은 파일명으로 사용할 수 있다. 즉, 긴 파일명과 긴 디렉터리명을 대신해서 사용할 때 링크 정보만 가지고 있는 새로운 inode가 만들어진다. inode는 원래 파일의 주소 정보만을 가지고 있으며, 원본 파일이나 디렉터리가 삭제되면 심볼릭 링크고 삭제된다. 윈도우에서 바로가기 기능이 사라지는 것처럼 말이다.

 

* 심볼릭 링크과 대조되는 것으로 하드 링크가 있는데, 하드 링크는 원본 파일을 복사해서 동일한 inode를 만드는 것이다. 심볼릭 링크과 다르게, 이는 원본 파일을 삭제하거나 이동해도 남아있게 된다.

 

3. 유닉스 파일 시스템의 장단점

ㄱ. 장점

- 계층적 구성: 유닉스 파일 시스템의 계층적 구조를 통해 파일과 디렉터리를 쉽게 구성하고 탐색할 수 있다.

- 안정성: 유닉스 파일 시스템은 안정성과 신뢰성으로 잘 알려져 있다. 불안정해지거나 충돌하지 않고, 많은 양의 데이터를 처리할 수 있다.

- 보안성: 유닉스 파일 시스템은 관리자가 파일 및 디렉터리에 엑세스할 수 있는 사람을 제어할 수 있는 권한을 사용한다.

- 호환성: 유닉스 파일 시스템은 널리 사용되고 지원된다. 위에서도 말했듯, 지금도 그렇지만, 앞으로도 다양한 유닉스 기반 시스템이 등장할 것이다.

 

ㄴ. 단점

- 복잡성: 유닉스 파일 시스템은 특히 Command Line 인터페이스에 익숙하지 않은 사용자의 경우 이해와 관리가 복잡할 수 있다. 윈도우에만 친숙한 사용자의 경우 학습 없이는 접근성이 좋지 않을 것이다.

- 학습 난이도: 유닉스 기반 시스템 자체가 윈도우와 많이 다르다 보니, 그런 사용자의 경우 유닉스 파일 시스템 사용 방법을 배우는 난이도가 존재한다.

- 사용자 친화적이지 않은 인터페이스: 유닉스는 사용자에 친화적인 요소가 적다. 주로 Command Line을 통해 관리되는데, 이는 GUI에 비하면 결코 친화적이지 않다.

- 특정 파일 시스템에 대한 제한된 지원: 유닉스 파일 시스템은 많은 파일 시스템과 호환되는 것은 분명하다. 그러나 완전히 지원되지 않는 일부 파일도 존재한다.

4. UFS의 구조

구성 항목 설명
VTOC 디스크 레이블 각 파티션의 기본 정보가 있다.
부트블록 부트 스트랩에 필요한 파일이 있다.
파일 시스템으로부터 유닉스 커널을 적재시키기 위한 프로그램이 저장되어 있다.
프라이머리 슈퍼블록 데이터 블록의 개수, 실린더 그룹의 개수, 마운트 정보가 있다.
백업 슈퍼블록 각 실린더마다 슈퍼블록에 대한 복사본을 갖는다.
실린더 그룹 슈퍼블록, 실린더 그룹 블록, i-node 테이블, 데이터 블록을 포함한다.
슈퍼 블록 파일 시스템의 크기, i-node 테이블의 크기, free 블록 리스트 등 파일 시스템 관리 정보를 지닌다.
실린더 그룹 블록 실린더 그룹 내의 유효 블록들의 비트맵 정보나 통계 정보가 존재한다.
I-node 테이블 파일에 대한 중요한 정보, 파일 크기, 위치, 유형, 사용 허가권, 날짜 정보 등을 갖고 있다.
사실상, 파일이나 디렉터리에 대한 모든 정보가 있고, 그래서 중요하게 여겨진다.
데이터 블록 실제 데이터가 파일의 형태로 저장되는 공간이다.
728x90

'보안 > 개념' 카테고리의 다른 글

RAID 총정리  (1) 2023.12.27
FAT, NTFS, EXT 총정리  (1) 2023.12.27
디스크 스케줄링 총정리  (1) 2023.12.26
교착상태 총정리  (0) 2023.12.25
임계 영역 총정리  (0) 2023.12.24