已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈linux操作系统的安全 毕业设计(论文) 题 目: 浅谈linux操作系统的安全 姓 名 学 号 专 业 系 部 指导教师 目 录第一章 linux操作系统概述11.1 linux发展历史11.1.1 linux的诞生和发展21.1.2 linux名称的由来21.2 linux的发展要素31.2.1 unix操作系统31.2.2 minix操作系统41.2.3 posix 标准41.3 操作系统类型选择和内核版本的选择41.3.1 常见的不同公司发行的linux异同51.3.2内核版本的选择91.4 linux的系统架构101.4.1 linux内核的主要模块101.4.2 linux的文件结构121.5 gnu通用公共许可证13第二章 linux与其他操作系统的比较152.1 linux与unix的异同152.2 linux和windows的区别以及安全性的比较162.3 linux与其他操作系统的区别182.4 linux与其他系统的总体比较总结1192.5 linux与windows根本比较内核212.6 linux的特性 232.7 linux与其他操作系统的区别25第三章 linux的安全性能分析以及增强273.1 嵌入式linux 的特点273.2 嵌入式linux 现有安全机制及分析293.3 嵌入式linux 安全缺陷313.4 小结33结束语34参考文献37附录382第一章 linux操作系统概述linux系统是一个类似unix的操作系统,linux系统是unix在微机上的完整实现。unix操作系统是1969年由ken thompson 和dennis ritchie在美国贝尔实验室开发的一种操作系统。由于其良好而稳定的性能迅速在计算机中得到广泛的应用,在随后几十年中也有了不断的改进。 本章对linux的发展进行介绍,主要包括如下内容:(1)linux发展的历史,以时间为主线对linux的诞生进行介绍;(2)分析linux和unix操作系统的异同;(3)介绍常用的几种linux发行版本的特点;(4)对linux操作系统的系统架构进行简单的介绍;(5)介绍gnu通用公共许可证及其特点。1.1 linux发展历史1991年10月5日,赫 尔 辛 基大学的一名研究生linus benedict torvalds(李纳斯托沃兹 )在一个usenet新闻组(comp.os.minix)中宣布他编制出了一种类似unix的小操作系统,叫linux。新的操作系统是受到另一个unix的小操作系统minix的启发,该系统是由一名叫andrew s tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是linux的0.01版本,实际上不是这样。真正的linux 0.01版本并没有被发布,原因是0.01版本不实用。linus仅仅在第一个linux的ftp站点(ftp:/nic.funet.fi)上提供过这个版本的的源代码。torvalds于10月5日发布的这个linux版本被称为0.02版,它能够运行gnu (通用公共许可证) bourne again shell(bash)和gnu的c编译程序(gcc)以及为数不多的其它语言。torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的linux。李纳斯托沃兹因此被称为开源之父;linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发linux,它已经达到0.95版。这就意味着正式公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的 1.1.1 linux的诞生和发展 linux和unix有密切的联系。unix能成为世界范围内最有影响的操作系统之一,是由于它有庞大的支持基础和发行系统。当初unix是作为小型机和大型机上的多任务操作系统而开发的,很快就发展成为广泛使用的操作系统。 从个人计算机到超级计算机系统,都有各种unix版本。但这些版本都很昂贵,而且源代码是有专利的,所以很难在计算机爱好者中广泛使用。然而,unix又正是他们所想要的操作系统。于是,出现了一支由编程高手、业余计算机玩家、黑客们组成的“高手集团军”,他们独立地开发出在功能上毫不逊色于unix操作系统的全新的、免费的linux系统。 linux系统是由芬兰赫尔辛基大学的linux torvalds先生于1991年开始开发的,linux系统的开发得到了全世界的unix程序员和爱好者的帮助。他们借助internet参与linux系统的开发。linux系统的核心部分是全新的代码,没有使用有专利的代码。在操作系统的发展受到版权限制的时候,出现了minix操作系统,这个操作系统由一本书来详细的描述它的实现原理。由于书中对minux操作系统的描述非常详细、并且很有条理性,当时几乎全世界的计算机爱好者都在看这本书来理解操作系统的原理,其中包括linux系统的创始者linus torvalds。 1.1.2 linux名称的由来linux 操作系统刚开始时并没有被称作linux,linus 给他的操作系统取名为freax,其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到ftp,funet。fi服务器上时,管理员ari lemke很不喜欢这个名称。他认为既然是linus 的操作系统就取其谐音linux 作为该操作系统的目录吧,于是linux 这个名称就开始流传下来。 在linus 的自传just for fun一书中,linus 解释说:坦白地说,我从来没有想到过要用linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢freax。实际上,内核代码中某些早期的makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有freax这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码。而ari lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢freax 这个名字。他坚持要用现在这个名字(linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就想我现在做的这样。- linus torvaldsjust for fun . 来自网络1.2 linux的发展要素linux操作系统是unix的一种典型的克隆系统。在linux诞生之后,借助于internet网络,在全世界计算机爱好者的共同努力下,成为目前世界上使用者最多的一种类似unix的操作系统。在linux操作系统的诞生、成长和发展过程中,以下5个方面起到了重要的作用:unix操作系统、minix操作系统、gnu计划、posix标准和internet网络。1.2.1 unix操作系统unix ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,最早由ken thompson、dennis ritchie和douglas mcilroy于1969年在at&t的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于unix具有技术成熟、可靠性高、网络和数据库功能强、伸缩性突出和开放性好等特色,可满足各行各业的实际需要,特别能满足企业重要业务的需要,已经成为主要的工作站平台和重要的企业操作平台。 自从unix操作系统从实验室走出来之后,得到了长足的发展。目前已经成为大型系统的主流操作系统,现在几乎每个主要的计算机厂商都有其自有版本的unix。unix是一个功能强大、性能全面的、多用户、多任务的分时操作系统,在从巨型计算机到普通pc等多种不同的平台上,都有着十分广泛的应用。通常情况下,比较大型的系统应用,例如银行、电信部门,一般都采用固定机型的unix解决方案:在电信系统中以sun的unix系统方案居多,在民航里以hp的系统方案居多,在银行里以ibm的系统方案居多。linux是一种unix的克隆系统,采用了几乎一致的系统api接口。特别是网络方面,二者接口的应用程序几乎完全一致。1.2.2 minix操作系统minix操作系统也是unix操作系统的一种克隆系统,它由荷兰amsterdam的vrije大学著名教授andrew s.tanenbaum于1987年开发完成。minux操作系统目的主要用于学生学习操作系统原理时教学使用。在当时minix操作系统在大学中是免费使用的,但是其他用途则需要收费。目前minix操作系统已经全部是免费的,可以从许多ftp上下载,目前主要有1.5版本和2.0版本在使用。由于minix操作系统提供源代码,并且与操作系统相结合,有一本高质量的书籍介绍其实现原理,在当时全世界的大学中形成了学习minix操作系统的风气,linus刚开始就是参照此系统在1991年开始开发linux的。实际上,minix操作系统并不是很优秀,但是这个操作系统提供了c语言和汇编语言的源代码。而当时的unix操作系统源代码除了极少的范围外一直是保密的,minix操作系统对程序员来说是一个福音。为了可以让学生在一个学期内能够学完操作系统的课程,ast保持了minix操作系统的小型化,没有接受世界各界对minix扩展的要求,而正是这个原因激发了linus编写linux操作系统。1.2.3 posix 标准posix(portable operating system interface for computing systems)是由ieee和iso/iec开发的一组标准。该标准基于现有的unix实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植和运行。它是在20世纪80年代早期一个unix用户组的工作基础上取得的。该unix用户组原来试图将at&t的system v操作系统和berkeley csrg的bsd操作系统的调用接口之间的区别重新调和集成,并于1984年制定了usr/group标准。1.3 操作系统类型选择和内核版本的选择要在linux环境下进行程序设计,首先要选择合适的linux发行版本和linux的内核,选择一款适合自己的linux操作系统。本节对常用的发行版本和linux内核的选择进行了介绍,并简要讲解了如何定制自己的linux操作系统。1.3.1 常见的不同公司发行的linux异同1debiandebian是一个致力于创建一个自由操作系统的合作组织,由ian murdock于1993年创建。该组织创建的操作系统为debian gnu/linux,简称为debian。这是一个免费的linux系统,拥有许多用户。debian的主要特点如下:简单方便的安装过程:可以通过光盘、dos系统、软盘、网络来进行安装。数量众多的软件包:debian拥有超过18733个软件包。软件包的高度集成:debian软件包都是由同一个团体所包装,其deb格式具有某些超越rpm格式的优点,正是这种软件包之间的集成性让debian成为更稳定强健的系统。简单方便的升级程序:由于debian的包装系统升级到新的版本非常轻松,只需要运行apt-get update;apt-get dist-upgrade,就可以在几分钟内通过光盘实现升级(或者将apt指向debian映射站点,通过网络来升级)。debian系统分为3个版本:unstable版(不稳定版):为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing版(测试版):该版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如smp等)。stable版(稳定版):一般只用于服务器,其中的软件包大部分都比较过时,但是稳定和安全性都非常的高。debian gnu/linux不单是一个操作系统,它也包含一万多个软件包,它们是一些已经过编译的软件,并包装成一种容易安装的格式。debian的官方网站是/,读者可通过该网站下载debian最新版本进行安装。2ubuntuubuntu基于debian,包括了大量来自debian发行版的软件包,保留了debian强大的软件包管理系统,以便简易地安装或彻底的删除程序。与大多数发行版附带数量巨大的可用可不用的软件不同,ubuntu的软件包清单只包含那些高质量的重要应用程序。ubuntu具有以下特色:使用gnome桌面环境:ubuntu的开发者与debian和gnome开源社区互相协作,因此其桌面环境采用了gnome的最新版本,并且与gnome项目同步发布。安全性:ubuntu十分注重系统的安全性,采用sudo工具,所有系统相关的任务均需使用此指令,并输入密码,比起传统以登入系统管理员账号进行管理工作有更佳的安全性。可用性:ubuntu也十分注重系统的可用性,其设计为在标准安装完成后即可以让使用者投入使用的操作系统。例如,完成系统的安装后,用户不需要另外安装网页浏览器、办公室软件、多媒体软件与绘图软件等日常应用的软件,因为这些软件已被安装,并可随时使用。新增特性:对于ubuntu 8.04版本还增加了许多新的功能,如,允许用户把ubuntu 8.04系统安装到windows操作系统上,而不强制要求独立的硬盘分区。将kvm虚拟化技术整合到ubuntu 8.04,通过管理员权限,用户可以更容易的创建和管理虚拟机,使用更易配置的防火墙程序。ubuntu对于桌面和服务器来说都是合适的。当前,ubuntu发布版支持pc(intel x86)、64-bit pc(amd64)和powerpc(apple ibook和powerbook,g4和g5)架构。ubuntu主要分为桌面版和服务器版两种。ubuntu桌面版:可以浏览网页、查阅电子邮件、撰写文件、分发表单、编辑图片以及进行许多其他操作。ubuntu服务器版:建立在稳健的debian服务器版基础之上,它在一个稳定、安全、被充分支持的平台上提供着最好的自由软件。ubuntu的版本号根据发布一个版本的日期而定。版本号由该次发布的年份和月份组成,并未反映其实际版本。例如,首次发布是在2004年10月,因此其版本号为4.10。当前版本于2009年4月发布,因此版本号为9.04。提示:读者可从其官方网站/上免费下载需要的版本进行安装,也可在国内的镜像站点进行下载。3slackwareslackware由patrick volkerding创建于1992年,是历史最悠久的linux发行版,曾经在所有发行版中拥有最多的用户数量。与很多其他的发行版不同,它坚持kiss(keep it simple stupid)的原则,即没有任何配置系统的图形界面工具。对于linux的初学者来说,配置系统通常都会有一些困难,但是对有经验的系统管理员,将会喜欢这种方式的透明性和灵活性。slackware linux的另一个突出的特性是符合kiss原则:slackware没有如rpm之类的成熟的软件包管理器。slackware的软件包都由通常的tgz(tar/gzip)格式文件和安装脚本组成。对于有经验的用户来说,tgz格式文件的功能比rpm更为强大,可以避免rpm之类管理器的依赖性问题。slackware还有另外一个特性就是bsd风格的初始化脚本。slackware对所有的运行级(runlevel)任务都用同一个脚本,而不是在不同的运行级中建立一堆脚本的链接。这样,让用户不必自己编写新的脚本就能很容易地调整系统。由于slackware系统比较简洁、干净,易于在它的基础上进行开发,因此基于slackware衍生出了多个发行版和live-cd项目。所谓live-cd,就是一个在光盘上运行的linux系统。从slackware 9.1开始,其第二张安装cd就是一个live-cd。slackware的官方网站为,读者可从该网站下载最新版本。4fedorafedora项目是由red hat赞助,由开源社区与red hat工程师合作开发的项目,是一套从red hat linux发展出来的免费linux系统。目前,fedora最新的版本是fedora 11。对于linux用户来说,red hat应该是最熟悉的发行版。red hat最早由bob young和marc ewing在1995年创建。red hat的发行版到red hat 9.0后就已停止技术支持。因此,目前red hat分为两个系列:由red hat公司提供收费技术支持和更新的red hat enterprise linux,以及由社区开发的免费的fedora core。fedora core自第五版起直接更名为fedora。fedora从2003年推出第一个发行版fedora core1开始,到2009年6月推出fedora 11,其更新速度很快。提示:fedora的官方网站是,读者可从该网站下载最新版的fedora安装使用。5red hat enterprise linux前面已经介绍过,red hat公司的免费发行版到red hat 9.0就结束了。现在,red hat公司全面转向red hat enterprise linux(简写为rhel)的开发,和以往不同的是,新的rhel要求用户先购买许可,red hat承诺保证软件的稳定性、安全性,并且rhel的二进制代码不再提供下载,而是作为red hat服务的一部分。但依据gnu的规定,其源代码依然是开放的。rhel从2003年3月推出开始,到2009年1月已经发行到rhel 5.3版本(2007年3月就发布了rhel5)。rhel5基于linux 2.6.18内核,支持多核处理器,其版本主要分为server和desktop两个。1server版rhel server版本是rhel家族中最强的版本,支持大型服务器,包括最全面的支持服务,适用于大型企业部门及数据中心。server版本可分为red hat enterprise linux advanced platform(对应以前的red hat enterprise linux as)和red hat enterprise linux(对应以前的red hat enterprise linux as)。2desktop版rhel desktop版是rhel的桌面版。适合所有桌面部署,包括办公室软件、软件制作环境及一些isv客户程序。desktop版本分为red hat enterprise linux desktop(对应以前的red hat desktop)和red hat enterprise linux desktop with workstation option(对应以前的red hat enterprise linux ws)。1.3.2内核版本的选择内核是linux操作系统的最重要的部分,从最初的0.95版本到目前的版本,linux内核开发经过了近20年的时间,其架构已经十分稳定。linux内核的编号采用如下编号形式:主版本号.次版本号.主补丁号.次补丁号例如各数字的含义如下:(1) 第1个数字(2)是主版本号,表示第2大版本;(2) 第2个数字(6)是次版本号,有两个含义:既表示是linux内核大版本的第6个小版本,同时因为6是偶数表示为发布版本(奇数表示测试版);(3) 第3个数字(26)是主版本补丁号,表示指定小版本的第26个补丁包;(4) 第4个数字(3)是次版本补丁号,表示次补丁号的第3个小补丁。在安装linux操作系统的时候,最好不要采用发行版本号中的小版本号是奇数的内核,因为开发中的版本没有经过比较完善的测试,有一些bug是未知的,有可能造成使用中不必要的麻烦。%注意:debian linux内核的版本稍有不同,如2.6.18-3,可以发现多了一组数该数字是构建号。每个构建号可以增加少量新的驱动程序或缺陷修复。linux内核版本的开发源代码树目前比较通用的是2.6.xx的版本,当然,有部分2.4的版本仍在使用。与2.4版本的内核相比较,2.6版本内核具有如下的优势:n 支持绝大多数的嵌入式系统,加入了之前嵌入式系统经常使用的clinux的大部分代码,并且子系统的支持更加细化可以支持硬件体系结构的多样性,可抢占内核的调度方式支持实时系统,可定制内核。n 支持目前最新的cpu,例如intel的超线程、可扩展的地址空间访问。n 驱动程序框架变更,例如用.ko替代了原来的.o方式,消除内核竞争,更加透明的子模块方式。n 增加了更多的内核级的硬件支持。本书中的环境对linux的内核没有特殊要求,因此读者在选择内核版本的时候不需要重新编译内核,使用操作系统自带的内核就可以满足需要。本书作者的操作系统内核为linux--686。1.4 linux的系统架构 linux系统从应用角度来看,分为内核空间和用户空间两个部分。内核空间是linux操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应用程序包是一个操作系统成功的必要条件1.4.1 linux内核的主要模块linux的内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。 (1) 进程调度sched进程调度指的是系统对进程的多种状态之间转换的策略。linux下的进程调度有3种策略:sched_other、sched_fifo和sched_rr。n sched_other是用于针对普通进程的时间片轮转调度策略。这种策略中,系统给所有的运行状态的进程分配时间片。在当前进程的时间片用完之后,系统从进程中优先级最高的进程中选择进程运行。n sched_fifo是针对运行的实时性要求比较高、运行时间短的进程调度策略。这种策略中,系统按照进入队列的先后进行进程的调度,在没有更高优先级进程到来或者当前进程没有因为等待资源而阻塞的情况下,会一直运行。n sched_rr是针对实时性要求比较高、运行时间比较长的进程调度策略。这种策略与sched_other的策略类似,只不过sched_rr进程的优先级要高得多。系统分配给sched_rr进程时间片,然后轮循运行这些进程,将时间片用完的进程放入队列的末尾。由于存在多种调度方式,linux进程调度采用的是“有条件可剥夺”的调度方式。普通进程中采用的是sched_other的时间片轮循方式,实时进程可以剥夺普通进程。如果普通进程在用户空间运行,则普通进程立即停止运行,将资源让给实时进程;如果普通进程运行在内核空间,需要等系统调用返回用户空间后方可剥夺资源。(2)内存管理mmu内存管理是多个进程间的内存共享策略。在linux系统中,内存管理的主要概念是虚拟内存。虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍。每个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设置为物理内存的两倍。(3)虚拟文件系统vfs在linux下支持多种文件系统,如ext、ext2、minix、umsdos、msdos、vfat、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs等。目前linux下最常用的文件格式是ext2和ext3。ext2文件系统用于固定文件系统和可活动文件系统,是ext文件系统的扩展。ext3文件系统是在ext2上增加日志功能后的扩展,它兼容ext2。两种文件系统之间可以互相转换,ext2不用格式化就可以转换为ext3文件系统,而ext3文件系统转换为ext2文件系统也不会丢失数据。(4)网络接口linux是在internet飞速发展的时期成长起来的,所以linux支持多种网络接口和协议。网络接口分为网络协议和驱动程序,网络协议是一种网络传输的通信标准,而网络驱动则是对硬件设备的驱动程序。linux支持的网络设备多种多样,几乎目前所有网络设备都有驱动程序。(5)进程间通信linux操作系统支持多进程,进程之间需要进行数据的交流才能完成控制、协同工作等功能,linux的进程间通信是从unix系统继承过来的。linux下的进程间通信方式主要有管道方式、信号方式、消息队列方式、共享内存和套接字等方法1.4.2 linux的文件结构与windows下的文件组织结构不同,linux不使用磁盘分区符号来访问文件系统,而是将整个文件系统表示成树状的结构,linux系统每增加一个文件系统都会将其加入到这个树中。图1.1 linux文件系统操作系统文件结构的开始,只有一个单独的顶级目录结构,叫做根目录。所有一切都从“根”开始,用“/”代表,并且延伸到子目录。dos/windows下文件系统按照磁盘分区的概念分类,目录都存于分区上。linux则通过“挂接”的方式把所有分区都放置在“根”下各个目录里。一个linux系统的文件结构如图1.1所示。不同的linux发行版本的目录结构和具体的实现功能存在一些细微的差别。但是主要的功能都是一致的。一些常用目录的作用如下:n /etc:包括绝大多数linux系统引导所需要的配置文件,系统引导时读取配置文件,按照配置文件的选项进行不同情况的启动,例如fstab、host.conf等。 n /lib:包含c编译程序需要的函数库,是一组二进制文件,例如glibc等。 n /usr:包括所有其他内容,如src、local。linux的内核就在/usr/src中。其下有子目录/bin,存放所有安装语言的命令,如gcc、perl等。 n /var:包含系统定义表,以便在系统运行改变时可以只备份该目录,如cache。 n /tmp:用于临时性的存储。 n /bin:大多数命令存放在这里。 n /home:主要存放用户账号,并且可以支持ftp的用户管理。系统管理员增加用户时,系统在home目录下创建与用户同名的目录,此目录下一般默认有desktop目录。 n /dev:这个目录下存放一种设备文件的特殊文件,如fd0、had等。 n /mnt:在linux系统中,它是专门给外挂的文件系统使用的,里面有两个文件cdrom、floopy,登录光驱、软驱时要用到。刚开始使用linux的人比较容易混淆的是linux下使用斜杠“/”,而在dos/windows下使用的是反斜杠“”。例如在linux中,由于从unix集成的关系,路径用“/usr/src/linux”表示,而在windows下则用“usrsrclinux”表示。在linux下更加普遍的问题是大小写敏感,这样字母的大小写十分重要,例如文件hello.c和文件hello.c在linux下不是一个文件,而在windows下则表示同一个文件。1.5 gnu通用公共许可证导致linux系统迅速发展的重要原因之一,是因为linux系统遵循gnu通用公共版权协议。实际上,linux系统中绝大多数系统工具和应用软件都是gnu的。1. 什么是gnu简单地说,gnu是一种自由软件体系。1984年,自由软件的积极倡导者、自由软件基金会的董事长richard m.stallman(rms)组织成立了一个完全基于自由软件的软件体系gnu,并拟定了一份通用公共版权协议。gnu的创始人stal1man认为unix虽然不是最好的操作系统,但至少不会太差,而他自信有能力把unix不足的地方加以改进,使它成为一个优良的操作系统。这就是同unix兼容的、名为gnu的操作系统。 开发这个系统的目的,就是为了让所有的计算机用户都可以自由地使用这个系统和免费获得其源代码,并且可以自由复制。当然gnu也拥有自己的版权申明,那就是用户获得gnu软件后,既可以自由使用和修改,也可以散布gnu软件,但是必须让下一个用户也有获得源代码的权利。规定是为了防止有些人或公司将gnu软件稍加修改就去申请版权,将其据为己有,其目的是要让gnu软件永远是自由和公开的。目前, gnu目前已经推出的软件主要有功能强大的集成编辑环境emacs、性能优异的多平台多语言编译器以及其他几十种软件。人们已经很熟悉的一些软件如bind、pd、apache、tcp/ip等实际上都是自由软件的经典之作,现在又有了netscape的加盟。2. linux系统与gnu的关系linux不仅是一个理想主义者,而且他又非常讲求实际。1993年,linux系统的第一个版本问世的时候,是按完全自由扩散版权进行扩散的。它要求所有的源代码必须公开,而且任何人均不得从linux交易中获利。然而半年以后,他开始意识到这种纯粹的自由软件的理想对于linux的扩散和发展来说实际上是一种障碍,因为它限制了linux系统以磁盘复制或者cd-rom等媒体形式进行扩散的可能,也限制了一些商业公司参与linux系统的进一步开发并提供技术支持的良好愿望。于是,linux先生决定转向gpl版权。第二章 linux与其他操作系统的比较2.1 linux与unix的异同linux是unix操作系统的一个克隆系统,没有unix就没有linux。但是,linux和传统的unix有很大的不同,两者之间的最大区别是关于版权方面的:linux是开放源代码的自由软件,而unix是对源代码实行知识产权保护的传统商业软件。两者之间还存在如下的区别:n unix操作系统大多数是与硬件配套的,操作系统与硬件进行了绑定;而linux则可运行在多种硬件平台上。n unix操作系统是一种商业软件(授权费大约为5万美元);而linux操作提供则是一种自由软件,是免费的,并且公开源代码。n unix的历史要比linux悠久,但是linux操作系统由于吸取了其他操作系统的经验,其设计思想虽然源于unix但是要优于unix。n 虽然unix和linux都是操作系统的名称,但unix除了是一种操作系统的名称外,作为商标,它归sco所有。n linux的商业化版本有red hat linux、suse linux、slakeware linux、国内的红旗linux等,还有turbo linux;unix主要有sun的solaris、ibm的aix,hp的hp-ux,以及基于x86平台的sco unix/unixware。n linux操作系统的内核是免费的;而unix的内核并不公开。n 在对硬件的要求上,linux操作系统要比unix要求低,并且没有unix对硬件要求的那么苛刻;在对系统的安装难易度上,linux比unix容易得多;在使用上,linux相对没有unix那么复杂。总体来说,linux操作系统无论在外观上还是在性能上都与unix相同或者比unix更好,但是linux操作系统不同于unix的源代码。在功能上,linux仿制了unix的一部分,与unix的system v和bsd unix相兼容。在unix上可以运行的源代码,一般情况下在linux上重新进行编译后就可以运行,甚至bsd unix的执行文件可以在linux操作系统上直接运行2.2 linux和windows的区别以及安全性的比较 分类特性linuxwindows定性得分基本安全验证、访问控制加密、记帐日至可插入的认证模块、插件模块、kerberos、pki、winbind、 acls、 lsm、selinux、 受控的访问保护实体检测、内核加密kerberos、pki、 访问控制列表、受控的访问保护实体检测、微软的应用程序加密程序接口。linux 更加出色 网络安全与协议验证、层、网络层openssl、open ssh、openldap、 ipsec ssl、 ssh、 ldap、 ad、 ipsec两者都很不错应用安全防病毒、 防火墙、 入侵检测软件、 web服务器、 email、 智能卡支持 openav、 panda、 trendmicro、 内核内建的防火墙功能、 snort、 apache、 sendmail、 postfix、 pkcs 11、 exec-shieldmcafee、 symantec、 check point、 iis、 exchange/outlook、 pcks 11linux略胜一筹 分发与操作安装、 配置、 加固、 管理、 漏洞扫描器安装与配置工具、 bastille、大部分的管理通过命令行完成、 nessus、 发行版相关的up2date、 yast、 webminwindows自带的安装和配置工具、没有特定的加固工具、 管理gui、 使用默认安装的配置。两者都很不错确信度常见的公共标准证书、 缺陷处理linux达到了 eal3,有较好的缺陷处理能力windows 达到了 eal4,有较好的缺陷处理能力windows更加出色可信计算 可信平台的模块、可信计算软件栈、工具、验证 由ibm开发的基于可信平台模块的开源驱动程序、可信计算组的软件栈可望在2005年推出下一代安全计算基础、有可能在2006年的longhorn中出现。两者都不够出色 开放标准ipsec、 posix、 传输层安全、 常见标准 linux 遵循所有的开放标准microsoft也参与了开放标准,但仍有一些私有标准。linux更加出色和linux一样,windows系列是完全的多任务操作系统。它们支持同样的用户接口、网络和安全性。但是,linux和windows的真正区别在于,linux事实上是unix的一种版本,而且来自unix的贡献非常巨大。是什么使得unix如此重要?不仅在于对多用户机器来说,unix是最流行的操作系统,而且在于它是免费软件的基础。在internet上,大量免费软件都是针对unix系统编写的。由于有众多的unix厂商,所以unix也有许多实现方法。没有一个单独的组织负责unix的分发。现在,存在一股巨大的力量推动unix社团以开放系统的形式走向标准化。另一方面windows系列是专用系统,由开发操作系统的公司控制接口和设计。在这个意义上这种公司利润很高,因为它对程序设计和用户接口设计建立了严格的标准,和那些开放系统社团完全不一样。一些组织正在试图完成标准化unix程序设计接口的任务。特别要指出的是,linux完全兼容posix.1标准。 2.3 linux与其他操作系统的区别 从发展的背景看,linux与其他操作系统的区别是,linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如windows 等,都是自成体系,无对应的相依托的操作系统。这一区别使得linux的用户能大大地从unix团体贡献中获利。因为unix是世界上使用最普遍、发展最成熟的操作系统之一,它是七十年代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少相对集中的标准,但还是发展壮大成为了最广泛使用的操作系统之一。无论是unix的作者还是unix的用户,都认为只有unix才是一个真正的操作系统,许多计算机系统(从个人计算机到超级计算机)都存在unix版本,unix的用户可以从很多方面得到支持和帮助。 因此,linux做为unix的一个克隆,同样会得到相应的支持和帮助,直接拥有unix在用户中建立的牢固的地位。 2.4 linux与其他系统的总体比较从使用费用上看,linux与其他操作系统的区别在于linux是一种开放、免费的操作系统,而其他操作系统都是封闭的系统,需要有偿使用。这一区别使得我们能够不用花钱就能得到很多linux的版本以及为其开发的应用软件。当我们访问internet时,会发现几乎所有可用的自由软件都能够运行在linux系统上。有来自很多软件商的多种unix实现,unix的开发、发展商以开放系统的方式推动其标准化,但却没有一个公司来控制这种设计。因此,任何一个软件商(或开拓者)都能在某种unix实现中实现这些标准。os/2和windows nt等操作系统是具有版权的产品,其接口和设计均由某一公司控制,而且只有这些公司才有权实现其设计,它们是在封闭的环境下发展的。众所周知,时下的电脑操作系统分为两大主流,一个是象征开放自由的企鹅派 linux ;另一个就是什么都讲钱的微软视窗派 windows。条列出以下五项linux与windows间的主要区别。一、自由授权与限制授权的差异有着gpl授权的linux操作系统,你可以自由地修改、使用甚至发行或销售软件;你也可以下载单一套件的linux相关应用程序,然后随你喜爱想要安装至几台电脑都可以。而在微软授权下,上述的行为你最好别作也可能无法作,如果你想要在10台电脑上安装windows操作系统,请你乖乖付费购买10套软件授权。二、各种在线支持与付费支持的差异这可能是许多企业投向linux怀抱的住要因素。在linux,你可以在广大的社区中获得支持,例如利用论坛、在线搜索以及许多专属网站来获得必要的支持。当然了,如果你愿意也可以向各家大型linux公司购买支持合约,如: 红帽 ( red hat )跟novell。在微软方面,你同样也可类似linux的方式一样获得windows支持,如:在线的一些协助网站或相关论坛,你同样的也可以直接付费向微软购买技术支持。三、完全读取与不可读取的差异这也可能是linux与windows之间的最大差异。由于linux是属于gnu公开授权,因而能够允许用户读取、修改它的主要内核程序代码。你想要剥出windows程序代码?除非你是特别选定人选团体,不然别想要一窥windows操作系统的程序代码。四、 命令行与无命令行的差异不管linux操作系统是如何安装,或是桌面环境如何变动,毫无疑问它的命令行是管理上不可获缺的一项工具;对于linux管理者而言,文字架构的编辑器是不可被取代的。但是微软似乎不想让用户使用命令行,尽避windows还是拥有所谓“命令提示字符”功能。很多用户甚至不知道这项功能隐藏在何方。五、弹性化与刻板化的差异要比喻linux与windows之间弹性化的差异,可以用一个房间的天花板跟地板是否可以变动调配来看。在linux里,有如你的房间天花板跟地板是可以随着你的喜好来升高或降低;而在windows方面,一切都是不可变动的,而且微软也认为没有此项必要。举例而言,如果你付费购买了第三方程序,就有机会可以随着你的喜好来更改linux桌面外观;但是如果在windows,你将被限制在微软所谓最佳并且最适合你的桌面。2.5 linux与windows根本比较内核windows系统优化有一个地方从来没有动过,那就是内核的优化,没有这个功能也就没有了很多的个性定制,这也许就是开源与不开源的巨大差异。下面说正题吧,一、内核简介内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在 /usr/src/linux下找到,大部分应用软件也都是遵循gpl而设计的,你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是linux修补漏洞的快速以及对最新软件技术的利用。而linux的内核则是这些特点的最直接的代表。想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。在windows下是什么情况呢?相信很多人都被越来越庞大的windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。在windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。二、内核版本号由于linux的源程序是完全公开的,任何人只要遵循gpl,就可以对内核加以修改并发布给他人使用。linux的开发采用的是集市模型(bazaar,与cathedral教堂模型对应),为了确保这些无序的开发过程能够有序地进行,linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级上册科学教科版课件第5课 一袋空气的质量是多少
- 幼儿园过敏协议书(2篇)
- 坟墓拆除协议书范本
- 特种设备安全管理人员培训课件(基础知识)
- 2022年广西壮族自治区柳州市公开招聘警务辅助人员(辅警)笔试专项训练卷(2)含答案
- 2022年辽宁省辽阳市公开招聘警务辅助人员(辅警)笔试自考练习卷二含答案
- 2024年欧盟数据保护与跨境电商合同
- 2024年湖南省郴州市公开招聘警务辅助人员(辅警)笔试摸底测试(1)卷含答案
- 2024年广西壮族自治区钦州市公开招聘警务辅助人员(辅警)笔试专项训练题试卷(3)含答案
- 《电机学期末复习》课件
- 结核病的诊断流程图解
- 工程力学知到智慧树章节测试课后答案2024年秋湖南工学院
- 广东省广州市越秀区2023-2024学年八年级上学期期末道德与法治试题(含答案)
- 第七届重庆市青少年科学素养大赛考试题库(含答案)
- 地理2024-2025学年人教版七年级上册地理知识点
- 四大名著之西游记经典解读28
- 2024年城市园林苗木移植合同范例
- 北京市海淀区2023-2024学年高二上学期期末考试 英语 含答案
- 技能人才评价新职业考评员培训在线考试(四川省)
- 2024年中华人民共和国企业所得税年度纳税申报表(带公式)20240301更新
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
评论
0/150
提交评论