分类: LINUX
2009-08-22 13:05:48
UNIX 系统及UNIX C 编程摘要
Unix System Administer & Unix C summary
二OO二年二月一日
UNIX为美国电话电报公司(AT&T)贝尔实验室(Bell Lab)的 Ken Thompson 于1969年在数字设备公司的PDP-7机器上开发出来的。接着在PDP-11机器上完成了第七版,然后分支成多个流派。主要有:AT&T,柏克莱(BSD),及SCO XENIX 。
1 9 8 9年后期,C程序设计语言的A N S I标准X 3 . 1 5 9 - 1 9 8 9得到批准〔ANSI 1989〕。此标准已被采用为国际标准ISO/IEC 9899:1990。A N S I是美国国家标准学会,它是由制造商和用户组成的非赢利性组织。在美国,它是全国性的无偿标准交换站,在国际标准化组织( I S O )中是代表美国的成员。
ANSI C标准的意图是提供C程序的可移植性,使其能适合于大量不同的操作系统,而不只
是UN I X。此标准不仅定义了C程序设计语言的语法和语义,也定义了其标准库。
P O S I X是一个由I E E E (电气和电子工程师学会)制订的标准族。P O S I X的意思是计算机环境的可移植操作系统界面(Portable Operating System Interface for Computer Environment)。它原来指的只是I E E E标准1 0 0 3 . 1 - 1 9 8 8 (操作系统界面),但是, I E E E目前正在制订P O S I X族中的其他有关标准。
X / O p e n是一个国际计算机制造商组织。它提出了一个7卷本可移植性指南X/Open PortabilityGuide (X / O p e n可移植性指南)第3版〔X/Open 1989〕,我们将其称之为X P G 3。X P G 3的第2卷XSI System Interface and Headers(X S I系统界面和头文件)对类似U N I X的系统定义了一个界面,该界面定义是在IEEE Std.1003.1-1988界面的基础上制订的。X P G 3包含了一些P O S I X . 1没有的功能。例如,P O S I X . 1没有但X P G 3却有的一个功能是X / O p e n的消息设施,该设施可由应用程序使用以在不同的语言中显示文本消息。X P G 3界面使用了ANSI C草案而不是最后的正式标准,所以在X P G 3界面规格说明中包含的某些功能不再使用。这些问题很可能会在将来的X P G规格说明的新版本中解决。(有关X P G 4的工作正在进行,可能在1 9 9 3年完成。)
F I P S的含义是联邦信息处理标准(Federal Information Processing Standard),这些标准是由美国政府出版的,并由美国政府用于计算机系统的采购。F I P S 1 5 1 - 1(1 9 8 9年4月)基于I E E ES t d . 1 0 0 3 . 1 - 1 9 8 8及ANSI C标准草案。FIPS 151-1要求某些在P O S I X . 1中可选的功能。这种F I P S有时称为POSIX.1 FIPS。
POSIX.1 FIPS的影响是:它要求任一希望向美国政府销售P O S I X . 1依从的计算机系统的厂商应支持P O S I X . 1的某些可选功能。我们将不把POSIX.1 FIPS视作为另一个标准,因为实际上它只是一个更加严格的P O S I X . 1标准。
l UNIX Kernel 是控制计算机系统资源的软件程序。
l Kernel 是在引导时被装载的,标准从/unix
l 当进程向系统提出请求和异步事件发生时,提供服务。
l Kernel不能作为进程运行,但可作为服务。
l Kernel不能直接与用户交互,但可以通过用户请求进行交互。
Kernel 服务
l 文件系统管理 (Filesystem management)
l I/O管理 (I/O management)
l 进程管理 (Process management)
l 内存管理 (Memory management)
l 错误核对 (Error checking)
l 安全 (Security)
l 帐户 (Accounting)
l 审核 (Auditing)
〓第一节 文件系统要点
1. UNIX核心的两个主要组成部分是文件子系统与进程子系统。
2. 文件子系统(filesubsystem)是指从体系结构的角度上划分的核心结构的一部分。而文件系统(filesystem)是指文件存在的物理空间,它管理用户对数据和设备的读写访问,并保证信息的安全性和私有性。
3. 改变文件内容与改变文件索引节点之间的不同,写文件才改变一个文件的内容,而改变文件所有者、改变文件存取许可权等操作都会改变文件的索引节点内容。写文件必然改变文件的索引节点,而改变文件索引节点并不意味着改变文件的内容。
4. 索引节点号是用来指出内存索引节点对应磁盘索引节点在磁盘上的位置。
5. 一个文件系统包含这样一些结构:
引导块(bootblock)、超级块(super block)、索引节点表(inode list)、数据块(data blocks)。
6. 各种操作系统都有自己的文件系统,window使用FATl6、FAT32文件系统,Netware使用NSS 操作系统,而UNIX使用的是HTFS(不可作引导性文件系统)、DTFS(可作引导性文件系统)等文件系统。随着网络的出现,又相应地出现了可以将文件在互联的计算机上实现透明共享的几种文件系统。例如.网络文件系统(NFS)、远程文件系统(RFS)和Andrew文件系统(AFS)。各种文件系统之间有共性,也有特性.文件系统的互操作也是网络管理中所面临的一个重要问题。
7. 文件是一 段程序或数据的集合,文件主要包括两种:
一种是流式文件.这种文件被视力字符序列。其形式与源程序和目标代码是统一的 UNIX操作系统采用的就是这种文件结构。这种文件不再划分为记录,其长度是通过字节总数计算的。
另一 种文件是记录式文件,记录式文件是由字节组成的信息单元.这种文件主要用于信息管理。
8. 在UNIX操作系统中,外部设备也被看作是一种特殊的文件;这样,操作系统可以对设备和文件进行管理,简化了设备接口和文件系统接口的设计任务。
9. 操作系统中与管理文件有关的软件和数据,被称文件系统。文件系统负责为用户创建文件、对文件进行读写操作,以及对文件的存取控制。 文件系统应该具有以下特点:
1. 对用户提供文件接口,用户可以通过系统调用对文件直接进行操作,而不消要考虑文件在磁盘中的物理位置 和文件的具体结构。
2. 系统中的 一 些文件可以被多个用户或进程共享。
3. 文件系统采用磁盘、磁带和CD_ROM等作为大容量存 储设备,其中可以保存大量信息。
10. 文件的物理结构
是指文件在存储设备中的保存方法。
文件的逻辑块号与到存储设备的物理块号的变换是由文件的物理结构决定的。
11. UNIX文件系统内部结构
引导块à超级块àI节点à数据块
12. 内核使用了三种数据结构,它们之间的关系决定了在文件共享方面一个进程对另一个进程
可能产生的影响。
(1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将
其视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:
(a) 文件描述符标志。
(b) 指向一个文件表项的指针。
(2) 内核为所有打开文件维持一张文件表。每个文件表项包含:
(a) 文件状态标志(读、写、增写、同步、非阻塞等)。
(b) 当前文件位移量。
(c) 指向该文件v节点表项的指针。
(3) 每个打开文件(或设备)都有一个v节点结构。v节点包含了文件类型和对此文件进
行各种操作的函数的指针信息。对于大多数文件, v节点还包含了该文件的i节点(索引节
点)。这些信息是在打开文件时从盘上读入内存的,所以所有关于文件的信息都是快速可供
使用的。例如, i节点包含了文件的所有者、文件长度、文件所在的设备、指向文件在盘上
所使用的实际数据块的指针等等。
13. 文件类型
U N I X系统的大多数文件是普通文件或目录,但是也有另外一些文件类型:
(1) 普通文件(regular file)。这是最常见的文件类型,这种文件包含了某种形式的数据。至
于这种数据是文本还是二进制数据对于内核而言并无区别。对普通文件内容的解释由处理该文件的应用程序进行。
(2) 目录文件(directory file)。这种文件包含了其他文件的名字以及指向与这些文件有关信
息的指针。对一个目录文件具有读许可权的任一进程都可以读该目录的内容,但只有内核可以写目录文件。
(3) 字符特殊文件(character special file)。这种文件用于系统中某些类型的设备。
(4) 块特殊文件(block special file)。这种文件典型地用于磁盘设备。系统中的所有设备或者
是字符特殊文件,或者是块特殊文件。