[질문] 커널 소스를 보고 있는데요...
글쓴이: 익명 사용자 / 작성시간: 월, 2001/11/05 - 4:42오후
커널 소스를 boot process부터 차례로 보고 있는데요...
1. asmlinkage void __init start_kernel(void)에서
__init이 뭔질 몰겠습니다...
2. 그리고 __setup("profile=", profile_setup);에서
__setup이라는게 정확이 뭘 하는건지, 언제 수행이 되는건지...
음.. __XX라는 함수는 나중에 __XX라는 함수를 다시 호출한다든지 하는
커널 소스를 볼때 좀 도움이 되는 것들을 알고 싶습니다.
Forums:
오후..
6년전 글~ -_-;;
누군가 또 검색할수 있으니 답변을;;
kernel parameter 를 받아들여 command_line[] 배열을 채워주는 매크로 랍니다..
__setup("root=",root_dev_setup); 이 설정되어 있고
커널 인수(kernel parameter)에 root=/dev/ramdisk 가 들어가 있다면
static int __init root_dev_setup(char *line) 함수가 호출,
line에 /dev/ramdisk 가 들어가게 되는 구조 입니다..
그냥 커널 파라메터 처리 매크로 라고 해도 좋겟네여..
글 남겨주셔서 잘 보고 갑니다.
ㄳ
__init
__init은 include/linux/init.h에 정의되어 있고, 해당 함수를 GCC attribute를 사용해서 .init.text 섹션에 위치시킵니다.
__init은 부팅때만 실행되는 함수에 붙여줍니다. dmesg를 보시면 "Freeing unused kernel memory: 200k freed" 같은 메시지가 나오는데, 이것은 부팅이 끝나고 나서 __init으로 표시된 메모리를 해제할 때 나오는 메시지입니다.
6년전 글에 답변 남겨주신 덕분에 잘 배웠습니다.
감사합니다.
...
...
;;;
원글이..지금 기준으루 16년전이네요..^^;
아무튼...저도 덩달아 감사를~ ( _ _ )
댓글 달기