• 1. 第1章 UNIX的发展与演变说明:本章内容为学生自学内容,教师只做简单讲解2-1
  • 2. 主要内容计算机系统组成 什么是操作系统,操作系统的功能是什么 UNIX的发展历史 UNIX的几个重要分支 UNIX与Windows的异同2-2
  • 3. 1.1 计算机系统组成2-3
  • 4. 计算机硬件1.1 计算机系统组成2-4
  • 5. 计算机软件 系统软件 操作系统 程序语言处理系统 编译和解释系统 数据库系统 诊断和控制系统 系统实用程序 等等1.1 计算机系统组成2-5
  • 6. 计算机软件 应用软件:计算机系统支持下的所有面对实际问题和具体用户群的应用程序的总和 科学计算 工程设计 数据处理 事务管理 过程控制系统 等等1.1 计算机系统组成2-6
  • 7. 1.2 什么是操作系统操作系统:是用户与计算机硬件间的界面,是控制、管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件。 文件管理 程序管理 用户界面 操作系统的功能: 2-7
  • 8. 1.2 什么是操作系统图1-3 操作系统及其管理的模块2-8
  • 9. 1969年,从事MULTICS研究的贝尔实验室的Ken Thompson和他的同事Dennis Ritchie,在DEC的PDP-7型计算机上编写了一个简易的新型操作系统,是一个两用户的多任务操作系统。这套系统取名UNIX。UNIX在后来取得了巨大成功。1.3 UNIX的诞生和发展UNIX最初用汇编语言编制,在PDP-7上实现。Dennis Ritchie发明了C语言,并与Thompson用C语言改写了UNIX的源程序,为以后的开发和移植奠定了基础。 随后,UNIX被移植到各种各样的计算机系统上,UNIX也经历了二三十年的发展,引进了许多新的技术,成为更加成熟的操作系统。2-9
  • 10. UNIX发展过程中,曾经有两大流派,一个是以UNIX的鼻祖AT&T最早于1983年发表的UNIX System V,最新的版本是Release 4,简写为SVR4。另一个是学术派的加州大学伯克利分校计算机系统研究小组(CSRG)发表的BSD UNIX(Berkeley Software Distributions UNIX),比较有影响的版本是4.3,记作4.3BSD。 早期的Internet上的大部分计算机都运行UNIX。两种流派的UNIX随着不断的发展,互相吸收对方的新技术,趋于统一到逐渐完备的POSIX标准。1.3 UNIX的诞生和发展2-10
  • 11. UNIX后来成为了AT&T贝尔实验室操作系统产品的注册商标,所以,许多操作系统由于商业上的原因,在命名时不能够使用UNIX这个字眼,如: IBM RISC/6000小型机上的AIX Sun工作站上的SunOS以及后续版本Solaris CDC小型机上的EP/IX 惠普Hewlett-Packard的HP-UX,等等。 几乎所有的工作站平台上都运行UNIX操作系统。1.3 UNIX的诞生和发展2-11
  • 12. UNIX成为一种软件商品后,其源代码也就不再随意公开。Andrew S. Tanenbaum教授在UNIX的基础上开发了教学版的UNIX,取名MINIX,意为Mini-UNIX。1.3 UNIX的诞生和发展 1991年,芬兰学生Linus Benedict Torvalds,在PC上独立编写了基于Intel 80386体系结构的UNIX系统,名为Linux。世界各地的软件爱好者都可以通过Internet免费获得Linux的全部源代码和二进制发行版本。现在,Linux更是发展迅速。从比PC还要简单得多的小型嵌入式环境,一直到大型的服务器,都有Linux操作系统在运行。Linus Torvalds2-12
  • 13. UNIX经历的主要阶段 一、UNIX的诞生(1969-1973) 二、免费扩散(1974-) 三、UNIX商业版的产生(1976-) 四、UI和OSF两大阵营和UNIX标准化(1988-) 五、UNIX的变体和发展(20世纪80年代末-) 六、Linux的诞生和崛起(20世纪90年代-)1.3 UNIX的诞生和发展2-13
  • 14. 1.3 UNIX的诞生和发展年度UNIX 变种或标准注解1969UNICS (后来叫做UNIX)Ken Thompson和Dennis Ritchie 为PDPT发明的一个新操作系统1973第四版用C语言编写的;在贝尔实验室内被广泛使用1975第六版在贝尔实验室之外普及的第一个版本,可在600台以上的计算机上运行19783BSD虚拟内存1979第七版含有Bourne Shell,UUCP和C;现代UNIX的鼻祖1980XENIX由微软推出19804BSD由加州大学伯克利分校推出1982System III贝尔实验室以外的首次公开发行1983System V Release 1首次有支持的发行19834.1BSD性能上改进了的伯克利发行版UNIX 发展时间表2-14
  • 15. 1.3 UNIX的诞生和发展19844.2BSD具有许多网络功能的伯克利发行版1984System V Release 2文件保护和锁定,改进了系统管理,并增加了作业控制特性1986HP-UX第一个HP-UX版本,用于HP的精确体系结构19874.3BSD对4.2BSD做了少量改进1987System V Release 3增加了STREAMS,RFS及TLI1988POSIX发表了POSIX.11989System V Release 4统一了System V,BSD及Xenix1990XPG3X/OPEN 规范集合1990OSF/1开放软件基金会与SVR4相竞争的发行版1991Linux0.01LinusTorvalds开始开发Linux2-15
  • 16. 1.3 UNIX的诞生和发展1992SVR4.2USL开发了用于桌面环境的SVR4版本1992HP-UX9.0支持包含GUI的工作站年度UNIX 变种或标准注解1993Solaris 2.3符合POSIX标准19934.4BSD最后一个伯克利发行版1993SVR4.2MPUSL开发的UNIX最新版本1994Linux1.0第一个被认为是走过了β段的Linux版本1994Solaris 2.4支持Motif1995Unix95用于在“真正UNIX规范”下注册了的系统的X/OPEN标志1995Solaris 2.5支持CDE2-16
  • 17. 1.3 UNIX的诞生和发展1995HP-UX10.0与“真正UNIX规范”及通用桌面环境(CDE)取得了一致1996Linux2.0性质上做了改进,并增加了网络软件1997Solaris2.6UNIX95兼容,JAVA支持System V Realse 5(SVRS)1997UNIX第二版开放用户团体规范1997System V Release 5(SVR5)(SCO)改进了System V内核,包括支(SCO)持64位字长,更高的可靠性以及性能上的改进1997UnixWare7基于SVR5内核的SCO UNIX1997HP-UX11.064位操作系统1998UNIX98开发用户团体用于在真正UNIX规范第二版下注册了的系统的标志2-17
  • 18. 1.3 UNIX的诞生和发展1998Solaris 7支持64位应用,对非商用免费1999Linux 2.2增加了设备驱动程序2000Solaris 8增加了对JAVA2的支持2002Solaris 9资源管理器改进了分配、监视和控制系统资源的功能。2004Solaris 10Sun公布了Solaris的全部代码,推出了支持x86架构的Solaris10。Solaris10进行了一系列新技术更新,包括D-Trace,ZFS等2-18
  • 19. 1.4 UNIX的特点UNIX是最早出现的操作系统之一,发展到现在已趋于成熟;C语言因UNIX系统而出现,UNIX系统具有强大的可移植性,适合多种硬件平台。由于UNIX开放和竞争的环境,使UNIX技术得到了迅猛的发展,形成了技术成熟,可靠性高,伸缩性强,应用系统多,支持网络与数据库功能强大,以及与现有系统的兼容性和互操作性好等特点。 Unix是名声显赫的贵族操作系统,开放性好是UNIX系统最重要的本质特征,也是UNIX强大生命力之所在。Unix是名声显赫的贵族操作系统2-19
  • 20. 1.4 UNIX的特点1、强大的网络功能,集群和分布式计算,适合当今的Internet,其telnet设计思想很适合用户进行远程管理。 2、完善的系统审计。 除了提供syslog系统审记,还提供sulog、lastlog、wtmplog等,同时用户还可以自定义记录LOG,由于UNIX非常擅长处理文本,用户可以方便的对这些LOG进行查看、分类和再加工。 3、增强的系统安全机制。 系统大多满足C2级系统安全规范,部分专用系统已经达到了B1级;经典而完善的按属主和组进行3种权限管理的机制仍然是当今最完善的用户权限解决方案。2-20
  • 21. 1.4 UNIX的特点4、系统备份功能完善。 系统本身提供了dd、tar、cpio、dump等传统的归档备份程序,用户同时可采用第3方的备份工具。 5、系统结构清晰,有利于操作系统的教学和实践。 UNIX操作系统是学生学习操作系统最好的教材,操作系统的每一个知识点都可以在UNIX系统上进行实践和找到答案。如进程管理和调度,学生可以直接通过ps、nice等命令的操作来体会和理解概念;同时可以阅读其核心源代码以及亲自编写程序来加深对操作系统的理解。 6、系统的专业性和可定制性强。 每种UNIX系统都有它们的安装程序,和Windows相比,它们要专业和复杂得多,有很多系统还支持网络安装。对于同一个操作系统,用户可以定制成不同的类型,如字符终端、图形工作站、服务器等,不像Windows,针对不同的用户来发行不同的版本,系统的可定制性差。2-21
  • 22. 1.4 UNIX的特点7、UNIX系统具有强稳定性和健壮的系统核心。 其最新的核心为System V Release 5(SVR5),支持众多新技术,如DDI8设备驱动程序,64位技术,多路I/O提高了系统的可靠性和性能,控制器热插拔,硬盘跨接和镜像,Crash和Dump的能力,多控制台支持,核心动态调整等等,以满足复杂的应用要求。 8、系统规范。 虽然UNIX存在很多变体版本,但在UNIX系统中可以找到很多系统规范的影子,例如SystemV, Posix , GNU, UNIX95 , CDE 等等;这有助于UNIX的统一发展。 9、功能强大的帮助系统2-22
  • 23. 1.5 UNIX与Windows在服务器领域,微软基于NT技术架构的Windows NT、Windows2000和Windows 2003甚至有取代UNIX的趋势,特别是在小型服务器和网络操作系统方面。然而,在许多领域它无法同UNIX相比拟。其中包括适应能力,资源的高效利用和可靠性等。此外Windows作为微软专有的系统,它不具备像UNIX那样吸收新特性的灵活性和敏捷性。2-23
  • 24. 1.5 UNIX与WindowsUNIX是一个大、小写有区别的操作系统,而Windows不分大小写。 这会引起一些问题,因为有时用户实在想在同一个目录下安排两个名字相同而大小写不同的文件(像DRA和Dra)。 UNIX从一开始就能同时支持多个用户。 Windows和UNIX System V都是多任务操作系统。然而,Windows NT和Windows 2000一次只支持一个用户,直到Windows 2003才实现了真正意义的多用户。 Windows只由微软控制,而UNIX有许多版本并且有多厂商支持开发。 Unix标准趋于统一。图形、图像等处理能力远不如Windows。 随着标准化的努力,不同的UNIX版本可以共享特性和接口。例如,目前几乎所有的UNIX都支持友好的图形用户界面。随着CDE的标准化和几乎所有的UNIX厂家的努力,基于UNIX的图形用户界面在不同的UNIX变种之间相兼容。2-24
  • 25. 1.5 UNIX与WindowsUNIX的巨大优越性之一就是它被用于新硬件的能力。 例如,Windows NT是一个32位操作系统,而同时期的UNIX版本就已经支持64位运算了,虽然现在的Windows 2000和Windows 2003也能支持64位运算,但是UNIX已经有了128位的版本。在系统设计上UNIX和Windows也有原则上的区别。Windows是事件驱动型操作系统,而UNIX是进程驱动型操作系统。 硬件兼容性强大。 Windows NT运行于x86处理器、MIPS、Alpha和其它几种处理器上。相对应地,UNIX运行在几乎每一个目前使用的处理器上。2-25
  • 26. 1.5 UNIX与WindowsUNIX是一个开放的操作系统,Windows则不是。 大多数人无法见到Windows的源代码。UNIX的源代码却随时可以得到,尤其在商用最广泛的Solaris系统开放源代码之后,UNIX系统的开放性再一次让世界震撼。 Windows是一个专有的操作系统,由微软控制其演绎。开放性使得UNIX可以随着人们开发新的特性而进化,Windows进化的唯一途径是微软对它进行修改。2-26
  • 27. 1.6 UNIX的未来UNIX在继续演变之中。从开发UNIX SVR4开始到UNIX统一由来自OpenSource的唯一UNIX规范向前推动着。 UNIX系统的长远优越性之一是它随着技术进步而成长和吸收新特性的能力。 UNIX的明天会更好!2-27
  • 28. 第2章 UNIX操作系统基础2-28
  • 29. 主要内容UNIX操作系统的基本结构 内核的功能和地位 Shell介绍 UNIX的文件和目录 UNIX应用程序 UNIX的用户界面2-29
  • 30. 2.1 UNIX操作系统结构 UNIX操作系统结构 2-30
  • 31. 2.1 UNIX操作系统结构计算机硬件、内核、Shell以及应用程序之间的关系可以描述成一系列同心圆,这些同心圆说明了在用户和计算机之间的层次结构。在中间,是计算机硬件本身,包括打印机、磁盘驱动器和其他的外围设备。内核控制着硬件、程序的运行以及文件存储。Shell与内核交互,把从用户接受的命令发送给内核。用户只需要与Shell通信,而不会直接与内核通信,利用Shell,用户可以运行不同的程序,如编辑器或通信程序。一系列标准程序就是所谓的应用程序。 2-31
  • 32. 2.2 内核内核位于操作系统的最内层,它是唯一与硬件交流的部分,是控制计算机硬件的核心程序。 实现了应用层用户与硬件的隔离 实现了UNIX的多用户、多任务机制 从理论上讲,只修改内核部分就可以使同一操作系统在不同硬件环境下运行。 UNIX内核是用C语言开发的 UNIX规范主要由OpenSource来制定。2-32
  • 33. 2.3 Shell是一个内核与用户之间的接口; 可以描述成一个用户命令和应用程序的解释器; 界面简单,通常包含提示用户输入命令的提示符; 几乎适用于所有UNIX平台2-33
  • 34. 2.3 ShellShell和内核 2-34
  • 35. 2.3 ShellShell中的许多功能和特点也都来自于内核(kernel),例如,管道、重定向、执行命令创建新进程等。 除了可以交互式地输入命令之外,Shell还是一种程序设计语言,提供了变量,循环结构和条件结构,用户可以通过它设计批处理程序。2-35
  • 36. 2.3 ShellShell的种类 shell程序是UNIX系统的外壳程序,在UNIX系统的发展过程中出现过多种风格的shell程序,其中最常见的有B-shell, K-shell和C-shell。 B-ShellC-ShellK-Shell它是UNIX 最初使用的Shell并且在每种 UNIX 上都可以使用。B-Shell 在 Shell 编程方面相当优秀,但在处理与用户的交互方面作得不如其他几种 Shell它更多的考虑了用户界面的友好性,普遍认为C shell 的编程接口做的不如 B-Shell,但 C-Shell 还是被很多 C 程序员使用,因为 C-Shell 的语法和 C 语言很相似,这也是 C-Shell 名称的由来;它集合了 C Shell 和 B Shell 的优点并且和 B Shell 完全兼容。2-36
  • 37. 2.3 ShellShell编程 根据要实现的某种特定的操作目标,将一组命令按照一定的顺序放到一个命令文件中,这个命令文件就叫Shell程序或Shell脚本。 在操作Unix/Linux系统中,我们会遇到很多繁琐而又重复的工作,例如:成批量添加用户,定时监测系统日志等等,这些工作对于系统管理员来讲工作负载量是很大的,那么为了提高我们的工作效率,我们就用到了Shell脚本,Shell可以为我们完成复杂而又繁琐的工作,达到事倍功半的效果。 2-37
  • 38. 2.4 UNIX文件系统在UNIX中,一切都是文件,文件组织成目录。所以说,整个UNIX文件系统就是一个互相关联的目录集合,每个目录又包含文件。 用户可以为自己的文件生成目录,并且可以把文件从一个目录移向另外一个目录。目录是一种组织和控制文件访问的很好的方式,用户可以为目录设置权限以允许其他人访问里面的文件或只允许自己访问。 2-38
  • 39. 2.4 UNIX文件系统Unix目录和文件存储结构 Unix将文件组织成一种层次状互联的目录结构。每个目录又可以包含文件或它自己的子目录。2-39
  • 40. 2.4 UNIX文件系统主目录:每个用户都有自己的主目录,并以用户名标识。用于存放用户自己的文件。 默认目录:用户登录系统时自动进入的目录。 嵌套目录:在目录中再建立子目录,构成嵌套目录。 当前目录:用户当前正在使用的目录,也称工作目录。 路径名:从根目录指向某个文件或目录所经过的一系列目录名字的组合。 绝对路径:从根目录“\”开始的路径。(长而复杂) 相对路径:从当前工作目录开始的路径。(简单易用)2-40
  • 41. 2.4 UNIX文件系统文件类型 普通文件 目录文件 字符设备文件 块设备文件 这里只是对Unix文件系统进行一个概述,详细内容将在第4章讲解2-41
  • 42. 2.5 应用程序编辑器 Ed Vi Emacs… 过滤器 管道机制 通信程序 消息机制2-42
  • 43. 2.6 用户界面用户界面就是人和计算机交互的接口,在计算机出现的半个多世纪的时间里,人机交互技术经历了巨大的变化。就用户界面的具体形式而言,过去经历了命令接口、文本菜单界面、多媒体用户界面和虚拟现实系统。2-43
  • 44. 2.6 用户界面UNIX的用户界面 命令行用户界面 典型形式是“动词+名词宾语”(如:ls /),可以有非常简单形式,也可以有非常复杂的语法,适合专业人员使用。 图形用户界面(GUI) 传统的图形界面主要是基于X-Window,常用的有CDE、KDE、GNOME等。新开发的有Webmin、SWAT等。 图形用户界面启动方法:Linux中用startx命令,SUN Solaris系统中用openwin命令。2-44
  • 45. 2.6 用户界面用户界面的启动控制 在Redhat Linux9.0中,要控制系统默认启动的用户界面,需要编辑系统初始化控制文件/etc/inittab中的默认启动项。下面是默认启动图形用户界面其默认启动项为5,如果默认启动文本用户界面则设为3.2-45
  • 46. Vmware虚拟机的安装及使用此部分内容与Linux系统安装过程可参看随课件提供的视频文件。2-46
  • 47. Vmware虚拟机的安装安装准备: Window XP系统 Vmware5.0软件包及汉化包 Linux 9.0 安装光盘或ISO光盘压缩文件 Linux 9.0 Vmware虚拟机软件包(可以直接挂载到Vmware系统中) Windows 7 或Vista Vmware 7.0 软件包及汉化包 Linux 9.0 安装光盘或ISO光盘压缩文件 Linux 9.0 Vmware虚拟机软件包(可以直接挂载到Vmware系统中)2-47
  • 48. Vmware虚拟机的安装安装过程 看实际操作演示 另外,也可以查看课程提供的虚拟机安装及linux系统单机安装的教学录像。 虚拟网络环境设置 实际计算机中虚拟网络环境的设置 实际主机虚拟网络映射 实际主机内的虚拟网卡(用于连接虚拟主机)的增加与删除 虚拟机运行环境参数设置 工作空间、使用内存的尺寸、进入/退出虚拟环境方法、虚拟机桌面窗口显示控制等。2-48
  • 49. Vmware虚拟机的配置新建虚拟机 打开并启动一个已经存在的虚拟机 编辑虚拟机的硬件配置 增加/减少一个虚拟机硬件 设置虚拟机内存尺寸 虚拟机光驱及ISO映像文件的使用 虚拟网卡与实际计算机的网络连接方式 其他操作 2-49
  • 50. Vmware虚拟机的配置虚拟机与实际计算机的网络连接方式: 桥式连接(bridged):虚拟机内部网卡直接连接到外部网络,此时虚拟机需要有独立的外部IP地址、子网掩码、网关等Internet参数,和一台独立的计算机一样。 NAT(共享连接):使用共享给这台虚拟机的私有IP地址连接到实际主机,有实际计算机将私有IP地址转换为实际IP地址后,再将数据包传发到外部网络上。 仅主机(host-only):在实际计算机与虚拟机之间建立一个独立的私有网络,使实际计算机与虚拟机之间能够互相传输信息,与外部网络无关。 定制连接(custom):连接到指定的虚拟网络(如:vmnet0、vmnet1、vmnet8等) 2-50
  • 51. Vmware虚拟机的使用使用目的: 学习操作系统软件或网络应用程序,建议使用“仅主机”的网络连接方式。 建立简单的局域网络模型,测试专用服务器的使用效果。如:dhcp服务器、web服务器、Dns服务器等。(即:虚拟出多台计算机,分别安装不同的服务程序,验证这些服务程序整体配合的效果),建议使用NAT或host-only方式。 将虚拟机当成实际的计算机使用,为网络提供实际的服务(如:ftp、Web、DHCP、DNS等)或作为实际连接外网的客户机。---建议使用“桥式”连接,并按照接入外网的要求是指IP地址等参数。 2-51
  • 52. Vmware虚拟机的使用本课程要求采用host-only方式连接虚拟机和实际计算机,并且能够相互Ping通。 配置原则:实际计算机连接虚拟机的网卡(如:VMnet1)与虚拟主机内部网卡两者的IP地址必须在同一网段上,并且应与“虚拟网络设置”选项中主机“虚拟网络映射”选项卡中对应的“子网地址”相一致。否则不能Ping通。 进入/退出虚拟机环境:在虚拟机窗口内部的任何位置双机鼠标,进入虚拟机操作环境;退出到实际计算机时,按CTRL+ALT键。 关闭虚拟机:关闭的方法根据虚拟机安装的操作系统的要求决定。 虚拟机与实际计算机交换文件的方法: 如果虚拟机安装的OS与实际计算机的OS都是Windows系列,可以使用目录共享、或再两者的任何一方建立FTP服务。 如果虚拟机安装的是Linux,而实际计算机上安装的是Windows系列操作系统,则需在实际计算机上建立FTP服务,或在Linux系统上配置Samba服务与Windows环境共享文件系统。2-52