Unix系统与软件开发环境_第1页
Unix系统与软件开发环境_第2页
Unix系统与软件开发环境_第3页
Unix系统与软件开发环境_第4页
Unix系统与软件开发环境_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unix系统与软件开发环境Unix系统与软件开发环境共86页,您现在浏览的是第1页!教学目的与考核方式目的:带领同学们进入一个计算机应用与开发的新领域:Unix/Linux学完后能胜任Unix/Linux领域的管理与开发工作考核方式:考试(笔试+机试)学时:周4(2~18周)课程内容:Unix系统与软件开发环境Unix/Linux系统知识(请准备笔记本,做好笔记)。开发部分,参考《Unix环境高级编程》请做好笔记。要做好实验,要通过实验理解教材。Unix系统与软件开发环境共86页,您现在浏览的是第2页!关于教材没有非常合适的教材使用:《Linux操作系统》参考书《Unix环境高级编程》,WRichardStevens,尤晋元等译,机械工业《Linux程序设计》,NeilMatthew等编,杨晓云等译,机械工业,人民邮电《Unix系统编程》,KayA.Ribbins等编,陈娟等译,机械工业《Unix编程艺术》,EricS.Raymond等编,姜宏等译,电子工业《RedHatLinux9应用基础教程》,梁如军,机械工业《Linux下的C编程》,贾明等编,人民邮电《Unix网络编程》,WRichardStevens,施振川等译,清华大学Unix系统与软件开发环境共86页,您现在浏览的是第3页!课程概览简介与入门知识 shell与命令界面文件系统及管理 用户与口令管理进程管理 Unix系统常用命令设备管理 网络、网络服务及应用内核与系统管理 系统安装shell编程 文件I/O标准I/O 高级I/O文件和目录 进程关系、信号与进程控制进程间通讯(IPC) C/S,C/M/S与守候进程 Unix系统与软件开发环境共86页,您现在浏览的是第4页!1.1Unix发展简史Unix系统与软件开发环境共86页,您现在浏览的是第5页!2创世纪:1969-1971Unix于1969年诞生于贝尔实验室的计算机科学家KenThompson的头脑中。(Thompson曾经是Multics项目的研究人员。)当时代计算机硬件的原始程度:那时最强大的机器所拥有的计算能力和内存还不如现在一个普通的手机。所谓的大硬盘容量也不超过1M。视频显示终端才刚刚起步,六年以后才得到广泛应用。最早分时系统的标准交互设备就是ASR-33电传打字机。Unix命令简洁、“少说多做”的传统正是从这里开始的。Unix系统与软件开发环境共86页,您现在浏览的是第6页!创世纪:1969-1971DennisRitchie(Unix的合作发明者和C语言的发明者)、DougMcIlroy和其他一些同事,已经习惯了Multics环境下的交互计算方式,不愿意放弃这一能力。Thompson的PDP-7操作系统给了他们一把救生稻草。Ritchie评述道:“我们希望保留的不仅仅是一个良好的编程环境,还包括一种能够形成伙伴关系的系统。Unix系统与软件开发环境共86页,您现在浏览的是第7页!创世纪:1969-1971Unix的功,是1971年为贝尔实验室的专利部门进行“文字处理”的支持工作。Unix在贝尔实验室计算群落中的重要而永久地位由此确立,并且开创了Unix历史的下一个主旋律—与文档格式化、排版和通讯工具的紧密结合。Unix的轻装开发和方法上不拘一格的传统与生俱来。既使在最早期,PDP-7Unix已经拥有现今Unix的诸多共性,提供的编程环境也比当时读卡式批处理大型机的环境要舒服得多。Unix几乎可以称得上个能让程序员直接坐在机器旁,一边编程一边测试的联机系统。Unix的整个发展进程中都能吸引那些不堪忍受其它操作系统局限性的程序员自愿为它进行开发,这也一直是Unix不断拓展其能力的模式。Unix系统与软件开发环境共86页,您现在浏览的是第8页!出埃及记:1971-19801974年在《美国计算机通信》(CommunicationsoftheACM)上发表的一篇论文中[Ritchie-Thompson]次公开展示了Unix。文中作者描述了Unix前所未有的简洁设计,并报告了600多例Unix应用(这些都是安装在即便按照那个年代的标准,性能都算很低的机器上,但是(正如Ritchie和Thompson所写)“性能的局限不仅成就了经济性,而且鼓励了设计的简约”。)CACM论文发表后,全球各个研究实验室和大学都嚷着要亲身体验Unix。但根据1958年为解决反托拉斯案例达成的和解协议,AT&T(贝尔实验室的母公司)被禁止进入计算机相关的商业领域。所以,Unix不能够成为一种商品。实际上,根据和解协议的规定,贝尔实验室必须将非电话业务的技术许可给任何提出要求的人。于是,KenThompson开始默默回应那些请求,将磁带和磁盘一包包地寄送出去。Unix的发展迅速笼罩了一层反传统文化的氛围。Unix黑客们沉浸在同时编织未来和编写系统的狂欢中。Unix系统与软件开发环境共86页,您现在浏览的是第9页!出埃及记:1971-1980代Unix用户群一年前就已形成。此时,Unix用于支撑贝尔系统(BellSystem)的所有操作,并且传播到高校中,甚至远至澳大利亚—在那里,JohnLions对V6版源码的注释成了Unix内核的个正式文档《LionsUnix源代码分析》。许多资深的Unix黑客仍然珍藏着一份拷贝。《LionsUnix源代码分析》:Lions的书是地下出版界轰动一时的大事。由于侵犯版权等诸如此类的问题,该书不能在美国出版,所以大家就你拷给我、我拷给你。在那个时代,若没有Lions的书,你就当不成内核黑客。Unix系统与软件开发环境共86页,您现在浏览的是第10页!4TCP/IP和Unix内战:1980-1990在Unix的发展过程中,加州大学伯克利分校很早就成为唯一最重要的学术热点。伯克利分校早在1974年就开始了对Unix的研究,而KenThompson利用1975-1976的年休在此教学,更对Unix的研究注入了强劲活力。1977年,当时还默默无闻的伯克利毕业生BillJoy管理的实验室发布了版BSD。到1980年,伯克利分校成了为这个Unix变种积极作贡献的高校子网的核心。有关伯克利Unix(包括vi编辑器)的创意和代码不断从伯克利反馈到贝尔实验室。Unix系统与软件开发环境共86页,您现在浏览的是第11页!TCP/IP和Unix内战:1980-1990在1983年TCP/IP实现随Berkeley4.2版发布之前,Unix对网络的支持一直是最薄弱的。早期的以太网实验不尽人意。贝尔实验室开发了一个难看但还能用的工具UUCP,可在普通电话线上通过调制解调器来传送软件。UUCP可以在分布很广的机器之间转发邮件,并且(在1981年Usenet发明后)支持Usenet。在TCP/IP诞生之前,Unix和Internet文化尚未融合。但有了TCP/IP,一切都变了。ARPANET和Unix文化自边缘开始融合,这种发展最终使两者都免遭灭亡。Unix系统与软件开发环境共86页,您现在浏览的是第12页!TCP/IP和Unix内战:1980-1990还有一件事,那就是1982年SUN微系统公司的出世。SUN微系统公司的创立者BillJoy、AndreasBechtolsheim和VinodKhosla打算制造出一种内置网络功能的Unix梦幻机器。他们综合了斯坦福大学设计的硬件和伯克利分校开发的Unix,取得了辉煌的成功,开创了工作站产业。随着Sun公司越来越像传统商家,Unix大树上的这根分支源码来源的树枝逐渐枯萎。而当时没人在意这一点,因为伯克利分校仍然随同源码一起销售BSD;各个高校也依然同贝尔实验室交换代码,看起来Sun公司对Unix的商业化似乎再好不过了。此时,C语言也有望被选为Unix世界外的系统编程语言。仅仅五年左右的时间,C语言就几乎让机器码汇编语言完全失去了作用。到了九十年代早期,C和C++不仅统治了系统编程领域,而且成为了主流,到九十年代晚期,其他所有传统编程语言实际上都已经过时了。Unix系统与软件开发环境共86页,您现在浏览的是第13页!TCP/IP和Unix内战:1980-19901983年,美国司法部在针对AT&T的第二起反托拉斯诉讼中获胜,并拆分了贝尔系统,这时Sun公司己经取得了成功。这次判决将AT&T从1958年的禁止将Unix产品化的和解协议中解脱了出来。AT&T马上忙不迭地将UnixSystemV商业化(SCO)—这一举措差点扼杀了Unix。很多人认为这是一个好消息,没有人意识到,Unix的产业化会破坏Unix源码的自由交流。因为唯恐宫司上身,非法交易的Unix源码也越来越乏人问津。来自高校的贡献随之开始枯竭。更糟的是:刚刚进入Unix市场的几家大公司立马犯下了重大的战略性错误,其中之一就是试图通过产品差异化来寻求有利地位。这个策略导致了各种Unix接口的分歧,抹杀了Unix的跨平台兼容性,造成了Unix市场分割。Unix系统与软件开发环境共86页,您现在浏览的是第14页!TCP/IP和Unix内战:1980-19901985年,Intel枚386芯片下线了。它具有用平面地址空间寻址4G内存的能力。这是条大新闻,因为这意味着占据主导地位的intel家族终于有了一款无需作出痛苦妥协就能运行Unix的微处理器。对Sun公司和其它工作站厂商来说,这真是不祥之兆。同年,RichardStallman发表了GNU宣言(theGNUmanifesto),并发起了自由软件基金会(FreeSoftwareFoundation)。同年,在一项与此不相干的开发行动中,Xwindow系统的创始人发布了Xwindow的源码,而无需版税、约束和授权。这项决策的直接结果就是Xwindow成为不同Unix厂商之间合作的安全中立区,并挫败了专属的竞争对手,成为了Unix的图形引擎。

Unix系统与软件开发环境共86页,您现在浏览的是第15页!TCP/IP和Unix内战:1980-1990同样是在1986年,PC技术挣脱了IBM的掌控。最积极进取者康柏(Compaq),发布了款386机器,靠这张牌打败了IBM。虽然主频只有16MHz,但是跑起了Unix。这是款可以叫Unix机器的PC。这会儿已经能够想象Stallman的GNU项目可以和386机器配合而制造出Unix工作站,它比当时任何方案都要便宜一个数量级,但当时没人想到这步棋。AT&T和Sun的联盟以及以POSIX为核心的技术标准的发展,最终弥合了SystemV和BSDUnix之间的裂痕。当二线商家(IBM、DEC、HP等)创建开放软件基金会(OpensoftwareFoundation)并结成盟友和以“Unix国际”为代表的“AT&T/Sun轴心”对抗时,Unix内战的第二阶段开始了。Unix系统与软件开发环境共86页,您现在浏览的是第16页!5反击帝国:1991-19951990年,WilliamJolitz把BSD移植到了386机器上,这是黑暗中的缕曙光。向386移植BSD之所以可能,是由于伯克利黑客KeithBostic一定程度上受Stallman影响。但是,Jolitz在1991年底退出386-BSD项目,并毁掉了自己的成果。公认原因是他希望将其代码以源码形式无限制地发布,但当项目的企业赞助商选择了更专有的授权模式时,他火了。1991年8月,当时默默无闻的芬兰大学生LinusTorvalds宣布了Linux项目。据称Torvalds最主要的激励是学校里用的SunUnix太贵了。但是386-BSD直到1992年早些时候才下线,而此时Linux版已经发布好几个月了。

Torvalds还说,要是早知道有BSD项目,他就会加入BSD组而不是自己做一个。Unix系统与软件开发环境共86页,您现在浏览的是第17页!反击帝国:1991-1995到1993年末,Linux已经具备了Internet能力和X系统。整套GNU工具包从一开始就内置其中,以提供高质量的开发工具。除此之外,Linux好像一个魅力聚宝盆,囊括了二十年来分散在十几种专有Unix平台上的开源软件之精华。尽管当时Linux内核还是测试版(0.99),但稳定性已经让人刮目相看。Linux上软件之多、质量之高,已经达到一个产品级操作系统的水准。在旧学派的Unix开发者中,一部分脑筋活络的人开始注意到,做了多年的平价Unix之梦从一个意想不到的方向悄然成真。它既不是来自AT&T,也不是来自Sun,或者任何一个传统厂商,也不是出于学术界有组织的工作成果。它就这样从Internet的石头缝中跳了出来,浑然天成,以令人惊奇的方式重新规划拼装了Unix的传统元素的Linux。Unix系统与软件开发环境共86页,您现在浏览的是第18页!6黑客的起源和历史:1961-1995与Unix传统的历史交织在一起的则是另一种隐性文化,一种更难归类的文化。这种传达着一个有关美和优秀设计的价值体系:里面有它的江湖和侠客。这些人部分与Unix文化交迭,部分源于它处。人们把这种文化称为“黑客文化”,从1998年起,这种文化已经很大程度上和计算机行业出版界所称的“开源运动”重合了。Unix传统、黑客文化以及开源运动间的关系微妙而复杂。三种隐性文化背后往往是同一群人。但是,从1990年以来,Unix的故事很大程度上成了开源世界的黑客们改变规则、从保守的专有Unix厂商手中夺取主动权的故事。因此,今天Unix身后的历史,有一半就是黑客的历史。

Unix系统与软件开发环境共86页,您现在浏览的是第19页!互联网大融合与自由软件运动:

1981-19911983年后,随着BSD植入了TCP/IP,Unix文化和ARPANET文化开始融合。既然两种文化都由同一类人构成,一旦沟通环节到位,两种文化的融合就水到渠成。ARPANET黑客学到了C语言,用起了管道、过滤器和shell之类的行话。Unix程序员学到了TCP/IP,也开始互称“黑客”。1983年,木星项目的取消虽然葬送了PDP-10的前途,却加速了两种文化融合的进程。到1987年,这两种文化己经完全融合在一起。

Unix系统与软件开发环境共86页,您现在浏览的是第20页!通用公共许可证(GPL)为了追求这个目标,RMS将“自由软件(freesoftware)”这一术语大众化,这是将整个黑客文化的产品进行标识的首次尝试。他撰写了“通用公共许可证(GeneralPublicLicense,GPL)”。“GPL”是一种描述,也是为黑客进行文化标识的一个尝试。在RMS之前,黑客文化中的人们彼此当作“同路人”,说着同样的行话,但没人费神去争辩“黑客”是什么或者应该是什么。在他之后,黑客文化更加有自我意识。RMS的论点甚至影响了那些对其理论持怀疑态度的黑客的行为。然而,尽管他花了不下十五年的苦功夫,后1980黑客文化却从未统一在他的理想之下。Unix系统与软件开发环境共86页,您现在浏览的是第21页!Linux和实用主义者的应对:1991-19981991至1995年间,Linux从概念型的0.1版本内核原型,发展成为能够在性能和特性上均堪媲美专有Unix的操作系统,并且在连续正常工作时间等重要统计数据上打败了这些Unix中的绝大部分。1995年,Linux找到了自己的杀手级应用—开源的web服务器Apache。Apache出众地稳定和高效。很快,运行Apache的Linux机器成了全球ISP平台的首选。约60%多的网站选用Apache,轻松击败了其它专有型竞争对手。Torvalds未作的一件事就是提供新的思想体系—一套关于黑客行为的新理论基础或繁衍神话,以及一套吸引黑客文化圈内圈外人士的正面论述,以消弭RMS对知识产权的不友善。当有人(1997年)试图探寻为什么Linux开发没有在几年前崩溃时,偶然地填补了这个空白:“如果有足够多眼睛的关注,所有的bug都无处藏身”。这种新思潮在1998年初促使网景公司公布了其Mozilla浏览器的源码。事实证明,此事无论对黑客文化的历史还是对Unix的历史都是一个转折点。Unix系统与软件开发环境共86页,您现在浏览的是第22页!开源运动:1998年及之后Netscape开放源码的宣告和Linux的新近崛起产生的激励效应远远超越了Unix社区和黑客文化。许多其它(比如Java)开发者喜欢上了开源运动中的新生事物,于是就像此前跟随Netscape加入Java一样,又跟随它加入了Linux和开源运动。开源行动的积极分子热烈欢迎来自各个领域的移民潮。老一辈Unix人也开始认同新移民的梦想。唯一的例外是RichardStallman和自由软件运动。“开源”明显要用一个意识形态中性的公众标签来取代Stallman钟爱的“自由软件”。新标签无论对于历史上一贯反对“自由软件”的BSD黑客之类的团体,还是对于不愿在GPL是非之争中表态的人均能接受。Stallman尝试着接受这个术语,但随后又以其未能代表其思想的核心为由而排斥它。从此,自由软件运动坚持同“开源”划清界限,这也许成了2003年黑客文化中最重大的政治分歧。“开源”背后另一个(也是更重要的)意图是希望将黑客社区的方法以一种更亲和市场、更少对抗性的方式介绍给外部世界(尤其是主流商用市场)。幸运的是,在这方面,它取得了绝对成功,这也重新激起了人们对其根源—Unix传统—的兴趣。Unix系统与软件开发环境共86页,您现在浏览的是第23页!9Unix系统的演变(综述)自从1969年出生以来,至今,它已经历了一个从开发、发展、不断演变和获得广泛应用以致逐渐成为工作站等小型机以上系统的标准操作系统的演变过程。1972年开始,Unix系统已移植到PDP-10系列机上;1974年正式发表在美国计算机学会杂志ACM上;1975年发表的第6版中引入多道技术;1979年,贝尔实验室将其移植到类似于IBM370的32位机Interdata8/32上。从而公布了得到西部电气公司正式承认的Unix第7版。1980年贝尔实验室公布了为VAX-11/780机编写的操作系统Unix32V。Unix系统与软件开发环境共86页,您现在浏览的是第24页!1986年,UnixSystemV发展到了它的修订版Res2.1和Res3.0;BSD4.2步升级到BSD4.3Sunmicro公司开发了基于BSD4.2/4.3的SUN工作站操作系统SUNOS,Solaris。MIT又在Unix的基础上,开发出了近年来已成为工作站图形界面标准的X-window系统。至此各大型厂家的小型机以上的系统大都配置Unix或类Unix的操作系统。且各不相同,互相攻击。Unix系统与软件开发环境共86页,您现在浏览的是第25页!11Unix操作系统进一步发展在标准化基础上,UnixSystemVRes4.0版以及BSD4.3版等统一了用户界面的Unix操作系统相继推出,使Unix系统的开发工作进入了一个新的阶段:面向对象设计思想的引入;商用系统:IBMAIX、SUNSolaris、SCOUnixOpenServer、HPUX;Linux(百种以上):RedHat,Federa,Slackware,SuSE,Turbo,红旗,…Unix系统与软件开发环境共86页,您现在浏览的是第26页!13Unix系统结构Unix系统结构可分为三层。最内层为Unix核心(kernel)。最外层是用户程序。中间层则是shell命令解释层、实用程序、库函数等。Unix系统结构图如下:Unix系统与软件开发环境共86页,您现在浏览的是第27页!15Unix的编程界面Unix系统的另一个用户接口是编程接口—系统调用。Unix系统的系统调用以标准子程序形式给出供编程使用。系统调用的主要目的是使用户可以使用操作系统提供的有关设备管理、输入输出系统、文件系统和进程控制、通信以及存储管理等多方面的功能和服务,而不必了解系统程序的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统以及提高资源利用率的作用。Unix提供的系统调用有如下大类: 设备管理的系统调用 文件系统的系统调用 进程控制的系统调用 进程通信的系统调用 存储管理的系统调用 管理用系统调用Unix系统与软件开发环境共86页,您现在浏览的是第28页!1Linux的发展简史Linux是LinusTorvalds基于一种教学用Unix系统Minix上发展起来的。LinusTorvalds被称为Linux之父。在学习和开发过程中,非常努力,借助网络进行交流、学习。终于1991年9月17日将自己成果发表在FTP服务器上,供大家下载测试。LinusTorvalds最初想将该系统命名为FreeX,但根据AriLemke的建议,将该系统命名为Linux。这也是对LinusTorvalds的纪念。当时版本为0.01Unix系统与软件开发环境共86页,您现在浏览的是第29页!3软件发放的三种形式(1)商业软件(CommercialSoftware)先购买后使用,典型代表是Microsoft的Windows;(2)共享软件(ShareSoftware)先试用后付费,通常不提供源代码,到期未购买仍在继续使用者被认为是侵权;(3)自由软件(FreeSoftware)在发布时向用户提供源代码。通常用户通过网络等多种渠道而得到发布版本。如果用户付费的话将得到完美的服务和文档。Unix系统与软件开发环境共86页,您现在浏览的是第30页!5Linux的发展从0.12版始,Torvalds把Linux奉献给了自由软件,奉献给了GNU。铸造了自由软件也包括Linux的辉煌。现在,全球计算机厂商的巨头们都纷纷感受到了Linux的魅力:IMB、HP、DELL、ORACLE、INTEL都提供了对Linux的支持,Linux走进了很多大型公司和企业。Unix系统与软件开发环境共86页,您现在浏览的是第31页!7为什么需要Linux掌握核心技术,促进技术发展打破技术垄断,保护国家安全降低使用成本,提高经济效益Unix系统与软件开发环境共86页,您现在浏览的是第32页!9Linux的发行版本介绍Linux继承了Unix版本的特点,版本号有点长。Linux内核版本号由3组数字构成,以“.”分隔。组是主版本号;第二组是次版本号,说明主版本的第几次重大更新,偶数代表稳定版本,奇数表示测试版本。稳定版本只修改错误不增加功能。测试版本会不断地增加功能,直到经测试形成稳定版本;第三组是当前版本的错误修订次数。如Linux2.4.24Unix系统与软件开发环境共86页,您现在浏览的是第33页!11Linux发行套件Linux的基础是内核,发行版内容包括:安装程序、内核系统、管理工具、开发系统等。发布光盘上包括几百个软件包,按功能分有:系统安装与系统引导管理程序用户界面X-Windows系统管理网络与网络服务文件和打印服务应用程序开发工具娱乐与多媒体等Unix系统与软件开发环境共86页,您现在浏览的是第34页!13Linux应用简介办公系统互联网多媒体、娱乐与游戏图形和图象处理网络服务数据库编程与开发Unix系统与软件开发环境共86页,您现在浏览的是第35页!1Unix的文化工程和设计的每个分支都有自己的技术文化。

Unix确实有它自己的文化;有独特的编程艺术;有一套影响深远的设计哲学。理解这些传统,会使你写出更好的软件,即使你是在非Unix平台上开发。Unix系统与软件开发环境共86页,您现在浏览的是第36页!Unix应用范围之广简直令人难以置信。没有哪一种操作系统能像Unix那样,能同时在作为研究工具、定制技术应用的友好宿主机、商用成品软件平台和互联网技术的重要部分等各个领域都大放异彩。从Unix诞生之日起,各种预言就伴随着它,说Unix必将衰败,或者被其它操作系统挤出市场。可是在今天,化身为Linux、BSD、Solaris、MacOSX以及好几个其它变种的Unix,却显得前所未有的强大。Unix系统与软件开发环境共86页,您现在浏览的是第37页!3Unix之得1、开源软件2、跨平台可移植性和开放标准3、Internet和万维网4、开源社区5、彻头彻尾的灵活性6、UnixHack之趣7、Unix的经验到处可适用Unix系统与软件开发环境共86页,您现在浏览的是第38页!DougMcIlroy如是说Unix管道的发明人、Unix传统的奠基人之一DougMcIlroy曾经说过:1、让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。2、假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输出中不要有无关的信息。避免使用严格的分栏格式和二进制格式输入。不要坚持使用交互式。3、尽可能早地将设计和编译的软件投入试用,哪怕是操作系统也不例外,理想情况下,应该是在几星期内。对拙劣的代码别犹豫,扔掉重写。4、优先使用工具而不是拙劣的帮助来减轻编程任务的负担。工欲善其事,必先利其器。后来他这样总结道:Unix哲学是这样的:一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。Unix系统与软件开发环境共86页,您现在浏览的是第39页!拿不准就穷举KenThompson—Unix最初版本的设计者和实现者,对Pike的原则4作了强调:拿不准就穷举。Unix系统与软件开发环境共86页,您现在浏览的是第40页!Unix哲学的概括(续)10.通俗原则:接口设计避免标新立异。11.缄默原则:如果一个程序没什么好说的,就沉默。12.补救原则:出现异常时马上退出并给出足够信息。13.经济原则:宁花机器一分,不花程序员一秒。14.生成原则:避免手工hack,尽量编写程序去生成程序。15.优化原则:雕琢前先要有原型,跑之前先学会走。16.多样原则:决不相信所谓“不二法门”的断言。17.扩展原则:设计着眼未来,未来总比预想来得快。Unix系统与软件开发环境共86页,您现在浏览的是第41页!5应用Unix哲学在Unix世界中,这些原则都直接来自于实践。以下列举的只是部分内容:只要可行,一切都应该做成与来源和目标无关的过滤器。数据流应尽可能文本化(便于使用标准工具来查看和过滤)。数据库部署和应用协议应尽可能文本化(便于阅读和编辑)。复杂的前端(用户界面)和后端应该泾渭分明。如果可能,用C编写前,先用解释性语言搭建原型。当且仅当只用一门语言编程会提高程序复杂度时,混用语言编程才比单一语言编程来得好。宽收严发(对接收的东西要包容,对输出的东西要严格)。过滤时,不需要丢弃的信息决不丢。小就是美。在确保完成任务的基础上,程序功能尽可能少。Unix系统与软件开发环境共86页,您现在浏览的是第42页!7Unix之失对于一个始于1969年的设计来说,在Unix设计中居然很难找到硬伤,这着实令人称奇。Unix的遗风:原本是为技术人员设计的操作系统;最终用户永远比操作系统设计人员更清楚他们究竟需要什么。Unix文件在字节层次以上再无结构可言。文件删除了就没法恢复。Unix的安全模型公认地太过原始。作业控制有欠精致。命名方式非常混乱。Unix系统与软件开发环境共86页,您现在浏览的是第43页!策略与机制如果只看眼前的话,Unix的这种自由放纵主义风格会让它失去很多非技术型用户。但从长远考虑,最终你会发觉这个“错误”换来至关重要的优势:策略相对短寿,而机制才会长存。只提供机制不提供方针的哲学能使Unix长久保鲜:而那些被束缚在一套方针或界面风格内的操作系统,也许早就从人们的视线中消失了。贝尔实验室的DickHamming在1950年代使树立了此信条:尽管计算机稀缺昂贵,但是开放式的计算模式,即客户可以为系统写出自己的应用程序,这一点势在必行,因为“用错误的方式解决正确的问题,总比用正确的方法解决错误的问题好”。Unix系统与软件开发环境共86页,您现在浏览的是第44页!课程安排及学习方式知识点及理论学时(38)Unix/Linux基本知识Unix/Linux管理与配置Linux网络服务及管理Unix系统软件开发环境实验(30)Unix/Linux基础与基本操作Unix/Linux管理与配置Unix系统软件开发理论与实践相结合Unix/Linux知识学习实践与应用为就业和今后发展打基础Unix系统与软件开发环境共86页,您现在浏览的是第45页!章简介Unix/Linux发展历程Unix/Linux的特点与发展趋势Unix/Linux的厂家与版本Unix/Linux应用简介Unix的文化与哲学Unix系统与软件开发环境共86页,您现在浏览的是第46页!1Unix的起源及历史1969-1995Unix的祖辈是小而简单的兼容分时系统(CTSS:CompatibleTime-SharingSystem),也算是曾经实施过的分时系统的代或者第二代了。Unix的父辈是颇具开拓性的Multics项目,该项目试图建立一个具备众多功能的informationutility,能够很漂亮地支持大群用户对大型计算机的交互式分时使用。可是,Multics设计得太完美了,最后因不堪自身重负而崩溃了。但Unix却正是从它的废墟中破壳而出的。最初的Unix就是一个第三系统。小型实验原型系统的后继产品往往备受令人讨厌的“第二版效应”折磨。由于迫切希望把所有首次开发时遗漏的功能都添加进去,往往导致设计十分庞大、过于复杂。其实,还有一个因不常遇到而鲜为人知的“第三版效应”:有时候,在第二系统不堪自身重负而崩溃之后,有可能返朴归真,走上正道。Unix系统与软件开发环境共86页,您现在浏览的是第47页!创世纪:1969-1971当贝尔实验室(BellLabs)从Multics研究联盟中退出时,KenThompson带着从Multics激发的灵感留了下来。他甚至没能留下一台机器来玩自己编写的“星际旅行(SpaceTravel)”。Unix就在一台废弃的PDP-7小型机上问世了。这台PDP-7成为了“星际旅行”的游戏平台和Thompson关于操作系统设计思路的试验场。Unix系统与软件开发环境共86页,您现在浏览的是第48页!创世纪:1969-1971Thompson和Ritchie“星际旅行”的实现引起了关注。Thompson和Ritchie为支持游戏开发而在PDP-7上编制的实用程序成了Unix的核心。直到1970年才产生Unix这个名字。最初的缩写是“UNICS”(UniplexedInformationandComputingService),Ritchie后来称之为“一个有点反叛Multics味道的双关语”,因为它的前身是Multics(MULTiplexedInformationandComputingService)。Unix系统与软件开发环境共86页,您现在浏览的是第49页!3出埃及记:1971-1980最初的Unix用汇编语言写成,应用程序用汇编语言和解释型语言B混合编写。B语言的优点在于小巧,能在PDP-7上运行,但是作为系统编程语言还不够强大,所以DennisRitchie给它增加了数据类型和结构。1971年起从B语言进化出了C语言。1973年,Thompson和Ritchie成功地用C语言重写了整个Unix系统。这是一个大胆的举措—那时为了最大程度地利用硬件性能,系统编程都通过汇编器来完成。与此同时,可移植操作系统的概念几乎鲜为人知。可是有了C之后,可移植操作系统“已经”变成了现实。1979年,Ritchie这么写:“Unix的成功很大程度上源自其以高级语言作为表述方式所带来的可读性、可改性和可移植性”。Unix系统与软件开发环境共86页,您现在浏览的是第50页!出埃及记:1971-1980那些日子的兴奋从DouglasComer的话语中可见一斑:许多大学都对Unix作出过贡献:多伦多大学计算机系发明了200dpi的打印机/绘图仪,并且开发了用打印机模拟照相排版机的软件;耶鲁大学的计算机专家和学生们改进了Unix的shell;普渡大学的电子工程系对Unix的性能作了重要改进,推出了支持大量用户的Unix版本,还推出了最早的Unix网络之一;加州大学伯克利分校的学生开发了新shell和许多小型实用工具。1970年代后期贝尔实验室发布UnixV7版本时,该系统解决了许多部门的运算问题,也综合了许多高校的创意,最终诞生了一个更强大的系统。思想潮流开始了新一轮循环,从学术界流向工业实验室,然后又回到学术界,最后流向了不断增加的商业用户。

现代Unix程序员公认的个完全意义上的Unix是1978年发布的V7版本。Unix系统与软件开发环境共86页,您现在浏览的是第51页!出埃及记:1971-1980Unix产业也初露端倪。1978年,个Unix公司(theSantaCruzOperation,SCO)成立,同年售出个商用C编译器。1980年,西雅图一家还不起眼的软件公司—微软也加入到Unix游戏中,他们把AT&T版本移植到微机上,取名为XENIX来销售。但是微软把Unix作为一个产品的热情并没有持续多久(尽管直到1990年左右,微软的大部分内部开发工作都用的是Unix)。Unix系统与软件开发环境共86页,您现在浏览的是第52页!TCP/IP和Unix内战:1980-19901980年,国防部高级研究计划局(DARPA,DefenseAdvancedResearchProjectsAgency)需要请人在Unix环境下的VAX机上实现全新的TCP/IP协议栈。DARPA选择了伯克利Unix作为平台—显然是因为可以毫无阻碍地拿到它的源码。伯克利计算机科学研究组当时拥有天时地利,还有最强大的开发工具;而DARPA的合作无疑成为Unix历史上自诞生以来最关键的转折点。Unix系统与软件开发环境共86页,您现在浏览的是第53页!TCP/IP和Unix内战:1980-1990不过,事情不问题一帆风顺的,起因是两个毫不相干的灾难:微软的兴起和AT&T的拆分。1981年,微软同IBM就新型IBMPC达成了历史性交易。比尔.盖茨从西雅图计算机产品公司(SCP)买下了QDOS(QuickandDirtyOperatingSystem)。QDOS是SCP公司的TimPaterson花六个星期凑出来的CP/M翻版。盖茨对Paterson和SCP公司隐瞒了同IBM的交易,以五万美元的价格买下了所有版权。后来,盖茨又说服了IBM公司允许微软将MS-DOS从硬件中剥离出来单独出售。接下来的十年中,盖茨利用这个非他所写的程序变成了超级亿万富翁,精明的商业策略更是让微软垄断了桌面计算机市场。那时,没什么人能看出微软会多么成功。因为IBMPC-1硬件条件不足以来运行Unix,所以Unix人群几乎没在乎这个产品。尽管,DOS2.0光芒能盖过CP/M,主要因为微软的合创者PaulAllen在DOS2.0中融入了一些Unix的特征,包括子目录和管道等。作为产品的XENIX很快就弃而不用了,最终卖给了SCO公司。Unix系统与软件开发环境共86页,您现在浏览的是第54页!TCP/IP和Unix内战:1980-19901983年,在DEC公司取消PDP-10的后继机型的“木星”(Jupiter)开发计划后,运行Unix的VAX机器开始代之成为主流的互联网机器,直到被Sun工作站取代。到1985年,已有25%左右的VAX用上了Unix。更主要的是,人工智能实验室以PDP-10为中心的黑客文化的消亡激发了RichardStallman开始编制GNU—一个完全自由的Unix克隆版本。到1983年,IBMPC可使用不下六种的Unix通用操作系统:uNETix、Venix、Coherent、QNX、Idis和运行在SritekPC子板上的移植版本,但是SystemV和BSD版本仍然没有Unix移植。IBMPC上的这些Unix通用操作系统无一取得显著的商业成功,但表明了市场迫切需求运行Unix的低价硬件。Unix系统与软件开发环境共86页,您现在浏览的是第55页!TCP/IP和Unix内战:1980-1990事实上,AT&T拆分后的数年内,Unix社区却在忙着Unix大战的阶段—SystemVUnix和BSDUnix之间的内部争吵。争吵分成不同的层面,有些属于技术层面,也有文化层面。AT&T拆分当年发生的另一件事对Unix产生了更深远的影响。程序员兼语言学家LarryWall发明了patch实用程序。这意味着Unix开发人员之间可通过传送补丁进行协作,而不必传送整个代码文件。这种方式在1990年后让Unix获得新生运用这个工具,基于共有源码库的开发流可以分开、并行、最后合拢。patch程序比其它任何单一工具都更能促进Internet上的协作开发。现在的所有操作系统无一不支持patch实用程序。Unix系统与软件开发环境共86页,您现在浏览的是第56页!TCP/IP和Unix内战:1980-1990以调解SystemV和BerkeleyAPI为目标的严肃的标准化工作始于1983年。随之为1985年IEEE支持的POSIX标准。这些标准描述了BSD和SVR3(SystemVRelease3)调用的交集,综合了伯克利出色的信号处理和作业控制,以及SVR3的终端控制。所有后续的Unix标准核心都加入了POSIX,后续开发的各种Unix版本也严格遵循这个标准。后来的现代Unix核心API唯一主要的补充就是BSD套接字。1986年,LarryWall开始开发Perl语言,现在最广泛使用的开源脚本语言。1987年初,GNUC编译器的版问世,到1987年底,GNU工具包的核心部分—编辑器、编译器、调试器以及其它基本的开发工具等一一就位。同时,Xwindow系统也开始在相对低廉的工作站上露面了。这些因素都为20世纪90年代的Unix开源发展提供了利器。Unix系统与软件开发环境共86页,您现在浏览的是第57页!TCP/IP和Unix内战:1980-1990这段时间中,微软从家庭和小型商用市场赚了数十亿美元的钱,而争战不休的Unix各方却从未决意涉足这些市场。1990年,Windows3.0巩固了微软的统治地位,为微软荡平并最终垄断桌面应用市场创造了条件。1989年到1993年是Unix的中世纪。当时,似乎Unix社群所有的梦想都破灭了。相互争斗的战事已使专有Unix产业衰落得像个吵闹的肉店,无力振起挑战微软的雄心。GNU项目没能开发出自由的Unix内核,尽管从1985年GNU就不断作出此承诺。PC技术被无情地商业化了。1970年代的Unix黑客先锋们人到中年,步履开始蹒跚。硬件便宜了,但Unix还是太贵。人们幡然醒悟:过去的IBM垄断让位于现在的微软垄断,而微软设计糟糕的软件像浊流一样,围着我们越涨越高。Unix系统与软件开发环境共86页,您现在浏览的是第58页!反击帝国:1991-1995又过了两年,经历了1993-1994年的互联网大爆炸,Linux和开源BSD的重要性才为整个Unix世界所了解。与此前各种版本的Unix开发相比,Linux和BSD的开发相当不同。它们植根于互联网,依赖分布式开发和patch工具,通过Email和Usenet新闻组招募开发者。互联网的大规模市场推广,既增加了潜在开发者的数量,又降低了分布式开发的处理成本,这些影响可从XFree86之类的项目上看出。1992年诞生的版XFree86赋予了Linux和BSD作为一直缺乏的图形用户界面引擎。XFree86利用Internet为中心的模式建立了一个比官方X联盟更有效的开发组织。Unix系统与软件开发环境共86页,您现在浏览的是第59页!反击帝国:1991-1995另一方面,商业运作继续进行。1992年AT&T抛售了其手中Sun公司的股份,然后在1993年把Unix系统实验室(UnixSystemsLaboratories)卖给了Novell;Novell又于1994年将Unix商标转手给X/Open标准组(X/openstandardsgroup);同年AT&T和Novell加入了OSF(开放软件基金会),Unix之战尘埃落定。1995年,SCO从Novell手中买下了UnixWare(以及最初Unix源码的权利)。1996年,X/Open和OSF合并,创立了一个大型Unix标准组。2000年SCO把UnixWare和原创的Unix源码包出售给了Caldera(一家Linux发行商)。整个产业变迁终告结束。但1995年后,Unix的故事就成了开源运动的故事。Unix系统与软件开发环境共86页,您现在浏览的是第60页!游戏在校园的林间:1961-1980黑客文化的根源可以追溯到1961年,这一年MIT购买了台PDP-10小型机,吸引了一帮好奇的学生带着一种好玩的心态摆弄这台设备。他们最著名的成就是“太空大战(SpaceWar)”1969年后,MITAI实验室和斯坦福、BBN公司、卡内基.梅隆大学以及其它顶级计算机科学研究实验室通过早期的ARPANET联上了网。研究人员和学生们次尝到了快速网络联接消除了地域限制的甜头,一种类似共享文化的东西开始成形。从技术性而言,早期的黑客文化大都基于PDP-10小型机。从社会性而言,他们年轻,天资过人,献身编程达到痴迷的地步,决不墨守成规—后来被人们唤做“极客(geek)”。协作式开发和源码共享是Unix程序员的法宝。Unix系统与软件开发环境共86页,您现在浏览的是第61页!RichardM.Stallman(RMS)RichardM.Stallman早在1970年代晚期就已经证明他是当时最有能力的程序员之一。Emacs编辑器就是他众多发明中的一项。1983年木星项目的取消仅仅只是宣告了麻省理工学院人工智能实验室文化的最终解体。但RMS觉得自己被逐出了黑客的伊甸园,他把这一切都归咎于专有软件。于是1983年,Stallman创建了GNU项目,致力于编一个完全自由的OS,实现一个仿Unix操作系统成了他追求的战略目标。RMS早期的捐助者大都是新踏入Unix土地的老牌ARPANET黑客,他们对代码共享的使命感甚至比那些有更多Unix背景的人更强烈。1985年,RMS发表了GNU宣言。在宣言中,他有意从1980年之前的ARPANET黑客文化价值中创造出一种意识形态—包括前所未见的政治伦理主张、自成体系而极具特色的论述以及激进的改革计划。RMS的目标是将后1980的松散黑客社群变成一台有组织的社会化机器以达到一个单纯的革命目标。RMS宣言引发的争论至今仍存于黑客文化中。RMS这个魅力超凡又颇具争议的人物本身已经成为了一个文化英雄。Unix系统与软件开发环境共86页,您现在浏览的是第62页!Linux和实用主义者的应对:1991-1998LinusTorvalds巧妙地跨越了GPL和反GPL的派别之争。他利用GNU工具包搭起了自创的Linux内核,用GPL的传染性质保护它,但拒绝认同RMS许可协议反映的思想体系。Torvalds明确表示他认为自由软件通常更好,但他偶尔也用专有软件。即使在他自己的事业中,他也拒绝成为狂热分子。这一点极大地吸引了大多数黑客。Torvalds令人愉快的实用主义及灵活而低调的行事风格,促使黑客文化在1993-1997年间取得了一连串令人惊奇的胜利,不仅仅在技术上的成功,还让围绕Linux操作系统的发行、服务和支持产业有了坚实的开端。结果,他的名望和影响也一飞冲天,成了互联网时代的英雄,Linux之父。到1995年为止,他只用了四年时间就在整个黑客文化界声名显赫,而RMS为此花了十五年。但Torvalds的成功离不开RMS的奠基工作。Unix系统与软件开发环境共86页,您现在浏览的是第63页!7开源运动:1998年及之后到1998年Mozilla源码公布的时候,黑客社区其实算是一个众多派系或部落的松散集合,包括了Richardstallman的自由软件运动、Linux社区、Perl社区、Apache社区、BSD社区、X开发者、互联网工程工作组(IETF),还有很多其它组织。这些派系相互交叠,一个开发者很可能同时隶属两个或更多组织。一个部落的凝聚力可能来自他们维护的代码库,或是一个或多个有着超凡影响力的领导者,或是一门语言、一个开发工具,或是一个特定的软件许可,或是一种技术标准,或是基础结构某个部分的管理组织。1995年后,Linux扮演了一个特殊的角色:既是社区内多数软件的统一平台,又是黑客中最被认可的品牌。Linux社区随之显现了兼并其它亚部落的倾向—甚至包括争取并吸纳一些专有Unix相关的黑客派系。整个黑客文化开始凝聚在一个共同目标周围:尽力推动Linux和集市(bazaar)开发模式向前发展。这是因为后1980黑客文化已经深深植根于Unix,新目标成了Unix传统争取胜利的不成文纲要。Unix系统与软件开发环境共86页,您现在浏览的是第64页!8Unix的历史教训在Unix历史中,最大的规律是:距开源越近就越繁荣。任何将Unix专有化的企图,只能陷入停滞和衰败。对今后的教训就是:过度依赖任何一种技术或者商业模式都是错误的。相反,保持软件及其设计传统的的灵活性才是长存之道。Unix要繁荣,就必须继续采用吸纳低价而灵活的方案的诀窍。借此,我们可以想想微软,想想我们。Unix系统与软件开发环境共86页,您现在浏览的是第65页!1982年,AT&T又相继公布了UnixSystemE的3.0,4.0和5.0等版本。从此,Unix系统的发展走上了以AT&T和伯克利分校二者为主开发的道路。1983年AT&T推出了UnixSystemV和几种微处理机上的Unix。同年,伯克利分校公布了BSD4.2版。1984年,IBM公司公布了IBM/PC上的Unix。1985年微软将Unix改造为用于16位PC机操作系统Xenix.1985年,cray公司公布了用于超大型机的Unix系统。Unix系统与软件开发环境共86页,您现在浏览的是第66页!10Unix系统的标准化在Unix系统不断发展的背景下,美国IEEE(美国电气及电子工程师学会InstituteofElectricalandElectronicsEngineers)组织成立了POSIX(可移植操作系统接口标准PortableOperationSystemInterface)委员会专门从事Unix的标准化工作。POSIX委员会完成了Unix系统标准化,并按其定义重新实现Unix。标准Unix意味着一个可以运行Unix应用软件的平台,它为用户提供一个标准的用户界面,而不在于系统内部如何实现。Unix系统与软件开发环境共86页,您现在浏览的是第67页!12Unix系统的特点(1)Unix系统是一个可供多用户同时操作的会话式分时操作系统。(2)两种用户友好界面或接口:命令和系统调用。(3)Unix系统具有一个可装卸的分层树型结构文件系统。该文件系统具有使用方便和搜索简单等特点。(4)Unix系统把所有外部设备都当作文件,并分别赋予它们对应的文件名。(5)Unix系统核心程序的绝大部分源代码和系统上的支持软件都用C语言编写。且Unix系统是一个开放式系统。(6)丰富的开发工具、强大的网络功能和稳定的系统性能。Unix系统与软件开发环境共86页,您现在浏览的是第68页!14Unix的命令控制界面Unix具有丰富的操作命令,这些命令都通过shell提供给用户使用。shell是Unix系统为用户提供的键盘命令解释程序的集合,是人机交互的桥梁;Unixshell命令每个都有返回值,输入输出可以重定向,输出结果也直接赋给shell变量,为用户提供了功能强大的shell编程功能;Unix通过shell向用户提供丰富的命令。根据功能,可将命令划分为基本类和特殊类两种。Unix也提供有窗口图形界面(X-Window)。Unix系统与软件开发环境共86页,您现在浏览的是第69页!1.2Linux的发展简史Unix系统与软件开发环境共86页,您现在浏览的是第70页!2Linux的开放源代码规则(1)任何人可以免费使用该操作系统,但不得将其作为商品出售;(2)任何人可以对该操作系统进行修改,但必须将其修改以源代码形式公开;(3)如不同意以上规定,任何人无权对其进行复制或从事任何行为。Unix系统与软件开发环境共86页,您现在浏览的是第71页!4GNU,GPLRichardStallman于1983年9月27日公开发起的,它的目标是创建一套完全自由的Unix-兼容的操作系统。为了保证GNU软件可自由地“使用、复制、修复、修改和发布”,所有GNU软件必须遵守GNU的通用许可证GPL(GNUGeneralPublicLicense,简称GNUGPL)。GNUGPL创造性的提出了“反版权”(Copyleft),这是一个不同于商业软件“版权所有”(Copyright)的法律概念,它不否认版权,也不反对发布软件时收取费用或取得利益。它的核心是必须把发布者的一切权利给予接受者。必须保证接受者能同时或通过其它渠道得到源程序,并将GNUGPL条款附加到软件的版权声明中,使接受者知道自己的权利。GNUGPL本身也是受法律保护的版权声明。Unix系统与软件开发环境共86页,您现在浏览的是第72页!6Linux操作系统的特点Linux是兼容绝大部分Unix标准、具有Unix风格和特点的操作系统;其最大的优势是遵循GNUGPL,是开放式源代码的自由软件,是计算机爱好者的自己的操作系统。Linux具有Xwindows桌面系统,兼有Windows作风格。Unix系统与软件开发环境共86页,您现在浏览的是第73页!8Linux的技术特点自由开放的Linux代码强大的图形操作界面强大的网络功能真正多用户多任务的操作系统支持多种硬件平台的操作系统完整的开发平台Unix系统与软件开发环境共86页,您现在浏览的是第74页!10Linux系统结构Linux是在Unix系统基础上发展起来的;Linux系统结构参见Unix系统;多用户,多任务,支持多线程;动态链接库支持;嵌入式、组件开发。Unix系统与软件开发环境共86页,您现在浏览的是第75页!12目前常见的Linux发行版Linux版本在百种以上,常见的如下:RedHatLinuxMandarkeLinuxDebianLinuxSuSELinuxSlackwareLinux红旗Linux冲浪XteamLinuxTurboLinuxUnix系统与软件开发环境共86页,您现在浏览的是第76页!1.3Unix文化与哲学Unix系统与软件开发环境共86页,您现在浏览的是第77页!2Unix的生命力Unix诞生于1969年,此后便一直应用于生产领域。按照计算机工业的标准,那已经是好几个地质纪年前的事了。在现今所有分时系统中,也只有IBM的VM/CMS敢说它比Unix资格更老,但是Unix机器的服务时间却是VM/CMS的几十万倍。事实上,在Unix平台上完成的计算量可能比所有其它分时系统加起来的总和还要多。Unix比其它任何操作系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论