2007년 7월 26일 목요일

[scrap] 리눅스 부팅

출처 : 코리아인터넷닷컴, a 2001년 02월 06일
저자 : 전병국


리눅스 부팅, 그것이 알고 싶다 (1) : 컴퓨터 켜고 30초

컴퓨터에 전원을 넣고 원하는 작업을 할 수 있는데 까지 약간의 시간이 필요하다. 잠자던 컴퓨터가 깨어나 사용자의 작업을 기다리는 상태가 되기까지의 과정이 바로 부팅(Booting)이다. 따로 떨어져 있던 하드웨어와 소프트웨어가 만나 어떤 일이든 할 수 있는 대기 단계로 돌입하는 것이다.

기본적으로 부팅은 하드웨어 단계에서 시작되기 때문에 운영체제(OS)를 넘어선 영역이다. 운영체제는 부팅의 단계에서 선택되는 것이기 때문에 같은 컴퓨터에 리눅스가 설치될 수도 있고, 윈도우 98이 설치될 수도 있는 것이다.

■ 리눅스 컴퓨터 켜고 30초
 


전원


안에서 무슨 짓을 하고 있나?

   

하드웨어

 

  1. 컴퓨터의 전원을 켬

바이오스(BIOS)


  1. 시스템 이상 여부 점검(RAM 체크, PnP 장치 검색 등)
  2. 부팅할 드라이브 검색
  3. 부팅할 드라이브의 첫 번째 섹터 읽음. 보통 Master Boot Recorder(MBR)라 함

LILO


  1. 첫 번째 섹터에 있는 로더 프로그램(예:LILO)이 OS(리눅스)을 읽음
  2. 커널 압축 해제

커널(KERNEL)


  1. 장착된 하드웨어 검사, 드라이버 설정
  2. 파일 시스템 검사
  3. /etc/inittab에 있는 내용을 근거로 초기화 설정이나 실행 지정된 프로그램 실행

파일 시스템


  1. 사용자 입력을 기다림(로그인 대기)

리눅스 부팅, 그것이 알고 싶다 (2) : 좀 더 자세히 살펴 보자(1)

부트로더(The Boot Loader)

바이오스가 기본적인 방법으로 하드웨어들을 점검하고 난 후 가장 먼저 일어나는 일은 하드 디스크에 내려와 최초의 프로그램이 적재되는 것이다. 만약 리눅스 기반 시스템을 부팅하게 되면 이 프로그램은 보통 LILO(LInux LOader)와 같은 부트로더다(인텔/리눅스의 경우만 LILO이고 다른 CPU 기반 하드웨어는 다른 것을 사용한다). LILO와 같은 부트로더는 여러 운영체제를 선택해서 부팅하게 하는 역할도 해준다.

커널 및 커널 장치(The Kernel and Kernel Devices)

정상적으로 진행된다면 LILO는 커널과 함께 적재된다. 커널은 실제적으로 리눅스 그 자체라 할 수 있다. 커널이 시스템의 나머지 부분에 모든 핵심 서비스들을 제공하며 시스템이 켜져 있는 동안 계속 상주한다. 커널이 시작되어 장착된 하드웨어를 찾고 관련 드라이버들을 적재한다. 리눅스의 장치 드라이버는 각종 하드웨어를 사용할 수 있도록 하는 매개체다.

예를 들면, LAN연결을 위한 이더넷(Ethernet) 카드 드라이버는 리눅스와 이더넷 카드간의 통신이 가능하도록 하는 역할을 하는 것이다. 여기에는 두 가지 예외사항이 있다.

첫째, 새로 나온 일부 카드나 보드(Board)는 기존 과는 다른 칩셋을 사용한다. 이것들을 제어하기 위한 새로운 드라이버 소프트웨어가 아직 나오지 않았거나 리눅스 공동체의 테스트를 거치지 않은 상황이라면 이 카드나 보드는 작동하지 않는다.

둘째, 하드웨어 제조업체가 자사의 하드웨어 어떤 방식으로 작동하는지 상세한 정보를 제공하지 않으면 장치 드라이버 사용에 문제가 발생할 수 있다.

리눅스 부팅, 그것이 알고 싶다 (3) : 좀 더 자세히 살펴 보자(2)

inittab과 자동 설정된 프로그램 작동

이제 부팅시에 자동으로 실행되도록 설정된 프로그램들을 작동시킨다. 이런 설정은 여러 디렉토리에 나누어져 있으며 상황에 따라 실행 우선 순위가 달라진다(예를 들면 관리자만 접근할 경우 등). 이런 실행 순위를 결정하는 마스터 제어 파일이 있는데 이를 /etc/inittab이라고 부른다. inittab 파일 내에서 어느 단계에서 어느 프로그램이 실행되는지는 chkconfig와 같은 툴을 이용하면 된다. 일반적인 편집기 프로그램으로 그 내용을 볼 수 있다.

윈도우 관리자를 실행시키고 있다면, 필요한 모든 지원 프로그램을 실행시키고 동시에 X윈도우즈를 시동하는 특별한 실행단계가 있다. 윈도우 관리자 프로그램은 시스템 전체나 개별 사용자 별로 맞춤설정이 가능한 시동 스크립트를 내장하고 있다.

로그인

이제 모든 프로그램이 준비되어 있다. 이제 로그인을 해야 한다.

쉘(Shell)을 시작하자

리눅스가 웹서버로 사용중이라면 원격에 있는 사용자는 로그인 없이도 웹 브라우저로 시스템에 접근하여 홈페이지를 볼수 있다. 그러나 리눅스를 자신의 시스템으로 사용하려면 쉘을 통해야만 한다. 쉘을 실행하기 위해서 사용자는 사용자 ID(user name)과 암호(password)를 입력해야 한다. 그런 다음 시스템의 패스워드 파일과 대조 하여 방금 입력한 내용을 점검하고 일치하면, 바로 쉘이 작동한다.

물론 최근에는 쉘 상태를 거치지 않고 곧바로 X윈도우로 향하는 설정을 해놓기도 한다.

부팅 과정을 로그 파일로 보기

모든 부팅 과정이 로그(log) 파일로 남는다. 다음의 3가지 방법 중 하나를 이용하면 그 내용을 볼 수 있다.

  • # dmesg
  • # cat /var/log/messages
  • 더 간단한 것을 원한다면... Shift + Pg Up / Pg Dn 버튼을 이용하면 된다.

댓글 없음:

댓글 쓰기