美文网首页
Linux内核代码里的GNU C扩展

Linux内核代码里的GNU C扩展

作者: 紫軒遊_夢 | 来源:发表于2018-12-07 10:50 被阅读0次

#define __init __attibute__ ((__section__ (“. Init.text”)))

__attribute__为内核使用的GNU C扩展,这就意味着能够编译内核的唯一编译器是GNU C

__section也是GNU C的一个属性。

编译器将函数放在.text段,变量放在.data段或者.bss段。

此部分与可执行文件相关。可执行文件由荷娜连接在一起的对象文件组成。对象文件包含许多段,如文本/数据/init数据/bass等。这些对象文件都是由于一个成为连接器脚本的文件链接并装入。此脚本将输入文件的个各段映射到输出文件中。详细见vmlinux.lds文件里的initcall.init部分。

GNU C的这些拓展对代码优化/目标代码布局,安全检查等方便提供了很强的支持。

相关文章

  • Linux内核代码里的GNU C扩展

    #define __init __attibute__ ((__section__ (“. Init.text”)...

  • Linux命令操作

    敲代码的姿势要帅 基础知识 GNU/Linux = Linux内核 + GNU系统工具链 + 软件。(采用Linu...

  • GNU C语法扩展(3)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C语法扩展(5)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C 扩展(2)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C语法扩展(4)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C的语法扩展(1)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C语法扩展(10)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C语法扩展(6)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

  • GNU C语法扩展(9)

    要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特...

网友评论

      本文标题:Linux内核代码里的GNU C扩展

      本文链接:https://www.haomeiwen.com/subject/qyazcqtx.html