커널 커널 개발자는 시작 지점을 커스터마이징 할만큼 경험이 풍부하기 때문에 main이 리눅스 커널의 시작점이 아니라는 것을 알고 있습니다.리눅스 커널의 시작점에 관해서
는 다음과 같은 고려 :
qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage -initrd rootfs.img -append "root=/dev/ram rdinit=/sbin/init" -dtb "versatile-pb.dtb"
위, 나는 이제 처음 실행 커널에있는 파일, 메인 라인 커널의 입력으로 커널 이미지, 장치 트리, rootfs.img을 공급했다. 그것이 초기화 파일이라면 누군가 커널 이미지 내에서 초기화 코드를 트리거 할 것입니다. 그렇다면 어떤 파일이 해당 작업을 수행합니까? 제발 조언.
참고 : 명확한 답변, 즉 정확한 아키텍처 아키텍처를 찾고 있습니다.
http://kernelnewbies.org/을 보시기 바랍니다. –
'main'은 존재하는 운영 체제의 모든 이진 파일의 진입 점이 아닙니다. 이것은 시스템 특정 부트 스트랩 코드에 의해 호출되는 함수입니다. C++과 gcc 확장자를 사용하면'main'이 호출되기 전에 많은 일을 할 수 있습니다! –
찾고있는 파일이 실제로 명확하지 않습니다! (커널은 프로세스가 아닙니다.) 초기화를 처리하는 첫 번째 C 함수 (그것은 글로벌 구조를 수행하는 C 런타임 함수와 비슷하게 작동합니다. 사용자 영역에서) 또는 실제 엔트리 포인트 (어셈블리에서 필연적으로 구현되는)? –