简介-UNIX/LINUX

一、了解UNIX

微型处理机的问世,给信息产业及整个人类社会带来了一场革命。随着基于Intel80X86处理器的IBM PC机及其兼容机以及接口设备性能指标的不断提高,人们所期望的真正的PC机多用户、多任务、分时OS应运而生。充满活力的UNIX就是其中重要一个。

UNIX是一个操作系统,它于1969年由美国Bell实验室的Ken.Thompson和Denuis.Ritchie在DEC小型机上实现,用汇编语言编写的。1973年用由Denuis.Ritchie设计的C语言改写了其内核代码的大部分内容。1983年UNIX的设计师Ken.Thompson和Denuis.Ritchie荣获了图灵奖,充分肯定了UNIX在计算机世界中的地位。

UNIX从一个非常简单的OS发展成为性能先进、功能强大、使用广泛的OS,并成为事实上的多用户、多任务OS的标准。因此,在国外特别是在美国,几乎所有的OS教科书中,都是以UNIX作为实例,对它做了较深入的阐述。

二、UNIX系统的特性

UNIX系统能取得如此巨大成功的原因,可归结于它具有以下的一系列特征:

1、开放性

开放性是指系统遵循世界标准规范,特别是遵循了开放系统互连OSI国际标准。凡遵循国际标准所开放的硬件和软件,能彼此兼容,可方便地实现互连。UNIX是目前开放性最好的OS,它能广泛地配置在从微型机到大、中型机等各种机器上,而且还能方便地将已配置了UNIX OS的机器,互连成计算机网络。

2、多用户、多任务环境

它既可以同时支持数十个乃至数百个用户,通过各自的联机终端同时使用一台计算机,而且还允许每个用户同时执行多个任务。例如:在进行字符图形处理时,用户可建立多个任务,分别处理字符的输入、图形的制作和编辑等任务。

3、功能强大、实现高效

UNIX系统提供了精选的、丰富的系统功能,它使用户能方便地、快速地完成许多其它OS所难于实现的功能。UNIX已成为世界上功能最强大的操作系统之一,而且它在许多功能的实现上还有其独到之处,且是高效的。例如,UNIX的目录结构、磁盘空间的管理方式、I/O重定向和管道功能等。这些功能及其实现技术已被其它OS所借鉴。

4、提供了丰富的网络功能

各种版本UNIX普遍支持TCP/IP协议,并已成为UNIX系统与其它OS之间联网的最基本的选择。在UNIX中包括了网络文件系统NFS软件,客户/服务器协议软件Lan Manager Client/Server、IPX/SPX软件等。通过这些产品可以实现在UNIX系统之间、UNIX与Novell的Netware、MS-Windows NT、IBM LAN Server等网络之间的互联和互操作。

5、安全性

UNIX至少提供二道安全防线。一是在系统登录时要求提供合法的注册名和口令字,二是UNIX根据用户的注册名控制用户对文件及对系统服务的存取权限控制。

三、UNIX系统核心的结构

整个UNIX系统分三个层次:

  • 第三层:SHELL,用户接口(命令接口、程序接口、图形用户接口)
  • 第二层:内核,对对象控制和管理的软件集合(处理机管理软件、存储器管理软件、设备管理软件、文件管理软件)
  • 第一层:硬件,操作系统对象(处理机、存储器、设备、文件和作业)
  1. 最低层是硬件,作为整个系统的基础。次低层是OS核心,包括教材所介绍的四大资源管理功能。最高层是OS与用户的接口Shell以及编译程序等。

  2. 内核。作为OS的核心,它应具有二个方面的接口:一方面是核心与硬件的接口,它通常是由一组驱动程序和一些基本的例行程序组成;二是核心与Shell的接口,由二组系统调用以及命令解释程序等组成。核心本身又可分成二大部分:一部分是进程控制子系统;另一部分则是文件子系统。二组系统调用分别与这二大子系统交互。

  3. Shell是用户与系统交互作用的界面。UNIX中,Shell作为解释程序出现:接收用户打入的命令,进行分析,创建子进程,由子进程实现命令所规定功能,等子进程终止工作后,发出提示符。这也是Shell最常见的使用方式。

Shell除了作为命令解释程序以外,还是一种高级程序设计语言,它有变量、关键字、各种控制语句,如if、case、while、for等,有自己的语法结构。利用Shell程序设计语言可以编写出功能强大、代码简单的程序,特别是它把相关的LINUX命令有机地组合在一起,可大大提高编程的效率。

Shell具有如下突出特点:

  • 把已有命令进行适当组合,构成新的命令,且组合方式简单;

  • 可以进行交互式处理,用户和LINUX系统之间通过Shell进行交互式会话,实现通信;

  • 灵活地利用位置参数传递参数值;

  • 结构化的程序模块,提供了顺序流程控制、条件控制、循环控制等;

  • 提供通配符、I/O重定向、管道线等机制,方便了模式匹配、I/O处理和数据传输;

  • 便于用户开发新的命令。利用Shell过程可把用户编写的可执行程序与LINUX命令结合在一起,当作新命令使用;

  • 提供后台处理方式,不打断前台工作。

UNIX通常提供三种不同的Shell,即Bourne Shell (简称bash),C-Shell (简称csh)和Korn Shell (简称ksh)。Bourne Shell是AT&T Bell实验室人员为UNIX开发的,它是其他Shell 开发的基础,也是各种UNIX/LINUX 系统上最常用、最基本的Shell。C-Shell 是加州伯利克大学的Bill Joy 为BSD UNIX开发的,它与bash不同,主要模拟C语言。ksh Shell是AT&T Bell实验室开发的,与bsh兼容,但功能更强大。

3、Shell 程序示例

使用Shell 最简单的方法是从键盘上直接打入命令行。例如:

ls -l /usr/example

Shell 命令解释程序对打入的命令进行分析,并创建子进程,完成该命令所对应的功能。Shell 程序也可存放在文件上,下面是二个Shell 程序示例。

例如:由三条简单命令组成的Shell 程序(文件名为ex1)

date
pwd
cd..

执行这个Shell 程序时,依次执行其中各条命令:显示日期、当前工作目录,返回上级目录。

四、什么是LINUX

由于UNIX庞大的支持基础和发行系统,它成为世界范围内最有影响的OS之一。但另一方面,由于商业版UNIX非常昂贵,且源代码有专利,所以很难在计算机爱好者中广泛使用。于是,出现了这样一群人,他们是一支由编程高手、业余计算机玩家、黑客们组成的奇怪队伍,完全独立地开发出在功能上毫不逊色于商业版UNIX OS的一个全新的免费UNIX OS——LINUX。

LINUX 是芬兰赫尔辛基大学的Linus Torvalds于1991年开始开发的。LINUX是一个遵循POSIX标准的免费OS,具有BSD和SYSV的扩展特性(其外表性能上同UNIX非常相象,但所有系统核心代码全部重新写过了)。

LINUX 可以运行在X86 PC、SUN Sparc、Digital Alpha、PowerPC、MIPS等平台上,可以说是目前运行硬件平台最多的OS。

LINUX 上可运行大多数UNIX程序:X-Windows系统、GNU C/C++编译器……。如今越来越多的商业公司采用LINUX 作为OS,例如,科学工作者使用LINUX 进行分布式计算,ISP使用LINUX配置Internet服务器、电话拨号服务器来提供网络服务;美国1998年1月最卖座的影片《泰坦尼克》中的计算机动画设计工作就是在LINUX平台上进行的。

LINUX与UNIX有着密不可分的关系。实际上LINUX就是UNIX的克隆,只不过LINUX 一般用于PC机,而大多数商业UNIX则主要用于工作站或大型机。

五、LINUX的特点

  • 支持多种硬件平台。它支持几乎所有的兼容芯片;

  • 支持多种文件系统。如FAT、FAT32、EXT2、NFS等,LINUX 可以将这些文件系统直接装载为系统的一个目录。LINUX 自己的文件系统EXT2非常先进,最多可支持到2TB的空间,文件名长度可达到255个字符。LINUX 可直接读写DOS/WINDOWS9X的FAT及FAT32文件系统,新的内核还支持直接读写Windows NT 的NTFS文件系统。同时在DOS和Windows95/NT下也都有工具来直接读取LINUX 文件系统上的文件;

  • 多任务、多用户;

  • 使用分页技术的虚拟内存。在LINUX 下,系统核心并不把整个进程交换到硬盘上,而是按照内存页面来交换。虚拟内存的载体不仅可以是一个单独的分区,也可以是一个文件(如果用户在同时使用Windows,LINUX还可以同它们共享同一个交换文件,这是对硬盘紧张的用户的一个非正式的解决办法)。LINUX 还可以在系统运行时临时增减交换内存;

  • 具有优秀的磁盘缓冲调度功能。LINUX 最突出的一个优点就是它的磁盘I/O速度,因为它将系统没有用到的剩余物理内存全部用来作硬盘的高速缓冲,当有对内存要求比较大的应用程序运行时,它将会自动地将这部分内存释放出来给应用程序使用;

  • 动态链接共享库。同Windows的DDL一样,LINUX 也使用动态链接共享库(同时也提供静态链接库)。这个特性可以大大减小LINUX 应用程序的大小。例如,一个普通的应用程序如果使用动态库,其程序大小只有50KB左右,但一旦在编译时改成静态链接,则该应用程序的大小将急增到2MB。动态链接共享库是在程序运行时才动态链接的,并且被很多程序同时调用的一段代码只被加载一次,由众多程序共享;

  • 丰富的软件;

  • 软件移植性好(与其他UNIX系统的兼容性好);

  • 强大的网络功能。LINUX 本身就是在Internet上成长起来的,所以它提供了全面的网络支持,如基本的TCP/IP网络、HTTP、FTP、NFS、E-Mail、UUCP等;

  • 提供全部源代码。LINUX 最后也是最大的优点就是它的全部源代码都是公开的,这包括整个系统核心、所有的驱动程序、开发工具以及所有的应用程序。任何人只要有兴趣都可以将整个LINUX 重新编译一遍。用户可以在LINUX 的源代码中观察系统核心的运转,查看Telnet、FTP是如何实现的。整个LINUX 对于用户就象是一个透明的发动机。

posted @ 2020-08-11 15:47  漫漫长夜何时休  阅读(939)  评论(0编辑  收藏  举报