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

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

 

1. 기본적인 시스템 하드웨어 설정
(1) 바이오스 : PC에 설치된 펌웨어를 보통 기본 입출력 시스템(BIOS, Basic Input/Output System)
              또는 바이오스라 부르며 시스템이 시작된 후 운영체제가 시작될 때까지 각 장치를 점검
              한다. BIOS프로그램은 보통 ROM에 저장되어 있어 ROM-BIOS라고도 부른다. 시스템에
              따라 차이는 있지만 이 과정에는 시스템의 초기화, 메모리 및 기타장치 의 테스트,
              저장 장치에서 운영체제를 읽어들이는 것등이 포함된다. 또한 낮은 수준의 시스템
              설정 인터페이스를 제공하며 사용자로 하여금 부팅시에 이들을 설정할 수 있게 하며
              자원을 할당한다. 보통 디스크설정, 메모리 설정, 보드에서 제공하는 포트(시리얼/
              패러럴등), 시계, 부트 장치 등을 설정할 수 있다.
(2) 자원 할당 : 바이오스 설정 중에서 몇몇 세부 사항에는 인터럽트(IRQ), I/O주소, DMA(Direct
               Memory Access)채널 등의 시스템 자원이 포함되어 있다.
   1) 포트 : 리눅스에서는 표준 직렬(Serial), 병렬(Parrarel), 조이스틱포트 모두 지원한다. 또한
           이러한 포트들과 주변기기는 /dev디렉토리에서 파일로 관리된다. 직렬포트는 ttyS0,
           ttyS1..등의 이름으로 사용되어 /dev디렉토리에서는 /dev/ttyS0, /dev/ttyS1등으로
           존재하고 마찬가지로 패러럴포트는 lp0,lp1..의 이름으로 사용되어 /dev/lp0, /dev/lp1
           등으로 존재한다.
     ㄱ. 직렬포트 : CPU는 직렬포트로 들어온 데이터를 처리하기 위해서 그 데이터가 어디에서 온
                  것이며, 어떤 신호를 사용되어 CPU가 데이터를 처리하도록 요청하엿는가를 알고
                  있어야 하는데 그 정보를 나타내는 값이 I/O주소(I/O ports)와 IRQ(Interrupt
                  ReQuest)로 직렬 포트 장치들은 이 값들을 메모리에 저장해 두어야 한다. 일반
                  적인 ISA버스에는 IRQ0~IRQ15까지 총 16개의 IRQ가 있다.
     ㄴ. 직렬포트 IRQ와 주소
        포트    리눅스장치파일    IRQ           기능                  I/O주소
        COM1      /dev/ttyS0       4    마우스                         0x3f8
        COM2      /dev/ttyS1       3    플로터/외장모뎀                0x2f8
        COM3      /dev/ttyS2       4    사용안함(마우스와 충돌)        0x3e8
        COM4      /dev/ttyS3       3    내장모뎀                       0x2e8
   2) 인터럽트 : PC 마이크로 프로세서에게 전달되는 전기적 신호로 현재 작업을 잠시 멈추고 비동
               기적 이벤트(예를 들면 키보드 누름)에 반응하도록 한다. 최근의 PC장치들은 인터럽
               트를 공유할 수 있으나 구형 하드웨어는 다른 장치와 충돌하지 않도록 직접 고유값으
               로 지정해야 한다. 보통 IRQ(Interrupt ReQuest)라 부른다.
     ㄱ. IRQ 목록
       IRQ               기능
       IRQ0         System timer
       IRQ1         Keyboard controller
       IRQ2         공유
       IRQ3         COM2/COM4
       IRQ4         COM1/COM3
       IRQ5         LPT2/SOUND CARD
       IRQ6         Floppy Drive Controller
       IRQ7         LPT1 parallel Port
       IRQ8         Real-Time Clock(TTC)
       IRQ9         예비(주로 미디카드에서 사용)
       IRQ10        Lan Card
       IRQ11        SCSI Adapter
       IRQ12        PS/2 Mouse
       IRQ13        Coprocessor
       IRQ14        IDE Controller(Primary)
       IRQ15        IDE Controller(Secondary)
     ㄴ. 관련파일 : /proc/interrupts => 현재 사용중인 IRQ를 알 수 있다. 병렬포트에 대한 내용은
                                      없다.
       예)
       [posein@www posein]$ cat /proc/interrupts
                  CPU0
         0:   51736181          XT-PIC  timer
         1:          5          XT-PIC  keyboard
         2:          0          XT-PIC  cascade
         5:     260033          XT-PIC  usb-uhci, usb-uhci, usb-uhci, eth1
         8:          1          XT-PIC  rtc
        12:    2979673          XT-PIC  eth0
        14:     131256          XT-PIC  ide0
        15:          2          XT-PIC  ide1
       NMI:          0
       LOC:          0
       ERR:          0
   3) I/O주소 : 마이크로 프로세서의 메모리 맵(메모리 번지를 정의한 목록)에 위치하며 네트워크
               인터페이스와 같은 입출력 장치를 위해 예약되어 있다. 마이크로 프로세서는 메모리에
               데이터를 기록하는 방법과 동일하게 장치에 데이터를 기록할 수 있고, 이것은 장치
               인터 페이스를 간단하게 할 수 있다. 만일 여러 장치들이 우연히 동일한 I/O주소를
               공유하게 되면 시스템 충돌이 일어난다.
     ㄱ. 표준 I/O 주소
      060h + 064h        Keyboard Controller
      170h + 376h        Secondary IDE Controller
      1F0h + 3F6h        Primary IDE Controller
      220h               Sound Card
      300h               Lan Card
      330h               SCSI Adapter
      3F2h               Floppy Drive Controller
      3F8h               COM1
      2F8h               COM2
      3E8h               COM3
      2E8h               COM4
      378h               LPT1
      278h               LPT2
     ㄴ. 관련파일 : /proc/ioports => 현재 사용중인 I/O 주소에 대한 정보를 알 수 있다.
     ㄷ. 관련 명령 : setserial 명령어를 이용하여 직렬포트를 확인할 수 있다.
        [root@www /root]# setserial -g /dev/ttyS*
        /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
        /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
        .....
   4) DMA : 몇몇 장치들이 DMA채널을 이용해 메모리에 직접 작업하고 마이크로 프로세서는 다른
           작업할 수 있게 해준다. 만일 DMA가 없을 경우 모든 데이터는 장치들의 포트를 통해
           읽어서 메모리에 저장해야 되며 이 마이크로 프로세서에 의해 수행된다. DMA를 지원하는
           장치들은 마이크로 프로세서가 작업중일 때 메모리에 직접 접근해서 필요한 데이터를
           기록하게 된다. 이것을 결과적으로 성능을 향상시키는 역할을 한다.
     ㄱ. 관련파일 : /proc/dma => dma의 값을 알 수 있다.
(3) 1024 실린더 제한 : 대부분의 PC운영에서 바이오스는 마스터 부트 레코드(MBR)이라고 알려진
                      디스크의 시작부분에서 운영체제를 불러온다. 윈도우즈 운영체제 사용자들은
                      부트 레코드가 다른 곳에 설치되지 않으므로 MBR에 대해 별로 신경을 쓰지
                      않는다. 그러나 리눅스의 경우 사용자가 부트로더(LILO)를 MBR이나 루트
                      파티션에 설치할 수 있다. 이러한 유연성 때문에 종종 바이오스와 LILO가
                      부팅에 실패하는 경우가 생긴다. 이 문제는 바이오스가 우선 LILO를 메모리
                      로 로드한 뒤 실행해야 하지만 바이오스는 1024 실린더 이후의 디스크 영역
                      에는 접근할 수 없기 때문이다. 만일 바이오스가 전체 LILO를 읽을 수 없다면
                      부팅에 실패하게 된다. 또한 구 버전의 LILO는 비슷한 이유로 커널 이미지를
                      반드시 1024 실린더 안쪽에 위치시켜야만 한다.

2. SCSI와 NIC 장치 설정
(1) 네트워크 인터페이스 카드
   1) 네트워크 카드의 시대적 분류
    ㄱ. 점퍼시대 : 이 방식의 하드웨어는 점퍼 위치를 변경함으로써 설정할 수 있도록 만들었다. 이
                 러한 방식은 점퍼 설정에 필요한 관련문서를 참고해 PC를 열어 내부에 접근해야
                 한다.
    ㄴ. 비휘발성 메모리시대 : 이 방법도 여전히 수동으로 설정한다. 점퍼를 제거하고 비휘발성 메모
                          리에 저장하는 방식이다. 물리적으로 접근해야 하는 문제는 없어 졌지만
                          제조사에서 제공되는 프로그램을 이용해야 한다. 이러한 프로그램은
                          대부분 MS-DOS용으로 만들어져 리눅스에서 이 장치를 사용하기 위해서는
                          초기 설정을 위한 별도의 MS-DOS시스템이 필요하다.
    ㄷ. 현재 : 최근 PCI 버스 방식의 네트워크 카드들은 대부분 자동으로 설정된다. 운영체제가
             시작되기 전에 시스템 초기화 단계에서 설정한다. 이러한 자동화는 수동으로 설정하는
             불편함과 장치 충돌을 방지한다.
   2) /proc 파일시스템 이용
     운영중인 리눅스 시스템에 새로운 하드웨어를 추가할 경우 기존의 장치들이 사용하는 리소스를
    확인할 필요가 있는데 이러한 커널의 상태 정보는 /proc에 저장된다. interrupt, dma, ioports
    등의 파일들은 현재 사용중인 자원을 보여준다.
     예) 1. /proc/interrupts
         2. /proc/dma
         3. /proc/ioports

3. 기타관련명령어
(1) lspci
   1) 설명: 시스템에 사용되는 PCI관련 정보를 출력해주는 명령어이다.
   2) 사용법
     lspci [options]
   3) options
     -v : 정보를 자세히 출력해준다.
   4) 사용예
     [root@mybestone /root]# lspci
     00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 3128 (rev 01)
     00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
     00:08.0 VGA compatible controller: ATI Technologies Inc 3D Rage II+ 215GTB [Mach64 GTB] (rev 9a)
     00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
     00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
     00:11.0 ISA bridge: VIA Technologies, Inc. VT8233 PCI to ISA Bridge
     00:11.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
     00:11.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 1b)
     00:11.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 1b)
     00:11.4 USB Controller: VIA Technologies, Inc. UHCI USB (rev 1b)
     00:11.5 Multimedia audio controller: VIA Technologies, Inc. AC97 Audio Controller (rev 30)

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