




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Unix系统与软件开发环境,教学目的与考核方式,目的:带领同学们进入一个计算机应用与开发的新领域:Unix/Linux学完后能胜任Unix/Linux领域的管理与开发工作考核方式:考试(笔试+机试)学时:周4(218周)课程内容:Unix系统与软件开发环境Unix/Linux系统知识(请准备笔记本,做好笔记)。开发部分,参考Unix环境高级编程请做好笔记。要做好实验,要通过实验理解教材。,关于教材,没有非常合适的教材使用:Linux操作系统参考书Unix环境高级编程,WRichardStevens,尤晋元等译,机械工业Linux程序设计,NeilMatthew等编,杨晓云等译,机械工业,人民邮电Unix系统编程,KayA.Ribbins等编,陈娟等译,机械工业Unix编程艺术,EricS.Raymond等编,姜宏等译,电子工业RedHatLinux9应用基础教程,梁如军,机械工业Linux下的C编程,贾明等编,人民邮电Unix网络编程,WRichardStevens,施振川等译,清华大学,课程安排及学习方式,知识点及理论学时(38)Unix/Linux基本知识Unix/Linux管理与配置Linux网络服务及管理Unix系统软件开发环境实验(30)Unix/Linux基础与基本操作Unix/Linux管理与配置Unix系统软件开发理论与实践相结合Unix/Linux知识学习实践与应用为就业和今后发展打基础,课程概览,简介与入门知识shell与命令界面文件系统及管理用户与口令管理进程管理Unix系统常用命令设备管理网络、网络服务及应用内核与系统管理系统安装shell编程文件I/O标准I/O高级I/O文件和目录进程关系、信号与进程控制进程间通讯(IPC)C/S,C/M/S与守候进程,第一章简介,Unix/Linux发展历程Unix/Linux的特点与发展趋势Unix/Linux的厂家与版本Unix/Linux应用简介Unix的文化与哲学,1.1Unix发展简史,1Unix的起源及历史1969-1995,Unix的祖辈是小而简单的兼容分时系统(CTSS:CompatibleTime-SharingSystem),也算是曾经实施过的分时系统的第一代或者第二代了。Unix的父辈是颇具开拓性的Multics项目,该项目试图建立一个具备众多功能的informationutility,能够很漂亮地支持大群用户对大型计算机的交互式分时使用。可是,Multics设计得太完美了,最后因不堪自身重负而崩溃了。但Unix却正是从它的废墟中破壳而出的。最初的Unix就是一个第三系统。小型实验原型系统的后继产品往往备受令人讨厌的“第二版效应”折磨。由于迫切希望把所有首次开发时遗漏的功能都添加进去,往往导致设计十分庞大、过于复杂。其实,还有一个因不常遇到而鲜为人知的“第三版效应”:有时候,在第二系统不堪自身重负而崩溃之后,有可能返朴归真,走上正道。,2创世纪:1969-1971,Unix于1969年诞生于贝尔实验室的计算机科学家KenThompson的头脑中。(Thompson曾经是Multics项目的研究人员。)当时代计算机硬件的原始程度:那时最强大的机器所拥有的计算能力和内存还不如现在一个普通的手机。所谓的大硬盘容量也不超过1M。视频显示终端才刚刚起步,六年以后才得到广泛应用。最早分时系统的标准交互设备就是ASR-33电传打字机。Unix命令简洁、“少说多做”的传统正是从这里开始的。,创世纪:1969-1971,当贝尔实验室(BellLabs)从Multics研究联盟中退出时,KenThompson带着从Multics激发的灵感留了下来。他甚至没能留下一台机器来玩自己编写的“星际旅行(SpaceTravel)”。Unix就在一台废弃的PDP-7小型机上问世了。这台PDP-7成为了“星际旅行”的游戏平台和Thompson关于操作系统设计思路的试验场。,创世纪:1969-1971,DennisRitchie(Unix的合作发明者和C语言的发明者)、DougMcIlroy和其他一些同事,已经习惯了Multics环境下的交互计算方式,不愿意放弃这一能力。Thompson的PDP-7操作系统给了他们一把救生稻草。Ritchie评述道:“我们希望保留的不仅仅是一个良好的编程环境,还包括一种能够形成伙伴关系的系统。,创世纪:1969-1971,Thompson和Ritchie“星际旅行”的实现引起了关注。Thompson和Ritchie为支持游戏开发而在PDP-7上编制的实用程序成了Unix的核心。直到1970年才产生Unix这个名字。最初的缩写是“UNICS”(UniplexedInformationandComputingService),Ritchie后来称之为“一个有点反叛Multics味道的双关语”,因为它的前身是Multics(MULTiplexedInformationandComputingService)。,创世纪:1969-1971,Unix的第一功,是1971年为贝尔实验室的专利部门进行“文字处理”的支持工作。Unix在贝尔实验室计算群落中的重要而永久地位由此确立,并且开创了Unix历史的下一个主旋律与文档格式化、排版和通讯工具的紧密结合。Unix的轻装开发和方法上不拘一格的传统与生俱来。既使在最早期,PDP-7Unix已经拥有现今Unix的诸多共性,提供的编程环境也比当时读卡式批处理大型机的环境要舒服得多。Unix几乎可以称得上第一个能让程序员直接坐在机器旁,一边编程一边测试的联机系统。Unix的整个发展进程中都能吸引那些不堪忍受其它操作系统局限性的程序员自愿为它进行开发,这也一直是Unix不断拓展其能力的模式。,3出埃及记:1971-1980,最初的Unix用汇编语言写成,应用程序用汇编语言和解释型语言B混合编写。B语言的优点在于小巧,能在PDP-7上运行,但是作为系统编程语言还不够强大,所以DennisRitchie给它增加了数据类型和结构。1971年起从B语言进化出了C语言。1973年,Thompson和Ritchie成功地用C语言重写了整个Unix系统。这是一个大胆的举措那时为了最大程度地利用硬件性能,系统编程都通过汇编器来完成。与此同时,可移植操作系统的概念几乎鲜为人知。可是有了C之后,可移植操作系统“已经”变成了现实。1979年,Ritchie这么写:“Unix的成功很大程度上源自其以高级语言作为表述方式所带来的可读性、可改性和可移植性”。,出埃及记:1971-1980,1974年在美国计算机通信(CommunicationsoftheACM)上发表的一篇论文中Ritchie-Thompson第一次公开展示了Unix。文中作者描述了Unix前所未有的简洁设计,并报告了600多例Unix应用(这些都是安装在即便按照那个年代的标准,性能都算很低的机器上,但是(正如Ritchie和Thompson所写)“性能的局限不仅成就了经济性,而且鼓励了设计的简约”。)CACM论文发表后,全球各个研究实验室和大学都嚷着要亲身体验Unix。但根据1958年为解决反托拉斯案例达成的和解协议,AT(2)共享软件(ShareSoftware)先试用后付费,通常不提供源代码,到期未购买仍在继续使用者被认为是侵权;(3)自由软件(FreeSoftware)在发布时向用户提供源代码。通常用户通过网络等多种渠道而得到发布版本。如果用户付费的话将得到完美的服务和文档。,4GNU,GPL,RichardStallman于1983年9月27日公开发起的,它的目标是创建一套完全自由的Unix-兼容的操作系统。为了保证GNU软件可自由地“使用、复制、修复、修改和发布”,所有GNU软件必须遵守GNU的通用许可证GPL(GNUGeneralPublicLicense,简称GNUGPL)。GNUGPL创造性的提出了“反版权”(Copyleft),这是一个不同于商业软件“版权所有”(Copyright)的法律概念,它不否认版权,也不反对发布软件时收取费用或取得利益。它的核心是必须把发布者的一切权利给予接受者。必须保证接受者能同时或通过其它渠道得到源程序,并将GNUGPL条款附加到软件的版权声明中,使接受者知道自己的权利。GNUGPL本身也是受法律保护的版权声明。,5Linux的发展,从0.12版始,Torvalds把Linux奉献给了自由软件,奉献给了GNU。铸造了自由软件也包括Linux的辉煌。现在,全球计算机厂商的巨头们都纷纷感受到了Linux的魅力:IMB、HP、DELL、ORACLE、INTEL都提供了对Linux的支持,Linux走进了很多大型公司和企业。,6Linux操作系统的特点,Linux是兼容绝大部分Unix标准、具有Unix风格和特点的操作系统;其最大的优势是遵循GNUGPL,是开放式源代码的自由软件,是计算机爱好者的自己的操作系统。Linux具有Xwindows桌面系统,兼有Windows作风格。,7为什么需要Linux,掌握核心技术,促进技术发展打破技术垄断,保护国家安全降低使用成本,提高经济效益,8Linux的技术特点,自由开放的Linux代码强大的图形操作界面强大的网络功能真正多用户多任务的操作系统支持多种硬件平台的操作系统完整的开发平台,9Linux的发行版本介绍,Linux继承了Unix版本的特点,版本号有点长。Linux内核版本号由3组数字构成,以“.”分隔。第一组是主版本号;第二组是次版本号,说明主版本的第几次重大更新,偶数代表稳定版本,奇数表示测试版本。稳定版本只修改错误不增加功能。测试版本会不断地增加功能,直到经测试形成稳定版本;第三组是当前版本的错误修订次数。如Linux2.4.24,10Linux系统结构,Linux是在Unix系统基础上发展起来的;Linux系统结构参见Unix系统;多用户,多任务,支持多线程;动态链接库支持;嵌入式、组件开发。,11Linux发行套件,Linux的基础是内核,发行版内容包括:安装程序、内核系统、管理工具、开发系统等。发布光盘上包括几百个软件包,按功能分有:系统安装与系统引导管理程序用户界面X-Windows系统管理网络与网络服务文件和打印服务应用程序开发工具娱乐与多媒体等,12目前常见的Linux发行版,Linux版本在百种以上,常见的如下:RedHatLinuxMandarkeLinuxDebianLinuxSuSELinuxSlackwareLinux红旗Linux冲浪XteamLinuxTurboLinux,13Linux应用简介,办公系统互联网多媒体、娱乐与游戏图形和图象处理网络服务数据库编程与开发,1.3Unix文化与哲学,1Unix的文化,工程和设计的每个分支都有自己的技术文化。Unix确实有它自己的文化;有独特的编程艺术;有一套影响深远的设计哲学。理解这些传统,会使你写出更好的软件,即使你是在非Unix平台上开发。,2Unix的生命力,Unix诞生于1969年,此后便一直应用于生产领域。按照计算机工业的标准,那已经是好几个地质纪年前的事了。在现今所有分时系统中,也只有IBM的VM/CMS敢说它比Unix资格更老,但是Unix机器的服务时间却是VM/CMS的几十万倍。事实上,在Unix平台上完成的计算量可能比所有其它分时系统加起来的总和还要多。Unix比其它任何操作系统都更广泛地应用在各种机型上。从超级计算机到手持计算机到嵌入式网络设备,从工作站到服务器到PC机到微型计算机。Unix所能支持的机器架构和奇特硬件可能比你随便抓取任何其它三种操作系统所能支持的总和还要多。,Unix应用范围之广简直令人难以置信。没有哪一种操作系统能像Unix那样,能同时在作为研究工具、定制技术应用的友好宿主机、商用成品软件平台和互联网技术的重要部分等各个领域都大放异彩。从Unix诞生之日起,各种预言就伴随着它,说Unix必将衰败,或者被其它操作系统挤出市场。可是在今天,化身为Linux、BSD、Solaris、MacOSX以及好几个其它变种的Unix,却显得前所未有的强大。,Unix的生命力和适应力委实令人称奇。尽管其它技术如蜉蝣般生生灭灭,计算机性能成千倍增长,语言历经嬗变,业界规范多次变革然而Unix依然巍然屹立,仍在运行,仍在创造价值,仍然能赢得无数最优秀、最聪明的软件技术人员的忠诚。Unix的稳定和成功在很大程度上归功于它与生俱来的内在优势,归功于KenThompson,DennisRitchie,BrianKernighan,DougMcIlroy,RobPike和其他早期Unix开发者一开始就作出的设计决策。这些决策,连同设计哲学、编程艺术、技术文化一起,从Unix的婴儿期到今天的成长路程中,已经被反复证明是健康可靠的,而Unix才得以有今天的成功。,3Unix之得,1、开源软件2、跨平台可移植性和开放标准3、Internet和万维网4、开源社区5、彻头彻尾的灵活性6、UnixHack之趣7、Unix的经验到处可适用,4Unix哲学基础,Unix哲学起源于KenThompson早期关于如何设计一个服务接口简洁、小巧精干的操作系统的思考,随着Unix文化在学习如何尽可能发掘Thompson设计思想的过程中不断成长,同时一路上还从其它许多地方博采众长。Unix哲学说来不算是一种正规设计方法。它并不打算从计算机科学的理论高度来产生理论上完美的软件。Unix哲学(同其它工程领域的民间传统一样)是自下而上的,而不是自上而下的。Unix哲学注重实效,立足于丰富的经验。,DougMcIlroy如是说,Unix管道的发明人、Unix传统的奠基人之一DougMcIlroy曾经说过:1、让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。2、假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输出中不要有无关的信息。避免使用严格的分栏格式和二进制格式输入。不要坚持使用交互式。3、尽可能早地将设计和编译的软件投入试用,哪怕是操作系统也不例外,理想情况下,应该是在几星期内。对拙劣的代码别犹豫,扔掉重写。4、优先使用工具而不是拙劣的帮助来减轻编程任务的负担。工欲善其事,必先利其器。后来他这样总结道:Unix哲学是这样的:一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。,RobPike如是说,RobPike,最伟大的C语言大师之一,在NotesonCProgramming中从另一个角度表述了Unix的哲学:原则1:你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。原则2:估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。原则3:花哨的算法在n很小时通常很慢,而n通常很小。花哨算法的常数复杂度很大。除非你确定n总是很大,否则不要用花哨算法(即使n很大,也优先考虑原则2)。原则4:花哨的算法比简单算法更容易出bug、更难实现。尽量使用简单的算法配合简单的数据结构。原则5:数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。原则6:没有原则6.,拿不准就穷举,KenThompsonUnix最初版本的设计者和实现者,对Pike的原则4作了强调:拿不准就穷举。,Unix哲学的概括,1.模块原则:使用简洁的接口拼合简单的部件。2.清晰原则:清晰胜于机巧。3.组合原则:设计时考虑拼接组合。4.分离原则:策略同机制分离,接口同引擎分离。5.简洁原则:设计要简洁,复杂度能低则低。6.吝啬原则:除非确无它法,不要编写庞大的程序。7.透明原则:设计要可见,以便审查和调试。8.健壮原则:健壮源于透明与简洁。9.表示原则:把知识叠入数据以求逻辑质朴而健壮。,Unix哲学的概括(续),10.通俗原则:接口设计避免标新立异。11.缄默原则:如果一个程序没什么好说的,就沉默。12.补救原则:出现异常时马上退出并给出足够信息。13.经济原则:宁花机器一分,不花程序员一秒。14.生成原则:避免手工hack,尽量编写程序去生成程序。15.优化原则:雕琢前先要有原型,跑之前先学会走。16.多样原则:决不相信所谓“不二法门”的断言。17.扩展原则:设计着眼未来,未来总比预想来得快。,Unix哲学之一言以蔽之,所有的Unix哲学浓缩为一条铁律,那就是各地编程大师们奉为圭臬的“KISS”原则:K.I.S.S(Keepitsimple,stupid!)或者SimpleisBeautiful,5应用Unix哲学,在Unix世界中,这些原则都直接来自于实践。以下列举的只是部分内容:只要可行,一切都应该做成与来源和目标无关的过滤器。数据流应尽可能文本化(便于使用标准工具来查看和过滤)。数据库部署和应用协议应尽可能文本化(便于阅读和编辑)。复杂的前端(用户界面)和后端应该泾渭分明。如果可能,用C编写前,先用解释性语言搭建原型。当且仅当只用一门语言编程会提高程序复杂度时,混用语言编程才比单一语言编程来得好。宽收严发(对接收的东西要包容,对输出的东西要严格)。过滤时,不需要丢弃的信息决不丢。小就是美。在确保完成任务的基础上,程序功能尽可能少。,6反对学习Unix文化的理由,Unix的耐用性及其技术文化对于喜爱Unix的人们、以及技术史家来说肯定颇为有趣。但是,Unix的本源用途作为大中型计算机的通用分时系统,由于受到个人机、工作站的围剿,“正在退出舞台”。因而Unix究竟能否在目前被Microsoft主宰的主流商务桌面市场上取得成功,人们自然也存在着一定的疑问。外行常常把Unix当作是教学用的玩具或者是黑客的沙盒而不屑一顾。即使在Unix世界里,Unix的通用性也一直受到怀疑。在持怀疑态度的外行人眼中,Unix很有用,不会消亡,但只能是个小众的操作系统。挫败这些怀疑者的不是别的,正是Linux和其它开源Unix的崛起。Unix文化是如此的有生命力,即使十几年的管理不善也丝毫未箝制它的勃勃生机。现在Unix社区自身正快速而有效地解决着Unix的问题。,7Unix之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年其他航空运输辅助活动新员工岗位专业知识笔试题目及答案
- 高速地基强夯施工合同(3篇)
- 外来务工人员就业困境-洞察及研究
- n2护士考试试题及答案多选
- 个人信用贷款连带责任保证协议
- 高端定制印刷包装项目居间代理合同
- 橱柜企业加盟合作协议
- 互联网金融担保人更替及信用保障协议
- 食品加工企业生产人员劳动合同
- 2025公务员应变面试题及答案
- (高清版)JTG D81-2017 公路交通安全设施设计规范
- 2024年成都温江兴蓉西城市运营集团有限公司招聘笔试冲刺题(带答案解析)
- 2024年中国人寿养老保险股份有限公司招聘笔试参考题库含答案解析
- 提高新生儿动脉采血穿刺率品管圈
- 家庭食品安全常识教育
- 管井井点降水记录
- 污水钢筋混凝土管施工方案
- 腰椎结核的围手术期护理查房ppt培训课件
- 中医学基础理论-经络学说
- 茶学概论-第一章-茶的起源与传播(2学时)课件
- 网络空间安全导论-西北工业大学中国大学mooc课后章节答案期末考试题库2023年
评论
0/150
提交评论