BBS水木清华站∶精华区
发信人: freedom@csie.nctu.edu.tw (Tan Koan-Sin), 信区: unix
标 题: UNIX FAQ 中文版 Part 6
发信站: Computer Sci. & Information Eng., NCTU, (Tue Jul 11 03:11:56 1995)
转信站: phoenix!news.csie.nctu!freedom
Origin: freedom@dragon.csie.nctu.edu.tw
这七篇文章包含一些在 comp.unix.questions 和 comp.unix.shell 常见到的问
题。请不再问这些问题,因为这些问题已经被回答过太多次了。但也请不要因为
有人问这些问题而发火,因为他们可能尚未读过这些文章。
This collection of documents is Copyright (c) 1994, Ted Timar, except
Part 6, which is Copyright (c) 1994, Pierre Lewis and Ted Timar.
All rights reserved. Permission to distribute the collection is
hereby granted providing that distribution is electronic, no money is
involved, reasonable attempts are made to use the latest version and
all credits and this copyright notice are maintained.
Other requests for distribution will be considered.
All reasonable requests will be granted.
中文翻译 by {chenjl,freedom,jjyang}@csie.nctu.edu.tw
若您对中文翻译有任何意见请发 e-mail 给 cfaq@csie.nctu.edu.tw
我们希望这些文件中的资讯能对你有所帮助,但是并不保证是正确的。若发生损
害请自行负责。
您可以在 rtfm.mit.edu 的 pub/usenet/news.answers 找到包括此文件在内的
许多 FAQ。 在此目录下的 FAQ 的名字可在文章的顶端的 "Archive-Name:"
那一行找到。
/* 译注: 在台湾请用 NCTUCCA.edu.tw:/USENET/FAQ,在交大的话
ftp.csie.nctu.edu.tw:/pub/FAQ 是从 CCCA mirror 来的 */
此一 FAQ 是以"unix-faq/faq/part[1-7]" 为名。
这些文章大约分成:
1.*)一般性的问题
2.*)初学者可能会问的基本问题
3.*) 中级的问题
4.*) 自以为已经知道所有答案的人可能会问的高级问题
5.*) 关於各种 shell 的问题
6.*) 各式各样的 Unix
7.*) An comparison of configuration management systems (RCS, SCCS).
这篇文章以下问题的解答:
6.1) 声明,介绍及感谢。
6.2) Unix 简史
6.3) 主要的 Unix 流派
6.4) Unix 的标准化
6.5) 你所用的 Unix 是哪一种流派。
6.6) 请简要介绍一些知名的 (商业化/PD) Unix
6.7) 即时的 Unix
6.8) Unix 用语汇编
若要找问题 6.5 的答案, 用 regular expression 往前找 "^6.5)" 即可。
因为这些都是正当合理的问题, 所以在 comp.unix.questions 或是
comp.unix.shell 中。每隔一阵子, 就会有这些问题与答案出现, 紧接著就会
有人对同样问题一再出现发牢骚。关於 UNIX 代表啥呢? 请参考每月 post 在
news.announce.newusers 中名为 "Answers to Frequently Asked Questions"
的文章。
因为 Unix 有太多不同的种类了, 所以很难保证此文件所提供的答案必然会有
用。在尝试本文件提供的作法前, 请先读读你所使用系统的手册。若你对答案
有任何建议或更正, 请送 email 给 tmtaimar@isgtec.com.
---------------------------------------------------------------------
Subject: Disclaimer, introduction and acknowledgements.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 11 16:59:14 EST 1995
X-Version: 2.8
6.1) 声明,介绍及感谢。
我并无法保证以下内容的完整性及正确性。我只是利用有限的时间尽量去做
(常碰到互相冲突的资料),未来还有很多要做。我希望能持续改进这份文
件。欢迎您的批评与指教:lew@bnr.ca。
首先让我们先为 UNIX 下个简短的定义。我们所提的 Unix 指的是一个通
常是由 C 写成的作业系统,它有阶层式的档案系统,统合了档案和装置(device)
I/O,其系统函式呼叫(system call)介面包含了如 fork(),pipe() 等服务,
而且它的使用者介面包含 cc,troff,grep,awk 之类的工具及某一种
shell。UNIX 过去是 USL(AT&T) 的注册商标,现在则是 X/Open 的注册
商标。本文所指的 UNIX 是一般通用的意义,而不是那个注册商标。
绝大多数的 Unix 或多或少都用了来自 AT&T(现在则是 Novell)的程式
码(大部分的 Unix 里面可能都还有使用第一版 C 语言所写的程式),
但是也有些是自己从头写一个一模一样的 Unix。(就是写得和 Unix 完全
相容但是却没有用到 AT&T 的程式码。)
此外还有一些建构於别种 OS 上的 Unix-like 环境,例如 VOS;以及向 UNIX
借用灵感的的 OS,例如 MS-DOS。这些都不在本文的讨论□围里。对即时(
real-time)的 Unix 本文也讨论得不多。
UNIX 的流派实在多得令人难以置信。主要的原因是因为 Unix 的原始程式容易
取得、修改与移植。一般厂商的典型作法是以某一流派为主体再加入其他流
派的特色。如此一来又产生了另一个新的流派。目前 Unix 有数百款,如果
说有一种可当成圭臬的话,那应该是 System V 吧。
本文的内容大部份取自於网路上流传的资讯。如果取自其他来源,则会在适当的章
节中加以说明。
特别感谢:pat@bnr.ca,guy@auspex.com, pen@lysator.liu.se,
mikes@ingres.com,mjd@saul.cis.upenn.edu, root%candle.uucp@ls.com,
ee@atbull.bull.co.at, Aaron_Dailey@stortek.com, ralph@dci.pinetree.org,
sbdah@mcshh.hanse.de,macmach@andrew.cmu.edu, jwa@alw.nih.gov[4.4BSD],
roeber@axpvms.cern.ch,bob@pta.pyramid.com.au,bad@flatlin.ka.sub.org,
m5@vail.tivoli.com,dan@fch.wimsey.bc.ca, jlbrand@uswnvg.com,
jpazer@usl.com,ym@satelnet.org,merritt@gendev.slc.paramax.com,
quinlan@ygg.drasil.com,steve@rudolph.ssd.csd.harris.com,
bud@heinous.isca.uiowa.edu,pcu@umich.edu,quinlan@yggdrasil.com,
Dan_Menchaca@quickmail.apple.com,D.Lamptey@sheffield.ac.uk,
derekn@vw.ece.cmu.edu, gordon@PowerOpen.org, 许多我忘了名字的人,
以及许多我曾拜读他们文章的人。
------------------------------
Subject: A very brief look at Unix history.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon May 30 15:44:28 EDT 1994
X-Version: 2.6
6.2) Unix 简史
Unix 的历史开始於 1969,Ken Thompson、Dennis Ritchie (K&R 里的那个
R) 与一群人在一部『位於角落且乏人问津的 PDP-7』上进行的一些工
作,後来这个系统变成了 Unix。"UNIX" 这个字(最初是写成 Unics,
Uniplexed Information and Computering System)有一点玩弄 "Multics" 这个字
的意味。
最初十年间,Unix 的发展基本上都是在 Bell Labs 里完成的。最初的几个
版本称为 "Version n" 或 "Nth Edition" ,是给 DEC 的 PDP-11(16 bits) 与
其下一代产品 Vax(32 bits)用的。主要的几个版本为:
V1 (1971): 第一版的 Unix,以 PDP-11/20 的组合语言写成。包括档案系统
(file system)、fork()、roff、ed 等东西。是用来给 AT&T 的专利部门
处理文件用的。Pipe() 出现於 V2。
V4 (1973): 以 C 语言从头写过,这或许是 OS 历史上最重要的一个事
件,这表示 Unix 修改容易,可以几个月内移植到新的硬体架构上。最
初 C 语言是为 Unix 设计的,所以 C 与 Unix 间有紧密的关系。
V6 (1975): 第一个在 Bell Labs 外(尤其是大学中)广为流传的 Unix 版
本。这也是 Unix 歧异的起点与广受欢迎的开始。1.xBSD(PDP-11) 就
是由这个版本衍生出来的。J. Lions 的“A Commentary on the Unix
Operating System" 也是以 V6 为本。
V7 (1979): 在许多 Unix 玩家的心目中,这是『最後一个真正的 UNIX』,
也是『空前绝後的一个 Unix』[Bourne 说的],这个版本包括一个完整
K&R C、Bourne shell。V7 移植到 VAX 上称为 32V。 V7 的 kernel
只有 40 Kbytes!
底下列出 V7 的系统呼叫,供「後进之辈」们凭吊瞻仰:
_exit, access, acct, alarm, brk, chdir, chmod, chown,
chroot, close, creat, dup, dup2, exec*, exit, fork, fstat,
ftime, getegid, geteuid, getgid, getpid, getuid, gtty,
indir, ioctl, kill, link, lock, lseek, mknod, mount,
mpxcall, nice, open, pause, phys, pipe, pkoff, pkon,
profil, ptrace, read, sbrk, setgid, setuid, signal, stat,
stime, stty, sync, tell, time, times, umask, umount,
unlink, utime, wait, write.
以上这些 "Vn" 版都是由 Bell Labs 里的 Computer Research Group(CRG)
发展的。另一个Unix Support Group(USG) 负责支援服务。Bell Labs 里还
有另一个与 Unix 发展相关的团体 Programmer's WorkBench(PWB) 则做出
了 sccs、named pipe 及一些其它的东西。USG 与 PWB 後来於 1983 年
合并成 Unix System Developement Lab。
此外 Bell Labs 在 Columbus 的分支机构,负责发展 Operations Support
System 也做了一版的 Unix 称为 CB Unix (Columbus Unix)。System V IPC
就是从 CB Unix 来的。
到了1980 年代 Bell labs 并未放弃 Unix。CRG 仍继续发展 V 系列的
Unix (Stroustrrup 在它的 C++ 第二版里就提到了 V10),不过并未对外发
表。目前发展 Unix(System V) 的公司是 Unix System Laboratories(USL)。
USL 本为 AT&T 所有,'93 年初被 Novell 收购。Novell 於 '93 年末将
"UNIX" 这个注册商标转给 X/Open。
除了 AT&T 所属的机构外,有不少地方也对 Unix 的改进做出了贡献,例
如 Berkeley 就自成一大流派。有不少厂商(尤其是卖工作站的)也对 Unix
的发展有所贡献(如 Sun 的 NFS)。
对任何对 Unix 有兴趣的人而言 Don Libes 与 Sandy Ressler 所写的 "Life
with Unix" 是一本有趣的书。此书讲了许多 Unix 的历史与发展及一些轶
事。本文多采此书之说。
/* 译注: Life with Unix 在台湾并没有书局代理进口, 非常可惜!
这本书里面有很多关於 Unix 的故事, 有兴趣可以来我们这儿泡泡茶,
看看这本故事书 */
------------------------------
Subject: Main Unix flavors.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 9 16:59:14 EST 1995
X-Version: 2.7
6.3) 主要的 Unix 流派
目前为止,UNIX 有两大流派:那就是 AT&T 的 System V (读 five, 不读 v)
与 BSD (Berkeley Software Distribution)。SVR4 是两大流派融合後的产物。
'91 年底,与 System V 针锋相对的 Open Software Foundation 推出了 OSF/1,
或许 OSF/1 会改变市场生态。
/* 译注:由今日('95)观之,OSF/1 应该是无法挑战 System V 了 */
以下是 System V、BSD、OSF/1 的主要版本以及特色。
AT&T 的 System V。Intel 系列的机器多半使用此系列。移植版本最多的 Unix,
当然在移植时都会加入一些由 BSD 发展的有用功能,例如 csh、job control、
termcap、curses、vi、symbolic link。目前 System V 的发展是由 Unix
International(UI) 负责监控。UI 的成员包括 AT&T、Sun 等。
网路讨论区: comp.unix.sysv[23]86。主要版本:
- System III (1982): AT&T 第一个拿来卖钱的 UNIX
- FIFOs (named pipes) (later?)
- System V (1983):
- IPC package (shm, msg, sem)
- SVR2 (1984):
- shell 函数 (sh)
- SVID (System V Interface Definition)
- SVR3 (1986) for ? platforms:
- STREAMS (从 V8 得来的灵感), poll(), TLI (网路软体)
- RFS
- 共用程式库(shared libs)
- SVID 2
- demand paging (如果硬体有支援的话)
- SVR3.2:
- 并入 Xenix (Intel 80386)
- 网路
- SVR4 (1988), 融合了 System V、BSD、SunOS 是各种 UNIX 中
的主流
- 取自 SVR3 者: 系统管理, terminal 界面, 印表机 (from BSD?),
RFS, STREAMS, uucp
- 取自 BSD 者: FFS, TCP/IP, sockets, select(), csh
- 取自 SunOS 者: NFS, OpenLook GUI, X11/NeWS,
具有记忆体映对档案的虚拟记忆体子系统(virtual memory
subsystem with memory-mapped files), 共用程式库
(!= SVR3 ones?)
- ksh
- ANSI C
- 国际化(Internationalization) (8-bit clean)
- ABI (Application Binary Interface -- routines instead of traps)
- POSIX, X/Open, SVID3
- SVR4.1
- 非同步 I/O (from SunOS?)
- SVR4.2 (based on SVR4.1ES)
- Veritas FS, ACLs
- 动态载入核心模组
- Future:
- SVR4 MP (多处理器)
- 使用 Chorus 微核心?
Berkeley Software Distribution (BSD)。VAX、RISC、各式工作站多用之。
比起 System V 来 BSD 的变动比较快而且学术研究的味道比较浓一点。
Unix 之所以能够流行,BSD 居功阙伟。许多对 Unix 的加强改进都是由
BSD 先做出来的。在 UCB (University of California at Berkeley) 中负责 BSD
的是 Computer System Research Group(CSRG)。CSRG 已於 1992 年关门大吉。
网路讨论区: comp.unix.bsd。主要的版本如下:
- 2.xBSD (1978) 给 PDP-11 用的, 这个系统好像还活著的样子(1992
还推出了 2.11BSD!).
- csh
- 3BSD (1978):
- 虚拟记忆体
- 4.?BSD:
- termcap, curses
- vi
- 4.0BSD (1980):
- 4.1BSD (?): 後来 AT&T CRG 版本皆以此为本
- job 控制
- automatic kernel config
- vfork()
- 4.2BSD (1983):
- TCP/IP, sockets, ethernet
- UFS: 长档名, symbolic links
- 新的 reliable signals (SVR3 采用了 4.1 的 reliable signals)
- select()
- 4.3BSD (1986) for VAX, ?:
- 4.3 Tahoe (1988): 4.3BSD 附加对 Tahoe(一款32位元的超级迷你电脑)
的支援及一些新东西
- Fat FFS
- 新的 TCP 演算法
- 4.3 Reno (1990) for VAX, Tahoe, HP 9000/300:
- 大部份的 P1003.1
- NFS (from Sun)
- MFS (记忆体档案系统)
- OSI: TP4, CLNP, ISODE's FTAM, VT and X.500; SLIP
- Kerberos
- Net1 (?) 与 Net2 (June 1991) 磁带: BSD 中不侵犯 USL 版权的部份
- 4.4BSD (alpha June 1992) for HP 9000/300, Sparc, 386, DEC, others;
已经不支援 VAX 与 Tahoe; 有两个版本, 一个是 lite (大约是 Net2 的
内容,加上修正与新的架构); 另一个是 encumbered (内容一应俱全,但需
USL 授权):
- 以 Mach 2.5 为基础的新型虚拟记忆体系统 (VMS),
- 虚拟档案系统介面, log-structured 档案系统, 本地档案系统
的大小可达 2^63, NFS (可以免费流传,可以跟 Sun 的 NFS 并存,
架在 UDP 或 TCP 之上)
- ISO/OSI 网路支援 (以 ISODE 为基础): TP4/CLNP/802.3 以及
TP0/CONS/X.25, session 及更高层的协定则放在 user space;
FTAM, VT, X.500。
/*
译注: FTAM 跟 TCP/IP 网路的 ftp 协定相当
VT 则跟 telnet 相当, X.500 则是 directory service
*/
- 大部分是 POSIX.1 (特别是新增的 SV 形式终端机驱动程式),有很多
POSIX.2, 改进过的 job control; ANSI C 表头档
- Kerberos 以整合入系统内许多地方 (包含 NFS)
- TCP/IP 加强 (包含表头预测, SLIP)
- 重要的核心修改 (新式系统呼叫惯例, ...)
- 其他改进: FIFOs, 以位元组为□围做档案锁定
正式的 4.4BSD 版本原来预计在 alpha 版 6 个月後发表。
/* 译注: 结果是在 '93 年六七月间发表 */
Open Software Foundation(OSF) 於 1991 年底推出了OSF/1。OSF/1 需要
SVR2 授权。符合 SVID 2、SVID 3、POSIX、X/Open 等标准。
Apollo、Dec、HP、IBM 等大厂商都是 OSF 的成员。
- OSF/1 (1991):
- 以 Mach 2.5 的核心为基础
- 对称式多重处理, 平行化的核心, 处理绪(thread)
- 逻辑式容量(logical volumes), 磁碟镜射(disk mirroring),
UFS (原生的), S5 FS, NFS
- 系统安全之加强(B1 加一些 B2, B3 或 C2), 4.3BSD 的系统管理
- STREAMS, TLI/XTI, sockets
- 共用程式库, 动态程式载入器 (包括核心)
- Motif GUI
- Release 1.3 (Jun 94)
- 以 MACH 3.0 的微核心为基础
- 符合目前规格 1170 草案的标准
(在 X/Open 的 Fast Track 程序中考虑过要将此标准化)
- Data Capture I/F, Common Data Link I/F,
- 支援ISO 10646 与 64-bit
- 以 Mach 3.0 为基础的 OSF/1 MK (mircokernel)
以上关於 Unix 主要流派的列表或许该把 Microsoft 的 Xenix 也列出,因
为有不少 Unix 的分支是拿 Xenix 去改的。Xenix 是从 V7、System III、
System V 改出来的,外观没什麽重大的改变,内部则为了求得在微电脑上
使用时有较好的表现而做了不小的更动。
关於 Unix 两大流派的内部有两本好书可供参考。
- System V: "Design of the Unix Operating System", M.J. Bach.
- BSD: "Design and Implementation of the 4.3BSD Unix Operating System",
Leffler, McKusick, Karels, Quaterman.
关於 OSF/1 的介绍可参考 O'Reilly 出版的 "Guide to OSF/1, A Technical
Synopsis" 一书。关於 SunOS,可参考 Summer 1989 USENIX Proceedings
里的“Virtual Memory Architecture in SunOS" 与 "Shared Libraries in
SunOS"。
92 年 4 月号的 Unix Review 有一系列关於各种 Unix 之发展方向。BSD-
FAQ极有参考价值,本文中所提到的几个网路讨论区也值得看看。
------------------------------
Subject: Main Players and Unix Standards.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 21 16:59:14 EST 1995
X-Version: 2.8
6.4) Unix 的标准化
目前(95年初) Unix 标准化的主要参与者:
- Novell 在 93 年初买下 USL 成为原始程式的拥有者。
- X/Open 可决定谁能使用 "UNIX" 这个商标当产品名称。
- OSF 具有双重身分:其一为 OSF/1 与 Motif 的发展者,其二为 COSE
之发展的监控组织。 OSF 於 1994 年重组後,Sun 成为了 OSF 中
的一员,OSF 与 X/Open 之间的关系也正常化了。
- IEEE 订定 POSIX 与 LAN 的相关标准。
- IBM、Apple、Motorola、Bull 以及其他厂商合组了 PowerOpen 来推动
PowperPC。别把它与一个也叫做 PowerOpen 的图形环境搞混了。
底下是一些与 Unix 有关的标准之简述:
- IEEE:
- 802.x (LAN) standards (LLC, ethernet, token ring, token bus)
- POSIX (ISO 9945?): Portable Operating System I/F (Unix, VMS
and OS/2!) (目前唯一已定案的标准?)
- 1003.1: 函数库(大部分是 system call) -- 除了 signals 与
terminal 界面外多取自於 V7
- 1003.2: shell 与公用程式
- 1003.3: 测试方法与合格标准
- 1003.4: real-time: binary semaphores, process memory
locking, memory-mapped files, shared memory,
priority scheduling, real-time signals, clocks and
timers, IPC message passing, synchronized I/O,
asynchronous I/O, real-time files
/* 译注: 翻了反而看不懂... :)
即时性: 双态信号、执行体记忆体锁定、记忆体映对档案、
共用记忆体、优先序排程、即时通告、时脉与定时器、
IPC 讯息传送、同步输出入、非同步输出入、即时档案。
*/
- 1003.5: Ada language bindings
- 1003.6: 系统安全
- 1003.7: 系统管理(包括印表)
- 1003.8: 透通式档案存取(transparent file access)
- 1003.9: FORTRAN language bindings
- 1003.10: 高速计算(super computing)
- 1003.12: 与协定种类无关的介面(protocol-independent I/Fs)
- 1003.13: 即时外观(real-time profiles)
- 1003.15: 高速计算批次处理介面(supercomputing batch I/Fs)
- 1003.16: C-language bindings (?)
- 1003.17: directory services
- 1003.18: POSIX standardized profile
- 1003.19: FORTRAN 90 language bindings
- X/Open (由厂商筹设的组织, 成立於 1984 年):
- X/Open Portability Guides (XPGn):
- XPG2 (1987), 非常倾向 SV
Vol 1: 命令与公用程式
Vol 2: 系统呼叫与函数库
Vol 3: terminal 界面(curses, termio), IPC (SV),
国际化
Vol 4: 程式语言 (C, COBOL!)
Vol 5: 资料管理(ISAM, SQL)
- XPG3 (1989) adds: X11 API
- XPG4 (1992) adds: XTI? 22 个元件
- XOM 系列的介面:
- XOM (X/Open Object Management) 需遵循的通用介面机制(generic
I/F mechanisms for following)
- XDS (X/Open Directory Service)
- XMH (X/Open Mail ??)
- XMP (X/Open Management Protocols) -- 不是 Bull's CM API?
- X/Open 此时已有权管理 "UNIX" 商标 ('93 年底);
- "Spec 1170"
- 此规格目前正在筹备当中,是一个共通的 API, 要使用 UNIX 这个
名称的厂商必需遵循此 API 的规格。这是结合 SVID、OSF 的 AES
与其他东东而成。
- AT&T
(在 1994 年後这些已经无关紧要了? 现在是谁负责 SVID, TLI, APLI?)
- System V Interface Definition (SVID)
- SVID1 (1985, SVR2)
Vol 1: 系统呼叫与函数库(类似XPG2.1)
- SVID2 (1986, SVR3)
Vol 1: 系统呼叫与函数库(基础,核心延伸)
Vol 2: 指令与公用程式 (基础,进阶,管理,软体发展
), 终端机介面
Vol 3: 终端机介面(又来了), STREAMS and TLI, RFS
- SVID3 (19??, SVR4) adds
Vol 4: ?? &c
- APIs
- Transport Library Interface (TLI)
- ACSE/Presentation Library Interface (APLI)
- COSE (COmmon Open Software Environment) [IBM, HP, SunSoft, others]:
目的在使不同的 Unix 平台可以更紧密的结合。
大概可以划分为底下几个项目:
- 桌面环境
- 应用程式的API (也就是Spec 1170 -- 一个统一的程式介面) --
可能是目前为止最重要的成就。消弥了SCO、AIX、Solaris、
HP-UX、UnixWare 间的差异。
- 分散式计算环境(OSF 的DCE 与 SunSoft 的ONC)
- 物件技术 (OMG 的 CORBA)
- 绘图
- 多媒体
- 系统管理
- PowerOpen Environment (POE)由 PowerOpen Association(POA) 所推动。
是个在 PowerPC 这颗 chip 上 用的 Unix-like OS 的标准。定义了:
- 一个API (应用程式介面,主要源於 AIX, 符合 POSIX、
XPG4、Motif、与 C 的标准) 与
- 一个ABI (application binary i/f),这是与其他标准差异最大之处,
POSIX, XPG4, &c.都没有这个东西。任何符合 POE 的系统应该可以
执行所有的 POE 软体。
重要的特色:
- 建构於 PowerPC 上
- 与硬体汇流排无关
- 从膝上型电脑到超级电脑都可以用的系统
- 必须是个多人多工的作业系统
- 支援网路
- X windows 的扩充, Motif
- 是否符合标准由一个独立的机构(POA)来测试与认定
AIX 4.1.1 将会符合PowerOpen。MacOS 目前不遵循 PowerOpen,也
不打算遵循 PowerOpen。
[以上取自於comp.sys.powerpc 的 powerpc-faq]
IBM 在 COSE 与 POE 中都掺了一脚,这两个组织会有怎样的关系颇
令人玩味。
------------------------------
Subject: Identifying your Unix flavor.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon May 30 15:44:28 EDT 1994
X-Version: 2.6
6.5) 你所用的 Unix 是哪一种流派。
这个小节列出一些材料供您参考,看看能不能让您藉此找出您所用的 UNIX
属於哪一种流派。由於各流派之间的程式码或想法上都会大量交流,
而且厂商也会自行许多修改,因此,类似「本 Unix 是 SVR2」这一类的说法,
充其量只是统计上的叙述(但有些 SVRn 的移植除外)。
也有许多 Unix 同时提供这两个世界的大多数功能(不论是像 SunOS 一样
把这两个世界融合在一起,或者像 Apollo 一样把这两个世界做严格的划分)。
所以这个小节也许没那麽有用...。
前一小节所列出的特性也有点儿帮助。例如,如果某一个系统有 poll(2) 但
没有 select(2),那它很有可能是从 SRV3 衍生出来的。同时,您也可以从 OS
的命名或者从签到讯息当中,找出一些蛛丝马迹(例如 SGI 的 IRIX SVR3.3.2)
;此外,您也可以利用 "uname -a" 指令的输出。找寻某些指令是否存在也是
判断的线索,但是直接探讨核心的特性可能是比较可靠的做法。例如终端机
初始化的方式(inittab 或 ttys) 就是一个较可靠的指示,这比起从列印
子系统判断来的可靠。
特性 SVRx 的典型 xBSD 的典型
核心名称 /unix /vmunix
终端机启动 /etc/inittab /etc/ttys (only getty to 4.3)
开机启动 /etc/rc.d directories /etc/rc.* files
加挂档案系统 /etc/mnttab /etc/mtab
常用的shell sh, ksh csh, #! hack
原生档案系统 S5 (blk: 512-2K) UFS (blk: 4K-8K)
档案名称 <= 14 bytes 档案名称 < 255 bytes
群组 必须使用 newgrp(1) 自动加入成员
SVR4: 多重群组
列印子系统 lp, lpstat, cancel lpr, lpq, lprm (lpd daemon) ??
终端机控制 termio, terminfo, termios (sgtty before 4.3reno)
SVR4: termios (POSIX) termcap
工作控制 >= SVR4 yes
ps 指令 ps -ef ps -aux
多重等待 poll select
字串函数 memset, memcpy bzero, bcopy
程序对映 /proc (SVR4)
由於我们逐步跨入 90 年代末期,上述的差异已越来越不明显了。
------------------------------
Subject: Brief notes on some well-known (commercial/PD) Unices.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 11 16:59:14 EST 1995
X-Version: 2.8
6.6) 请简要介绍一些知名的 (商业化/PD) Unix
我一点也不满意这节的内容,很不幸地我既没有时间也没有文件让它的
内容更为完善。在此只列出一些较多人使用的 Unix, 至於其他小型或
者非美国地区出品的 Unix 也欢迎补充,像是 Eurix。这部分还要再重
写一次。
/* 译注: 这一段我也翻得不太满意, 也要跟著重译一次 :) */
这个小节依字母顺序列出一些广为人知的 Unix,并且对他们的本性做
简要的叙述。很不幸的,在定义上它几乎过时了...
(只排列字母,但忽略数字与其他字元)
AIX: IBM 的 Unix, 是根据 SVR2 (最近已经出到 SVR3.2?) 以及程度不一的
BSD 延伸而来, 并加上各种硬体的支援。具备特有的系统管理(SMIT)。
同时具有 850 与 Latin-1 CPs (Code Page, 内码页)。它不仅跟大多数的
Unix 不相同,连 AIX 各版本之间也有许多相异之处。
网路讨论区: comp.unix.aix.
- 1.x (for 386 PS/2)
- 2.x (for PC RTs)
- 3.x (for RS/6000), 分页式核心,逻辑式容量管理程式,国际化;
3.2 新增 TLI/STREAMS. 以 SV 为核心并加上许多改进。
4.1 是最新版 (包括对 PowerPC 的支援?)
- AIX/ESA, 原来是在 S/370 and S/390 大型主机上执行的,它是根据 OSF/1。
AIX 本来会成为 OSF/1 的基础,但後来 OSF/1 选用 Mach 作为基础。
我希望这个小节能写到这里就好 :-)
AOS (IBM): 移植到 IBM PC RT 的 4.3BSD (这是为教育单位做的).
它的名称虽然 DG 专有的 OS 名称相同,但两者是截然不同的东西。
Arix: SV
A3000UX (Commodore): 以 68030 为基础的 SVR4 Unix (?),用於 Amiga。
A/UX (Apple): SV 加上柏克莱的加强功能, NFS, Mac GUI. System 6
(也就是後来的 System 7) 可以当成 A/UX 的程式执行 (与 MachTen 相反)。
网路讨论区: comp.unix.aux.
- 2.0: SVR2 加上 4.2BSD, system 6 Mac 应用程式。
- 3.0 (1992): SVR2.2 with 4.3BSD and SVR3/4 延伸; X11R4,
MacX, TCP/IP, NFS, NIS, RPC/XDR, 各类 shells, UFS 或 S5FS.
System 7 应用程式.
- 4.0 将包含 OSF/1(或者就是 OSF/1)。
3B1 (680x0): 根据 SV,是 Convergent 替 AT&T 完成的。
网路讨论区: comp.sys.3b1.
BNR/2: 代表 BSD Net/2 Release? 包含 NetBSD/1, FreeBSD。
BOS for Bull's DPX/2 (680x0)
- V1 (1990): SVR3 加上 BSD 延伸 (FFS, select, sockets),
对称式 MP, X11R3
- V2 (1991): 加上工作控制, 磁碟镜射, C2 系统安全,
DCE 延伸
- Bull's PPC 工作站也有 BOS/X, 以及与 AIX 相容的 Unix
至於上述两者之间的关系则未知。
386BSD: Jolitz's 从 Net/2 software 移植过来的。支援 Posix, 32 位元,
仍在 alpha 测试阶段。(目前版本为 0.1 版)。
/* 译注: 目前已出到 1.0 版, DDJ 要拿来卖钱的 */
BSD/386 (80386): 来自 BSDI, 附原始程式 (增强的 Net2 软体)
网路讨论区: comp.unix.bsd.
/* 改名为 BSD/OS, 版本 2.x 是以 4.4BSD 为基础 */
Chorus/MiXV: 架在 Chorus 核心之上的 Unix SVR3.2 (SVR4), ABI/BCS.
Coherent (80286): 另一种 Unix,与 V7 相容, 有一些 SVR2 的东东(IPC).
V4.0 是 32 位元的。网路讨论区: comp.os.coherent
Consensys: SVR4.2
CTIX: 根据 SV, 来自 Convergent
D-NIX: SV
DC/OSx (Pyramid): SVR4.
DELL UNIX [DELL 电脑公司.]: SVR4
DomainIX: 请参阅底下的 DomainOS。
DomainOS (Apollo, now HP): 专属的 OS; 上层架有 BSD4.3 与 SVR3
(process 可以从两层中任选一层、或者全选,或者都不选)。虽然现
在已经不再发展了,但仍有些特性被 OSF/1 (与 NT) 引用。目前版本为
SR10.4。SR9.* 版本的名称为 DomainIX。网路讨论区: comp.sys.apollo.
DVIX (NT 的 DVS): SVR2
DYNIX (Sequent): 以 4.2BSD 为基础
DYNIX/PTX: 以 SVR3 为基础
Esix (80386): 纯种的 SVR4, X11, OpenLook (NeWS), Xview
Eurix (80?86): SVR3.2 (德国)
FreeBSD: 缀补过的 386bsd 0.1 程式, 并且有许多更新的工具程式。
/* 译注: 以上是指 1.x 而言, FreeBSD 2.x 版是拿 4.4BSD lite 从头改起的 */
FTX: Stratus 容错作业系统 (68K 或 i860-i960 硬体)
Generics UNIX (80386): SVR4.03 (德国)
GNU Hurd (?): 谣传已久的软体,来自免费软体基金会 (FSF):
架在 Mach 3.0 核心之上的 Unix 模拟器。有许多 GNU 的工具程式
非常受欢迎 (emacs) 并且用於许多 PD Unix。
/* 译注: 此时 GNU Hurd 已经有人使用, 目前在 alpha 测试阶段,
可从 ftp://alpha.gnu.ai.mit.edu/... 取得
*/
HELIOS (Perihelion Software): 用於 INMOS transputer 以及多种其他平台
HP-UX (HP): 旧系统是从 S III (SVRx), 现在是 SVR2 (4.2BSD?) 加上 SV
工具程式(他们可能很难下决心...)
- 6.5: SVR2
- 7.0: SVR3.2, symlinks
- 7.5
- 8.0: 以 BSD 为基础? 用於 HP-9000 CISC (300/400) 与 RISC (800/700),
共用程式库
- 9.0: 加入 DCE
/* 译注: HP-UX 已经出到 10.0 版了 */
Interactive SVR3.2 (80x86): 纯种 SVR3。Interactive 已经被 Sun 购并
;它们的系统会由於 Solaris 而继续存活吗?
/* 译注: SunSoft 把他改名为 Galaxy Unix 继续销售 */
Idris: 第一个 Unix 相容产品,是由 Whitesmith 完成的。一个小型的 Unix?
是给 INMOS transputer 与其他机器用的。
IRIX (SGI): Version 4 是由 SVR3.2, 以及许多 BSD 的东西构成的。
Version 5.x (目前是 5.2) 是根据 SVR4。网路讨论区: comp.sys.sgi。
Linux (386/486/586): 使用 GPL (虽然不是来自 FSF) 的 Unix。
可取得原始程式。遵循 POSIX 以及 SysV 及 BSD 的延伸。目前正进行
Alpha/AXP 与 PowerPC 的移植。(目前已有版本移植到 680x0 Amigas
and Ataris; 也有版本移植到 MIPS/4000)。
网路讨论区: comp.os.linux.{admin,announce,development,help,misc}。
MachTen, Tenon Intersystems: 当成 System 6 的一般程式来执行,没有记忆体
保护, 4.3BSD 环境附有 TCP, NFS。
MacMach (Mac II): 架在 Mach 3.0 微核心之上的 4.3BSD。有 X11、Motif、GNU
软体、原始程式;实验性的 System 7 是以 Mach task 的方式执行。整套产
品包含所有原始程式(但需要 Unix 授权)。
Mach386: 来自 Mt Xinu。以 Mach 2.5 为基础,附加 4.3BSD-Tahoe
的增强功能。也有 2.6 MSD (Mach Source Distribution).
Microport (80x86): 纯种的 SVR4, X11, OpenLook GUI
Minix (80x86, Atari, Amiga, Mac): 与 V7 相容的 Unix clone。
产品附原始程式。目前正进行修改,使其遵循 POSIX 标准。
适用於 PCs, 当然还有其他许许多多的机种。(如 INMOS transputer)。
网路讨论区: comp.os.minix.
MipsOS: 有点儿 SV 的味道 (RISC/OS,现在已经不作了,早期有点 BSD 的味道)
more/BSD (VAX, HP 9000/300): Mt Xinu 的 Unix, 以 4.3BSD-Tahoe 为基础。
网路讨论区: comp.os.xinu?
NCR UNIX: SVR4 (4.2?)
Net/2 磁带 (来自 Berkeley, 1991): BSD Unix, 本质上与 4.3BSD 相容,
里面的程式码完全不含 AT&T 的程式,没有低阶的程式码。请参阅上述的
386BSD 与 BSD/386。
NetBSD 0.8: 事实上只是帮 386bsd 换个新装而已。已移植到 [34]86, MIPS,
Amiga, Sun, Mac。 它跟 Net/2 的关系?
/* 译注: NetBSD 已经出到 1.0 版, 而且以 4.4BSD lite 为基础。
也移植到更多的硬体平台, 如 DEC Alpha */
NEXTSTEP (Intel Pentium and 86486, Hewlett-Packard PA-RISC, NeXT 68040):
架在 Mach 核心之上的 4.3BSD, 具有 GUI。
- 1.x, 2.0, 2.1, 2.2, 3.0, 3.1 (旧版本)
- 3.2 (目前的版本
Intel Pentium and 86486,
Hewlett-Packard PA-RISC,
NeXT 68040)
- 3.3 (近期内即将发表, 可能会有 Sun SPARC 的版本)
- 4.0 (即将发表, 可能会有 Sun SPARC 的版本)
- NEXTSTEP DEC Alpha 版本已经发表了
- NEXTSTEP 遵循 OpenStep 的标准 (请参阅 Solaris)
NEWS-OS (Sony)
- 3.2
OSF/1 (DEC): DEC 对 OSF/1 的移植。我认为现在 (4/94) DEC 最新
的 Alpha AXP (64 位元机器)上应该已经有了。
/* 译注: 原作者说得没错 */
OSx (Pyramid): 从 SysV.3 与 BSD4.3 两者同时移植过来的。
PC-IX (IBM 8086): SV
Plan 9 (AT&T): 在 1992 年发表, 是完全从头改写过的。不清楚它跟 Unix 的
相近程度如何。关键点:分散式、非常小、多种硬体(Sun、Mips、Next、SGI、
generic hobbit、680x0、PCs),C (而非谣传的 C++)、新的编译器、「八又
二分之一」视窗系统(也非常小)、16 位元的 Unicode、架在高速网路
之上的 CPU/档案伺服器。
/* 译注: Plan9 在 95 年初又发表新版本, 从 '95 年 7 月开始卖钱,
CDROM: US$ 350, Document: US$ 150。
请参阅 http://plan9.att.com/plan9/distrib.html
*/
SCO Xenix (80x86): 给 XT (不够快!), 286, 386 (具有 demand paging)
使用的。现有的程式码有很多都是从 System V 拿过来的。是一个
稳定的产品。
SCO Unix (80x86): SVR3.2 (目前已经停止取用 USL 的原始程式了)。
Sinix [Siemens]: System V base.
Solaris (Sparc, 80386):
- 1.0: 基本上跟 SunOS 4.1.1 是相同的,附有 OpenWindows 2.0 与
DeskSet 公用程式。
- 1.0.1: SunOS 4.1.2 加上多处理器的功能 (核心无多处理绪功能);
不适用於 386。
- 2.0: (刚开始在 1988 年的时候是以 SunOS 5.0 的名义发表) 以 SVR4
为基础(具有对称式多重处理?), 将支援 386; 附
OpenWindows 3.0 (X11R4) 与 OpenLook, DeskSet, ONC, NIS.
支援 a.out (BSD) and elf (SVR4) 这两种格式、Kerberos。不附
编译器!
- Solaris 遵循最新版(1994?) 的 OpenStep 标准
(非 NeXT, 但具有 NEXTSTEP API)
/* 译注: Solaris 已经出到 2.4 版, 2.5 在 beta 阶段。
目前的 OpenWindows 是 3.4 版, 以 X11R5 为基础。
*/
SunOS (680x0, Sparc, i386): 根据 4.3BSD, 包含许多来自 System V 的
东西。Sun 的主要成果在於: NFS (1984), SunView (1985), NeWS
(1986, postscript 影像, 现在用於 OpenWindows), OpenLook GUI 标准,
OpenWindows (NeWS, X11, SunView!). 网路讨论区: comp.sys.sun.*.
- 3.x: SV IPC 套装程式, FIFOs
- 4.0.3: 轻量级程序, 新型的虚拟记忆体, 共用程式库
- 4.1: STREAMS & TLI, 8-bit clean?, 非同步输出入, ms-dos 档案系统
(後续者为 Solaris -- 请参阅前几项)。
UHC (80x86): 纯种 SVR4, X11, Motif
Ultrix (DEC): 根据 4.2BSD 再加上许多 4.3 的东西。
网路讨论区: comp.unix.ultrix.
- 4.4 是最新版
UNICOS (Cray): 以 System V 为基础。网路讨论区: comp.unix.cray
- 5.x, 6,x, 7.0
UnixWare Release 4.2 [Univel]: SVR4.2; 架在 NetWare 上。
Univel 已经不存在了。
UTEK (Tektronix)
- 4.0
VOLVIX (Archipel S.A.): 以 UNIX 为基础的作业系统,并配上一个以通讯
为基础的分散式即时微核心。SVR3.2 系统呼叫、BSD4.4 档案/网路系统
系统呼叫(VFS,FFS)。也有 NFS 与 X11。Vanilla VOLVIX 是给 transputer
用的。
Xenix (80x86): 首度出现於 Intel 硬体平台的 Unix, 以 SVR2 为基础
(先前是以 S III 甚至 V7 为基础)。网路讨论区: comp.unix.xenix。
------------------------------
Subject: Real-time Unices.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 9 16:59:14 EST 1995
X-Version: 2.7
6.7) 即时的 Unix
警告: 这个小节需要大幅修订,因为有很多错误,而且内容也不完整。我希望
能够在今年冬天把它重新修订一次。窃以为下面这些都是 UNIX,欢迎大家继
续补充。这个列表也包含较常见,且具有即时特性的 UNIX 系统,以及有些
具有类似 UNIX API 的非 UNIX 系统。我不认为後者真的属於这个□畴,但是
既然收集了这些资料(鸡肋),要舍弃掉还真有点可惜。
请顺便参考 comp.realtime。
AIX: AIX/6000 具有即时支援。
Concurrent OS (Concurrent): 真正的 Unix,由 Concurrent 大幅更动过。
CX/UX: 真正的 UNIX,由 Harris 大幅修改以提供即时能力与效能。遵循
POSIX.4 决定版的标准。
EP/LX (Control Data): 是移植到 R3000 的 LynxOS,以前称为 TC/IX。
LynxOS (Lynx Real-Time Systems, Inc): 与 Berkeley 及 SV 相容,
从头到尾重写过一次(专有的), 在 SVR4 时期之前。并不是 UNIX, 但支援
许多 UNIX I/Fs。完全的 preemptive, 固定式优先权。
MiX: SVR4 的微核心实作,是 Chorus 提供的。
Motorola SVR4 具有即时能力。
QNX (Quantum Software): 与 unix 相容,而且是如假包换的即时作业系统。
RTU (Concurrent), 用於 68K 系列的机器。
Solaris 2 具有即时能力?
Stellix (Stardent); 它是 Unix, 但真的是即时作业系统吗?
Venix/386: 交谈式的 SVR3.2 附加即时延伸。
VMEexec (Motorola): 不是 Unix, 但也用了一些跟 Unix 相同介面。
VxWorks (Wind River Systems): 跟 Unix 相同的地方非常非常地少,
但还是有一些介面跟 Unix 相同(但档案系统不同)。
网路讨论区 comp.os.vxworks。
(对於以下的系统,我一无所知)
Convex RTS
REAL/IX (AEG)
Sorix (Siemens)
System V/86 (Motorola)
TC/IX (CCD)
Velocity (Ready Systems):
------------------------------
Subject: Unix glossary.
>From: "Pierre (P.) Lewis" <lew@bnr.ca>
Date: Mon Jan 11 16:59:14 EST 1995
X-Version: 2.8
6.8) Unix 用语汇编
底下提供 Unix 系统相关的概念与构成要素之简单定义。
Chorus: 讯息传递的微核心, 有可能成为未来 SV 的基础。SVR4 已经可以
架在 Chorus 上面跑了(二进位相容)。
CORBA (Common Object Request Broker Architecture).
COSE (Common Open Software Environment) [Sun, HP, IBM]: common look and
feel (Motif -- Sun will let OpenLook fade away), common API.
Reaction against Windows NT. See section 6.4 above.
DCE (分散式计算环境 -- Distributed Computing Environment, 来自 OSF):
包含 RPC (Apollo's NCS), 目录服务 (区域性使用是以 DNS 为基础,
全球性使用则是以 X.500 为基础), 时间, 系统安全, 以及处理绪 (thread)
服务, DFS (分散式档案系统 -- distrib. file system), ....
与 OS 种类无关。
DME (分散式管理环境 -- Distributed Management Environment, 来自 OSF):
未来。
DO (Distributed Objects [Enterprise]): ???.
FFS (高速档案系统 -- Fast File System): 於 1983 年出自 Berkeley。
与 SunOS 的 UFS 等义 (或完全相同?)。具有一些像是
磁柱群组(cylinder groups), 碎屑 (fragments) 等观念。
Mach: 来自 CMU (卡内基美浓大学)的新式核心,许多 Unix 以及其他 OS
都以此为基底(例如 OSF/1, MacMach):
- 2.5: 集成式(monolithic)核心, 附有 4.2BSD
- 3.0: 微核心,附有在使用者空间的 BSD Unix 伺服器 (以及其他 OSs,
例如 MS-DOS)
网路讨论区: comp.os.mach
MFS (记忆体档案系统 -- Memory File System):
NeWS (Network extensible Window System), 来自 Sun?: 以 PostScript 为基础,
网路化, 工具程式组(甚至客户程式)是在伺服器端载入。是 OpenWindows 的
一部份。
NFS (网路档案系统 -- Network File System): 由 Sun 贡献给 BSD 的礼物,
无状态式伺服器。
ONC (开放式网路计算 -- Open Network Computing): 来自 Sun(?), 包含 RPC, 名
称服务(NIS 也称为 YP), NFS, ... (可以在许多 Unix 或其他 OS 当中发现)
OpenStep [NeXT, Sun]: ???
PowerOpen: 既是一种标准, 也是一个推广 PowerPC 的组织。
成员包括 IBM, Apple 与 Motorola; 还有其他厂商?
请参阅之前的 6.4 节。
PowerPC (PPC): 一种 RISC CPU 晶片 [IBM, Motorola].
RFS (远端档案系统 -- Remote File System): SV, 会记忆状态的伺服器,
与 NFS 不相容。
RPC (远端程序呼叫 -- Remote Procedure Call): 高阶的 IPC (Inter-Process
communication) 机制。有两种流派。
- ONC: 架在 TCP 或 UDP 之上(後来也架在 OSI 之上), 使用 XDR 来
做资料的编码。
- DCE: 具有不同的 RPC 机制 (根据 Apollo 的 NCS)
S5 FS: 原生於 System V 的档案系统, 一个区块的大小为 512 到 2K。
sockets: BSD 使用网路的介面机制 (请与 TLI 比较)。
STREAMS: 一种用於讯息传递的核心机制, 是从 SVR3 开始有的, 它提供了
一个非常适用於发展协定的介面。
TFS (半透明档案系统 -- Translucent File System): Sun, COW 应用到档案上。
TLI (Transport Library Interface): SV 传送服务(TCP, OSI) 的介面,
UI 也定义一个 APLI (ACSE/Presentation Library Interface --
呈现层程式库介面)
UFS (?): BSD 的原生档案系统,就是我们在 SunOS 看到的那一种,区块
大小为 4K to 8K, 具有磁柱群组与碎屑的观念。
XTI (X/Open Transport Interface): 加强型的 TLI
X11: MIT 所发展的以画素组成的视窗系统
------------------------------
End of unix/faq Digest part 6 of 7
**********************************
BBS水木清华站∶精华区