본문/내용
리눅스에서의 부팅은 도스나 윈도우의 부팅과 상당히 다릅니다. 도스나 윈도우의 부팅은 아주 일상적인 일입니다. 컴퓨터를 쓰고싶으면 전원을 넣고 부팅과정을 거칩니다. 그리고 쓰기 싫으면 꺼 놓죠.
그러나 리눅스에서의 부팅은 간만에 있을까 말까 하는 중요한 사건입니다. (개인용 컴퓨터에 설치해서 사용하는 경우에는 매일 켜고 끄고 하지만..) 리눅스가 유닉스에서 갈라져 나온 운영체제라는 것을 생각해보면 이해가 될 것입니다. 무슨 서버 어쩌구 하는 컴퓨터들은 한번 켜서 서비스를 시작하면 시스템에 문제가 발생했다거나 회사가 망했다거나 하는 경우가 아니면 끌 일이 없을 겁니다. (물론 점검을 위해서, 또는 업그레이드를 위해서 끌 수도 있겠지요.)
이러저러한 이유로 리눅스의 부팅과정은 복잡합니다.
1. 제1단계: LILO 또는 loadlin
로더라고 하는 프로그램이죠. 이것은 커널(운영체제의 심장이죠)을 메모리에 올려놓는 일을 합니다. 어떤 분은 이 LILO가 멀티부팅을 위한 것으로 생각하시는 분이 있던데, 멀티부팅이 아니더라도 리눅스의 부팅을 위해선 꼭 있어야 합니다.
컴퓨터에 전원이 들어오고 나면 제일 먼저 디스크의 첫 부분을 읽어서 거기 있는 프로그램, 즉 로더를 실행시킵니다.
LILO boot: _
로더는 커널 이미지의 위치를 알고 있어서 스스로 커널이미지를 찾아서 메모리에 올려놓습니다.
LILO boot: linux
Loading linux...
※ 커널 이미지: 커널이 하나의 파일로 디스크에 저장되어 있는 것을 말합니다. 커널은 원래 파일에 저장되어있는 성격의 것이 아니고 컴퓨터가 꺼지기 전까지는 항상 메모리에 존재합니다.
그러니까 디스크에 저장되어있는 파일은 커널 그 자체는 아니고 커널의 내용을 담고 있는 무엇이다... 그런 식으로 받아들이면 되겠습니다.