FreeBSD可执行程序格式(1)
2009-05-13 13:35:54来源:未知 阅读 ()
Unix之所以功能强大,原因之一就在于它提供了强大的再开发能力。这不仅与提供了高级语言C的编译器有关,而且也与提供了很多种能以解释方式执行的简单脚本语言有关。解释程序脚本的特点是方便性、简单灵活,而且也比较容易学习入手。很多情况下,需要完成的工作任务功能比较单一,并不需要频繁运行,而且要求快速编写出来,这就适合使用解释型语言编写,并且解释程序本身就具备处理文本和字符串的便捷性,并能够和很多现有程序通过系统提供的管道、环境变量等方式结合起来,使得它们非常适合实现文本处理功能。
解释语言的缺点是每次运行程序时都要载入语言的解释器,解释执行程序,因而效率较低,并且不能直接操纵内存和I/O设备,不适合编写大型程序和对效率要求较高的场合。
每个解释脚本程序的第一行指出该脚本程序使用的解释器,例如一个普通的shell程序的第一行为:
#! /bin/sh
不同的解释语言可用在不同的方面,最常用的有shell解释程序,依据使用shell的不同,也分为不同的shell脚本,基本上也分为sh和csh 两种不同的风格。系统管理中经常使用shell程序来执行一些日常管理任务,很多软件也使用shell程序来提供辅助安装和设置任务。perl也是一种常用的、功能强大的解释语言,它兼有解释性程序的方便性和高级编程语言的强大功能,使程序员能在很短的时间内写出非常有效的程序。因此perl得到了众多程序员的支持,通过为perl开发了更多的程序模块,进一步使得perl的处理能力变得更为强大。当前perl已经成为了最流行的一种解释语言,尤其在编写Web服务器上的CGI程序方面,更是处于无可争议的地位。Tcl/tk是另一种解释语言,它能用在X Window系统下,使用描述语言显示不同的X控件,因此很多X应用程序使用它来建立自己的图形接口。
- 二进制执行程序
使用高级语言编写、并经过编译得到的二进制执行程序执行效率更高,并且只有二进制格式的执行文件才能充分利用Unix系统提供的全部功能。同样系统内核也是一个特殊格式的二进制执行文件。
早期的Unix使用a.out格式作为它的执行文件格式,随着Unix的发展,又出现了其他几种执行文件的格式,当前最重要的执行文件格式为ELF 格式,采用这种格式的最初想法是为了在不同平台间采用相同的执行文件格式,并实现动态共享连接库。虽然ELF文件格式并没有达到AT&T最初设想的全部目的,但这种文件格式却成为最流行的执行文件格式。除此之外,实际使用的文件格式还有一种较老的COFF格式,这种格式是在Unix System V R3.2中使用的,当前只有老版本的SCO Unix中还在使用它,而 SCO也正逐渐转向ELF格式。
FreeBSD可以同时支持这两种执行文件的格式,FreeBSD 2.2.x之前的版本使用a.out格式作为缺省的执行文件格式,到FreeBSD 3.x之后ELF格式成为缺省的执行文件格式,并且以后会彻底转向ELF。事实上在FreeBSD 下的a.out格式具备了相当多的特性,如动态连接等ELF格式具备的特性,也有一些ELF格式不具备的特性,如压缩执行文件格式。但由于FreeBSD中使用的编译器gcc决定不再支持a.out格式的缘故,因此FreeBSD也必须转向 ELF格式。这也是当前还支持a.out格式的FreeBSD版本缺省使用较老版本编译器的原因之一。
在FreeBSD中,a.out格式的执行文件可以支持压缩执行格式,这使得使用gzip压缩过的a.out格式的执行文件也能立即执行,当前还不能对ELF 格式的文件提供这种支持。
FreeBSD的文件格式从aout到ELF的转变是渐变的,首先是在3.0-RELEASE 中将执行程序的缺省格式转变为ELF格式,内核文件还保持aout格式,直至 FreeBSD-3.1,全部执行文件格式才缺省设置为ELF格式。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 拓扑排序程序 2009-05-13
- UNIX学习(5) 2009-05-13
- freebsd修复文件系统 2009-05-13
- (转载)FreeBSD如何搭建iPhone程序开发环境 2009-05-13
- Freebsd下程序随系统开机启动的方法 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash