美文网首页操作系统
操作系统执行代码的组成

操作系统执行代码的组成

作者: 101dog | 来源:发表于2017-01-07 21:52 被阅读15次

    BSS 段:BSS(Block Started by Symbol)段通常是指用来存放执行程序中未初始化的全局变量的一块存储区域。BSS 段属于静态内存分配的存储空间。

   数据段:数据段(Data Segment)通常是指用来存放执行程序中已初始化的全局变量的一块存储区域。数据段属于静态内存分配的存储空间。

  代码段:代码段(Code Segment/Text Segment)通常是指用来存放程序执行代码的一块存储区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些 CPU 架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

   和一般应用程序一样,首先是保存在像硬盘这样的非易失性存储介质上,当需要运行时,被加载到内存中。这时,需要把代码段、数据段的内容拷贝到内存中。对于位于BSS 段中的未初始化的全局变量,执行程序一般认为其值为零。所以需要把 BSS 段对应的内存空间清零,确保执行代码的正确运行。可查看 init 文件中的 kern_init 函数的第一个执行语句“memset(edata, 0, end-edata);”

以下脚本将输出文件的text section定位在0x10000, data section定位在0x8000000:

SECTIONS {

. = 0x10000;

.text : { *(.text) }

. = 0x8000000;

.data : { *(.data) }

.bss : { *(.bss) }

}

解释一下上述的例子:

. = 0x10000 : 把定位器符号置为0x10000 (若不指定, 则该符号的初始值为0).

.text : { *(.text) } : 将所有(*符号代表任意输入文件)输入文件的.text section合并成一个.text section, 该section的地址由定位器符号的值指定, 即0x10000.

. = 0x8000000 :把定位器符号置为0x8000000

.data : { *(.data) } : 将所有输入文件的.text section合并成一个.data section, 该section的地址被置为0x8000000.

.bss : { *(.bss) } : 将所有输入文件的.bss section合并成一个.bss section,该section的地址被置为0x8000000+.data section的大小.

连接器每读完一个section描述后, 将定位器符号的值*增加*该section的大小. 注意: 此处没有考虑对齐约束.

相关文章

  • 操作系统执行代码的组成

    BSS 段:BSS(Block Started by Symbol)段通常是指用来存放执行程序中未初始化的全局变...

  • Go知识点

    1、进程和线程的区别答:计算机由CPU和操作系统组成,CPU执行计算任务,操作系统执行资源调度任务。在操作系统上会...

  • 2.命令执行漏洞

    定义:攻击者可以随意执行系统命令,命令可以连接执行:&,||,| 命令执行漏洞:直接调用操作系统命令 代码执行漏洞...

  • 操作系统的载入和执行

    操作系统写在软盘上,第一个扇区是启动区,其他扇区是操作系统代码,BIOS将操作系统载入磁盘中,当执行操作系统时,需...

  • 【Python】虚拟机执行框架

    0x01 Python虚拟机中的执行环境 Python虚拟机在执行Python代码时,是模拟操作系统执行可执行文件...

  • 21.程序的开始和结束

    main函数由谁调用 (1)编译链接时的引导代码。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码...

  • JVM内存模型与数据结构

    JAVA代码执行过程 JAVA源码编译由三个过程组成:源码编译机制、类加载机制、类执行机制。代码编译由JAVA源码...

  • 内存布局和堆的分配释放

    1.代码区 代码区code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段,这块内存是...

  • 打下线程

    总体概览 计算机早期,操作系统都没有线程的概念,整个系统只运行着一个执行线程,同时包含操作系统代码和应用程序代码。...

  • 多线程与高并发课程 学习笔记

    部分真题 计算机组成原理 进程和线程的本质区别? 进程: 操作系统分配资源的基本单位线程:CPU调度(操作系统执行...

网友评论

    本文标题:操作系统执行代码的组成

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