您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第一章linux下GUI程序的设计与实现的发展概况
Linux下GUI程序的设计与实现1第一章linux下GUI程序的设计与实现的发展概况1.1linux操作系统的的背景和发展过程1991年,芬兰大学生LinusTorvalds编写了一个小的操作系统内核,这就是Linux的前身,LinusTorvalds也由此成为了Linux之父。LinusTorvalds将Linux系统的源代码在Internet上公布,使Linux的发展受到了众多计算机高手的鼎力相助,Linux从而不断地增加新的特性,不断地提高稳定性。现在,Linux已经成为一个非常流行的操作系统。Linux是遵从GPL协议。也就是说,只要遵从GPL协议,就可以免费得到它的软件和源代码,并对它进行自由地修改。但对一般用户来说,对Linux的源代码进行编译和安装是难度很高的工作。所以,一些公司介入Linux的业务,它们将Linux操作系统及一些重要的应用程序打包,并提供较方便的安装界面。这些公司所提供的产品一般称为Linux的发布版本。目前比较著名的Linux发布版本有以下几种:RedHat—最著名的Linux服务提供商。SlackWare—历史比较悠久的发行版本。SUSE—在欧洲知名度较大。TurboLinux—在亚洲用户较多。该公司汉化做得很出色。Debain—完全由Linux社区的计算机高手维护的发布版本。XteamLinux—北京冲浪平台公司推出中国第一套汉化发布版本。BluePoint—内核汉化技术比较引人注目。红旗Linux—中科院软件所和北大方正推出的发布版本。Linux操作系统是UNIX操作系统的一种克隆系统。Linux操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。下面主要根据这五个基本线索来追寻一下Linux的开发历程,它的酝酿过程,最初的发展经历。首先分别介绍其中的四个基本要素(UNIX、MINIX、GNU和POSIX,Internet的重要性显而易见,所以不用对其罗嗦),然后根据Linux的创始人LinusToravlds从对计算机感兴趣而自学计算机知识,到心里开始酝酿编制一个自己的操作系统,到最初Linux内核0.01版公布,以及从此如何艰难地一步一个脚印地在全世界hacker的帮助下最后推出比较完善的1.0版本这段时间的发展经过,也即对Linux的早期发展历史进行详细介绍。Linux操作系统是UNIX操作系统的一个克隆版本。UNIX操作系统是美国贝尔实验室的肯·汤普逊Ken.Thompson和丹尼斯·里奇DennisRitchie于1969年夏在DECPDP-7小型计算机上开发的一个分时操作系统。当时KenThompson为了能在闲置不用的PDP-7计算机上运行他非常喜欢的星际旅行Linux下GUI程序的设计与实现2(Spacetravel)游戏,在1969年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了unix操作系统的原型。当时使用的是BCPL语言(基本组合编程语言),后经DennisRitchie于1972年用移植性很强的C语言进行了改写,使得UNIX系统在大专院校得到了推广。MINIX系统是由AndrewS.Tanenbaum(AST)开发的。AST是在荷兰Amsterdam的Vrije大学数学与计算机科学系统工作,是ACM和IEEE的资深会员(全世界也只有很少人是两会的资深会员)。共发表了100多篇文章,5本计算机书籍。AST虽出生在美国纽约,但是是荷兰侨民(1914年他的祖辈来到美国)。他在纽约上的中学、M.I.T上的大学、加洲大学Berkeley分校念的博士学位。由于读博士后的缘故,他来到了家乡荷兰。从此就与家乡一直有来往。后来就在Vrije大学开始教书、带研究生了。荷兰首都Amsterdam是个常年阴雨绵绵的城市,而对于AST来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。MINIX是他1987年编制的,主要用于学生学习操作系统原理。到91年时版本是1.5。目前主要有两个版本在使用:1.5版和2.0版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多FTP上下载。对于Linux系统,他表示对其开发者Linus的称赞。但他认为Linux的发展有很大原因是因为他为了保持minix的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix的扩展要求。因此这激发了Linus编写Linux。Linus正好抓住了这个好时机。作为一个操作系统,MINIX并不是优秀者,但它同时提供了用C语言和汇编语言写的系统源代码。这是第一次使得有抱负的程序员或hacker能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。GNU计划和自由软件基金会(theFreeSoftwareFoundation-FSF)是由RichardM.Stallman于1984年一手创办的。旨在开发一个类似Unix、并且是自由软件的完整操作系统:GNU系统。(GNU是GNU'sNotUnix的递归缩写,它的发音为guh-NEW。)各种使用linux作为核心的GNU操作系统正在被广泛的使用。虽然这些系统通常被称作Linux,但是严格地说,它们应该被称为GNU/Linux系统。到上世纪90年代初,GNU项目已经开发出许多高质量的自由软件,其中包括有名的emacs编辑系统、bashshell程序、gcc系列编译程序、gdb调试程序等等。这些软件为Linux操作系统的开发创造了一个合适的环境,是Linux能够诞生的基础之一。以至于目前许多人都将Linux操作系统称为GNU/Linux操作系统。Linux下GUI程序的设计与实现3POSIX(PortableOperatingSystemInterfaceforComputingSystems)是由IEEE和ISO/IEC开发的一簇标准。该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980年早期一个UNIX用户组(usr/group)的早期工作的基础上取得的。该UNIX用户组原来试图将AT&T的系统V和BerkeleyCSRG的BSD系统的调用接口之间的区别重新调和集成,从而于1984年产生了/usr/group标准。1985年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI的支持下责成IEEE标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了1986年4月,IEEE就制定出了试用标准。第一个正式标准是在1988年9月份批准的(IEEE1003.1-1988),也既以后经常提到的POSIX.1标准。1989年POSIX的工作被转移至ISO/IEC社团,并由15工作组继续将其制定成ISO标准。到1990年,POSIX.1与已经通过的C语言标准联合,正式批准为IEEE1003.1-1990(也是ANSI标准)和ISO/IEC9945-1:1990标准。POSIX.1仅规定了系统服务应用程序编程接口(API),仅概括了基本的系统服务标准,因此期望对系统的其它功能也制定出标准。这样IEEEPOSIX的工作就开始展开了。在1990年,刚开始有十个批准的计划在进行,有近300多人参加每季度为期一周的会议。着手的工作有命令与工具标准(POSIX.2)、测试方法标准(POSIX.3)、实时API(POSIX.4)等。到了1990年上半年已经有25个计划在进行,并且有16个工作组参与了进来。与此同时,还有一些组织也在制定类似的标准,如X/Open,AT&T,OSF等。在90年代初,POSIX标准的制定正处在最后投票敲定的时候,那是1991-1993年间。此时正是Linux刚刚起步的时候,这个UNIX标准为Linux提供了极为重要的信息,使得Linux的能够在标准的指导下进行开发,能够与绝大多数UNIX系统兼容。在最初的Linux内核代码中(0.01版、0.11版)就已经为Linux与POSIX标准的兼容做好了准备工作。在0.01版的内核/include/unistd.h文件中就已经定义了几个有关POSXI标准要求的常数符号,并且在注释中就写到ok,这也许是个玩笑,但我正在着手研究它呢。1991年7月3日在comp.os.minix上发布的post上就已经提到了正在搜集POSIX的资料。(当然此时还不存在Linux这个名称,当时Linus的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux系统的开发,并且在Linux最初的时候已经想到要实现与POSIX(UNIX的国际标准)的兼容问题了。Linux下GUI程序的设计与实现41981年IBM公司推出享誉全球的微型计算机IBMPC。在1981-1991年间,MS-DOS操作系统一直是微型计算机上操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍然是居高不下。当时Apple的MACs操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。到1991年,GNU计划已经开发出了许多工具软件。最受期盼的GnuC编译器已经出现,但还没有开发出免费的GNU操作系统。即使是MINIX也开始有了版权,需要购买才能得到源代码。而GNU的操作系统HURD一直在开发之中,但并不能在几年内完成。对于Linus来说,已经不能等待了。从1991年4月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel386体系结构保护模式运行方式下的编程技术。但后来Linux的发展却完全改变了初衷。1991年初,Linus开始在一台386sx兼容微机上学习minix操作系统。通过学习,他逐渐不能满足minix系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据Linux在comp.os.minix新闻组上发布的消息,我们可以知道他逐步从学习minix系统到开发自己的Linux的过程。从1991年的4月份开始,Linus几乎花了全部时间研究386-minix系统(hackthekernel),并且尝试着移植GNU的软件到该系统上(GNUgcc、bash、gdb等)。并于4月13日在comp.os.minix上发布说自己已经成功地将bash移植到了minix上,而且已经爱不释手、不能离开这个shell软件了。第一个与Linux有关的消息是在1991年7月3日在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时Linus的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux系统的开发,并且在Linux最初的时候已经想到要实现与POSIX(UNIX的国际标准)的兼容问题了。在Linus的下一发布的消息中(1991年8月25日comp.os.minix),他向所有minix用户询问Whatwouldyouliketoseeinminix?(你最想在minix中见到什么?),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU的那样专业。开发免费操作系统这个想法从4月份就开始酝酿了,希望大家反馈一些对于minix系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与minix很象(并且使用了minix的文件系统)。并且已经成功地将bash(1.08版)和gcc(1.40版)移植到了新系统上,而且再过几个月就可以使用了。最后,Linus申明他开发的操作系统没有使用一行minix的源代码;而且由于使用了386的任务切换特性,所以该操作系统不好移植(没有可移植Linux下GUI程序的设计与实现5性),并且只能使用AT硬盘。对于Linux的移植性问题,Linus当时并没有考虑。但是目前Linux几乎可以运行在任
本文标题:第一章linux下GUI程序的设计与实现的发展概况
链接地址:https://www.777doc.com/doc-2201909 .html