Section 2. 리눅스의 디렉터리 구성

2.1 기본 지식

  • FHS(Filesystem Hierarchy Standard) : 리눅스 디렉터리 계층 구조 표준
  • 마운트(mount) : HDD 등의 block device 상의 파일 시스템을 시스템 디렉터리 트리의 일부에 설치하는 것. 쉽게 말하면 관리자가 명령어를 통해 직접 장치들과 OS를 연결하는 것.
  • 파티션(partition) : 어떤 HDD를 여러 개의 영역으로 분할했을 때 생긴 한 영역. 하나의 HDD에는 4개까지 파티션을 만들 수 있다. 이것은 MBR(Master Boot Record)이라는 하드디스크의 첫 번째 섹터에 마련된 부트 로더를 저장하는 공간상의 제약 때문에 4개의 파티션까지밖에 기록할 수 없기 때문이다. 또한, 기록할 수 있는 파티션은 '기본(primary) 파티션'과 확장(extended) 파티션'을 포함해서 4개가 된다.

2.2 /(루트)

디렉터리 구성의 최상위

2.3 /boot

리눅스 커널, init ram fs파일, 부트 로더 GRUB의 설정 파일 등이 들어 있는 디렉터리.

config-3.10.0-693.e17.x86_64

리눅스 커널을 빌드했을 때 이용한 config 파일의 백업이다.

grub

부트 로더 GRUB의 설정 파일이 들어 있는 디렉터리이다.

initramfs-3.10.0-693.e17.x86_64.img

리눅스 커널 부팅 시 사용하는 임시 파일 시스템으로, initrd는 init ram disk의 약자이다.(initrd나 initramfs는 OS의 차이에서 온다)

System.map-3.10.0-693.e17.x86_64

리눅스 커널을 소스로 빌드하면 'System.map'이라는 이름으로 이 파일이 생성된다. System.map은 리눅스 커널이 이용하는 심볼 테이블을 기록한 텍스트 파일로, 가상 주소와 커널 소스 내의 변수, 커널 심볼의 대응 등을 정리해 둔 것이다. 이 파일은 기술되어 있는 가상 주소와 심볼을 이용하여 커널 패닉이 발생했을 때 메시지를 참조하여 디버그하기 위한 것이다. System.map 뒤는 리눅스 배포판이 이용하는 커널 버전을 나타낸다.

커널 패닉은 치명적인 에러가 커널에 발생했을 경우에 나타나는 현상이다. 커널 패닉은 부팅 시 루트 파일 시스템('/'가 포함된 파티션)을 읽어들이지 못했거나 커널 모듈이 폭주했거나 하드웨어 고장 등이 원인이 되어 발생한다. 참고로 윈도우에서는 블루 스크린, Mac OS X에서는 검은 바탕에 커다랗게 전원 마크가 뜨면 커널 패닉 상태에 빠진 것이다.

vmlinuz-3.10.0-693.e17.x86_64

vmlinuz는 리눅스 커널 본체.

2.4 /etc

설정 파일을 저장하는 디렉터리. 주요 파일들은 p.47 참조.

2.5 /bin

시스템 관리자와 사용자가 사용하는 커맨드가 배치되어 있다. 이 디렉터리는 다른 파티션을 마운트하지 않아도 실행할 수 있는 커맨드를 모아놓았다는 데 그 의미가 있다.

2.6 /sbin

시스템 관리자가 이용하는 커맨드가 배치되어 있다. 관리자가 이용하는 커맨드라는 것은 시스템 시작이나 데이터 백업이나 복원, 파티션 조정, 네트워크 설정 등의 시스템 유지보수, 사용자의 추가와 삭제, 프로세스 감시 등에 필요한 도구 등을 말한다.

2.7 /usr

시스템을 이용하는 사용자 간에 공유하는 데이터가 들어가 있는 디렉터리.

/usr/local

네트워크에서 '로컬(local)'은 현재 시스템을 가리키는 말이다.

2.8 /home

사용자의 홈 디렉터리.

2.9 /var

variable 데이터를 두는 디렉터리. '변하기 쉬운' 데이터라는 것은 스풀(임시로 배치하는 파일이나 디렉터리)이나 로그 등을 가리킨다.

/var/run

데몬 등의 프로그램을 실행할 때 할당되는 프로세스 ID(=PID) 등을 텍스트 파일로 저장, 소켓 파일 등 임시 데이터를 저장할 때 사용한다.

/var/lock

/var/run과 마찬가지로 데몬 등의 프로그램 다중 구동을 막기 위한 임시파일 저장에 이용된다.

/var/{log, spool}

각 애플리케이션이 임시 파일을 저장해두는 스풀 디렉터리이다. /var/log는 시스템의 일부 로그가 쓰이는 디렉터리이다. 시스템에서 어떤 수상한 동작이 의심될 때에는 이 디렉터리 안을 찾아본다.

/var/tmp

임시 파일을 별도로 저장해 두는 곳이다. 모든 사용자가 이 디렉터리에 쓰기 권한을 가지지만, 파일의 소유자 이외의 사용자는 해당 파일을 삭제할 수 없다는 특징이 있다.

/var/mail

MTA(Mail Transfer Agent, SMTP 서버)에서 이용하는 디렉터리를 생성한다.

/var/{opt, cache, lib/{misc, locate}, local}

데몬이나 로그의 임시 파일 저장 이외의 용도로 사용하는 디렉터리가 할당된다. /var/opt는 시스템 소속 패키지 이외의 소프트웨어를 설치한 경우 등에 쓰이는 디렉터리이다. /var/cache는 시스템 데몬 중에서도 비교적 짧은 시간만 사용하는 데이터를 저장하는 곳이다. 대표적인 것으로는 Proxy 서버의 Squid 캐시 데이터나 Debian GNU/Linux의 패키지 관리 시스템 apt의 다운로드 데이터 저장 영역으로 사용하고 있습니다.(예전에 우분투에서 뭐 설치할 때 sudo apt-get install ~했던 기억이)

2.10 /proc

'procfs(Process Files System)'라고 하며 리눅스 프로세스를 조작하거나 시스템 정보를 처리하는 수단을 제공하는 유사 파일 시스템(pseudo 파일 시스템)이다. /proc 내용으로는 cmdline, cwd, exe, fd, maps, mount, root, stat 등이 있다.(자세한 내용은 p.53 참조)

2.11 /sys

sysfs는 메모리 내 파일 시스템을 통하여 사용자 프로세스에 커널 정보를 제공하는 기능이다. procfs가 프로세스와 커널 정보를 제공하는 가상 파일 시스템이라면 sysfs는 디바이스 정보를 제공하는 가상 파일 시스템이라고 생각하면 된다.

2.12 /dev

특수 디바이스 파일이 들어있는 디렉터리.

2.13 /tmp

시스템에서 작업 파일 등을 두는 디렉터리. 현재는 tmpfs라는 유사 파일 시스템을 이용하는 것이 일반적이다.

results matching ""

    No results matching ""