项目一 认识Linux操作系统
任务一 查找Linux系统的基本概况
系统概述
相关书籍汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学柏克莱分校开发的柏克莱软件包产品。[1]
后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。变种BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础。柏克莱软件包使用主版本加次版本的方法标识,如4.2、4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场持久的版权官司,这场官司一直打到AT&T将自己的Unix系统实验室卖掉,新接手的网威采取了一种比较开明的做法,允许柏克莱分校自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,非商业版的Unix系统又经过了很多演变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以从这个角度上,4.4 BSD 又是所有自由版本Unix的基础,它们和System V及Linux等共同构成Unix操作系统这片璀璨的星空。
UNIX操作系统BSD在发展中也逐渐派生出3个主要的分支:FreeBSD、OpenBSD和NetBSD。
此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO,但不包括知识产权和专利权(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发了自己的Unix产品,比如国际商业机器股份有限公司的AIX、惠普公司的HP-UX、太阳微系统的Solaris和硅谷图形公司的IRIX。
Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级电脑等所用操作系统的主流。现在其仍然被应用于一些对稳定性要求极高的数据中心之上。
系统特性
UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成
UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
相关书籍汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学柏克莱分校开发的柏克莱软件包产品。[1]
后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。变种BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础。柏克莱软件包使用主版本加次版本的方法标识,如4.2、4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场持久的版权官司,这场官司一直打到AT&T将自己的Unix系统实验室卖掉,新接手的网威采取了一种比较开明的做法,允许柏克莱分校自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,非商业版的Unix系统又经过了很多演变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以从这个角度上,4.4 BSD 又是所有自由版本Unix的基础,它们和System V及Linux等共同构成Unix操作系统这片璀璨的星空。
UNIX操作系统BSD在发展中也逐渐派生出3个主要的分支:FreeBSD、OpenBSD和NetBSD。
此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO,但不包括知识产权和专利权(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发了自己的Unix产品,比如国际商业机器股份有限公司的AIX、惠普公司的HP-UX、太阳微系统的Solaris和硅谷图形公司的IRIX。
Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级电脑等所用操作系统的主流。现在其仍然被应用于一些对稳定性要求极高的数据中心之上。
系统特性
UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成
UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
初创时期
Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。
AT&T最终撤出了投入Multics项目的资源,其中一位开发者──肯·汤普逊则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。
在丹尼斯·里奇的帮助下,汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普逊开始了一个DEC PDP-7上的新操作系统项目。汤普逊和里奇领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,Multics是“MULTiplexed Information and Computing System”的缩写,在1970年时,那部PDP-7却只能支持两个用户,当时,Brian Kernighan就开玩笑地戏称他们的系统其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。于是这个项目被称为UnICS( Uniplexed Information and Computing System)。后来,大家取其谐音这个名字被改为UNIX。
MULTICS其实是"MULTiplexed Information and Computing System"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing System",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。
发展时期
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。
1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。
1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。
这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和Microsoft Windows。
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了太阳计算机系统公司。
1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。
系统现况
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了国际开放标准组织。由它定义的多个标准定义着什么是以及什么不是UNIX。
实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。
(Advanced Interactive eXecutive)是IBM开发的一套UNIX操作系统。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。AIX的一些流行特性例如chuser、mkuser、rmuser命令以及相似的东西允许如同管理文件一样来进行用户管理。AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格操作系统中。
Solaris
是SUN公司研制的类Unix操作系统。直至2013年,Solaris的最新版为 Solaris 11。
将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。
Sun的操作系统最初叫做SunOS。SunOS 5.0开始,SUN的操作系统开发开始转向System V4,并且有了新的名字叫做Solaris 2.0。Solaris 2.6以后,SUN删除了版本号中的"2",因此,SunOS 5.10就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分组成。
Solaris运行在两个平台:Intel x86及SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力和硬件支援,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。
(取自Hewlett Packard UniX)是惠普科技公司(HP,Hewlett-Packard)以SystemV为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。
IRIX
是由硅谷图形公司(Silicon GraphicsInc.,一般用简称:SGI)以System V与BSD延伸程序为基础所发展成的UNIX操作系统,IRIX可以在SGI公司的RISC型电脑上运行,即是采行32位、64位MIPS架构的SGI工作站、服务器。
Xenix
是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX(亦被称作SCO OpenServer)为名发售。值得一提的是,它还能在DECPDP-11或是Apple Lisa电脑运行。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合UNIX System V的接口规格 (SVID)。
A/UX
(取自Apple Unix)是苹果电脑(Apple Computer)公司所开发的UNIX操作系统,此操作系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套A/UX是在Macintosh II、Quadra及Centris等系列的电脑上运行。A/UX于1988年首次发表,最终的版本为3.1.1版,于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的68k处理器才能运行。
A/UX是以System V 2.2版为基础所发展,并且也使用System V 3(简称:SysV 3)、System V 4、BSD 4.2、BSD 4.3等的传统特色,它也遵循POSIX规范及SVID规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入TCP/IP网络功能。有传言表示有一个后续版本是以OSF/1为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。
商业版
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UINX有免费版的,例如:NetBSD等类似UNIX版本。[3]
【51CTO 8月16日外电头条】Linux本身并不是一个安全的操作系统。这是因为Linux是在UNIX的结构设计基础之上进行开发的,而UNIX的开发者对于安全问题并没有十分关心——毕竟那是在1969年。
“首先要面对的是事实是,UNIX的开发者并没有考虑安全问题。单单这一点就会引发大量的漏洞,”Dennis Ritchie在1979年他《关于UNIX的安全》的论文中写道。
上周二在波士顿的LinuxCon上,红帽公司Linux内核开发者的James Morris谈论了Linux在过去十年里是如何演变来克服自身安全模型的不足。
Morris指出,问题是在UNIX诞生的60年代末,每个人都以为我们现在能拥有会飞的汽车,但事实是我们有了Facebook。我们今天用计算机在做的事情可能是40多年前人们的梦想,尽管我们仍旧依赖于数十年前设计的操作系统。
这就是Linux开发人员所面临的挑战。Morris说,为了确保Linux的安全,软件工程师必须在Linux内核周围插入安全组件。Linux最早的安全机制是UNIX DAC,后来陆续出现了POSIX、访问控制列表、私有和PID命名空间、加密、Linux安全模块、SELinux、Smack、TOMOYO、AppArmor,类似的名单仍在继续。
但是拥有这么多选择,用户们反而会觉得茫然。这有点像进入了一个“酷圣石”冰激凌店,然后你会被一长串配方和冰激凌口味弄得无所适从。不如老老实实地按照自己预定的食谱来选,或者更简单,直接从附近的杂货店挑一品脱樱桃加西亚。
眼花缭乱的Linux安全选项
Linux无数的安全选项不仅阻碍了安全技术的发展,同时也为建立安全的Linux服务器和工作站制造了困难。例如,一个用户或者系统管理员不得不去决定是否要开启Smack、TOMOYO、SELinux还是AppArmor。做这样的决定并不像想象的那么简单,因为这些技术中的很多都解决类似的问题,只是它们的处理方式略有不同。比如说,Novell为它的SUSE Linux企业服务器开发了AppArmor,它是SELinux的竞争对手。Novell在其AppArmor网站上发布了两种技术的比较。结果是,AppArmor拥有更简单的配置文件格式(51CTO编辑注:很多用户一直觉得SELinux的安全级别设置十分麻烦,甚至也有报道说SELinux会导致安全问题,因此有很多教程都是教人如何关闭SELinux的)。
我们还没有讨论关于网络安全、存储安全和恶意软件预防。这涉及到为数据包过滤设置防火墙。至于阻止恶意软件,目前有几个处于不同发展阶段的项目,比如fsnotify、TALPA 和DazukoFS。
Morris还说,最大的问题是“让人们认识到安全措施是必要的。”
“这不像系安全带。”Morris说,“我们不能让法律来制约人们设置安全的Linux服务器和工作站。我们必须说服人们,这样做对他们有利。”
Linux安全机制的透明化
因此,我们需要让安全选项尽可能的透明化,而不是让绝大多数Linux用户苦苦挣扎于无数的安全选项中,Morris说。
透明化是AppArmor的既定目标之一。SUSE的Tony Jones说,“AppArmor的目的是对于应用软件实现高度透明:如果你在一个工作系统中添加AppArmor,你需要开发AppArmor配置文件,但是不用改变你的应用程序。如果将AppArmor从一个正在运行的系统中移除,系统仍将完全像之前一样继续运行,只是没有AppArmor安全保护而已。”
虽然SELinux的配置文件比AppArmor的更麻烦,但是透明化也是它的目标之一。红帽称,“SELinux插入Linux安全模块(LSM)能够为多个普通网络面应用程序处理网络核心层访问请求。对于这些应用程序,基于SELinux的安全体系不需要进行额外的管理。此外,对用户和应用程序而言,它是完全透明的。”
提高透明度的好处是它可以减少人为的安全威胁。人们就像水一样,喜欢寻找没有阻碍的道路。如果系统管理员需要通过编写繁琐的配置文件和页面来设置一个安全的系统,那么他们中的很多人可能很轻易地就气馁了。
系统概述
相关书籍汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学柏克莱分校开发的柏克莱软件包产品。[1]
后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。变种BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础。柏克莱软件包使用主版本加次版本的方法标识,如4.2、4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场持久的版权官司,这场官司一直打到AT&T将自己的Unix系统实验室卖掉,新接手的网威采取了一种比较开明的做法,允许柏克莱分校自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,非商业版的Unix系统又经过了很多演变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以从这个角度上,4.4 BSD 又是所有自由版本Unix的基础,它们和System V及Linux等共同构成Unix操作系统这片璀璨的星空。
UNIX操作系统BSD在发展中也逐渐派生出3个主要的分支:FreeBSD、OpenBSD和NetBSD。
此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO,但不包括知识产权和专利权(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发了自己的Unix产品,比如国际商业机器股份有限公司的AIX、惠普公司的HP-UX、太阳微系统的Solaris和硅谷图形公司的IRIX。
Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级电脑等所用操作系统的主流。现在其仍然被应用于一些对稳定性要求极高的数据中心之上。
系统特性
UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成
UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
初创时期
Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。
AT&T最终撤出了投入Multics项目的资源,其中一位开发者──肯·汤普逊则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。
在丹尼斯·里奇的帮助下,汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普逊开始了一个DEC PDP-7上的新操作系统项目。汤普逊和里奇领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,Multics是“MULTiplexed Information and Computing System”的缩写,在1970年时,那部PDP-7却只能支持两个用户,当时,Brian Kernighan就开玩笑地戏称他们的系统其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。于是这个项目被称为UnICS( Uniplexed Information and Computing System)。后来,大家取其谐音这个名字被改为UNIX。
MULTICS其实是"MULTiplexed Information and Computing System"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing System",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。
发展时期
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。
1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。
1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。
这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和Microsoft Windows。
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了太阳计算机系统公司。
1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。
系统现况
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了国际开放标准组织。由它定义的多个标准定义着什么是以及什么不是UNIX。
实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。
(Advanced Interactive eXecutive)是IBM开发的一套UNIX操作系统。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。AIX的一些流行特性例如chuser、mkuser、rmuser命令以及相似的东西允许如同管理文件一样来进行用户管理。AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格操作系统中。
Solaris
是SUN公司研制的类Unix操作系统。直至2013年,Solaris的最新版为 Solaris 11。
将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。
Sun的操作系统最初叫做SunOS。SunOS 5.0开始,SUN的操作系统开发开始转向System V4,并且有了新的名字叫做Solaris 2.0。Solaris 2.6以后,SUN删除了版本号中的"2",因此,SunOS 5.10就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分组成。
Solaris运行在两个平台:Intel x86及SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力和硬件支援,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。
(取自Hewlett Packard UniX)是惠普科技公司(HP,Hewlett-Packard)以SystemV为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。
IRIX
是由硅谷图形公司(Silicon GraphicsInc.,一般用简称:SGI)以System V与BSD延伸程序为基础所发展成的UNIX操作系统,IRIX可以在SGI公司的RISC型电脑上运行,即是采行32位、64位MIPS架构的SGI工作站、服务器。
Xenix
是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX(亦被称作SCO OpenServer)为名发售。值得一提的是,它还能在DECPDP-11或是Apple Lisa电脑运行。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合UNIX System V的接口规格 (SVID)。
A/UX
(取自Apple Unix)是苹果电脑(Apple Computer)公司所开发的UNIX操作系统,此操作系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套A/UX是在Macintosh II、Quadra及Centris等系列的电脑上运行。A/UX于1988年首次发表,最终的版本为3.1.1版,于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的68k处理器才能运行。
A/UX是以System V 2.2版为基础所发展,并且也使用System V 3(简称:SysV 3)、System V 4、BSD 4.2、BSD 4.3等的传统特色,它也遵循POSIX规范及SVID规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入TCP/IP网络功能。有传言表示有一个后续版本是以OSF/1为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。
商业版
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UINX有免费版的,例如:NetBSD等类似UNIX版本。[3]
任务二 总结Linux系统的最初十年
Linux本身并不是一个安全的操作系统。这是因为Linux是在UNIX的结构设计基础之上进行开发的,而UNIX的开发者对于安全问题并没有十分关心——毕竟那是在1969年。
“首先要面对的是事实是,UNIX的开发者并没有考虑安全问题。单单这一点就会引发大量的漏洞,”Dennis Ritchie在1979年他《关于UNIX的安全》的论文中写道。
上周二在波士顿的LinuxCon上,红帽公司Linux内核开发者的James Morris谈论了Linux在过去十年里是如何演变来克服自身安全模型的不足。
Morris指出,问题是在UNIX诞生的60年代末,每个人都以为我们现在能拥有会飞的汽车,但事实是我们有了Facebook。我们今天用计算机在做的事情可能是40多年前人们的梦想,尽管我们仍旧依赖于数十年前设计的操作系统。
这就是Linux开发人员所面临的挑战。Morris说,为了确保Linux的安全,软件工程师必须在Linux内核周围插入安全组件。Linux最早的安全机制是UNIX DAC,后来陆续出现了POSIX、访问控制列表、私有和PID命名空间、加密、Linux安全模块、SELinux、Smack、TOMOYO、AppArmor,类似的名单仍在继续。
但是拥有这么多选择,用户们反而会觉得茫然。这有点像进入了一个“酷圣石”冰激凌店,然后你会被一长串配方和冰激凌口味弄得无所适从。不如老老实实地按照自己预定的食谱来选,或者更简单,直接从附近的杂货店挑一品脱樱桃加西亚。
眼花缭乱的Linux安全选项
Linux无数的安全选项不仅阻碍了安全技术的发展,同时也为建立安全的Linux服务器和工作站制造了困难。例如,一个用户或者系统管理员不得不去决定是否要开启Smack、TOMOYO、SELinux还是AppArmor。做这样的决定并不像想象的那么简单,因为这些技术中的很多都解决类似的问题,只是它们的处理方式略有不同。比如说,Novell为它的SUSE Linux企业服务器开发了AppArmor,它是SELinux的竞争对手。Novell在其AppArmor网站上发布了两种技术的比较。结果是,AppArmor拥有更简单的配置文件格式(51CTO编辑注:很多用户一直觉得SELinux的安全级别设置十分麻烦,甚至也有报道说SELinux会导致安全问题,因此有很多教程都是教人如何关闭SELinux的)。
我们还没有讨论关于网络安全、存储安全和恶意软件预防。这涉及到为数据包过滤设置防火墙。至于阻止恶意软件,目前有几个处于不同发展阶段的项目,比如fsnotify、TALPA 和DazukoFS。
Morris还说,最大的问题是“让人们认识到安全措施是必要的。”
“这不像系安全带。”Morris说,“我们不能让法律来制约人们设置安全的Linux服务器和工作站。我们必须说服人们,这样做对他们有利。”
Linux安全机制的透明化
因此,我们需要让安全选项尽可能的透明化,而不是让绝大多数Linux用户苦苦挣扎于无数的安全选项中,Morris说。
透明化是AppArmor的既定目标之一。SUSE的Tony Jones说,“AppArmor的目的是对于应用软件实现高度透明:如果你在一个工作系统中添加AppArmor,你需要开发AppArmor配置文件,但是不用改变你的应用程序。如果将AppArmor从一个正在运行的系统中移除,系统仍将完全像之前一样继续运行,只是没有AppArmor安全保护而已。”
虽然SELinux的配置文件比AppArmor的更麻烦,但是透明化也是它的目标之一。红帽称,“SELinux插入Linux安全模块(LSM)能够为多个普通网络面应用程序处理网络核心层访问请求。对于这些应用程序,基于SELinux的安全体系不需要进行额外的管理。此外,对用户和应用程序而言,它是完全透明的。”
提高透明度的好处是它可以减少人为的安全威胁。人们就像水一样,喜欢寻找没有阻碍的道路。如果系统管理员需要通过编写繁琐的配置文件和页面来设置一个安全的系统,那么他们中的很多人可能很轻易地就气馁了。
任务三 研究Linux的特点、优势及发行版本子任务一
人们会经常提及一个问题为什么Linux几乎不崩溃,Linux的稳定性是由于它没有象其它操作系统一样内核如此庞大、漏洞无穷。考察资料表明,Linux与其它Unix系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。原因并不难以得到,系统的稳定性主要取决于系统设计的结构。计算机硬件的结构自从1981设计开始就没有作特别大的改动,而连续向后兼容性使那些编程风格极差的应用软件勉强移植到Windows的最新版本,这种将就的软件开发模式极大地阻碍了系统稳定性的发展。另一种易于崩溃的系统Macintosh,它缺乏内存使用保护和缺乏抢占式多任务的缺点与它友好的使用界面一样闻名于世,令人惊奇的是Macintosh虽然具有如此重大的缺陷但并没有如人们想象的那样频繁死机。
Linux的稳定性并不是一个意外的例外,稳定性是所有大型计算机操作系统所具有的共性。仅仅Windows和苹果机有时会失常。Linux所共享的Unix设计体系是经过长期实践考验的,Linux吸取了Unix系统近1/4世纪发展的经验,Linux操作系统体现了最先现代化操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式,这保证了任何系统的漏洞都能被及时发现和改正。就如IBM在其网站上所说的一样,Linux是一个稳定的、功能强大的、值得使用的操作系统。
子任务二
Linux 作为服务器的优势是,他目前具有最好的生态系统,服务器端的各种软件都为它而设计,默认都认为你是在 Linux 上跑,你要是整一个非 Linux 的服务器,你得有足够的心理准备,因为出现任何问题,你可能未必能找到能帮你解决问题的人。
这里我想引申说一个例子:
为什么 android 中的一部分软件质量比较差?因为那些公司已经为 iOS 写了个软件,到了 android 就根本不想重新开发,只想把原先的一些资源稍微修补一下弄上去用,所以搞出了一个很糟糕的软件,那些用惯 iOS 的人,到了 android 里面可能首先想找那些 iOS 程序的替代品,结果那些程序往往都很糟糕。
反过来常常也是一样,有些软件,天生是在 android 下诞生的,他们去做 iOS 的时候,也经常是糊弄一下子就解决问题,而那些长期用惯了 android 的人,到 iOS 下,首先去找自己用惯的那些软件在 iOS 里面的对应软件,结果就还是发现这些在 android 下的优秀软件『在 iOS 里面的表现糟透了』。
上面的例子实际上就是所谓『生态系统锁定』的问题。
现在 Linux 就面临这些现状,他本身构建的生态系统,太多的软件本来在 Linux 下开发,也只适合在 Linux 下运行,虽然通常他们可能被移植到了 Windows,可是这些血统来源于 Linux 的软件,在 Windows 下安装部署的用户体验全都糟糕透了,于是乎服务器端开发者越发反感使用 Windows 作为服务器的部署平台。生态系统锁定之势已成。
子任务三-
Redhat,应称为Redhat系列,包括RHEL(Redhat Enterprise Linux,为收费版本)、Fedora Core(由Redhat桌面版本发展而来,免费)、CentOS(RHEL的社区克隆版本,免费)。Redhat可以说是在国内使用最多的Linux版本,甚至有人将Redhat等同于Linux。这个版本的特点就是使用人数多,资源多,而且网上的许多Linux教程也都以Redhat为例进行讲解。
Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。
如果你需要一个比较稳定的服务器系统,而且你不喜欢各种Linux的配置,那么你可以选择CentOS,在安装完成后经过简单的配置就能非常稳定地运行了
-
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,也最遵循GNU规范。Debian分为三个分支: stable, testing和unstable。其中,unstable为最新的测试版本,有相对较多的bug,适合桌面用户。testing的版本都经过测试,相对较为稳定。而stable一般只用于服务器,软件包大都比较过时,但是稳定和安全性都很高。Debian最具特色的是apt-get/dpkg包管理方式。
-
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以说Ubuntu是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
如果你不需要自己进行定制,不想在系统上浪费太多时间,那么你可以根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。
-
Gentoo,Gentoo是Linux最年轻的发行版本,因此也吸取之前的发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由DanielRobbins(FreeBSD的开发者之一)创建,由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,那么你完全可以选择Gentoo。
-
FreeBSD,FreeBSD并不是一个Linux系统,但FreeBSD与Linux支持的硬件环境比较一致,采用的软件也比较类似,用户也有许多重合。所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支:stable和current。其中,stable是稳定版,而current则是添加了新技术的测试版。
FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
如果你需要的是一个非常非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。
-
最后,至于linux做嵌入式开发,只要自己用的习惯就好。但在配置时有关开发包支持范围及方便程度来说,现在较常用debian、Fedora、Ubuntu这三种linux做嵌入式开发。
任务四 Linux运维职业生涯规划
无论你是准备从事Linux运维工作的菜鸟,还是早已入门的老鸟。在互联网时代,设备和IT技术更新永无止境。作为一个Linux运维人员你无法阻止技术的更新,但是我们可以有“工欲善其事,必先利其器”的觉悟,脚踏实地走自己的道,修自己的行。
Linux运维人员主要划分为:初级、中级和高级三个等级,不同级别的Linux运维人员需要掌握的技能不同。本文主要为大家介绍各个等级人员需要掌握的必备技能,从而指引同行朋友在修行的过程中少走弯路。只属于个人多年的领悟,由于时间问题难免有不足之处,如有不足之处请发表评论!我会加以修正,从而达到写本文的初衷。
俗话说“隔行如隔山”,尤其对于一个计算机小白的话,入门很不容易。建议你先科普一下计算机的组成和工作原理、处理器的体系结构及原理、存储器、I/O设备、内存原理和文件系统等。通过这些的学习至少能够让你对计算机有一个基本的认识,如果你能更深入的理解这方面的知识对于你日后对Linux系统调优起着不可取代的作用。当然你也可是试着做一次服务器的设备选型,也能够让你去了解更多关于硬件的知识。
接下来就是Linux操作系统的选择,将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution)。我们一般谈论的Linux系统便是针对这些发行版本。在众多的发行版中选择一个适合入门学习的版本也不是一件容易的事。对于学习Linux初期推荐选择RHEL或CentOS这些“老牌”的操作系统;如果你只是为了看看Linux的华丽的桌面,推荐选择适合大众的Ubuntu;如果你想定制一个操作系统,那不防试试Gentoo。也就说Linux有迎合大众各种口味的操作系统,只有你想不到的,没有它没有的!
目前,CPU和内存的发展速度可以说是一日千里,固态硬盘的出现,摆脱了机械硬盘使用机械转子带动多个磁盘硅片的时代。但是其昂贵的价格,不能将其普及到所有的服务器上。很多服务器依然使用机械硬盘,机械硬盘的I/O速度取决于其转速。转速的增加,会使数据的读写效率有所提高,但与CPU的速度相比,磁盘的速度相对来说越来越慢了。这个速度差异导致单个磁盘无法与CPU速度匹配。解决磁盘速度问题的方法是使用磁盘阵列(RAID),可以减少维护时间,增强数据安全性,保证应用的性能。
对于中小型系统,无论使用怎样部署都没有多大的问题,重点是把握可恢复性。磁盘阵列支持的I/O访问次数和I/O数据传输与RAID设计算法有关。业务的不同,读和写操作的频繁次数自然不同,对于读操作频繁的系统适用于RAID1和RAID5(例如:Web服务器),对于写操作频繁的系统适用于RAID10(例如:数据库)。
安装系统前,避免不了合理的选择RAID阵列级别,提高存储设备的可靠性和效率,同时还要考虑预算,尽量的降低成本。
Linux操作系统有GUI和字符界面的安装方式,初期推荐你使用GUI和中文的安装方式快速的掌握操作系统的安装,之后就使用英文和字符的安装方式进行安装,这样就可以将安装过程看的更清楚和专业。最终的目标是实现定制化安装操作系统,按照服务器上跑的业务,合理的规划磁盘分区和选择要安装的软件。定制化安装系统可以提高系统的安装速度,给予我们意想不到的稳定性和安全性。
技术关键词:开源、GNU、GPL、POSIX、Linux内核、RAID、RAID等级、磁盘、磁盘原理、块、超级块、文件系统、i节点 推荐读物<<鸟哥的私房菜>>和<< RedHatEnterprise Linux5系统管理宝典>>。 |
恭喜你,你已经掌握的Linux系统的安装。安装后你输入用户名和密码登录系统后,第一眼看到的用户界面就是Shell,这个时候有必要知道Linux系统的组成、Shell解析命令的过程、常见的Shell版本、Shell的功能、Shell的元字符等。
Linux操作系统是一个可以放弃鼠标的操作系统,一切皆是文件, 一切皆是命令,命令就是一切, 就像李宁的广告词一样“一切皆有可能”。Linux系统上有成百上千的命令,分为内置命令和外置命令,虽然这些命令的功能不同,幸好它们的使用方式和规则都是统一的,这就是Linux命令的语法。了解Linux命令的语法和养成使用Linux命令的好习惯是学习Linux运维的第一步,例如:命令和参数严格区分大小写、合理的使用Tab键补全命令和善用Linux帮助手册快速获取命令的帮助。对于Linux初级运维来说不止要掌握这些人人皆知的使用习惯,实际上我们可以认为Linux初级人员就是一个单机管理员或者称为Linux系统管理员,对于Linux的单机管理至少要掌握如下技术。下图中显示了Linux初级运维需要掌握的技术:
这些知识只是让你步入运维行业中最基本的一步,本来初级和中级运维在很多时候很难细致的去区分,对于初中级运维除了掌握以上的技术,还需要掌握企业常见的网络服务(例如:DHCP、DNS、FTP、Samba、Mail、NFS等)和网站架构LAMP、LNMP的部署及安全加固。使用Shell编写常用的安装、监控(CPU、内存、磁盘)脚本;正则表达式、sed、awk、sort、uniq、cut、find、grep等工具的使用。
上图中主要介绍了Shell脚本编程和LAMP的学习方向,通过Shell编写日常CPU、内存、硬盘和服务的监控脚本和报警、统计Web服务器的访问次数和访问排名、MySQL数据库备份脚本等。掌握LAMP和LNMP的部署和日常维护。防火墙的使用,例如:iptables和硬件防火墙的原理和规则的添加。
技术关键词:DHCP、DNS、FTP、Samba、Mail、NFS、Apache、MySQL、PHP、Nginx、Shell 推荐读物:<<鸟哥的私房菜服务>>、<<MySQL数据库开发、优化与管理维护>>、<<更安全的Linux网络>>、<<实战Nginx_取代Apache的高性能Web服务器>>、<<Unix.Shell编程>>、<<LINUX与UNIX SHELL编程指南>>、<<高级Bash脚本编程指南>> |
云计算和大数据时代的来临,未来对运维人员的要求只能是越来越高,多次看到“学会运维自动化、走遍天下都不怕”给人一种运维不自动化就不是运维,企业不云计算就不叫企业。事实并非如此,很多技术只能说是一个趋势,并未形成大势。只不过作为技术的我们需要关注未来的趋势,在空闲的时间去掌握这些技术。
对于高级运维来说,不仅需要丰富的知识体系还需要一线的经验,所以说精通还是很难的,不是我们看到很多刚毕业的学生在简历中写出了各种精通,由于是高级Linux运维,不经过多年的锻炼是达不到较高的境界。所以高级运维是稀缺型人才,对于企业来说也很难找到适合自己的人才。
高级运维是一个非常专业职位,高级运维需要掌握相当多的知识,包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理,云计算平台应用,大数据等。
拓展训练
一 选择题
1.Linux和UNIX的关系是:Linux是一种类UNIX的操作系统。
2.Linux是一个多用户、多任务的操作系统。
二 简答题
1.试列举Linux系统的主要特点
2.Linux的主要发行版本有哪些
3.下载CentOS6.5的光盘镜像文件
答:
1.
Linux系统有文本编辑界面和图形用户界面(GUI)。其特征包括:多用户、多任务、多平台、可编程SHELL、提供源代码、仿真终端、支持多种文件系统及强大的网络功能等。
多用户:多个用户(六个)能同时从相同或不同的终端(终端号:tty1~tty6)上用同一个应用程序的副本进行工作。在控制台,切换终端的命令是:ALT+F1~F6;在仿真终端窗口(ps/0~n)是:SHIFT+ALT+F1~F6。
多任务:可同时执行多个程序,程序之间互不妨碍。与WINDOWS的多任务不同,Linux将系统没有用到的剩余物理内存全部用来做硬盘的高速缓存。笔者曾经打开三个xterm,分别用于查找文件、调试程序、发邮件。而且还可以指定某一个程序在后台运行,指定某一些程序在特定的时间内运行(at命令)。 多平台:Linux能在X86平台上运行,也能移植到其他平台。 可编程SHELL:SHELL是解释并执行命令的系统外壳程序。通过编写SHELL程序,使得系统更加个性化;而且在一些程序中具有C语言的功能。 提供源代码:Linux是自由软件,源代码完全公开,可以自行编译内核,修改和扩充操作系统,进行二次开发。 Linux支持的文件系统很多,例如:EXT3、NFS、VFS、ISO9660、MSDOS等等。 网络功能:较全面的实现了TCP/IP、SLIP、PPP、PLIP协议,功能强大。
1.模块化程度高 Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。 2.源码公开 由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。 同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。 3.广泛的硬件支持 Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。 由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。 4.安全性及可靠性好 内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。 Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。 5.具有优秀的开发工具 开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。 6.有很好的网络支持利文件系统支持 Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。 另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。 7.与UNIX完全兼容 目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。 但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果
系统概述
相关书籍汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学柏克莱分校开发的柏克莱软件包产品。[1]
后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。变种BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础。柏克莱软件包使用主版本加次版本的方法标识,如4.2、4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场持久的版权官司,这场官司一直打到AT&T将自己的Unix系统实验室卖掉,新接手的网威采取了一种比较开明的做法,允许柏克莱分校自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,非商业版的Unix系统又经过了很多演变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以从这个角度上,4.4 BSD 又是所有自由版本Unix的基础,它们和System V及Linux等共同构成Unix操作系统这片璀璨的星空。
UNIX操作系统BSD在发展中也逐渐派生出3个主要的分支:FreeBSD、OpenBSD和NetBSD。
此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO,但不包括知识产权和专利权(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发了自己的Unix产品,比如国际商业机器股份有限公司的AIX、惠普公司的HP-UX、太阳微系统的Solaris和硅谷图形公司的IRIX。
Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级电脑等所用操作系统的主流。现在其仍然被应用于一些对稳定性要求极高的数据中心之上。
系统特性
UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成
UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
初创时期
Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。
AT&T最终撤出了投入Multics项目的资源,其中一位开发者──肯·汤普逊则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。
在丹尼斯·里奇的帮助下,汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普逊开始了一个DEC PDP-7上的新操作系统项目。汤普逊和里奇领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,Multics是“MULTiplexed Information and Computing System”的缩写,在1970年时,那部PDP-7却只能支持两个用户,当时,Brian Kernighan就开玩笑地戏称他们的系统其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。于是这个项目被称为UnICS( Uniplexed Information and Computing System)。后来,大家取其谐音这个名字被改为UNIX。
MULTICS其实是"MULTiplexed Information and Computing System"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing System",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。
发展时期
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。
1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。
1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。
1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。
这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和Microsoft Windows。
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了太阳计算机系统公司。
1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。
系统现况
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了国际开放标准组织。由它定义的多个标准定义着什么是以及什么不是UNIX。
实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。
(Advanced Interactive eXecutive)是IBM开发的一套UNIX操作系统。它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。AIX的一些流行特性例如chuser、mkuser、rmuser命令以及相似的东西允许如同管理文件一样来进行用户管理。AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格操作系统中。
Solaris
是SUN公司研制的类Unix操作系统。直至2013年,Solaris的最新版为 Solaris 11。
将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。
Sun的操作系统最初叫做SunOS。SunOS 5.0开始,SUN的操作系统开发开始转向System V4,并且有了新的名字叫做Solaris 2.0。Solaris 2.6以后,SUN删除了版本号中的"2",因此,SunOS 5.10就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分组成。
Solaris运行在两个平台:Intel x86及SPARC/UltraSPARC。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力和硬件支援,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。
(取自Hewlett Packard UniX)是惠普科技公司(HP,Hewlett-Packard)以SystemV为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。
IRIX
是由硅谷图形公司(Silicon GraphicsInc.,一般用简称:SGI)以System V与BSD延伸程序为基础所发展成的UNIX操作系统,IRIX可以在SGI公司的RISC型电脑上运行,即是采行32位、64位MIPS架构的SGI工作站、服务器。
Xenix
是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX(亦被称作SCO OpenServer)为名发售。值得一提的是,它还能在DECPDP-11或是Apple Lisa电脑运行。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合UNIX System V的接口规格 (SVID)。
A/UX
(取自Apple Unix)是苹果电脑(Apple Computer)公司所开发的UNIX操作系统,此操作系统可以在该公司的一些麦金塔电脑(Macintosh)上运行,最末(或说最新)的一套A/UX是在Macintosh II、Quadra及Centris等系列的电脑上运行。A/UX于1988年首次发表,最终的版本为3.1.1版,于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元(Paged Memory Management Unit,PMMU)的68k处理器才能运行。
A/UX是以System V 2.2版为基础所发展,并且也使用System V 3(简称:SysV 3)、System V 4、BSD 4.2、BSD 4.3等的传统特色,它也遵循POSIX规范及SVID规范,不过遵循标准版本就难以支持最新的信息技术,因此在之后的第二版便开始加入TCP/IP网络功能。有传言表示有一个后续版本是以OSF/1为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。
商业版
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UINX有免费版的,例如:NetBSD等类似UNIX版本。[3]
2.
主要发行的版本有:
AIX、Solaris、Hp-UX、等。