24小时学通Linux内核之构建Linux内核
24小时学通Linux内核之构建Linux内核 今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看齐,不然就只能和代码为伴了的~~话说没了腊八粥但还是有代码,还有各位读者的支持呀,所以得继续写下去,静下心来,完成Linux内核的学习,坚持,加油~ 到目前为止,我们已经认识了Linux内核子系统,也探究了系统的初始化过程,并且深入探索了start_kernel()函数,同样,了解内核映像的创建也是非常重要的,接下来将讨论一下内核映像的编译和链接过程,那么这些当然需要工具链了,工具链包含编译程序、汇编程序、链接程序,是创建Linux内核映像的一组程序集合,下图说明了工具链的链式关系: ELF二进制目标文件 可执行ELF目标文件包括:ELF头,程序头表(用于加载的节),第1节,第2节。。。。节头表(可选) ELF头文件 typedef struct elf32_hdr{ unsigned char e_ident[EI_NIDENT]; //标识该文件是否为ELF文件 Elf32_Half e_type; //指定目标文件类型,例如可执行文件,重定位文件,共享的目标文件 Elf32_Half e_machine; //被编译文件所在系统的体系结构 Elf32_Word e_version;