유닉스파일시스템

반응형


 유닉스 운영체제는 서버용 운영체제로 가장 널리 사용되는 운영체제이다. 유닉스 운영체제는 사용자와 쉘(shell)을 통해 상호작용하는 대화식 운영체제로서, 멀티태스킹, 멀티유저 환경을 제공한다. 유닉스 운영체제는 유닉스와 리눅스로 분류되며, 유닉스 계열에는 오라클 솔라리스, AIX, HP-UX 제품이 있고, 리눅스 계열에는 페도라 우분투 등의 제품이 있다. 유닉스의 커널은 가장 하위 수준에서 하드웨어와 직접 관계를 맺는 하드웨어 종속적인 성격을 지니면서도 그 어떤 운영체제보다 더 다양한 종류의 컴퓨터에서 동작하도록 설계되어 있다. 셸은 앞서 말했듯, 사용자와 운영체제가 서로 대화하기 위한 프로그램으로 명령어 해석기의 기능을 갖추고 있다. 셸의 종류로는 본 셸(sh, Bourne Shell), C 셸(csh, C Shell), 배시 셸(bash, Bourne Again Shell) 등이 있다. 셸을 종료할 수 있는 명령어에는 logout, exit, ctrl + D가 있다.

  유닉스 파일 시스템은 디렉터리 파일로 구성되어 있으며 디렉터리들은 계층화된 트리 구조를 가진다. 최상위 디렉터리는 루트 디렉터리이며 /로 표기한다. 거의 모든 유닉스 운영체제들이 비슷한 파일 시스템 디렉터리 구조를 가지고 있기 때문에 루트 디렉터리 아래에 어떤 디렉터리가 있는지 정리하겠다. /etc 디렉터리는 passwd, hosts 파일들을 비롯한 시스템의 환경 설정 및 주요 설정 파일들을 저장하고 있다. /dev 디렉터리는 프린터나 터미널 같은 물리적인 장치를 다루기 위한 특수 파일들을 저장하고 있다. /usr/bin 디렉터리는 기본적으로 실행 가능한 파일들을 가지고 있다. 이 디렉터리에 있는 파일명들은 쉘에서 사용할 수 있는 명령어가 된다. /usr/include 디렉터리는 C 언어 라이브러리 헤더 파일을 저장하고 있다. /usr/lib 디렉터리는 기본 프로그램의 모듈들을 저장하고 있다. /usr/sbin 디렉터리는 시스템 관리 명령어가 저장되어 있다. /home 디렉터리는 사용자의 홈 디렉터리를 의미하며, /var 디렉터리는 시스템 로그가 저장되는 디렉터리이다. 마지막으로 /tmp 디렉터리는 프로그램 실행 시 생성되는 임시 파일들이 저장되는 디렉터리로, 리부팅 시 안에 있는 파일들이 삭제되는 공간이다.

  파티션에 생성된 파일 시스템들은 부트 블록(boot block), 슈퍼 블록(super block), inode 리스트, 데이터 블록(data block)의 네 가지 영역의 자료구조를 가지고 있다. 파일 시스템들은 이 네 가지 영역의 자료구조를 제어함으로써 유지되는 것이다. inode(index node)란 유닉스에서 각 파일에 대한 정보, 예를 들어 파일의 허가권, 소유권, 그룹, 최근 수정된 시간 등의 파일 관련 정보들과 해당 파일에 할당된 디스크 블록의 주소를 저장하는 필드들로 구성된 고정된 크기의 구조체를 말한다. 그리고 부트 블록이란 유닉스 시스템이 부팅할 때 필요한 실행 파일 정보를 저장하고 있는 블록을 의미하며, 슈퍼 블록이란 파일 시스템의 요약 정보 및 사용하지 않는 inode와 디스크 블록의 정보를 가지고 있는 블록을 의미한다.

반응형

+ Recent posts