(1) 부트로더(Bootloader)
: 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램 


(2)  두번째 단계의 부트로더
: 시동을 위한 프로그램은 운영 체제 그 자체가 아니라, 두 번째 부트 로더로, 이를테면 NTLDR, 리눅스 로더, GRUB을 들 수 있다. 운영 체제를 적절하게 불러들이고 끝내 실행할 수 있는 상황으로 만들어 준다. 시스템은 그 자체를 초기화하며 운영 체제의 동작에 일반적으로 필요한 장치 드라이버와 다른 프로그램들을 불러들인다.


(3) GRUB(GRand Unified Bootloader)
: GNU GRUB로 GNU 프로젝트의 부트로더로 대부분 운영 체제의 커널을 불러올 수 있으며, 인자를 넘겨 줄 수도 있다. 대부분 리눅스 배포판에서 부트로더로 사용한다.

GRUB은 스테이지 단위로 부팅 과정이 구성되어 있으며, GRUB의 스테이지 1은 MBR에 존재한다. GRUB 설정 파일은 대개 스테이지 2에서 불리며 이들은 GRUB이 읽을 수 있는 파티션에 존재한다. 만약 설정 파일이 없으면 명령줄로 간다. 이들 설정 파일은 /boot/grub에 있으며 배포판마다 파일 이름이 다르다.

○ 기능
- 동적으로 설정 가능하다. 심지어 부팅 시간에도 커널의 인자를 조정할 수 있다.
- Bash와 같은 명령줄 인터페이스가 있다.
- 사용자 정의 부팅 기능
- 파일 시스템 직접 접근 기능
- 다양한 실행 파일 형식 지원
- 비 멀티부팅 운영 체제 지원
- 사람이 읽을 수 있는 설정 파일 제공
- 메뉴 인터페이스
- 그래픽 메뉴 및 배경 그림도 사용할 수 있다.
- 비 GUI 인터페이스도 쓸 수 있다.
- 다양한 파일 시스템 지원
- 자동으로 압축 해제 지원
- 지오메트리 정보 독립
- 모든 RAM을 바이오스와 관계없이 인식
- LBA 및 네트워크 지원
- 디스크 없는 시스템 지원


(4) U-BOOT(Universal Bootloader)
: PowerPC와 ARM 계열의 CPU에 기반을 둔 임베디드 보드를 위한 부트로더로 PPC, ARM, MIPS, SH, x86 등 다양한 CPU를 지원하며, 오픈소스이다.

○ 특징
- Ppcboot와 ARMboot를 썼던 사람들에게 익숙하다.
- 발전을 해가면서 다양한 platform에 포팅(ppc, arm, mips, x86)
- 코드가 깔끔하고 구조가 좋음.
- 광장히 강력하고 쉬운 환경설정
- 다른 CPU와 명령어 체계를 사용하므로, 다른 Platform에 적용이 용이하다.


※ 참고자료
2011/09/23 - [L inux /Kernel] - 리눅스 부팅과정 

 
by 민트앤라떼 2012. 12. 13. 11:47