Linux File System
-리눅스 시스템 프로그래밍을 하기 위해서는 우선 리눅스의 파일과 파일시스템에 대해 알 필요가 있다.
리눅스에서 거의 모든 장치와 자료의 처리 단위는 파일이므로 특히 중요하다.
우선 파일과 디렉토리에 대한 개념을 설명하겠다. 파일은 컴퓨터에서 자료를 저장하는 논리적인 기본 단위인데, 내용 뿐만 아니라 이름, 속성 등의 정보를 함께 가지고 있다. 이러한 속성 정보는 시스템 내부적으로 아이노드(inode)라는 블록에 저장된다.
디렉토리는 이러한 파일들을 묶어서 저장하여 관리하는 하나의 특수한 파일이라고 볼 수 있다. 디렉토리는 하위 디렉토리(subdirectory)를 포함 할 수 있다.
리눅스의 파일시스템은 이러한 파일과 디렉토리들이 계층적으로 구성된 구조를 가지고 있다. 이런 계층 구조는 MS DOS나 NTFS 등과 유하사지만, 하나의 루트(root) 디렉토리만을 가지는 단일한 파일 시스템이다.
리눅스의 루트 디렉토리의 바로 아래층 디렉토리들은 특별한 의미를 가진다. 이것은 리눅스 파일 시스템의 표준 경로를 정의한 FHS(Filesystem Hierarchy Standard)에서찾아볼 수 있다.
디렉토리 |
설 명 |
/bin |
ls, mount, rm 등과 같은 기본적인 리눅스 명령어들이 위치함. |
/boot |
리눅스 커널, 부트로더 설정 파일 등 과 같이 시스템을 초기화하는 데 필요한 파일들이 위치함. |
/dev |
리눅스에서 하드웨어 장치들을 대신하는 디바이스 파일들이 위치함. |
/etc |
시스템의 모양과 동작을 결정하는 각종 시스템 설정 파일들이 위치함. |
/home |
여러 사용자들의 홈 디렉토리들이 위치함 . |
/lib |
중요한 동적/공유 라이브러리와 커널 모듈들이 위치함. |
/media |
외장하드, 플로피, CD, DVD와 같은 외부장치가 자동으로 마운트되는 위치. |
/mnt |
네트워크 파일 시스템과 같은 임시 마운트 장치를 위한 마운트 위치. |
/opt |
시스템에 옵션으로 추가하는 패키지들을 저장하는 데 사용됨. (패키지 매니저가 관리하지 않는다.) |
/proc |
커널이 프로세스에게 정보를 전달할 수 있도록 만들어진 가상 파일시스템. |
/root |
시스템 관리자인 수퍼유저의 홈 디렉토리. |
/sbin |
수퍼유저가 사용할 수 있는 중요한 관리 명령어들이 위치함. |
/srv |
HTTP(/srv/www/) 또는 FTP와 같은 서비스들의 데이터 디렉토리가 위치함. |
/sys |
커널 관정에서 시스템에 대한 정보를 획득하거나 설정할 수 있는 가상 파일시스템. |
/tmp |
응용 프로그램이 사용하는 임시 파일들이 위치함. |
/usr |
대부분의 유틸리티, 응용프로그램 및 설정파일, 라이브러리 등이 위치함. (/usr/bin : 응용 프로그램, /usr/lib : 라이브러리, /usr/share : 각종 관련 자원 파일, /usr/local : 기타 추가 설치 파일) |
/var |
빠르게 갱신되거나 변화하는 가변 데이터들이 위치함. (/var/log : 시스템 로그파일들, /var/mail : 메일, /var/www : 웹서버 파일 ...) |
'Linux > System Programming' 카테고리의 다른 글
ls 명령어 구현. (4) | 2013.07.14 |
---|