본문 바로가기

개발/Linux

파일 다루기 - 리눅스 파일 구조

반응형

리눅스 파일 구조

- 리눅스에서는 모든것이 파일이다!

- 디스크파일, 직렬포트, 프린터, 기타 주변장치 들을 마치 파일을 사용하는 것처럼 사용할 수 있다.

- 디렉터리 역시 파일 종류이다.


1. 디렉터리

- 시스템은 파일들의 inode번호를 이용하여 접근하는데 이 파일들의 inode 번호들과 이름을 담은 하나의 파일이다. ( 파일의 inode번호는 ls -i 명령어를 이용하여 볼 수 있다.)

- 파일들은 항상 특정한 디렉터리에 속하고 그 디렉터리도 다른 디렉터리도 담을 수 있다. 이렇게 트리형태의 파일 시스템 계통구조가 만들어진다. 

- 일반적으로는 홈 디렉터리에 저장된다. /home/bp 의 경로 여기서 bp는 유져네임 줄여서 ~bp로 나타내기도 한다. 표준라이브러리 함수들은 셸의 틸트 단축 표기를 이해하지 못한다는 단점이 있다. 그래서 프로그램에서 그런 함수를 사용할 경우에는 실제 경로를 알려주어야 한다.

- / 은 루트디렉터리 최상위의 디렉터리이다. 그 아래에는 시스템 프로그램을 담는 /bin, 시스템 구성 파일들을 담는 /etc, 시스템 라이브러리들을 담는/lib등이 있고, 물리적 장치를 대표하며 그런 장치에 대한 인터페이스를 제공하는 특별한 파일들은 /dev에 들어있다.


2. 파일과 장치 

- 하드웨어 장치들도 파일로 표현(매핑)된다.

mount -t iso9660 /dev/hdc /mnt/cdrom

cd /mnt/cdrom

  이렇게 하면 /dev/hdc에서 적재된 cdrom 내용이 /mnt/cdrom의 디렉터리에 파일과 디렉터리로 마운트 된다.그렇게 되면 다른 디렉터리와 마찬가지로 cdrom의 디렉터리들을 탐색할 수있다. 

- /dev/console

시스템 콘솔을 타나낸다. 오류메시지나 진단메시지가 이 장치로 전달되고, 각 Unix 시스템에는 콘솔 메시지를 받기 위한 특정한 터미널 또는 화면이 존재한다.

- /dev/tty

프로세스 제어 터미널의 별칭이다. 시스템이 자동으로 실행하는 프로세스와 스크립트에는 제어 터미널이 없다. 따라서 그런 프로세서에는 /dev/tty를 열 수 없다.

사용자가 실제로 사용중인 가상 터미널 도는 하드웨어 터미널이 무엇인지와는 무관한 방식으로 사용자에게 메시지를 출력할 수 있다. 

/dev/consol 장치는 시스템에서 유일한 하나의 장치와 연관되지만, /dev/tty는 서로다른 여러 물리적 장치들에 접근할 수있다.

- /dev/null

이 파일은 널 장치이다. 이장체애 대한 모든 출력은 그냥 폐기된다. 이 장치를 읽는 경우 즉시 파일의 끝(EOF)이 반환된다. 이 장치는 cp명령으로 빈 파일을 만들 때 사용 할 수 있다. 또한 터미널에 타나나지 않게 하고싶은 출력을 이 /dev/null로 재지정하는 경우도 많다.

echo 보이고 싶지 않은 메시지 > /dev/null

cp /dev/null empty_file

- /dev

여기 에는 하드디스크와 플로피 디스크, 통신 포트, 테이프 드라이브, CD ROM, 사운드 카드 그리고 시스템의 내부 상태를 나타내는 몇몇 장치들도 들어 있다. /dev/zero 라는 장치고 있는데 이것은 0들로 가득 찬 파일을 만들기 위한 널 바이트들의 원본 역할을 한다. 

이 장치들중 일부는 슈퍼 사용자 권한이 있어야 접근이 허용된다. 

장치들은 크게 문자 장치(character device)와 블록 장치(block device)로 나뉜다. 한 번에 한 블록씩 접근해야하는 장치들이 있어 생긴 것이다. 일부 파일 시스템은 블록 장치만 지원한다. 하드디스크가 그 예이다.


반응형

'개발 > Linux' 카테고리의 다른 글

파일다루기 - 라이브러리 함수들  (0) 2014.10.10
파일 다루기 - 시스템 호출과 장치 드라이버  (0) 2014.10.10
실습 2 : 정적 라이브러리  (0) 2014.10.09
개발 시스템의 개요  (0) 2014.10.09
실습 1 : Hello World  (0) 2014.10.09