📄 unix faq
字号:
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极有参考价值,本文中所提到的几个网路讨论区也值得看看。
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: 系统呼杏牒
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -