RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

출처 : 대전국제 IT교육센터 정성재 강사

 

1. 리눅스와 하드웨어 개요
운영체제에서 하드웨어의 인식은 굉장히 중요하다. 사용자가 하드웨어에게 명령을 내리고자 한다면
운영체제에서 하드웨어를 인식해야 한다. 내부적으로는 커널이 하드웨어를 지원하고 인식해야 제어할
수 있다. 리눅스에서 하드웨어의 종류에 따른 여러 가지 특성을 분석해보자.

2. 하드웨어와 관계된 기본 자원
(1) 하드웨어 관련 로그
   1) 설명: 부팅이란 쉽게 설명하면 커널이 하드웨어를 인식하는 단계이다. 부팅을 시작하면 커널은
           부팅하면서 인식되는 하드웨어 정보를 화면에 보여주고, 또한 그 정보를 기록한다. 그
           정보가 기록되는 파일이 /var/log/dmesg이다.
   2) 확인: 로그정보의 확인은 로그 기록파일명과 같은 dmesg 명령을 이용한다. 이 명령을 내리면
           부팅시 발생된 로그를 확인할 수 있으며, 이 내용은 /var/log/dmesg라는 파일에서 가져
           온다.
(2) 하드웨어 자동인식 데몬 kudzu
   1) 설명: 리눅스에서도 윈도우처럼 자동으로 하드웨어를 인식하여 설치해주는 데몬이 있는데 이
           데몬이 kudzu이다. 새로운 하드웨어를 인식하고 설정하여 그 설정된 목록을 파일에 저장
           한다. 이 파일은 데이터베이스화하여 관리되고, 새로운 하드웨어 발견시 이 파일과 비교
           하여 기록에 없으면 새 하드웨어로 인식하여 데이터베이스를 갱신한다.
   2) 관련 파일 및 디렉토리
    ㄱ. /etc/sysconfig/hwconf: kudzu가 인식한 하드웨어를 설정하여 데이터베이스화하여 관리하는
                              파일이다. 이 파일에 현재 장착된 하드웨어의 정보가 담겨 있다.
    ㄴ. /usr/share/hwdata : kudzu가 인식할 수 있는 하드웨어의 목록파일이 들어 있는 디렉토리이
                           다.
(3) /proc 디렉토리: 관련 하드웨어에 대한 정보는 가상파일시스템의 일종인 /proc디렉토리에 위치
                    하게 된다. 이 디렉토리내의 파일을 통해 여러 하드웨어 정보를 알 수 있다.
(4) 관련 유틸리티 : hwbrowser
   X window 기반 그래픽 유틸리티인 hwbrowser는 현재 찾아낸 하드웨어의 정보를 보여주는 프로그램
  이다.

3. 각 하드웨어별 분석
(1) CPU
   현재 리눅스에서 지원되는 CPU의 종류를 살펴보면 Intel의 x86계열과 IA-64, Compaq Alpha, IBM
  S/390, PowerPC, Motorola 68k, SPARC 등을 지원한다. CPU 갯수로 보면 리눅스 커널 디자인상으로
  는 총 32개까지 지원이 가능하지만 x86계열은 8개까지 지원한다. 그러나, x86계열에서 실제적으로
  4개 이상은 사용하지 않는다.
(2) Memory
   리눅스는 i586인 경우에 기본으로 1GB의 메모리를 지원한다. i686/athlon을 사용하는 경우에는
  4GB까지 사용가능하다. 또한 인텔의 PAE(Physical Address Extensions)를 지원하는 CPU인 경우에는
  최대 64GB까지 지원한다.
(3) Block Device 와 Character Device
   1) 설명: 리눅스에서는 장치들을 파일화하여 관리한다. 이러한 파일들은 /dev디렉토리에 위치하게
           되고, 크게 Block Device와 Character Device로 분리하여 관리된다. 또한 블록디바이스나
           캐릭터 디바이스의 쉬운 접근을 위해 심볼릭링크(Symbolic Link)로 사용하기도 한다.
   2) Block Device
    ㄱ. 설명: Block 단위로 전송하는 장치들을 말하며, 흔히 Random한 접근이 가능한 장치를 일컫기
             도 한다. Floppy, IDE, SCSI, RAID 등이 이러한 장치에 속한다.
    ㄴ. 블록 디바이스 파일의 예
       [root@www dev]# ls -l /dev/fd0
       brw-rw----    1 root     floppy     2,   0  8월 31 08:31 /dev/fd0
        => 첫번째필드가 권한을 나타내는 부분에서 맨 앞쪽이 b로 표기됨을 알 수 있다. 또한 /dev
          디렉토리안에 있는 디바이스들은 두 개의 숫자로 이루어진 식별자값을 갖는데, 이 들 숫자
          를 각각 Major Number, Minor Number라 부른다. Major 번호는 노드번호와 동일하며, Minor
          번호는 의례적으로 첨자번호(예를 들면 fd다음에 붙는 숫자값)을 부여하게 된다.
   (참고) Major/Minor Number관련 정보는 /usr/src/linux-커널버전/Documentation/devices.txt
         파일에서 찾아볼 수 있다.
    ㄷ. Block Device의 종류
       hd[a-t] : IDE 하드디스크 드라이브
       sd[a-z] : SCSI 하드디스크 드라이브
       fd[0-7] : 표준 플로피 디스크 드라이브
       md[0-31] : 소프트웨어적 RAID 디스크
       loop[0-15] : loopback devices
       ram[0-19] : ramdisks
   3) Character Device
    ㄱ. 설명: Character단위로 전송하는 장치를 말하며, 흔히 순차적 접근만이 가능한 장치를 일컫
             는다.
    ㄴ. 캐릭터 디바이스 파일의 예
       [root@www dev]# ls -l /dev/tty1
       crw-------    1 root     root       4,   1  1월 21 19:58 /dev/tty1
        => 첫번째 필드의 맨 앞쪽이 c로 표기되어 있다.
    ㄷ. Character Device의 종류
      tty[0-31]  : 가상 콘솔장치
      ttyS[0-9]+ : Serial Ports
      lp[0-3]    : Parallel Ports
      null       : 휴지통같은 장치
      zero       : 무제한의 0값을 갖는 장치
      [u]random  : 랜덤한 정보를 갖는 장치
      fb[0-31]   : framebuffer 장치
   4) Symbolic Links
    ㄱ. 설명: 블록디바이스나 캐릭터디바이스의 접근을 쉽게 하기 위해 링크를 걸어둔 장치를
             말한다.
    ㄴ. 종류
      /dev/cdrom => /dev/hd[a-t], /dev/sd[a-z]+
      /dev/modem => /dev/ttyS[0-9]+
      /dev/pilot => /dev/ttyS[0-9]+
   5) 관련명령어: mknod, hdparm
(4) System Bus Support
   1) PCI 장치
    ㄱ. 설명: 리눅스는 PCI 버스관련 장치들도 지원한다. 대부분 커널에서 자동으로 인식한다.
    ㄴ. 관련명령어
       lspci
         => 현재 설치된 pci관련 장치의 정보를 보여준다.
    ㄷ. 관련디렉토리
       /proc/bus/pci
   2) ISA 장치
    ㄱ. 설명: PCI 이전에 사용하던 슬롯으로 현재는 거의 사용되지 않는다.
    ㄴ. 관련디렉토리
       /proc/isapnp
        => 찾아진 ISA 장치의 정보가 기록된다.
(5) Hotswappable Bus Support
   1) USB & IEEE 1394
    ㄱ. 명령어: /sbin/hotplug
         => USB나 IEEE 1394 관련 주변장치를 찾아 커널에게 알려주는 명령이다.
    ㄴ. 관련디렉토리: /proc/bus
        => 장치들의 정보는 /proc/bus의 하위디렉토리에 기록된다.
    ㄷ. /etc/hotplug
        => 관련장치들이 기록되는 환경설정디렉토리이다.
    ㄹ. USB 장치관련 파일
       /dev/usb
    ㅁ. 관련명령어
      a. /sbin/lsusb
          => 설치된 USB장치의 리스트를 보여주는 명령이다.
      b. /sbin/usbmodules
          => USB장치를 커널모듈로 등록시키는 명령이다.
    ㅂ. 관련문서 : "/usr/share/doc/hotplug-버전" 디렉토리나 커널소스의
                  /usr/src/linux-2.4/Documentation/usb 디렉토리에서 참고할 수 있다.
   2) PCMCIA
    ㄱ. /etc/sysconfig/pcmcia : 시스템에서 사용하는 PCMCIA 컨트롤러에 관한 내용이 설정된다.
    ㄴ. /sbin/cardmgr : Hotswap 이벤트를 모니터링하는 데몬이다.
    ㄷ. /sbin/cardctl : PCMCIA 카드를 제어하는 프로그램이다.
    ㄹ. /etc/pcmcia : PCMCIA 관련 환경파일들이 존재하는 디렉토리이다.
    ㅁ. /etc/init.d/pcmcia : 스크립트 데몬파일이다.
    ㅂ. 관련문서: man pcmcia 하거나 "/usr/share/doc/kernel-pcmcia-cs-버전" 디렉토리에서 참조
                 한다.
(6) Peripheral Device Ports
   1) Serial Ports
    ㄱ. /proc/tty/driver/serial
       => 현재 시리얼포트의 설정상태를 보여준다.
    ㄴ. /sbin/setserial
       => 시리얼포트의 정보를 보여주거나 설정하는 명령이다.
    ㄷ. /etc/rc.serial
       => 시스템부팅시에 시리얼포트를 사용하도록 해주는 스크립트이다.
    ㄹ. 관련 심볼릭링크
       /dev/modem
       /dev/pilot
    ㅁ. 관련문서
       /usr/src/linux-커널버전/Documentation/serial-console.txt
   2) Parallel Ports
     커널모듈형태로 지원되며 /etc/modules.conf에서 parport_lowlevel 이라는 이름으로 사용된다.
    x86계열 아키텍쳐에서는 패러럴포트는 parport_pc 라고 인식한다.
(7) Console and Graphics
   1) Console
    ㄱ. 설명: 리눅스는 기본적으로 SVGA 텍스트 콘솔을 지원한다. 커널 부트파라미터에서 'vga'라는
             값으로 조정한다.
    ㄴ. 관련명령어
       /usr/bin/setterm
   2) Frame Buffer
    ㄱ. 설명: 프레임버퍼란 화면에 나타날 영상정보를 일시적으로 저장하는 기억장치이다. 비디오카
             드의 중앙처리장치(CPU)로부터 도형을 표현하는 디스플레이 리스트를 받아 변환하여 프
             레임 버퍼에 기록한다. 프레임 버퍼의 각 기억 단위는 화면의 하나의 화소에 하나씩 대
             응하여 화면에 그대로 반영된다. 즉 화면의 각 점의 온(on)/오프(off)나 색깔을 비트맵
             으로 기억하고 있으며 이 기억 장치에 어떤 내용을 써넣으면 그것이 화면에 표시된다.
             이는 대개 시스템의 주기억 장치와는 별도로 분리되어 있으며, 특별한 기술을 사용하여
             속도를 빠르게 하기도 한다. 프레임버퍼를 이용하여 콘솔모드에서 한글쓰기 등이 가능
             하다.
    ㄴ. 리눅스와 프레임버퍼: 리눅스에서 프레임버퍼는 모드 그래픽하드웨어에 대해 지원되는 것은
                            아니고 일부 비디오카드에 대해서만 지원한다. fbset 이라는 프레임버
                            퍼를 관리하는 RPM패키지가 제공되며, /usr/sbin/fbset 이라는 명령과
                            /etc/fs.modes라는 환경설정파일을 이용한다.
    ㄷ. 관련문서
       /usr/src/linux-커널버전/Documentation/fb
       /usr/src/linux-커널버전/Documentation/svga.txt

4. 하드웨어관련 문서 찾아보기
(1) 레드햇리눅스 관련문서
   1) 사이트: http://www.redhat.com/support/hardware
   2) 설명 : 레드햇사에서 테스트한 하드웨어를 포함하여 레드햇리눅스와 호환되는 하드웨어목록과
            관련 정보를 얻을 수 있다.
(2) X-Window System관련 문서
   1) 사이트: http://www.xfree86.org
   2) 설명: X-window 지원하는 비디오카드 등의 하드웨어 정보를 알 수 있다.
(3) 기타관련문서
   1) 사이트: http://www.tldp.org
   2) 설명: The Linux Documentation Project의 약자로 하드웨어뿐만아니라 리눅스와 관련된 거의
           모든 문서를 찾을 수 있다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31