UNIX目标文件初探

UNIX(R)系统中运行的程序遵守一种称为目标文件格式的精心设计。了解更多关于目标文件格式的内容,以及可以用来研究系统中目标文件的工具。

计算机编程的最新技术将一种特殊的人性与一组特殊的工具结合在一起,用以生产出对其他人非常有帮助的一种神奇的产品,即软件。计算机程序员是一群注重细节的人,他们可以处理计算机中各种各样的困难。计算机的要求非常苛刻,并且不能容忍其中存在任何的偏差。毫无疑问,无论您的个性如何以及在工作中使用了何种辅助工具,计算机程序的编写都是非常困难的。

在UNIX和Linux中,任何事物都是文件。您可以认为,UNIX和Linux编程实际上是编写处理各种文件的代码。系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和多样的用途。

目标文件是包含带有附加地址和值的助记符号的路线图。这些符号可以用来对各种代码段和数据段进行命名,包括经过初始化的和未初始化的。它们也可以用来定位嵌入的调试信息,就像语义Web,非常适合由程序进行阅读。

行业工具

计算机编程中使用的工具包括代码编辑器,如vi或Emacs,您可以使用这些工具输入和编辑希望计算机在完成所需任务时执行的指令,以及编译器和连接器,它们可以生成真正实现这些目标的机器代码。

高级的工具,称为集成调试环境(IDE),它以统一的外观集成了不同工具的功能。IDE使得编辑器、编译器、连接器和调试器之间的界限变得很模糊。因此,为了更深入地研究和了解系统,在使用集成的套件之前,最好先单独地使用这些工具。(注意:IDE也通常被称为集成开发环境。)

编译器可以将您在代码编辑器中创建的文本转换为目标文件。最初,目标文件被称为代码的中间表示形式,因为它用作连接编辑器(即连接器)的输入,而连接编辑器最终完成整个任务并生成可执行的程序作为输出。

从代码到可执行代码的转换过程经过了良好的定义并实现了自动化,而目标文件是这个链中有机的连接性环节。在这个转换过程中,目标文件作为连接编辑器所使用的映象,使得它们能够解析各种符号并将不同的代码和数据段连接在一起形成统一的整体。

历史

计算机编程领域中存在许多著名的目标文件格式。DOS系列包括COM、OBJ和EXE格式。UNIX和Linux使用a.out、COFF和ELF。Microsoft Windows 使用可移植的执行文件(PE)格式,而Macintosh使用PEF、Mach-O和其他文件格式。

时间: 2025-01-20 18:35:23

UNIX目标文件初探的相关文章

linux下几种目标文件的分析

本文中用到的命令: gcc -c addvec.c  生成可重定位目标文件addvec.o readelf addvec.o -a 读取可重定位目标文件addvec.o gcc -O2 -c main.c 生成可重定位目标文件main.o gcc -static -o vecadd addvec.o main.o 链接目标文件addvec.o,生成可执行文件vecadd gcc -shared -fPIC -o libvector.so addvec.c 从addvec.c生成共享目标文件lib

win7系统桌面所有文件都无法重命名提示“目标文件夹访问被拒绝”如何解决

  win7系统桌面所有文件都无法重命名提示"目标文件夹访问被拒绝"如何解决 具体步骤: 1.打开"计算机",定位到C:UsersAdministratorDesktop ; 2.在空白处单击右键,选择"属性"; 3.在"安全"标签中点击"编辑"按钮; 4.选择你登录的帐户名如:Administrator,将"用户名"权限设置"完全控制"后面的"允许&quo

win8.1复制文件报错“目标文件夹访问被拒绝”怎么办

  解决win8.1系统复制文件报错"目标文件夹访问被拒绝"的方法 方法如下: 1. 按"Win+X"快捷键,在弹出菜单中选择"命令提示符(管理员)",输入"icacls c: /setintegritylevel M"命令回车,稍等几分钟,执行完成即可将C盘安全级别下调至M级.(如果想要恢复的话,则使用icacls c: /setintegritylevel H即可将C盘安全级别上升至H级.) 2. 右击C盘"属性

cvs-QFile 调用copy函数,csv文件,源文件与目标文件都无法正常显示?

问题描述 QFile 调用copy函数,csv文件,源文件与目标文件都无法正常显示? Ubuntu系统下: QFile file("/tmp/1.csv"); file.open( QIODevice::WriteOnly); file.copy("/tmp/2.csv"); file.close(); 执行之前,1.csv可以正常显示. 内容如下: 119 2014050701 2014050702 是我izhognguoren 你是什么人呢速度发送对方 2014

GNU中的处理目标文件的若干工具

AR 创建静态库,插入.删除.列出和提取成员: SRING 列出目标文件中的字符串: SIRIP 从目标文件中删除符号表信息: NM 列出目标文件符号表中定义的符号: SIZE 列出目标文件中节的名字和大小: OBJDUMP 所有二进制工具之母,可显示一个目标文件中所有的信息.

download-文件下载,下载的不是目标文件而是整个页面

问题描述 文件下载,下载的不是目标文件而是整个页面 跪求各位大神指点一下,采用下面这个函数实现下载文件功能时,下载的不是目标文件,而是整个页面... class Download { private $file; public function __construct($file)//$file为从数据库中获取到的文件相对存储地址 { $this->file=$file; $this->downloads($this->file); } public function downloads

vbs实现只复制比目标文件更新的文件_vbs

因为网站需要频繁的更新首页,有时候使用cdn经常导致首页正在生成内容的时候同步数据(可能是冲突,经常导致首页是空的),这就想了先生成一个不是首页的index2.htm然后再复制一遍为index.htm,这样index2的频繁读写也没问题了.所以先判断index2.htm不是空的时候才复制,而且必须是比index.htm更新的时候才复制.这样就需要一些脚本的支持了. 前几天写了一个(bat+xcopy实现只复制比目标文件更新的文件)还是出现为空的情况,这里特加些功能,参考很多网站的文章,感谢百度的

Ext3中导出Excel,指定目标文件路径???

问题描述 Ext3中导出Excel,指定目标文件路径..在Ext的Grid的bbar中,点击"导出",弹出一个窗口.窗口中如下所示: 目标文件:(一个文本框) 一个"浏览"按钮. 导出 取消我想实现,点击"浏览"弹出一个保存文件的对话框,输入 导出文件名称,点击保存.导出Excel/ 解决方案 不能实现,除非自己用FALSH控件或者IE的ACTIVEX控件等.不然一般基于浏览器的安全是不让这样操作的

excel-C# 导出Excel命名 时 获取保存时目标文件夹 下的 最大流水码

问题描述 C# 导出Excel命名 时 获取保存时目标文件夹 下的 最大流水码 在导出Excel时 excel命名规范为:当前月日+'_'+2位流水码. 例: 在第一次导出到桌面时 文件名:0218_01 , 当再一次导出到桌面时 应是 0218_02 解决方案 如果目录只有你这种格式的文件,Directory.GetFiles得到的是一个升序的文件名列表,最后一项就是最大的,自己split下得到数组,取第二项+1就得到新文件了,如果有其他文件名格式的文件,需要遍历才行了 这个是遍历的 stri