리눅스 부팅 순서가 궁금합니다.
글쓴이: paeksj98 / 작성시간: 목, 2008/01/17 - 8:01오후
리눅스 부팅 순서가 궁금합니다.
1. 커널 시작점은 어디인지...??
어디 소스가 어디가 시작부분이고 끝인지..??
2. 커널 부팅이 끝나면 타겟 보드에서 램디스크로 넘어가서 실행되는데
램디스크 시작 지점이 어디고 끝은 어디인지.??
돌아 가는 흐름을 알아야 하는데 막상 찾아보려니 어디인지 모르겠습니다.
시작지점이 어디인지좀 알려주세요.
Forums:
어떤 아키텍쳐를
어떤 아키텍쳐를 사용하고 계신지는 모르겠으나... 커널상에서 보통 C 코드의 시작점은 init/main.c 의 start_kernel 함수입니다.
이 함수가 호출되기 이전은 arch/ 디렉토리 안에서 mmu나 기타 하드웨어를 초기화 하구요, 부트로더에서 넘겨온 자료구조를 재정의 하기도 하죠..
start_kernel 아랫쪽에 보면 kernel_thread 함수를 이용해 (유명한 1번 프로세스)init 프로세스를 생성하고 자기자신은 idle task로 남게되죠..
init 쓰래드는... 같은 파일에 init 함수를 보면 되는데, init 함수 안에보면 prepare_namespace 등에서 root를 mount 합니다. 잠깐 보니깐 initrd 안에서 시작파일은 /init 파일이군요...
만약 initrd를 사용하지 않는다면 init 함수 아랫쪽에 어떤 시작프로그램을 사용하는지 볼 수 있을껍니다.
kldp문서 중에
kldp문서 중에 리눅스 부팅을 정말 자세히 다룬 문서가 있지 않았나요?
어딨는지 못찾겠네요-;
----------------
agidari.wordpress.com
1번 - BIOS에서
1번 - BIOS에서 MBR로드
2번 - MBR이 시스템에 설치된 LILO/GRUP 로드
3번 - LILO/GRUP은 커널 로드. 이때 리눅스 커널이 여러개 등록되어 있으면 그중 한개 선택받아 로드
4번 - 리눅스 커널에 의한 주변기기 초기화. 루트파티션 마운트
5번 - 루트파일시스템 마운트 완료된뒤 커널은 /sbin/init을 실행시킴 (해보진 않았지만 커널옵션으로 변경가능하다고 합니다)
6번 - init에 의해 각 런레벨별로 부팅스크립트 실행
7번 - 로그인화면 표시 (부팅스크립트 중 가장 마지막이 로그인화면 표시하는겁니다)
Bootdisk HOWTO를 보시면 됩니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
댓글 달기