内核编译 没有规则可制作目标_24小时学通Linux内核之构建Linux内核

本文探讨了Linux内核的编译和链接,包括工具链的作用、ELF文件结构、内核如何加载到内存中。文章还介绍了内核时间服务、内存管理和配置文件的生成,并对内核Makefile进行了初步解析。最后,提供了学习Makefile的资源链接。
摘要由CSDN通过智能技术生成

  到目前为止,我们已经认识了Linux内核子系统,也探究了系统的初始化过程,并且深入探索了start_kernel()函数,同样,了解内核映像的创建也是非常重要的,接下来将讨论一下内核映像的编译和链接过程,那么这些当然需要工具链了,工具链包含编译程序、汇编程序、链接程序,是创建Linux内核映像的一组程序集合,下图说明了工具链的链式关系:

1aa809f67537ae68f00af44f6e298312.png

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; //目标文件的版本
  Elf32_Addr    e_entry;  /* Entry point */  //程序的起始地址
  Elf32_Off     e_phoff;   //保存程序头表在文件中的偏移量
  Elf32_Off     e_shoff;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值