리눅스 디바이스 트리: 커널 포팅
리눅스 커널 부트 프로세스
uboot는 bootcmd 명령어를 통해 커널을 실행합니다:
bootcmd="nand read 0x30000000 kernel; bootm 0x30000000"
uboot는 NAND에서 커널 이미지를 0x30000000 메모리 주소로 복사한 후 bootm 명령을 실행합니다.
bootm 명령 처리
bootm은 운영체제 맵을 시작하는 함수로, arch/arm/lib/bootm.c의 do_bootm_linux 함수를 호출합니다:
int handle_ ...
7월 22일 12:07에 게시됨
리눅스 커널 부트스트랩: 초기화 과정 분석
개요
부트로더 → 커널 초기화 → 사용자 공간 init 프로세스
커널 버전: 6.1.x
진입점
현대 운영체제는 더 이상 어셈블리 코드로만 시작되지 않습니다.
레거시 BIOS: x86 기반, arch/x86/boot/bootsect.S 어셈블리에서 main 진입
GRUB: grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13. ...
7월 22일 06:40에 게시됨