




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州高博软件技术职业学院学生毕业设计(论文)报告系 别 网络工程系 专 业 计算机通信 班 级 1007 姓 名 王祥 学 号 008332320 设计(论文)题目实现基于REHL6.3的内核升级指导教师 朱佾 起迄日期2012年12月-2013年5月苏州高博软件学院毕业设计(论文)摘 要操作系统是计算机的重要组成部分,操作系统的优劣直接关系到计算机的整体性能。由于Linux操作系统自由、公开、免费的特性,提供给人们一个研究国外优秀操作系统的设计思想和实现方法的机会,对于发展国产操作系统有着很重要的意义。针对Linux操作系统强大、稳定的功能,本文以Red Hat公司的最新Linux操作系统RHEL6.3的内核升级过程为例,分析了Linux内核的诸多技术特性,并介绍了Linux内核升级的意义、方法、步骤和注意事项,给学习和使用Linux提供了一个参考。关键词:Linux 内核 升级 RHEL 6.3AbstractOperating system is an important part of the computer; the operating system is directly related to the overall computer performance. Because the Linux operating system of free, open, free characteristics provides a study of foreign excellent operating system the design idea and realization method of opportunity, has a very important significance for the development of domestic operating system.Based on Linux operating system is powerful, stable function, based on the kernel upgrade process of RHEL6.3s new Linux operating system Red of Hat company as an example, analyzed technical characteristics of the Linux kernel, and describes the Linux kernel upgrade significance, methods, steps and precautions, and provides a reference to the study and use of Linux.Keywords: Linux;kernel;upgrade;RHEL 6.3目 录摘 要IAbstractII目 录III第一章 概述4.1 研究意义及背景4.2 现状与分析4.3 研究的主要内容5第二章 RHEL6.3介绍62.1 Linux62.2 RHEL简介02.3 Linux内核22.4 内核版本比较42.4. Linux 2.6内核特性42.4.2 Linux 3.8内核特性7第三章 内核升级的详细设计93.1 准备阶段93.2 配置阶段243.3 编译阶段303.4 启动新内核阶段32第四章 测试内核升级结果344.1 升级前的内核344.2 升级后的内核354.3 升级过程中遇到的问题35结论与展望37参考文献38致谢39III 苏州高博软件学院毕业设计(论文)第一章 概述. 1研究意义及背景现今社会,计算机已成为人们日常生活中不可缺少的一部分。应用计算机已经为人们生产、生活带来革命性的变革,而计算机中的核心就是其系统软件,即操作系统,因此操作系统的稳定性、友好性、安全性特性决定计算机应用性能。目前操作系统的选择很多,主流有三种:微软的windows系列,目前最新的版本为Windows8;苹果公司的Mac OS x 目前最新版本是Mac OS X v0.5花豹 (Leopard)。另一个就是Linux。Windows操作系统以其界面友好性,易用性等特点占据很多的市场份额,但是其安全性较差,尽管微软公司不断地针对其各种程度的漏洞问题发布升级补丁,也无法从根本上解决安全问题,Windows操作系统主要是集中在桌面应用此外,在服务器性能方面表现较差。苹果公司的Max OS X 以简单易用和稳定可靠著称,号称是没有病毒的操作系统。但是其本质也是类Unix。Linux作为一个源代码公开的自由软件,受到越来越多人的青睐。在世界各地的计算机爱好友的共同努力下,Linux内核版本不断更新,快速发展,新的内核修复了老版本的内核漏洞,并增加了新的特性。通常更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快,更稳定,经常性地选择升级更新的系统内核是Linux使用者必要的操作内容。.2 现状与分析RedHat Linux是目前世界上使用最多的Linux操作系统。因为它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定。RedHat Linux推出9.0版本后,在原有的基础上又有了很大的进步。它完善了图形界面,增强了硬件的兼容性等等。众所周知,由于Linux 操作系统具有免费,开源等特点,加上用Linux作为服务器性能稳定,并且具有较高的安全性,所以近几年Linux操作系统有了蓬勃的发展,内核的版本的升级很快。RedHat Linux 9.0默认安装内核版本为2.6.32-8,随着在Linux上面应用的服务越来越多,这个内核版本已不能满足需要了,比如某些软件的安装需要的内核版本至少为2.6.X,所以在RedHat Linux9.0上对原有内核的升级变得刻不容缓。本次毕业设计主要目标是在虚拟机VMware Workstation 9.0下安装RHEL 6.3操作系统后,对原有内核版本2.6.32-8升级到3.8.7,通过对内核的升级,能够使Linux操作系统满足更多的需要,更大程度地发挥Linux操作系统的优势。.3 研究的主要内容本次毕业设计是对RedHat RHEL6.3内核进行升级,首先,在内核升级之前,必须深刻了解欲升级的内核版本3.8.7的新特性,知道了这点,才知道为什么要进行升级,升级后的系统相比之前有什么优点。参考各方面的资料并结合自己所掌握的知识,先配置内核选项,再编译、安装新内核,一步一步的完成整个内核升级,并且最后还要对新内核进行测试。第二章 RHEL6.3介绍开发一个好的软件进行深入细致的可行性研究必要的,它是开发一个好的软件的前提,而且还必须做大量的、全面的需求分析。需求分析是软件定义时期的最后一个阶段,它更是开发一个好的软件的基础。在可行性研究阶段已经大概的了解了用户的童年快乐的缺失,学习动力的缺失,精神文需求,并且这些需求在经济上、技术上、操作上都是可行的。但可行性研究中有许多细节被忽略了,这些细节中的许多在最终的系统中都是必不可少的,对他们的研究在需求分析中实现。需求分析的主要任务是确定系统必须完成哪些工作,也就是对目标系统提出完整的、准确的、具体的、清晰的要求,确定系统必须具有的功能和性能,系统要求的运行环境,以及预测系统发展的前景,并仔细分析系统中的数据,以便完善良好的软件环境。在需求分析阶段系统分析员将仔细研究软件所需要完成的具体功能。需求分析的结果是软件开发的基础,必须仔细验证它的正确性,开发人员必须和用户取得完全一致的意见,需求分析的文档应该被用户所确认接受。因为用户才了解他们所面对的问题,知道必须做到什么 ,然而这并不意味着分析员应该不假思索的全盘接受用户提出的所有要求,因为软件开发人员知道怎样用程序实现用户的要求和可以实现那些要求。系统分析人员对用户提出的笼统要求应该分解细化,对用户提出的含混的要求需要进一步澄清,对用户提出的不切实际的要求必须做深一步细致的解释说服工作,以便动员用户放弃不合理的要求。2. Linux 2. Linux简介Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于99 年的0 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。2.2 Linux历史Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU 计划、POSIX 标准和Internet 网络。1981年IBM公司推出微型计算机IBM PC。1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。当时的MINIX需要购买才能得到源代码,局限于校园用作教育使用,闭源专利注定Minix错失推广时机,以至于Minix长期处于测试而无人问津。1991年初,林纳斯托瓦兹开始在一台386sx兼容微机上学习minix操作系统。99年4月,林纳斯托瓦兹开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel386 体系结构保护模式运行方式下的编程技术。通过学习,他逐渐不能满足于minix系统的现有性能,并开始酝酿开发一个新的免费操作系统。林纳斯托瓦兹几乎花了全部时间研究i386-minix系统(hack the kernel),并且尝试着移植GNU的软件到该系统上(GCC、BASH、GDB等)。1991 年4 月3 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux系统的开发,并且在Linux最初的时候已经想到要实现与POSIX兼容。1991年的10月5日,林纳斯托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-likekernel sources for 386-AT)。1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码有大约有十万行,用户大约有0万左右。1994年3月,Linux.0发布,代码量7万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。1995年月,Bob Young创办了RedHat(小红帽),以CNULinux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux发行版,在市场上出售。这在经营模上是一种创举。1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。1998年2月,以Eric Raymond为首的一批年轻的老牛羚骨干分子终于认识到CNULinux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了Open Source Intiative(开放源代码促进会)复兴的大旗,在互联网世界里展开了一场历史性的Linux产业化运动。2001年月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持 桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。2003年2月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。2004年的第月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行化缘 , Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。2.3 Linux特点(1) 完全免费Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。(2)完全兼容POSIX .0标准这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。(3)多用户、多任务Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。(4)良好的界面Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。(5)支持多种平台Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。200年月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高管理员可以通过此功能来实现对用户信息的管理,可以对用户的注册信息进行查询、修改和删除的操作,这样也可以方便用户的密码找回以确保用户的个人利益。2.4 Linux应用(1) 数据库服务器Linux自身消耗的资源很少,因此它不会和数据库进行资源的抢夺,一个RDBMS需要一个稳定的,无内存泄露的,快速磁盘I/O和无 CPU竞争的操作系统,Linux就是这样的系统。(2) Web服务器Linux系统以稳定著称,超过90%的Apache都是搭配Linux运行的。(3) 应用服务器Tomcat,Geronimo,WebSphere和WebLogic都是应用服务器,Linux为这些服务提供了一个稳定的,内存消耗很小的,可长时间运行的平台。IBM和Oracle也都非常支持Linux,它们也逐渐将 Linux作为其软件系统的首要运行平台(4) 开发平台Linux下有许多开发工具,如Eclipse、C、C+、Mono、Python、Perl、PHP等,毫无疑问,Linux是世界上最流行的开发平台,它包含了成千上万的免费开发软件,这对于全球开发者都是一个好消息。2.2 RHEL简介RHEL,即Red Hat Enterprise Linux的缩写,是Red Hat公司的Linux系统。该系列有三个版本:Red Hat Enterprise Linux (Server including virtualization),Red Hat Enterprise Linux Virtualization Platform。2.2. RHEL操作系统 是开放来源的软件和产品和提供全球性的服务的主导开发商和提供者。公司的产品包括Red Hat Linux操作系统。不同于私有的软件, 开放来源的软件有公开可利用的原始代码, 可被最小之物复制, 修改和分销。该网站, REDHAT, 是关于开放来源软件的主导网上信息和新闻来源和最大的开放来源软件用户和开发商的网上小区之一。 早在2000年,红帽便联同合作伙伴一起进军中国市场,分销红帽产品。2004年月,红帽在北京设立办事处以便更好地服务中国市场。 自中国向全球大规模开放以来其经济的迅速增长将科技需求也推入了另一个高峰。红帽为企业用户提供完全符合行业标准的最全面的 Linux 解决方案。红帽企业 Linux 系列产品专门为企业的关键应用而设计,被全球众多的软件开发商和硬件厂商所支持。红帽的解决方案提供了最高的可信赖度和最佳的性价比它将开源代码所带来的技术创新和企业级平台的稳定性紧密结合在一起。 红帽中国的核心业务是向中国的大中小型企业、软硬件供应商、集成服务供应商和政府部门提供全面的红帽产品,包括软件产品、售后服务、技术支持、系统网络集成服务、关于迁移到 Linux 平台的咨询以及国际认可的培训课程。2.2.2 版本历程2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志着Red Hat Linux的免费时代正式结束。从此Red Hat公司不再开发桌面版的Linux发行包,而将全部力量集中在服务器版的开发上,也就是Red Hat Enterprise Linux版。 2005年10月RHEL4发布。 2007年3月,RHEL5发布,2001年3月更新至RHEL 5.5. 2001年月10日发布了RHEL 6的正式版(红帽官方已经不用RHEL这个简称了,其全称叫做Red Hat Enterprise Linux)。“红帽RHEL 6是0年研发和合作的结晶”,红帽产品和技术部总裁Paul Cormier在发布会现场如是说。Cormier将这个操作系统看作是云部署的基础单元,以及Windows Server的潜在替代品。“我们想要让Linux在每一个IT单位里应用的更加深入。这是一个取代微软服务器环境的极佳产品。”总的来说,RHEL 6包含了超过2000个包,相对之前的版本而言增加了85%的代码量,一共增添了800个新特性,解决了4000多个bug。新版带来了一个完全重写的进程调度器和一个全新的多处理器锁定机制,并利用NVIDIA图形处理器的优势对GNOME和KDE做了重大升级,新的系统安全 服务守护程序(SSSD)功能允许集中身份管理,而SELinux的沙盒功能允许管理员更好地处理不受信任的内容。 RHEL 6内置的新组件有GCC 4.4(包括向下兼容RHEL 4和5组件)、OpenJDK 6、Tomcat 6、Ruby .8.7和Rails 3、PHP 5.3.2与Perl 5.0.,数据库前端有PostgreSQL 8.4.4, MySQL 5.47和SQLite 3.6.20。 2.3 Linux内核操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。2.3. Linux内核的特点Linux是个人计算机和工作站上的Unix类操作系统。但是,它绝不是简化的Unix。相反,Linux是强有力和具有创新意义的Unix类操作系统。它不仅继承了Unix的特征,而且在许多方面超过了Unix。作为Unix类操作系统,Linux内核具有下列基本特征: (1)Linux内核的组织形式为整体式结构。也就是说整个Linux内 核由很多过程组成,每个过程可以独立编译,然后用连接程序将其连接在一起成为一个单独的目标程序。从信息隐藏的观点看,她没有任何程度的隐藏每个过程都 对其它过程可见。这种结构的最大特点是内部结构简单,子系统间易于访问,因此内核的工作效率较高。另外,基于过程的结构也有助于不同的人参与不同过程的开 发,从这个角度来说,Linux内核又是开放式的结构,她允许任何人对其进行修正、改进和完善。 (2)Linux的进程调度方式简单而有效。可以说Linux在追求效率方面孜孜不倦,体现在调度方式上也是别具一格。对于用户进程,Linux采用简单的动态优先级调度方式;对于内核中的例程(如设备驱动程序、中断服务程序等)则采用了一种独特的机制软中断机制,这种机制保证了内核例程的高效运行。 (3)Linux支持内核线程(或称守护进程)。内核线程是在后台运行而又无终端或登录shell和它结合在一起的进程。有许多标准的内核线程,其中有一些周期地运行来完成特定的任务(如swapd),而其余一些则连续地运行,等待处理某些特定的事件(如inetd和lpd)。内核线程可以说是用户进程,但和一般的用户进程又有不同,它象内核一样不被换出,因此运行效率较高。 (4)Linux支持多种平台的虚拟内存管理。内存管理是和硬件平台密切相关的部分,为了支持不同的硬件平台而又保证虚拟存储管理技术的通用性,Linux的虚拟内存管理为不同的硬件平台提供了统一的接口,因此把Linux内核移植到一个新的硬件平台并不是一件很困难的事。 (5)Linux内核另一个独具特色的部分是虚拟文件系统(VFS)。虚拟文件系统不仅为多种逻辑文件系统(如ext2,fat等)提供了统一的接口,而且为各种硬件设备(作为一种特殊文件)也提供了统一接口。 (6)Linux的模块机制使得内核保持独立而又易于扩充。模块机制可以使内核很容易地增加一个新的模块(如一个新的设备驱动程序),而无需重新编译内核;同时,模块机制还可以把一个模块按需添加到内核或从内核中卸下,这使得我们可以按需要定制自己的内核。 (7)增加系统调用以满足你特殊的需求。一般来说,系统调用是操作系统的设计者提供给用户使用内核功能的接口,但Linux开放的源代码也允许你设计自己的系统调用,然后把它加入到内核。 (8)网络部分面向对象的设计思想使得Linux内核支持多种协议、多种网卡驱动程序变得容易。 2.3.2 Linux内核的组成(1)进程管理(process management) 进程管理的重点是进程的执行。在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和 CPU 寄存器)。在用户空间,通常使用进程 这个术语,不过 Linux 实现并没有区分这两个概念(进程和线程)。内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface POSX 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POS 机制)。进程管理还包括处理活动进程之间共享 CPU 的需求。内核实现了一种新型的调度算法,不管有多少个线程在竞争 CPU,这种算法都可以在固定时间内进行操作。这种算法就称为 O(1) 调度程序,这个名字就表示它调度多个线程所使用的时间和调度一个线程所使用的时间是相同的。O(1) 调度程序也可以支持多处理器(称为对称多处理器或 SMP)。您可以在 ./linux/kernel 中找到进程管理的源代码,在 ./linux/arch 中可以找到依赖于体系结构的源代码。(2)定时器(timer)(3)中断管理(interrupt management)(4)内存管理(memory management) 内核所管理的另外一个重要资源是内存。为了提高效率,如果由硬 VFS 在用户和文件系统之间提供了一个交换层管理虚拟内存,内存是按照所谓的内存页 方式进行管理的(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。(5)模块管理(module management)(6)虚拟文件系统接口(VFS layer)(7)文件系统(file system)(8)设备驱动程序(device driver)(9)进程间通信(inter-process communication)(10)网络管理(network management)(11)系统启动(system init)等操作系统功能的实现2.4 内核版本比较从Linux诞生开始,Linux内核就从来没有停止过升级,从Linus第一次发布的0.02版本到999年具有里程碑意义的2.2版本,一直到我们现在看到的3.8版本,都凝聚了Linux内核开发人员大量辛苦的劳动。目前Linux在各种工作平台上,包括企业服务器和个人电脑上的广泛应用,使得Linux成为了Windows的强劲对手。2.4. Linux 2.6内核特性服务器领域在大型服务器领域,Unix一直独占鳌头。最新发布的Linux 2.6版内核增加了对安全性的改进和支持,从而使Linux具备了与Unix在这一领域抗衡的基础。Linux的稳定性和安全性一直都是商家青睐它的主要原因,大型服务器更是Linux在商业领域发展的顶梁柱。2.6版内核对更多新硬件类型的支持中也包含了对大型服务器更多的支持。这些服务器既有运行i386处理器的,也有运行其它处理器的。这些特性是新近加入Linux的,还有许多优化工作需要完成。但这是Linux发展相当迅速的一个领域,预计在不久的将来,Linux将成为服务器领域更有力的竞争者。在Linux 2.6内核中,整个基于核心的安全体系,即类Unix操作系统中的超级用户权限,已经被划分成一些可以被替换的安全模块。不过,目前提供的安全模块只有一个缺省的,仅仅当作一个向我们展示如何自定义安全模块的例子。作为这个变化的一部分,核心的所有部分都被更新,以具有更细粒度的用户访问控制,而不是像以前那样的“超级用户”系统。虽然几乎所有的Linux系统将仍然存在具有完全访问权限的root用户,但上述改变使得类Linux系统可以不再必须如此。另一个与安全相关的变化是一些二进制模块不能再重载系统调用,也不能看到及修改系统调用表。这极大地限制了非开放源码模块在核心中的访问,同时也修补了GPL版权协议在这方面可能存在的漏洞。2文件系统(1)本地文件系统相对于Linux 2.4而言,2.6版内核对于文件系统的支持在很多方面都有大的改进。日志文件系统的最大优点是它的容错能力。一个设计精良的日志文件系统在损坏恢复方面,比传统的日志文件实现起来更容易、时间更短、返回服务功能更快。2.6版内核增加了对日志文件系统功能的支持,解决了2.4版在这方面的不足。2.6版内核在文件系统上的关键变化还包括对扩展属性及POSIX标准访问控制的支持。ext2/ext3作为大多数Linux系统缺省安装的文件系统,在2.6版内核中是改进最大的一个。最主要的变化是对扩展属性的支持,即给指定的文件在文件系统中嵌入一些元数据。很多其它操作系统,如Windows已经大量地使用了这种扩展属性。但Unix系的操作系统一般都还不能很好地支持扩展属性,很多用户级程序需要进行更新才能保存和转储这些扩展属性信息。(2)网络文件系统Linux下块设备最常见的用法是在块设备上建立一个文件系统。但并不是所有文件系统都作为块设备被加载,像进程、共享内存和设备文件系统等完全都是虚拟的。还有其它一些文件系统是通过网络加载的,其完成的方法多样,许多操作系统都提供自己的方法来处理。Linux可以识别当前的大部分网络文件系统(NFS)。Linux 2.4内核在显著提高NFS加载目录稳定性的同时,还提供对NFS协议最新版本NFSv3的支持。NFSv3能更好地支持文件系统同步、文件锁定等功能。Linux 2.6内核中,网络文件系统同样得到了更新和改进。最大的改进就是实验性地支持NFSv4协议在客户端和服务器端的实现。新版本有更强、更安全的身份认证(采用加密技术),支持更智能化的锁管理、伪文件系统等。Linux 2.6还没有实现所有NFS4的新特征,但目前的版本已经比较稳定,并能够支持一些产品级的应用。同时,改进了基于Linux的NFS服务端的实现,从而具有更好的扩展性、完整性、健壮性。通过新的NFSd文件系统能够更加便捷地管理,而不再需要通过系统调用来管理。除了改进对网络文件系统的支持,Linux 2.6在对Windows类型的网络文件系统支持方面也进行了改进。Linux新内核能够在SMB协议的客户端对该协议的很多版本提供不错地支持。同时,2.6新内核无需在内核编译阶段手动选择从Windows 9x或Windows NT/2000加载的选项,而能够自动检测远端操作系统的类型,并能够进行必要地排错。Linux 2.6还加入了相对新的一些分布式网络文件系统,支持一个逻辑卷上的文件分布在多个节点中。3嵌入式系统嵌入式系统是一种以应用为中心,计算机技术为基础,软件/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。嵌入式领域是Linux应用的广阔天地。uCLinux是Linux应用在微控制器平台的一个项目,是一种针对不带MMU的ARM微处理器的嵌入式操作系统。uCLinux完全符合GNU/GPL公约,完全开放代码,它的很多特性都和Linux相同,最典型的特征是无MMU(内存管理单元)。Linux 2.6内核扩展多嵌入式平台支持的一个主要途径就是把uCLinux的大部分并入主流内核功能中。目前许多嵌入式处理器如ARM系列等,很多都是无MMU的。uCLinux在嵌入式系统中的应用非常广泛。因此,Linux 2.6对无MMU体系结构的支持,及将Linux和uCLinux合并到统一的新内核中,无疑为Linux在嵌入式领域的广泛应用加重了砝码。JSP提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。JSP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。 2.4.2 Linux 3.8内核特性Linux Kernel 3.0经过了七个RC候选版才推出正式版本,上一个版本是5月9日的2.6.39,也是2.6系列的第39次升级维护。从版本号来讲,Linux Kernel 3.0本应该命名为2.6.40更合适。Linus Torvalds在发布声明中说:“2.6的日子结束了,3.0来了。这也为下一个内核版本敞开了大门,也就是3.。稳定升级版会取第三位小数,所以第一个稳定更新将是3.0.。”八年来,Linux开发人员一直致力于2.6版本的改进工作,新版本提升到3.0是为了纪念Linux风雨走过的20年,同时也精简了越来越复杂的版本号,之前稳定的内核版本是2.6.39。Linux Kernel 3.0改进了对虚拟化和文件系统的支持,主要新特性有:Btrfs实现自动碎片整理、数据校验和检查,并且提升了部分性能支持sendmmsg()函数调用,UDP发送性能提升20,接口发送性能提升约30支持XEN dom0支持应用缓存清理(CleanCache)支持柏克莱封包过滤器(Berkeley Packet Filter)实时过滤,配合libpcap/tcpdump提升包过滤规则的运行效率支持无线局域网(WLAN)唤醒支持非特殊授权的ICMP_ECHO函数支持高精度计时器Alarm-timers支持setns() syscall,更好地命名空间管理支持微软Kinect体感设备支持AMD Llano APU处理器支持Intel iwlwifi 05/35无线网卡支持Intel C600 SAS控制器支持雷凌Ralink RT5370无线网卡支持多种Realtek RTL8xx系列网卡大量新驱动大量bug修正和改进第三章 内核升级的详细设计3. 准备阶段3. 内核升级的过程内核升级是一项细致的工作,需要经过很多步骤,并且每个步骤缺一不可,不能调换顺序,在真正进行内核升级之情,需要对内核升级的大体步骤有个了解,这样在具体升级过程中才能做到心有成足,在出现一些小问题时就不会惊慌失措,下面简单介绍一下升级步骤。内核升级过程一共涉及2个步骤,大体分为四个部分,如图2.2所示。图3. 内核升级四个部分总的来说,内核成功升级需要经过准备工作、配置工作、编译工作和启动新内核这四个阶段。下面分别简单介绍这四个阶段各需要做些什么工作,具体方法步骤后文会详细介绍。(1)准备阶段 这一阶段主要包括下载3.8内核源码、下载内核升级工具这三个步骤。(2)配置阶段 这一阶段主要包括将下载好的内核源码包和4个升级工具都拷贝到/usr/src文件夹下、解压新内核、安装module-init-tools工具、安装另外三个升级工具、配置内核选项这五个步骤。(3)编译阶段这一阶段只包含一个步骤,就是对新内核进行编译,这个过程需要时间较长,也是内核升级最关键的地方,内核的编译安装都会在这个阶段进行,还有前面配置阶段的正确与否,直接关系到编译能否成功。(4)启动新内核这一阶段包括将新内核和System.map文件拷贝到/boot目录下、修改Grub启动管理器这二个步骤。3.2 几个重要的命令make:在整个升级过程中,make命令是用的最多的。make是一个命令工具,它解释makefile中的指令。在makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Make工具不仅仅是用来管理C语言工具的,那些只要编译器能够在Shell下运行的语言所构建的工程都可以使用make工具来管理。make在执行时,需要一个命名为makefile的文件。这个文件告诉make以何种方式编译源代码和链接程序。make会自动根据修改情况完成源文件的对应.o文件的更新、库文件的更新、最终的可执行程序的更新。cp: 这个命令相当于dos下面的copy命令,具体用法是:cp r 源文件(source) 目的文件(target) 参数r是指连同源文件中的子目录一同拷贝。 cd: 这个命令是用来进出目录的,和dos不同的是Linux的目录对大小写是敏感的,如果大小写没拼对,cd操作是成功不了的。其次,cd如果直接输入,cd后面不加任何东西,会回到使用者自己的Home Directory。假设如果是root,那就是回到/root.这个功能同cd 是一样的。3.3 准备环境与文件待升级Linux系统的安装,采用在虚拟机VMwave9.0下安装RHEL 6.3. 大致安装过程如下: (1)虚拟一个虚拟机,选择安装镜像开始安装图3.2 VM创建一个虚拟机图3.3 VM虚拟机选择系统类型与版本(2)开始安装,基本选择都是默认图3.4 选择安装图3.5 开始安装(3)安装完成后,登录,查看内核版本,版本为2.6.32图3.6 登录RHEL 6.3图3.7 查看Linux 内核版本(3)下载新版本内核文件内核下载地址: 目前官方最新稳定的内核版本为linux-3.8.7版本约90M图3.8 下载最新Linux 内核版本文件3.2 配置阶段3.2. 解压复制内核源码文件(1)将下载好的新版本内核文件,复制到自己工作的文件夹下图3.9 复制新的内核文件(2)解压缩该源码文件 tar -xzv linux-3.8.7.tar解压后的文件总大小为555Mrootwangxiang software# du -sh linux-3.8.7555M linux-3.8.7(3)将解压后的文件复制到 /usr/src/kernels/3.2.2 建立软链接建立软链接图3.9建立软连接3.2.3 执行命令make mrpoper该命令是清除编译过的文件:(.*和.o文件为以前编译过内核产生的临时文件,不删除可能造成内核的编译失败,另make mrproper同时会删除.config的内核配置文件)有以下几种方式1、make config 传统的文本内核编译模式,但出错后无法返回。2、make menuconfig 基于文本的内核编译模式,出错可返回,建议使用此等模式。3、make xconfig 基于图形化的内核编译模式。4、make oldconfig 只对当前内核稍作修改。我们来通过make menuconfig 定制内核后生成内核配置文件。将NTFS文件系统支持配置作为内核模块编译进内核。选择file systems菜单#makemrproper(该命令可确保源代码目录下没有不正确的.o文件)#makemenuconfig(配置内核各选项)此时会出现一个图形界面,如图3.0所示。列出了所有的内核配置选项,在这个界面,可以看到对许多选项的设置,比如General Setup,Device Drivers,Block layer,File Systems,Bus options,Networking等,有的选项下还有子选项,在内核升级中必须对这些选项作认真的配置,任何一个选项少配置了,最后都会导致整个过程失败。可以用方向键来选择,用Y键来确定。图3.0选择文件系统图3.选择文件系统这里选择NTFS文件系统支持作为内核一个模块来编译,否则编译进内核,内核会比较大。如图:3.2图3.2选择文件系统确定会生成新的配置文件图3.3生成新的配置文件图3.4生成新的配置文件3.2.4 生成依赖关系生产内核功能间的依赖关系,为编译做好准备:rootsysweb kernels# make dep3.3 编译阶段3.3. 编译内核在/usr/src/kernels/linux目录下,执行以下命令即可编译。如图3.5所示。#makebzImage内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用makezImage编译,内核很大的话,系统会提示使用makebzImage命令来编译,所以用makebzImage来编译。内核编译的时间会较长。图3.5 编译内核过程3.3.2 编译内核模块#makemodules(编译可加载模块)。使用内核编译机制,产生一个 .ko(内核目标文件,kernel object)模块目标文件而不是一个1 .o 模块目标文件。这一过程在目标模块创建了一个特定部分,以记录使用的编译器版本号,内核版本号,是否使用内核抢占等信息。如图3.6所示。图3.6编译可加载模块3.3.3 安装内核模块/lib/modules目录用于Linux系统内核模块,不同版本内核对应不同版本内核版本目录。该过程时间很长,半个小时间以上。rootwangxiang kernels# make modules_install图3.7安装可加载模块安装编译好后的系统内核到系统中:root wangxiang kernels# make install3.3.4 查看内核及启动配置编译成功后会在/boot/目录下生产linux-3.8.0文件夹并在/boot/grub/grub.conf启动引导程序的配置文件中有编译成功的内核配置第四章 测试内核升级结果4. 升级前的内核在升级内核前,有必要查看当前Linux内核版本。如图4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级语文上册 第四单元 15《诫子书》教学设计 新人教版
- 初中物理粤沪版八年级上册1 我们怎样听见声音第1课时教案及反思
- 云南省曲靖市高中化学 第三章 金属及其化合物 3.2 铁的重要化合物 氧化钠和过氧化钠教学设计 新人教版必修1
- 高速公路水运试验室培训大纲
- 九年级化学上册 2.3 构成物质的微粒离子的形成教学设计 (新版)粤教版
- 九年级化学下册 第九章 现在生活与化学9.4 化学物质与健康第1课时 人体内的元素教学设计 科粤版
- 人教版八年级英语上册第九单元教案
- 2024内蒙古东源投资集团招聘高级管理人员51人笔试参考题库附带答案详解
- 三年级数学上册 六 年、月、日 24时计时法教学设计 西师大版
- 肝动脉化疗栓塞术护理
- 七年级语文下册《登幽州台歌》课件
- 兼职劳务协议合同模板
- 2025年河南机电职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年浙江长征职业技术学院单招综合素质考试题库及答案1套
- 湖南新高考教学教研联盟暨长郡二十校联盟2025届高三年级第二次联考历史试题及答案
- (二模)东北三省三校2025年高三第二次联合模拟考试 英语试卷(含答案解析)
- 2025年甘肃西北永新集团招聘11人笔试参考题库附带答案详解
- 雨水泵站机电设备安装工程施工方案52719
- 2025年吉林交通职业技术学院单招职业技能考试题库新版
- 2025 保健品行业专题报告:保健品蓝帽子九问九答
- 基于树枝振动特性的香榧采摘机设计
评论
0/150
提交评论