mp77的UNIX课件笔记(2)
第一章 UNIX的前世今生
一、UNIX起源
Unix的诞生离不开一种于1965年由Advance research project agency(United States Department of Defence)支持,并聚集MIT、AT&T以及通用电气共同参与开发的分时系统MULTICS (MULTiplexed Information and Computing Service)。
MULTICS的主要设计目标是:
1、便利的终端使用——大量远程终端通过电话线接入计算机主机
2、高可靠的大型文件系统——大容量的用户信息共享;存储和构造层次化信息结构的能力
然而MULTICS研制难度超出所有人的预料,长期的研制工作达不到预期目标,1969年4月AT&T退出,通用电气公司也退出。最终,MIT坚持下来,MULTICS成功运行,成为商业产品。事实上MULTICS运行直到2000年,加拿大国防部关闭了最后一个正常运行中的MULTICS系统。
MULTICS的开发及其研究成果对随后的计算机操作系统有着巨大影响。1969年,已退出MULTICS项目的AT&T研究员人员Ken Thompson和Dennis M. Ritchie 在一台无人用的DEC PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏。为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序。1970年,在一切完成后,给新系统起了个同MULTICS音相近的名字UNIX。
最初的UNIX是使用汇编语言编写,其中一些系统应用是使用B语言和汇编语言混合编写的,鉴于B语言并不善于进行系统编程,Ken Thompson和Dennis M. Ritchie在此基础上做了大量改进工作,并于1971年发明了C语言。1973年,UNIX用C语言全部重写,自此,UNIX正式诞生。1977年,Unix被几乎完全不变的移植到非PDP-7机上,开始广泛应用于各种大学和科研机构。
从历史上看,UNIX的流行具备以下几点重要因素:
首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统;
第二,系统源代码非常有效,系统容易适应特殊的需求;
最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统;
Ken Thompson和Dennis M. Ritchie因为其卓越的贡献于1983年获得图灵奖,并于1999年获得美国国家技术金奖。
然而由于UNIX强大的商业潜力,AT&T于1979年发布了最后一个UNIX广泛版本UNIX 7。1982年发布的UNIX III最终停止了向各个研究机构发布UNIX源代码的做法,而改为商业销售。随后又综合各个大学的研究版本发布了UNIX Syetem V Release 1。
Berkeley在UNIX商业化后延续了其BSD研究版的开发,其创立的TCP/IP协议机制几乎是现有所有系统TCP/IP实现的鼻祖。AT&T于1989年开发了UNIX Syetem V Release 4,并集成了当时多种UNIX变种版本,成为目前多数变种系统的前身。
AT&T与Berkeley在BSD是否侵权的问题上长期存在争执,直到UNIX被卖给Novell,双方最终才达成妥协,BSD得以在删除所有AT&T源代码的前提下继续开发。使得UNIX最终形成了两大技术流派:UNIX SVRx以及Berkeley Software Distribution。
二、UNIX发行版的比较
UNIX的发行版本众多,不过可以分为硬件流和软件流两种流派。
1、硬件流派
硬件流是指厂商所发布的UNIX仅能在自己研制的硬件系统中使用,硬件流的主要特点是:
系统和自家的硬件捆绑销售;
相对较封闭,不同厂家之间无法二进制兼容;
适合企业级应用;
性能和稳定性满足关键业务需求;
对管理员要求最高,但享有较好的维护支持;
总拥有成本(TCO)较高;
目前硬件流的代表有IBM的AIX、SUN的Solaris以及HP的HP/UX。
2、软件流派
UNIX源代码目前的版权属于SCO Group,并在此基础上发布了SCO Unix,其作为唯一合法的纯商业UNIX系统软件具有以下特点:
较好的x86平台兼容性,适合多种硬件架构;
适合网络服务的多种应用;
有版权;
对管理员要求较高,但也有部分商业支持;
总拥有成本(TCO)一般;
另外,开源项目中的UNIX版本已成为目前UNIX广泛流行的主要推动力量。包括了BSD衍生而来的FreeBSD、OpenBSD和NetBSD,以及Linux衍生来的RedHat(自v9.0后终止研发桌面版,进而开发RedHat Enterprise Linux商业系统)、Fedora(RedHat v9.0后由RedHat Inc.支持的开源项目)、Debian (早期的Linux发行版之一,拥有数量惊人的软件包支持)、SUSE(现由Novell维护的linux发行版)、Ubuntu(Debian衍生而来的一种较新的Linux发行版)、Mandriva(即Mandrake Linux,一种最初基于RedHat的衍生版本,其维护方Mandrakesoft Inc.于2005年被Conective Inc.收购)。开源项目下的BSD和Linux具有以下特点:
较好的x86平台兼容性,适合多种硬件;
从桌面到网络服务,适合多种应用,应用软件丰富;
源代码开放,不存在版权问题;
对管理员要求较高,商业支持少,但有社区支持;
总拥有成本(TCO)较低;
具有潜在的行业趋势;
三、UNIX和Linux
Unix的主要特点如下:
1、开放性
遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。
2、多任务
允许多个程序同时执行。
3、多用户
允许多个用户从相同或不同终端上同时使用同一台计算机。
4、良好可移植性、高稳定性和强安全性
编译大都相同,具备良好的可移植性,历经长久考验,稳定安全。
5、功能强大、实现高效
使用户能方便地、快速地完成许多其他操作系统难以实现的功能。
6、卷式文件结构及外部设备文件化
具有可装卸的树型分层结构文件系统 ,并分别赋予外部设备对应的文件名,用户可以像使用文件那样使用任一设备。
Linux的特点如下:
1、UNIX继承性
作为UNIX的子集,具备多任务,多用户,良好稳定性,良好安全性,符合POSIX标准等(POSIX可移植操作系统接口Portable Operating System Interface,缩写为 POSIX,是为了读音更像UNIX。电气和电子工程师协会Institute of Electrical and Electronics Engineers,IEEE最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性)。
2、多平台
支持各种CPU,包括Intel,AMD,PowerPC,甚至SUN sparc等。
3、完善的网络协议
具备 从IPv4到IPv6,内置IPSEC, netfilter防火墙。
4、多种友好用户界面
Shell,GNOME, KDE等。
5、核心与应用分离、遵循GNU协议(GNU’s Not UNIX,由Richard Matthew Stallman于1983年发起的类UNIX组织,旨在推广自由软件系统,该协议框架下包含了许多著名软件GNU/Linux、Emacs、以及C编译器GCC等)。
Linux采用核心与应用分离,核心(Kernel),围绕核心的shell,x-windows,以及应用软件共同构成Linux系统。
接下来介绍UNIX的配置方法和常用领域的解决方案。