ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:45.58KB ,
资源ID:38122      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-38122.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux操作系统概述Word文档下载推荐.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Linux操作系统概述Word文档下载推荐.docx

1、注意:当时苹果公司的Mac系列操作系统不论从性能方面还是用户的易用性方面来说都是最好的,但是其价格也是最高的(现在的情况基本也是如此)。1.1.2 Linux名称的由来Linux操作系统的名称最初并没有被称做Linux。Linus给他的操作系统取的名字是Freax,这个单词的含义是怪诞的、怪物、异想天开的意思。当Torvalds将他的操作系统上传到服务器ftp.funet.fi上的时候,这个服务器的管理员Ari Lemke对Freax这个名称很不赞成,所以将操作系统的名称改为了Linus的谐音Linux,于是这个操作系统的名称就以Linux流传下来。在Linus的自传Just for Fun一

2、书中,Linus解释说:“Ari Lemke,他十分不喜欢Freax这个名字。倒喜欢我当时正在使用的另一个名字Linux,并把我的邮件路径命名为pub OS/Linux。我承认我并没有太坚持。但这一切都是他搞的。所以我既可以不惭愧地说自己不是那么以个人为中心,但是也有一点个人的荣誉感。而且个人认为,Linux是个不错的名字。”实际上,在早期的源文件中仍然使用Freax作为操作系统的名字,可以从Makefile文件中看出此名称的一些蛛丝马迹。关于Linux的发音有各种说法,例如links,但是按照Torvalds的说法,Linux中Li中i的发音类似于Minix中i的发音,而nux中u的发音类似

3、于英文单词pronounce中第一个o的发音。根据Torvalds对此的解释,依照国际音标其发音为links,与“喱呐科斯”类似。在网络上有一份Torvalds本人说话的音频,音频中的内容为“Hello, this is Linus Torvalds, and I pronounce Linux as Linux”,其下载网络地址为http:/www.paul.sladen.org/ pronunciation/torvalds-says-Linux.wav。对于Linux发音的解释,还有一份Torvalds本人的解说片段,这一片段发音的视频可以从如下的URL下载:http:/www.L1.2

4、 Linux的发展要素Linux操作系统是UNIX的一种典型的克隆系统。在Linux诞生之后,借助于Internet网络,在全世界计算机爱好者的共同努力下,成为目前世界上使用者最多的一种类似UNIX的操作系统。在Linux操作系统的诞生、成长和发展过程中,以下5个方面起到了重要的作用:UNIX操作系统、Minix操作系统、GNU计划、POSIX标准和Internet网络。1.2.1 UNIX操作系统UNIX操作系统于1969年在Bell实验室诞生,它是美国贝尔实验室的Ken.Thompson和Dennis Ritchie在DEC PDP-7小型计算机系统上开发的一种分时操作系统。Ken Tho

5、mpson开发UNIX操作系统的初衷是为了能在一台闲置的PDP-7计算机上运行星际旅行游戏,他在1969年夏天花费一个月的时间开发出了UNIX操作系统的原型。最开始,开发UNIX操作系统使用的是BCPL语言(即通常所说的B语言),后来Dennis Ritchie于1972年使用C语言对UNIX操作系统进行了改写。同时UNIX操作系统在大学中得到广泛的推广,并将UNIX的授权分发给多个商业公司。自从UNIX操作系统从实验室走出来之后,得到了长足的发展。目前已经成为大型系统的主流操作系统,现在几乎每个主要的计算机厂商都有其自有版本的UNIX。UNIX是一个功能强大、性能全面的、多用户、多任务的分时

6、操作系统,在从巨型计算机到普通PC等多种不同的平台上,都有着十分广泛的应用。通常情况下,比较大型的系统应用,例如银行、电信部门,一般都采用固定机型的UNIX解决方案:在电信系统中以SUN的UNIX系统方案居多,在民航里以HP的系统方案居多,在银行里以IBM的系统方案居多。Linux是一种UNIX的克隆系统,采用了几乎一致的系统API接口。特别是网络方面,二者接口的应用程序几乎完全一致。1.2.2 Minix操作系统Minix操作系统也是UNIX操作系统的一种克隆系统,它由荷兰Amsterdam的Vrije大学著名教授Andrew S.Tanenbaum于1987年开发完成。Minux操作系统目

7、的主要用于学生学习操作系统原理时教学使用。在当时Minix操作系统在大学中是免费使用的,但是其他用途则需要收费。目前Minix操作系统已经全部是免费的,可以从许多FTP上下载,目前主要有1.5版本和2.0版本在使用。由于Minix操作系统提供源代码,并且与操作系统相结合,有一本高质量的书籍介绍其实现原理,在当时全世界的大学中形成了学习Minix操作系统的风气,Linus刚开始就是参照此系统在1991年开始开发Linux的。实际上,Minix操作系统并不是很优秀,但是这个操作系统提供了C语言和汇编语言的源代码。而当时的UNIX操作系统源代码除了极少的范围外一直是保密的,Minix操作系统对程序员

8、来说是一个福音。为了可以让学生在一个学期内能够学完操作系统的课程,AST保持了Minix操作系统的小型化,没有接受世界各界对Minix扩展的要求,而正是这个原因激发了Linus编写Linux操作系统。1.2.3 POSIX 标准POSIX(Portable Operating System Interface for Computing Systems)是由IEEE和ISO/IEC开发的一套标准。POSIX标准是对UNIX操作系统的经验和实践的总结,对操作系统调用的服务接口进行了标准化,保证所编制的应用程序在源代码一级可以在多种操作系统上进行移植。在90年代初,POSIX标准的制定处于最后确定

9、的投票阶段,而Linux正处于开始的诞生时期。作为一个指导性的纲领性标准,Linux的接口与POSIX相兼容。1.3 Linux与UNIX的异同Linux是UNIX操作系统的一个克隆系统,没有UNIX就没有Linux。但是,Linux和传统的UNIX有很大的不同,两者之间的最大区别是关于版权方面的:Linux是开放源代码的自由软件,而UNIX是对源代码实行知识产权保护的传统商业软件。两者之间还存在如下的区别: UNIX操作系统大多数是与硬件配套的,操作系统与硬件进行了绑定;而Linux则可运行在多种硬件平台上。 UNIX操作系统是一种商业软件(授权费大约为5万美元);而Linux操作提供则是一

10、种自由软件,是免费的,并且公开源代码。 UNIX的历史要比Linux悠久,但是Linux操作系统由于吸取了其他操作系统的经验,其设计思想虽然源于UNIX但是要优于UNIX。 虽然UNIX和Linux都是操作系统的名称,但UNIX除了是一种操作系统的名称外,作为商标,它归SCO所有。 Linux的商业化版本有Red Hat Linux、SuSe Linux、slakeware Linux、国内的红旗Linux等,还有Turbo Linux;UNIX主要有Sun的Solaris、IBM的AIX,HP的HP-UX,以及基于x86平台的SCO UNIX/UNIXware。 Linux操作系统的内核是免

11、费的;而UNIX的内核并不公开。 在对硬件的要求上,Linux操作系统要比UNIX要求低,并且没有UNIX对硬件要求的那么苛刻;在对系统的安装难易度上,Linux比UNIX容易得多;在使用上,Linux相对没有UNIX那么复杂。总体来说,Linux操作系统无论在外观上还是在性能上都与UNIX相同或者比UNIX更好,但是Linux操作系统不同于UNIX的源代码。在功能上,Linux仿制了UNIX的一部分,与UNIX的System V和BSD UNIX相兼容。在UNIX上可以运行的源代码,一般情况下在Linux上重新进行编译后就可以运行,甚至BSD UNIX的执行文件可以在Linux操作系统上直接

12、运行。1.4 操作系统类型选择和内核版本的选择要在Linux环境下进行程序设计,首先要选择合适的Linux发行版本和Linux的内核,选择一款适合自己的Linux操作系统。本节对常用的发行版本和Linux内核的选择进行了介绍,并简要讲解了如何定制自己的Linux操作系统。1.4.1 常见的不同公司发行的Linux异同Linux的发行版本众多,曾有人收集过超过300种的发行版本。当然,不能在本书中介绍众多的发行版特点,这超出了本书的范围。本小节对最常用的发行版本进行简单的介绍,表1.1为经常采用的版本。读者可以去相关网址查找,选择适合的版本使用。本书所使用的Linux为Debian。表1.1 常

13、用Linux发行版本特点版本名称网 址特 点软件包管理器Debian Linuxwww.debian.org开放的开发模式,并且易于进行软件包升级aptFedora Core拥有数量庞大的用户,优秀的社区技术支持,并且有许多创新up2date(rpm), yum(rpm)CentOSwww.centos.orgCentOS是一种对RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于Linux是开发源代码的操作系统,并不排斥基于源代码的再分发,CentOS就是将商业的Linux操作系统RHEL进行源代码在编译后分发,并在RHEL的基础上修正了不少已知的bugrpm

14、SUSE Linux专业的操作系统,易用的YaST软件包管理系统开放YaST(rpm),第三方apt(rpm)软件库(repository)Mandriva操作界面友好,使用图形配置工具,有庞大的社区进行技术支持,支持NTFS分区的大小变更KNOPPIX可以直接在CD上运行,具有优秀的硬件检测和适配能力,可作为系统的急救盘使用Gentoo Linuxwww.gentoo.org高度的可定制性,使用手册完整portageUbuntu优秀易用的桌面环境,基于Debian的不稳定版本构建1.4.2 内核版本的选择内核是Linux操作系统的最重要的部分,从最初的0.95版本到目前的2.6.28.4版本

15、,Linux内核开发经过了近20年的时间,其架构已经十分稳定。Linux内核的编号采用如下编号形式:主版本号.次版本号.主补丁号.次补丁号例如2.6.26.3各数字的含义如下: 第1个数字(2)是主版本号,表示第2大版本; 第2个数字(6)是次版本号,有两个含义:既表示是Linux内核大版本的第6个小版本,同时因为6是偶数表示为发布版本(奇数表示测试版); 第3个数字(26)是主版本补丁号,表示指定小版本的第26个补丁包; 第4个数字(3)是次版本补丁号,表示次补丁号的第3个小补丁。在安装Linux操作系统的时候,最好不要采用发行版本号中的小版本号是奇数的内核,因为开发中的版本没有经过比较完善

16、的测试,有一些bug是未知的,有可能造成使用中不必要的麻烦。Debian Linux内核的版本稍有不同,如2.6.18-3,可以发现多了一组数字(3),该数字是构建号。每个构建号可以增加少量新的驱动程序或缺陷修复。Linux内核版本的开发源代码树目前比较通用的是2.6.xx的版本,当然,有部分2.4的版本仍在使用。与2.4版本的内核相比较,2.6版本内核具有如下的优势: 支持绝大多数的嵌入式系统,加入了之前嵌入式系统经常使用的Clinux的大部分代码,并且子系统的支持更加细化可以支持硬件体系结构的多样性,可抢占内核的调度方式支持实时系统,可定制内核。 支持目前最新的CPU,例如Intel的超线

17、程、可扩展的地址空间访问。 驱动程序框架变更,例如用.ko替代了原来的.o方式,消除内核竞争,更加透明的子模块方式。 增加了更多的内核级的硬件支持。本书中的环境对Linux的内核没有特殊要求,因此读者在选择内核版本的时候不需要重新编译内核,使用操作系统自带的内核就可以满足需要。本书作者的操作系统内核为Linux-2.6.18.3-686。1.5 Linux的系统架构Linux系统从应用角度来看,分为内核空间和用户空间两个部分。内核空间是Linux操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应用程序包是一个操作系统成功的必要条件。1.5.1 Linux内核的

18、主要模块Linux的内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。下面依次讲解这5个子系统。1进程调度SCHED进程调度指的是系统对进程的多种状态之间转换的策略。Linux下的进程调度有3种策略:SCHED_OTHER、SCHED_FIFO和SCHED_RR。 SCHED_OTHER是用于针对普通进程的时间片轮转调度策略。这种策略中,系统给所有的运行状态的进程分配时间片。在当前进程的时间片用完之后,系统从进程中优先级最高的进程中选择进程运行。 SCHED_FIFO是针对运行的实时性要求比较高、运行时间短的进程调度策略。这种策略中,系统按照进入队列的先后进行进

19、程的调度,在没有更高优先级进程到来或者当前进程没有因为等待资源而阻塞的情况下,会一直运行。 SCHED_RR是针对实时性要求比较高、运行时间比较长的进程调度策略。这种策略与SCHED_OTHER的策略类似,只不过SCHED_RR进程的优先级要高得多。系统分配给SCHED_RR进程时间片,然后轮循运行这些进程,将时间片用完的进程放入队列的末尾。由于存在多种调度方式,Linux进程调度采用的是“有条件可剥夺”的调度方式。普通进程中采用的是SCHED_OTHER的时间片轮循方式,实时进程可以剥夺普通进程。如果普通进程在用户空间运行,则普通进程立即停止运行,将资源让给实时进程;如果普通进程运行在内核空

20、间,需要等系统调用返回用户空间后方可剥夺资源。2内存管理MMU内存管理是多个进程间的内存共享策略。在Linux系统中,内存管理的主要概念是虚拟内存。虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍。每个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设置为物理内存的两倍。3虚拟文件系统VFS在Linux下支持多种文件系统,如ext、ext2、minix、umsdos、msdos、vfat、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs等。目前Linux下最

21、常用的文件格式是ext2和ext3。ext2文件系统用于固定文件系统和可活动文件系统,是ext文件系统的扩展。ext3文件系统是在ext2上增加日志功能后的扩展,它兼容ext2。两种文件系统之间可以互相转换,ext2不用格式化就可以转换为ext3文件系统,而ext3文件系统转换为ext2文件系统也不会丢失数据。4网络接口Linux是在Internet飞速发展的时期成长起来的,所以Linux支持多种网络接口和协议。网络接口分为网络协议和驱动程序,网络协议是一种网络传输的通信标准,而网络驱动则是对硬件设备的驱动程序。Linux支持的网络设备多种多样,几乎目前所有网络设备都有驱动程序。5进程间通信L

22、inux操作系统支持多进程,进程之间需要进行数据的交流才能完成控制、协同工作等功能,Linux的进程间通信是从UNIX系统继承过来的。Linux下的进程间通信方式主要有管道方式、信号方式、消息队列方式、共享内存和套接字等方法。1.5.2 Linux的文件结构与Windows下的文件组织结构不同,Linux不使用磁盘分区符号来访问文件系统,而是将整个文件系统表示成树状的结构,Linux系统每增加一个文件系统都会将其加入到这个树中。图1.1 Linux文件系统结构示意图操作系统文件结构的开始,只有一个单独的顶级目录结构,叫做根目录。所有一切都从“根”开始,用“/”代表,并且延伸到子目录。DOS/W

23、indows下文件系统按照磁盘分区的概念分类,目录都存于分区上。Linux则通过“挂接”的方式把所有分区都放置在“根”下各个目录里。一个Linux系统的文件结构如图1.1所示。不同的Linux发行版本的目录结构和具体的实现功能存在一些细微的差别。但是主要的功能都是一致的。一些常用目录的作用如下: /etc:包括绝大多数Linux系统引导所需要的配 置文件,系统引导时读取配置文件,按照配置文件的选项进行不同情况的启动,例如fstab、host.conf等。 /lib:包含C编译程序需要的函数库,是一组二进制文件,例如glibc等。 /usr:包括所有其他内容,如src、local。Linux的内

24、核就在/usr/src中。其下有子目录/bin,存放所有安装语言的命令,如gcc、perl等。 /var:包含系统定义表,以便在系统运行改变时可以只备份该目录,如cache。 /tmp:用于临时性的存储。 /bin:大多数命令存放在这里。 /home:主要存放用户账号,并且可以支持ftp的用户管理。系统管理员增加用户时,系统在home目录下创建与用户同名的目录,此目录下一般默认有Desktop目录。 /dev:这个目录下存放一种设备文件的特殊文件,如fd0、had等。 /mnt:在Linux系统中,它是专门给外挂的文件系统使用的,里面有两个文件cdrom、floopy,登录光驱、软驱时要用到。

25、刚开始使用Linux的人比较容易混淆的是Linux下使用斜杠“/”,而在DOS/Windows下使用的是反斜杠“”。例如在Linux中,由于从UNIX集成的关系,路径用“/usr/src/Linux”表示,而在Windows下则用“usrsrcLinux”表示。在Linux下更加普遍的问题是大小写敏感,这样字母的大小写十分重要,例如文件Hello.c和文件hello.c在Linux下不是一个文件,而在Windows下则表示同一个文件。1.6 GNU通用公共许可证GNU通用公共许可证(简称为GPL)是由自由软件基金会发行的用于计算机软件的一种许可证制度。GPL最初是由Richard Stallm

26、an为GNU计划而撰写。目前,GNU通行证被绝大多数的GNU程序和超过半数的自由软件采用。此许可证最新版本为“版本3”,于2007年发布。GNU宽通用公共许可证(简称LGPL)是由GPL衍生出的许可证,被用于一些GNU程序库。1.6.1 GPL许可证的历史GNU通用公共许可证是由Richard Stallman为了GNU计划而撰写的,它以GNU的Emacs、GDB、GCC的早期许可证为蓝本。上述的这些许可证都包含了一些GPL中的版权思想,但是仅仅针对特定的某个程序。Richard Stallman的目标是创造出一种通用的软件许可证制度,来为所有的开源软件代码计划使用。GPL的“版本1”,在19

27、89年1月诞生。在1990年时,因为一些共享库的使用而出现了对GPL许可证制度更为宽松的需求,在GPL“版本2”于1991年6月发布时,另一许可证库通用许可证(Library General Public License,简称LGPL)也随之发布,并记做“版本2”以示对GPL的补充。在LGPL版本2.1发布时与GPL版本不再对应,而LGPL也被重命名为GNU宽通用公共许可证(Lesser General Public License)。GPLv3在2007年6月份开始使用,由于对专利权和数字版权限制的问题造成了自由软件阵营的一次很大的争论。Stallman于2006年2月25日在自由开源软件开

28、发者欧洲会议上发表的演讲中,对GPLv3的特点作了解释,相对于GPLv2,主要有4个不同的方面: 数字版权问题。在GPLv3中禁止使用GPLv3本身作为数字版权的一部分,同时消费类电子设备上使用GPLv3代码必须开放源代码,而且允许用户自己重新构建。 专利扩散许可。在GPLv3中如果具有专利的代码加入之后,此专利会自动向整个应用程序授权此专利。 衍生产品的定义。在GPLv3中定义了衍生产品,即如果某个模块采用了GPLv3协议,某个产品使用此模块动态链接后,如果此模块可以被其他模块代替,则这个产品不是GPLv3协议,否则需要采用GPLv3协议。 GPLv3协议与其他协议的兼容问题。1.6.2 GPL的自由理念软件的版权保护机制在保护发明人权益的同时,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2