第2章嵌入式Linux操作系统2.1Linux及其应用2.2Linux内核2.3典型嵌入式Linux系统第2章嵌入式LINUX操作系统22.1Linux及其应用Linux操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。此后借助于因特网,经过全世界各地计算机爱好者的共同努力,现已成为当今世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。2.1.1Linux与UNIX和GNU2.1.2Linux的特点2.1.3Linux的发展及应用第2章嵌入式LINUX操作系统3Linux与UNIX和GNUUNIX操作系统是美国贝尔实验室的Ken.Thompson和DennisRitchie于1969年夏在DECPDP-7小型计算机上开发的一个分时操作系统。KenThompson在1969年夏天利用一个月的时间开发了UNIX操作系统的原型。后经DennisRitchie于1972年用移植性很强的C语言进行了改写,使得UNIX系统在大专院校得到了推广。MINIX系统是由AndrewS.Tanenbaum(AST)于1987年开发的,主要用于学生学习操作系统原理。AST工作在荷兰Amsterdam的Vrije大学,并从事数学与计算机科学系统研究,是ACM和IEEE的资深会员(全世界也只有很少人是两会的资深会员)。GNU计划和自由软件基金会FSF(theFreeSoftwareFoundation)是由RichardM.Stallman于1984年一手创办的,旨在开发一个类似UNIX,并且是自由软件的完整操作系统:GNU系统(GNU是“GNU’sNotUNIX”的递归缩写,它的发音为“gun-NEW”)。各种使用Linux作为核心的GNU操作系统正在被广泛地使用。虽然这些系统通常被称为“Linux”,但是Stallman认为,以严格意义上讲,它们应该被称为GNU/Linux系统。到20世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括有名的emacs编辑系统、bashshell程序、gcc系列编译程序、gdb调试程序,等等。这些软件为Linux操作系统的开发创造了一个合适的环境,这也是Linux能够诞生的基础之一,以至于目前许多人都将Linux操作系统称为“GNU/Linux”操作系统。第2章嵌入式LINUX操作系统4POSIX(PortableOperatingSystemInterfaceforComputingSystems)是由IEEE和ISO/IEC开发的一组标准。该标准是基于现有UNIX的实践经验,描述了操作系统的调用服务接口。用于保证编制的应用程序可以在源代码一级上、在多种操作系统上移植和运行。它是在1980年一个UNIX用户组(usr/group)的早期工作基础上完成的。20世纪90年代初,POSIX标准的制定处于最后投票敲定的时候,此时也正是Linux刚刚起步的时候,这个UNIX标准为Linux提供了极为重要的信息,使得Linux能够在标准的指导下进行开发,并能够与绝大多数UNIX操作系统兼容。通过上述说明,我们可以对上述Linux的5大支柱归纳如下:UNIX操作系统——Linux就是UNIX的一种克隆系统。UNIX的重要性就不用多说了。MINIX操作系统——MINIX操作系统也是UNIX的一种克隆系统,它于1987年由著名计算机教授AndrewS.Tanenbaum开发完成。由于MINIX系统的出现并且提供源代码(只能免费用于大学内),在全世界的大学中刮起了学习UNIX系统旋风。Linux刚开始就是参照MINIX系统于1991年才开始开发。GNU计划——开发Linux操作系统,以及Linux上所用大多数软件基本上都出自GNU计划。Linux只是操作系统的一个内核,没有GNU软件环境(如bashshell),则Linux将寸步难行。POSIX标准——该标准在推动Linux操作系统以后朝着正规路上发展起着重要的作用,是Linux前进的灯塔。Internet——如果没有Internet网,没有遍布全世界的无数计算机黑客的无私奉献,那么Linux最多只能发展到0.13(0.95)版的水平第2章嵌入式LINUX操作系统5Linux的特点1.开放性是指系统遵循世界标准规范,特别是遵循开放系统互联(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。Linux采用GPL授权,除了把源代码公开以外,任何人都可以自由使用、修改、散布;而Linux核心本身采用模块化设计,让人很容易增减功能,由于Linux具有这样高的可伸缩性,所以可以调出最适合我们硬件平台的核心出来。2.多用户是指系统资源可以被不同用户各自拥有并使用,即每个用户对自己的资源有特定的权限,互不影响。Linux和UNIX都具有多用户的特性。3.多任务是现代计算机最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。4.稳定性强,Linux不属于任何一家公司,但它却拥有全世界愿意投入自由软件的开发人员。在全球各处都有无数的人参与Linux核心的改进、调试与测试,也正因此造就了稳定度高的Linux。所以,Linux虽不是商业的产物,但它的质量却不逊于商业产品。5.设备独立性,是指操作系统把所有外部设备统一当做文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。第2章嵌入式LINUX操作系统66.提供了丰富的网络功能完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。Linux为用户提供了完善的、强大的网络功能,包括支持Internet、文件传输和远程访问。7.可靠的系统安全在Linux操作系统中采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这些措施为网络多用户环境中的用户提供了必要的安全保障。8.良好的可移植性可移植性是指将操作系统从一个平台转移到另一个平台,并使它仍然能按其自身的方式运行的能力。Linux一开始是基于Intel386机器设计的,但是随着网络的散布,加上有许多工程师致力于各式平台的移植,使得Linux可以在x86、MIPS、ARM/StrongARM、PowerPC、Motorola68k、HitachiSH3/SH4、Transmeta等平台上运行。这些平台几乎覆盖了所有嵌入式系统的CPU种类,这样,在硬件平台设计时,使得可以考虑的CPU种类增加了不少。9.应用软件多自由软件世界里有个很大的特点就是软件多,授权几乎都是采用GPL方式,大家都可以自由参考与使用,但是因为这些软件多半是由设计者利用空余时间开发的,不以赢利为目的,所以并不能担保这些软件完全没有问题。尽管如此,仍有许多优秀软件出现,例如,大家熟知的KDE与GNOME便是很好的证明。第2章嵌入式LINUX操作系统7Linux的发展及应用1991年10月5日,LinusTorvalds在新闻组comp.os.minix发布了大约有1万行代码的Linuxv0.01版本。1992年,大约有1000人在使用Linux,基本上都属于真正意义上的黑客。1993年,大约有100余名程序员参与Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux0.99的代码大约有十万行,用户大约有10万个左右。1994年3月,Linux1.0发布,代码量为17万行,正式采用GPL协议。Linux的代码中充实了对不同硬件系统的支持,大大提高了跨平台移植性。1995年,Linux可在Intel、Digital,以及SunSPARC处理器上运行了,用户量也超过了50万,相关介绍Linux的LinuxJournal杂志的发行也超过10万册。1996年6月,Linux2.0内核发布,此内核大约有40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,全球大约有350万人使用。1997年夏,好莱坞影片《泰坦尼克号》在制作特效中使用的160台Alpha图形工作站中,有105台采用了Linux操作系统。1998年是Linux迅猛发展的一年。RedHat5.0获得了InfoWorld的操作系统奖项。4月,Mozilla代码发布,成为Linux图形界面上的王牌浏览器。王牌搜索引擎“Google”现身,采用的也是Linux服务器。Mysql数据库充分得到发展。12月,IBM发布了适用于Linux的文件系统AFS3.5,以及JikesJava编辑器和SecureMailer及DB2测试版,IBM的此番行为,可以看做是与Linux的第一次亲密接触。迫于Windows和Linux的压力,Sun逐渐开放了Java协议,并且在UltraSparc上支持Linux操作系统。由此可见,1998年可以说是Linux与商业接触的一年。第2章嵌入式LINUX操作系统81999年,IBM宣布与Redhat公司建立伙伴关系,以确保Redhat在IBM机器上正确运行。3月,第一届LinuxWorld大会的召开,象征Linux时代的来临。IBM、Compaq和Novell宣布投资Redhat公司,以前一直对Linux持否定态度的Oracle公司也宣布投资。5月,SGI公司宣布向Linux移植其先进的XFS文件系统。7月,IBM启动对Linux的支持服务,并发布了LinuxDB2。2000年初始,Sun公司在Linux的压力下宣布Solaris8降低售价。事实上,Linux对Sun造成的冲击远比对Windows来得更大。2月,RedHat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。2001年Oracle宣布在OTN上的所有会员都可免费索取Oracle9i的Linux版本。IBM则决定投入10亿美元扩大Linux系统的应用。到了5月,微软公开反对“GPL”,此举引起了一场大规模的论战。8月,红色代码爆发,引得许多站点纷纷从Windows操作系统转向Linux操作系统。12月,RedHat为IBMs/390大型计算机提供了Linux解决方案。2002年是Linux企业化的一年。2月,微软公司迫于各州政府的压力,宣布扩大公开代码行动,这是Linux开源带来的深刻影响的结果。3月,内核开发者宣布新的Linux系统支持64位的计算机。2003年1月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。2004年6月的统计报告显示在世界500强超级计算机系统中,使用Linux操作系统的已经占到了280席,抢占了原本属于各种UNIX的份额。9月HP开始网罗Linux内核代码人员,以影响新版本的内核朝对HP有利的方式发展,而IBM则准备推出OpenPower服务器,仅运行Linux系统。第2章嵌入式LINUX操作系统9Linux的应用和优势(以银行为例)银行业是中国各行业中开展信息化建设最早的行业之一,其信息化建设投入力度大,信息化水平高,在各行业的IT应用和系统建设中走在前列。(1)银行业的数据量大且集中决定了其对主机、存储设备、网络设备等硬件设备需求很大;同时对存储管理、数据仓库、网络管理、网络安全、CRM等方面的软件需求也不小。正由于银行业的数据量大且集中,因此金融安全问题也越发突出。Linux的高可靠性和安全性是它在这一行业中应用的有力保障。(2)对银行业而言,成本因素在整体经济环境欠佳的今天显得尤其重要。选择Linux的动力很大程度上来自于各个企业公司预算的减少。(3)Linux系统所具有的优良集群特性也是吸引更多客户的原因。Linux集群系统能够让客户相对落后的PⅡ或PⅢ计算机变成