gpt4 book ai didi

linux-kernel - 其中 _bss_start 是定义 Linux 内核源代码

转载 作者:行者123 更新时间:2023-12-04 04:56:14 24 4
gpt4 key购买 nike

我正在浏览 Linux 内核源代码,并在其中一个汇编文件中找到了 _bss_start C varianle,但找不到它实际定义和初始化的位置。

看起来 _bss_start 是 bss 段的起始地址,但是它在哪里以及如何用内核源代码中的值初始化,我正在研究 linux 源代码 2.6.25。

我查看了文件 asm-generic/section.h,它的定义如下

 extern char _bss_start[]

但是 _bss_start 是如何定义的,是否使用 DS 寄存器来初始化它

最佳答案

__bss_start 由链接器定义和初始化。它引用了 .bss section图像,其中包含静态分配的变量。

这是定义这些符号的链接描述文件的精简示例:

.bss : {
__bss_start = .; /*< __bss_start references this position in the file */
*(.bss) /*< The actual contents of the section */
*(COMMON) /*< The actual contents of the section */
_ebss = . ; /*< _ebss references this position in the file */
}

关于linux-kernel - 其中 _bss_start 是定义 Linux 内核源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com