项目一 认识Linux操作系统

任务一  查找Linux系统的基本概况

基本历史简介

诞生

1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作
图1-1 PDP-7计算机图1-1 PDP-7计算机
的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程序在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程序移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。 
MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。

流行

1971年,Ken Thompson写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理内存和500K磁盘空间。Unix占用了12KB的内存,剩下的一半内存可以支持两用户进行Space Travel的游戏。而著名的fork()系统调用也就是在这时出现的。
到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL(Basic Combined Programming Language)的语言开发,他们整合了BCPL形成B语言,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的C语言。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重
UnixUnix
写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。
Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表。这是UNIX与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。

家谱

Unix家谱 Unix家谱
Unix在开发的过程中,没有任何的奖励制度和管理,从一开始在AT&T公司出现时,其是一种近似于好奇或兴趣的东西。
然而,20世纪70年代,AT&T公司开始注意到Unix所带来的商业价值。公司的律师开始寻找一些手段来保护Unix,并让其成为一种商业机密。从1979年Unix的版本V7开始,Unix的许可证开始禁止大学使用Unix的源码,包括在授课中学习。
到了1980年,有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,在这个时候,很显然,竞争最终引发了Unix的战争。在这场战争中,好的是,软件开发人员还是能够得到Unix的源码并对其按照自己的需要和兴致进行裁剪。而不好的是,Unix开始一发不可收拾地开发不停地出现各种各样的变种。
1982年,Joy创建了Sun Microsystems公司并提供了工作站–Sun-1,运行SunOS(Solaris以之后的十年出现)。而AT&T则在随后的几年中发布了Unix System V的第一版,一个具有强大影响力的操作系统,最终造就了IBM的AIX和HP的HP-UX。

系统现况

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。


类UNIX

AIX
Aix logo Aix logo
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 logosolaris logo
早期的Solaris是由BSDUnix发展而来。这是因为升阳公司的创始人之一,比尔·乔伊(Bill Joy)来自加州大学伯克莱分校(U.C.Berkeley)。但是随着时间的推移,Solaris在接口上正在逐渐向System V靠拢,但至今Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的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屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。
HP-UX
HP-UX HP-UX
取自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
IRIX 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为主要的代码基础,但却从未公开发表过,不过无从证实此版本是否真存在过。
任务二  总结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的稳定性是由于它没有象其它操作系统一样内核如此庞大、漏洞无穷。考察资料表明,Linux与其它Unix系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。原因并不难以得到,系统的稳定性主要取决于系统设计的结构。计算机硬件的结构自从1981设计开始就没有作特别大的改动,而连续向后兼容性使那些编程风格极差的应用软件勉强移植到Windows的最新版本,这种将就的软件开发模式极大地阻碍了系统稳定性的发展。另一种易于崩溃的系统Macintosh,它缺乏内存使用保护和缺乏抢占式多任务的缺点与它友好的使用界面一样闻名于世,令人惊奇的是Macintosh虽然具有如此重大的缺陷但并没有如人们想象的那样频繁死机。
    Linux的稳定性并不是一个意外的例外,稳定性是所有大型计算机操作系统所具有的共性。仅仅Windows和苹果机有时会失常。Linux所共享的Unix设计体系是经过长期实践考验的,Linux吸取了Unix系统近1/4世纪发展的经验,Linux操作系统体现了最先现代化操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式,这保证了任何系统的漏洞都能被及时发现和改正。就如IBM在其网站上所说的一样,Linux是一个稳定的、功能强大的、值得使用的操作系统。

子任务二:分析Linux系统的优势

Linux 作为服务器的优势是,他目前具有最好的生态系统,服务器端的各种软件都为它而设计,默认都认为你是在 Linux 上跑,你要是整一个非 Linux 的服务器,你得有足够的心理准备,因为出现任何问题,你可能未必能找到能帮你解决问题的人。

这里我想引申说一个例子:

为什么 android 中的一部分软件质量比较差?因为那些公司已经为 iOS 写了个软件,到了 android 就根本不想重新开发,只想把原先的一些资源稍微修补一下弄上去用,所以搞出了一个很糟糕的软件,那些用惯 iOS 的人,到了 android 里面可能首先想找那些 iOS 程序的替代品,结果那些程序往往都很糟糕。

反过来常常也是一样,有些软件,天生是在 android 下诞生的,他们去做 iOS 的时候,也经常是糊弄一下子就解决问题,而那些长期用惯了 android 的人,到 iOS 下,首先去找自己用惯的那些软件在 iOS 里面的对应软件,结果就还是发现这些在 android 下的优秀软件『在 iOS 里面的表现糟透了』。

上面的例子实际上就是所谓『生态系统锁定』的问题。

现在 Linux 就面临这些现状,他本身构建的生态系统,太多的软件本来在 Linux 下开发,也只适合在 Linux 下运行,虽然通常他们可能被移植到了 Windows,可是这些血统来源于 Linux 的软件,在 Windows 下安装部署的用户体验全都糟糕透了,于是乎服务器端开发者越发反感使用 Windows 作为服务器的部署平台。生态系统锁定之势已成。

子任务三:总结Linux系统的发行版本

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发行版本的下载地址

Debian ISO 映像文件地址:http://www.debian.org/distrib/。

gentoo镜像文件地址:http://www.gentoo.org/main/en/where.xml。

Ubuntu ISO 映像文件地址:http://www.ubuntu.com/douwnload。

任务四  Linux运维职业生涯规划

云计算和大数据时代的来临,未来对运维人员的要求只能是越来越高,多次看到“学会运维自动化、走遍天下都不怕”给人一种运维不自动化就不是运维,企业不云计算就不叫企业。事实并非如此,很多技术只能说是一个趋势,并未形成大势。只不过作为技术的我们需要关注未来的趋势,在空闲的时间去掌握这些技术。对于高级运维来说,不仅需要丰富的知识体系还需要一线的经验,所以说精通还是很难的,不是我们看到很多刚毕业的学生在简历中写出了各种精通,由于是高级Linux运维,不经过多年的锻炼是达不到较高的境界。所以高级运维是稀缺型人才,对于企业来说也很难找到适合自己的人才。高级运维是一个非常专业职位,高级运维需要掌握相当多的知识,包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理,云计算平台应用,大数据等。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值