강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

부팅 1단계 : ROM-BIOS 실행

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

부팅 1단계 : ROM-BIOS 실행

 

 

 

 

 

컴퓨터 전원이 켜(ON)지고 나면 가장 먼저 실행되는 프로그램이 ROM-BIOS이다.

 

 

 

 ROM-BIOS란 컴퓨터 메인보드(Main Board)에 장착된 컴퓨터 부팅시 가장 먼저 실행되는 프로그램으로서 컴퓨터 하드웨어 인식과 각 장치들의 사용을 위한 인식 및 준비를 위한 가장 기초적인 프로그램이다.

 

 

 

 또한 ROM-BIOS프로그램은 CMOS에 들어있다.

 

 

 

 ROM-BIOS ROM(Read Only Memory)이라는 하드웨어에 들어있는 BIOS(Basic Input Output System)라는 의미인데 ROM에 대해서는 잘알고 있을 것이므로 BIOS라는 프로그램에 대해서 좀 더 알아보자.

 

BIOS“Basic Input Output System”의 약어로서 컴퓨터에 전원이 들어오면 자동실행되는 CMOS에 들어있는 프로그램이다.

 

 

 

 여기서 무엇보다 중요한 것은 전원이 들어오는 즉시 자동실행이 된다라는 점이다.

 

 

 

 필자는 이부분을 엄청나게 강조한다.

 

 

 

 너무 쉬운 개념이지만 이 부분이 이해되지 않으면 부팅전체를 이해할 수 없다.

 

 

 

 즉 컴퓨터 전원이 들어오는 이 순간 BIOS의 특정 프로그램이 메모리로 자동로딩되어 부팅이 시작되기 때문이다.

 

 

 

 이것이 모든 컴퓨터의 부팅시작이기 때문에 쉬운 것이지만 이 부분을 놓치면 지금부터 배우게 될 부팅과정에 대한 이해는 말그대로 사상누각이 되는 것이다.

 

 

 

 

 

다시 말해서 ROM-BIOS에 저장되어있는 BIOS프로그램은 전원이 들어오는 즉시 메모리의 특정번지로 로드(load)되어 적재된다.

 

 

 

 또한 CPU는 전원이 들어오면 즉시 메모리의 이 특정주소(인텔과 인텔호환의 CPU들은 메모리주소 FFFF0H에 있는 데이터를 읽어들임)에 있는 BIOS명령들을 실행하도록 만들어져있다.

 

 

 

 여기에 저장되어있는 데이터들은 ROM에 저장되어 있기 때문에 시스템 전원이 꺼지더라도 지워지지 않고 그대로 남아 있다.

 

 

 

 이후에 다시 전원이 들어오면 다시 메모리로 로드(load)되어 CPU에 의해 읽혀지는 일을 반복한다.

 

 

 

 

 

참고로 다음은 전원이 켜진후에 ROM-BIOS프로그램(또는 CMOS 프로그램)으로 들어간 화면으로서 여러분들도 여러 번 들어가서 사용해 본 화면이다.

 

 

 

 

 

316fee9c12ed6bd492a864a12bb0b067_1684383706_5305.png
 316fee9c12ed6bd492a864a12bb0b067_1684383731_9328.jpg

 

 

 

 

 

 

방금 설명한 것을 이해하였다면 이제 ROM-BIOS의 역할에 대해서 알아보자. 전원이 들어온 이후에 ROM-BIOS가 수행하는 역할은 2가지가 있다.

 

 

 

 앞에서 설명한 것은 이해만하고 잊어버려도 된다.

 

 

 

 하지만, ROM-BIOS가 하는 2가지의 역할을 반드시 기억해 두기 바란다.

 

 

 

 

 

첫번째 역할 : POST기능, 하드웨어의 각 장치들 인식 및 초기화(자체진단기능)

 

두번째 역할 : 부트로더(Boot Loader) 로딩기능

 

먼저 ROM-BIOS첫번째 기능 POST기능에 대해서 알아보자.

 

메인보드에 있는 ROM-BIOS BIOS 프로그램들은 시스템에 장착된 하드웨어장치들을 하나씩 인식하기 시작한다.

 

 

 

 이 때 하드웨어(CPU, RAM, DISK)들을 인식하고 이상유무를 체크한 후에 이상이 없다면 각 장치가 사용될 수 있도록 모든 장치의 초기화를 수행한다.

 

 

 

 만약 각 장치를 인식하는 단계에서 이상이 발생한다면 !~~!~~”하는 에러음을 내면서 부팅이 멈추게 된다.

 

 

 

 그리고 이 에러음의 개수와 음종류에 따라서 어떤 장치에서 에러가 발생하였는가를 알 수 있다.

 

 

 

 그리고 컴퓨터의 시리얼장치, 패러럴장치, PS/2 마우스장치, 사운드장치, IDE하드웨어, USB장치, 플로피드라이브, SATA장치, SCSI장치, 이더넷카드등이 이 단계에서 ROM-BIOS 프로그램에 의해 모두 인식되고 또한 사용을 위한 초기화가 수행된다.

 

 

 

 이것이 전원이 들어왔을 때에 ROM-BIOS가 하는 가장 첫번째 역할인 자체진단기능인 POST(Power On Self Test)이다.

 

 

 

 

 

ROM-BIOS두번째 기능은 부트로더(Boot Loader)를 로딩하는 기능이다.

 

 

 

 

 

리눅스의 부트로더 종류에는 LILO GRUB이 있는데 요즘 거의 대부분 GRUB을 사용하고 있다.

 

 

 

 이 두번째 기능은 시스템 부팅기능으로서 POST과정이 아무런 이상없이 수행완료되었을 때 부트로더(Boot Loader)를 메모리로 로딩하여 리눅스부팅을 시작하는 역할이다.

 

 

 

 ROM-BIOS는 이미 앞에서 컴퓨터에 장착된 각 장치들을 모두 인식하였다.

 

 

 

 따라서 현재 운영체제가 저장되어 있는 장치 또한 인식되어 있다.

 

 

 

 ROM-BIOSBoot Loader(GRUB)를 가지고 있는 부팅매체(하드디스크, CD-ROM, USB, 플로피등)를 하나씩 검사하기 시작한다.

 

 

 

 즉 가장 먼저 검색된 하드디스크장치에서 부트로더(GRUB)를 불러들인다.

 

 

 

 참고로 이것이 CD-ROM으로 부팅 또는 설치를 하기 위해서 부팅매체 순서를 CD-ROM이 가장 앞에 오도록 해야하는 이유이다.

 

 

 

 이렇게 해서 검색된 부팅매체(예 하드디스크, CD-ROM) 0번 섹터(대부분 MBR이라고 부름)에서 Boot Program을 읽어들여 메모리로 적재(로드, load)한다.

 

 

 

  Boot Program Boot Loader라고 하기도 하고 Boot Sector라고 부르기도 한다.

 

 

 

 중요한 것은 이 Boot Program에 리눅스의 Boot LoaderGRUB이 들어 있다는 것이다.

 

 

 

 ROM-BIOS에 의해 부트로더(GRBU)가 메모리로 로딩된 이후부터는 ROM-BIOS는 시스템 부팅제어권을 GRUB에게 넘겨주고 자기 자신은 종료한다.

 

 

 

 따라서 GRUB이 메모리에 로딩되어 실행되면서 부터는 시스템의 모든 제어권은 GRUB이 가지게 되고 이후의 부팅과정을 주도하게 된다.


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,845 개
  • 현재 접속자 :  112 명