System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제3장 시스템 관리 기초

    1. 기초개념


가. 모든 것이 파일(everything is just a file)

리눅스는 유닉스처럼 모든 것을 일관되게 파일로 간주한다. 그것을 느끼게 해주는 디렉토리가 바로 /dev 디렉토리이다.

[root@ /]# ls /dev

ippp19 nb66 ptyx5 sdo ttye27 ttypf

ippp2 nb67 ptyx6 sdo1 ttye28 ttyq0

ippp20 nb68 ptyx7 sdo10 ttye29 ttyq1

ippp21 nb69 ptyx8 sdo11 ttye3 ttyq2

ippp22 nb7 ptyx9 sdo12 ttye30 ttyq3

...

예를 들어, ide 하드 디스크는 /dev/hda, /dev/hdb 이며, scsi 하드 디스크는 /dev/sda, /dev/sdb와 같은 이름을 갖고, scsi 시디롬은 /dev/scd0, 시리얼 통신 포트는 /dev/cua0, /dev/cua1, /dev/ttys0, /dev/ttys1, 프린터 포트는 /dev/lp0, /dev/lp1와 같은 장치 이름을 사용한다.

만약 프린터 포트에 직접 어떤 자료를 전송하고 싶다면 다음과 같이 할 수 있다.

[root@ /]# cat filename > /dev/lp1

만약 cat filename > filename2처럼 보통의 파일명을 사용했다면 filename2가 생기고 filename의 내용이 씌여질 것이다. 결국은 파일 복사가 된다.

하지만, > 다음에 적힌 /dev/lp1은 그냥 보통의 파일이 아니다. /dev/lp1은 프린터 포트를 가리키는 특수한 장치 파일(device file)명으로서, 커널은 이 파일을 어떻게 처리해야 하는지 잘 알고 filename의 내용 한 줄 한 줄을 프린터 포트로 전송한다.


나. 문자 장치와 블록 장치

장치(device)는 크게 문자(character) 장치와 블록(block) 장치로 구분된다.

문자 장치는 통신 포트, 프린터 포트, 터미널 장치처럼 한 번에 한 바이트씩 자료가 오가는, 오로지 한 방향의 순차적인 접근만 할 수 있는 장치이다.

블록 장치는 이와 달리 주로 디스크, 시디롬으로서 원하는 부분을 아무 때나 검색하여 읽어 들일 수 있고, 약간은 큰 블록 단위로 읽고 쓰는 장치이다. 블록 장치는 버퍼링(buffering)을 한다. 읽기 버퍼링의 경우 이미 읽은 내용을 메모리에 보간하고 있다가 똑같은 자료를 요청할 때는 디스크를 실제로 읽을 필요 없이 메모리의 내용을 보여준다. 쓰기 버퍼링의 경우에는 쓰기 요청이 있을 때마다 쓰는 것이 아니라 일정 시간 또는 일정량 쓰기 할 분량을 모아 놓았다가 한꺼번에 작업한다. 이렇게 해야만 다중 사용자, 다중 프로세스 시스템의 효율이 높아지기 때문이다.

다. 장치 파일(device file)

리눅스는 유닉스와 마찬가지로 모든 하드웨어 장치에 대하여 그에 알맞은 이름의 장치 파일명을 갖는다. 이 파일들은 /dev 디렉토리에 놓여 있으며, 보통의 파일 명령으로는 만들 수 없고, mknod라는 명령을 사용하거나 /dev/makedev라는 편리 스크립트를 이용하여 만든다.

[root@leelab /]# ls -l /dev/hd*

brw-rw---- 1 root disk 3, 0 may 6 1998 /dev/hda

brw-rw---- 1 root disk 3, 1 may 6 1998 /dev/hda1

brw-rw---- 1 root disk 3, 10 may 6 1998 /dev/hda10

brw-rw---- 1 root disk 3, 11 may 6 1998 /dev/hda11

brw-rw---- 1 root disk 3, 2 may 6 1998 /dev/hda2

brw-rw---- 1 root disk 3, 3 may 6 1998 /dev/hda3

brw-rw---- 1 root disk 3, 4 may 6 1998 /dev/hda4

brw-rw---- 1 root disk 3, 64 may 6 1998 /dev/hdb

brw-rw---- 1 root disk 34, 66 may 6 1998 /dev/hdh2

brw-rw---- 1 root disk 34, 67 may 6 1998 /dev/hdh3

brw-rw---- 1 root disk 34, 68 may 6 1998 /dev/hdh4

brw-rw---- 1 root disk 34, 69 may 6 1998 /dev/hdh5

brw-rw---- 1 root disk 34, 70 may 6 1998 /dev/hdh6

...

파일 목록 보기 명령인 ls 명령을 -l 옵션과 함께 해서 /dev 디렉토리의 장치 파일명을 보면 일반 파일의 경우 파일 크기가 표시되어야 할 공간에 장치 파일의 고유 속성 값인 메이저(major) 번호와 마이너(minor) 번호가 표시된다.

위에서 /dev/hda는 메이저 번호 3번, 마이너 번호 0번의 장치이다. 파티션을 의미하는 /dev/had1, /dev/hda2는 메이저 번호가 같고, 마이너 번호가 1,2 이런 식으로 증가한다.

/dev/hdb는 메이저 번호 3번이며, 마이너 번호는 64번부터 시작한다.

scsi 디스크는 메이저 번호가 8번이다.

각 하드웨어 장치 파일의 메이저 번호와 마이너 번호는 고유하게 결정되는 것으로서 아무렇게나 만들 수 없다.

ls 출력의 허가권 필드 맨 앞에 있는 문자 b는 장치가 블록 장치임을 나타낸다. 만약 c라면 그것은 문자 장치임을 나타낸다.

여러분은 앞으로 이 장치 파일명과 익숙해져야 한다. 장치 파일명을 대면 그것이 어떤 하드웨어와 관련되어 있는지 척척 떠올릴 수 있어야 한다.

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.