FreeBSD 2.0-RELEASE 发行说明(1994 年 11 月)
发布说明
FreeBSD
版本 2.0
1. 技术概述
FreeBSD 是一款免费的、完整源码的 4.4 BSD Lite 系统版本,适用于 Intel i386/i486/Pentium(或兼容)架构的 PC。它主要基于加州大学伯克利分校 CSRG 团队的软件,同时融入了来自 NetBSD、386BSD 和自由软件基金会的一些增强功能。
自 18 个月前我们首次发布 FreeBSD 1.0 以来,FreeBSD 几乎完全重构了一遍。我们基于伯克利 4.4 代码库进行了全新的移植,这不仅获得了 Novell(USL 和 UNIX 的新所有者)的批准,解决了系统法律状态的问题,同时也为系统带来了大量新功能、新文件系统以及增强的驱动支持。基于我们全新的、无法律负担的代码库,我们有理由相信,在未来相当长的一段时间内,我们将能够持续发布高质量的操作系统!
FreeBSD 2.0 是近两年辛勤工作和国际化开发团队投入数千工时的成果结晶。希望你能喜欢!
许多软件包也进行了升级或新增,例如 XFree86 3.1、xview 3.2、elm、nntp、mh、InterViews 以及几十个其他工具,这些工具已经被移植并可作为附加组件使用。有关完整的摘要,请查看 ports 或 package 。
有关贡献者列表,请参阅文件 "CONTRIB.FreeBSD",它应与你的 bindist 发行包一起提供。
另请参阅新的 "REGISTER.FreeBSD" 文件,以了解如何注册到 "Free BSD 用户统计" 系统。我们还提供了一个名为 "ROSTER.FreeBSD" 的文件,列出了各领域的负责人(以便你可以直接联系他们)。建议使用此文件,以更快地解决可能遇到的问题!
FreeBSD 的核心不包含会限制出口到美国以外的 DES 代码。对于仅在美国境内使用的用户,我们提供了一个核心发行版的附加包,其中包含通常使用 DES 的程序。单独提供的辅助软件包可以供任何人使用。此外,还有一个为非美国用户准备的、可自由出口的欧洲 DES 发行版,其详细信息可在 FreeBSD FAQ 中找到。
如果你仅需 FreeBSD 的密码安全功能,并且不需要将其他主机(如 Sun、DEC 机器等)的加密密码复制到 FreeBSD 的密码条目中,那么 FreeBSD 基于 MD5 的安全机制可能已足够满足你的需求!我们认为我们的默认安全模型足以媲美 DES,同时无需处理繁琐的出口问题。如果你位于美国境外(或境内),不妨试一试!
1.1 FreeBSD 2.0 的新特性
4.4 Lite
正如前文所述,此版本完全基于 CSRG 最新(也是最后)发布的 BSD 版本——4.4 Lite。相比于 4.2BSD(Net/2),4.4 Lite 带来了许多改进,其中包括但不限于以下内容:
获得 Novell 和加州大学伯克利分校的法律批准 在 USL、UCB、Novell 和 BSDI 之间的长期诉讼和解之后,各方(强烈)建议迁移至 4.4 Lite,以避免未来的法律纠纷。我们已经完成这一迁移,这使得本版本对潜在的商业用户更具吸引力。
支持许多新的文件系统类型 新增了许多文件系统类型,例如堆叠文件系统(stackable filesystems)、联合文件系统(union filesystems)、“门户”(portals)、kernfs、简单的日志结构化文件系统、一个新的 NFS 版本(NQNFS)等。虽然其中某些文件系统尚不够完善,还需要额外的工作来实现更强的稳健性,但这些改进为未来的发展奠定了基础。
支持 64 位文件偏移量 文件系统最大支持 2^63 字节的大小。
进一步迈向完全符合 POSIX 标准
IP 多播支持
IP 多播支持已从 4.4 Lite 中过时的 1.x 代码升级至由 Steve D. 和 Ajit 提供的最新 3.3 版本。这一版本是目前最先进的 IP 多播实现,主要特性如下:
非转发代码 已知可在一些有限的测试案例中正常运行。
多播转发器 和 用户模式的多播路由进程 虽然可以成功编译,但尚未经过充分测试(希望能在 2.0 正式发布前完成测试)。
负责人: Wollman
相关源码: sys/netinet
, usr.sbin/mrouted
可加载内核模块
David Greenman 集成了 NetBSD 的移植版本,这一版本由 Terry Lambert 提供,支持可加载内核模块。Garrett Wollman 开发了可加载文件系统的支持,Søren Schmidt 则完成了可加载执行类的支持。
负责人: core
相关源码:
sys/kern
sbin/modload
sbin/modunload
usr.bin/modstat
可加载文件系统
目前,大多数文件系统可以按需动态加载,但 UFS 系列(FFS、LFS 和 MFS)除外。除 NFS 外,这些文件系统在解除所有引用挂载后即可卸载。为支持该功能,C 库中新增了以下函数族:
同时,Shell 层面新增了以下命令:
该命令提供相同的信息。请注意以下当前限制:
/usr/bin
不得位于动态加载的文件系统中。在加载文件系统之前,必须有一个可写的
/tmp
目录。 (将/
移动到/etc/fstab
文件的顶部可以实现此目标。)某些特殊文件系统无法通过动态加载正常运行(即使静态加载,它们也经常存在问题)。
负责人: Wollman
相关源码:
sys/*fs
lkm/*fs
usr.bin/lsvfs
lib/libc/gen
S/Key
自版本 1.1.5 起,FreeBSD 就支持 S/Key 一次性密码方案。当前版本基于 Wietse Venema 的 logdaemon 包,2.0 版本的新特性包括:
新增访问控制表格式,可根据以下条件强制使用 S/Key:主机名、IP 地址、端口、用户名和组 ID。
支持通过移除访问控制表来禁用 S/Key。 (正因为如此,安装的
/etc
中没有skey.access
文件。)
要启用 S/Key 支持,可在 /etc
中创建一个 skey.access
文件,并根据需求进行填写。详情请参考:
以及示例文件:
负责人: pst, guido
相关源码:
lib/libskey
usr.bin/key*
(以及其他部分的补丁代码)
TCP/IP 通过并行(打印机)端口
现在,可以通过标准 LapLink™ 电缆运行 TCP/IP,只要两端都使用支持中断的打印机端口。接口名称为 "lp0",其中的 '0' 对应 lpt# 单元编号。此功能与 PLIP 不兼容。如果运行 NFS,建议将 MTU 设置为 9180,否则默认保持 1500,除非有特殊需求。速度取决于 CPU 类型,最高可达 70 kbyte/秒,常规速度为 50 kbyte/秒。
负责人: phk
相关源码: isa/lpt.c
ProAudioSpectrum SCSI 驱动
如果你有一块带 CD-ROM 的 PAS 卡,并且 MS-DOS 驱动程序名为 TSLCDR.SYS
,那么 "pas" 驱动应该可以正常工作。支持挂载磁盘、CD-ROM 和磁带,但由于相关硬件限制,传输速率限制为小于 690 kbyte/秒。这对于 CD-ROM 的使用来说已经足够。
负责人: phk
相关源码: isa/pas.c
Adaptec 2742/2842 SCSI 驱动
尽管 Adaptec 在提供技术信息方面并不合作,我们还是为 AHA-274x 和 AHA-284x 系列 SCSI 控制器开发了一个驱动程序。此驱动使用 GPL 授权的 Linux 序列代码,因此在找到替代方案之前,此部分内核需要始终附带源代码分发。对于 FreeBSD 的当前用户来说,这通常不会是问题。
负责人: gibbs 相关源码:
isa/aic7770.c
sys/gnu/misc/*
Gzip 压缩二进制文件
此版本中提供了一个实验性功能,可以直接执行 gzip 压缩的二进制文件。启用后,你只需 gzip 压缩二进制文件,移除 .gz
扩展名并将其设置为可执行文件。尽管启用此功能会带来显著的速度和内存消耗,但对于笔记本用户来说可能是值得的,最多可节省约 10 MB 的磁盘空间。
负责人: phk 相关源码:
kern/imgact_gzip.c
kern/inflate.c
无盘启动
相比于 1.1.5,2.0 版本中的无盘启动功能得到了显著改进。启动程序位于 src/sys/i386/boot/netboot
中,可以从 MSDOS 系统运行,也可以烧录到 EPROM 中。本地交换也成为可能。目前支持 WD、SMC、3COM 和 Novell 的以太网卡。
负责人: Martin Renters & phk 相关源码:
i386/boot/netboot
sys/nfs/nfs_vfsops.h
设备配置数据库
内核现在能更好地记录哪些设备驱动正在运行以及设备的连接情况。这些信息通过新的管理接口 sysctl(3)
提供给用户程序。目前应用包括:
lsdev(8)
:列出当前已配置的设备。
未来,该代码可能用于在安装时自动生成配置文件。
负责人: Wollman 相关源码:
sys/i386
sys/scsi
sys/kern/kern_devconf.c
sys/sys/devconf.h
usr.sbin/lsdev
内核管理接口
通过 4.4-Lite,我们拥有了一个更好的管理接口,能够处理之前通过读取和写入 /dev/kmem
操作的内核变量和参数。许多程序已经改写以使用该接口,但仍有许多旧程序未改动。一些之前无法访问的变量现在可通过 sysctl(1)
程序获取。此外,我们还新增了以下支持:
YP/NIS 域管理 (
kern.domainname
)更新守护进程控制 (
kern.update
)操作系统发布日期 (
kern.osreldate
)启动内核名称 (
kern.bootfile
)硬件浮点支持检查 (
hw.floatingpoint
)设备和文件系统管理查询
负责人: core 相关源码:
sys
usr.bin/sysctl
iBCS2 支持
FreeBSD 现在支持运行 iBCS2 兼容的二进制文件(目前支持 SCO UNIX 3.2.2 和 3.2.4,以及 ISC 2.2 COFF 格式)。尽管 iBCS2 模拟器仍处于早期阶段,但其功能已经可用。由于缺少商业应用,我们无法进行详尽测试,但几乎所有 SCO 3.2.2 二进制文件都可以正常运行,例如旧版 INFORMIX-2.10 for SCO。此外,还在进行 ELF 和 XOUT 加载器的开发,大部分 svr4 系统调用包装器已经完成。
负责人: Søren Schmidt (sos) & Sean Eric Fagan (sef) 相关源码:
sys/i386/ibcs2/*
其他相关内核变更
2. 支持的配置
FreeBSD 目前可以运行在各种基于 ISA、VLB、EISA 和 PCI 总线的 PC 上,支持从 386sx 到 Pentium 级别的处理器(但不推荐使用 386sx)。同时支持通用 IDE 或 ESDI 驱动配置、各种 SCSI 控制器、网络和串行卡。
以下是目前确认可与 FreeBSD 配合使用的磁盘控制器和以太网卡列表。其他配置也可能兼容,但我们尚未收到相关报告。
2.1 磁盘控制器
以下磁盘控制器支持 FreeBSD:
WD1003(任何通用 MFM/RLL 控制器)
WD1007(任何通用 IDE/ESDI 控制器)
[注:新型 PC 的扩展 IDE 控制器也可用,但不支持扩展功能。]
Adaptec 系列 SCSI 控制器:
152x 系列 ISA 控制器
154x 系列 ISA 控制器
174x 系列 EISA 控制器(支持标准和增强模式)
2742/2842 系列 ISA/EISA 控制器
基于 AIC-6260 和 AIC-6360 的控制器,包括 AHA-152x 和 SoundBlaster SCSI 卡
注意:SoundBlaster 卡无法作为引导设备,因为它们没有板载 BIOS,而引导设备需要通过系统 BIOS 的 I/O 向量映射才能被识别。但这些卡可以很好地支持外部磁带机、CD-ROM 等设备。其他没有引导 ROM 的 AIC-6x60 卡也有同样限制。有些系统配备了引导 ROM,通常在系统启动或重置时会有相关提示信息,请参考系统或主板文档以了解更多信息。
Buslogic 系列(原名 "Bustec"):
545S & 545c
445S/445c VLB 控制器
742A、747S、747c EISA 控制器
946c PCI 控制器
NCR 53C810 和 53C825 PCI SCSI 控制器
DTC 3290 EISA SCSI 控制器(1542 模拟模式)
UltraStor 系列 SCSI 控制器:
14F、24F、34F
Seagate ST01/02 SCSI 控制器
Future Domain 系列 SCSI 控制器:
8xx/950 系列
支持的 SCSI 控制器完全支持 SCSI-I 和 SCSI-II 外设,包括磁盘、磁带机(包括 DAT)和 CD-ROM 驱动器。
注意:目前,CD-ROM 驱动器只能通过此类 SCSI 控制器或 Mitsumi CD-ROM 接口卡(mcd
驱动)连接到 FreeBSD 系统。我们不支持 SoundBlaster(非 SCSI)CD-ROM 接口或其他“非 SCSI”适配器。ProAudio Spectrum SCSI 和 SoundBlaster SCSI 控制器是受支持的。
某些控制器对内存大于 16MB 的处理有局限性,这是因为 ISA 总线的 DMA 地址空间只有 24 位,超过 16MB 的地址无法直接 DMA。即使某些 EISA 控制器(通常是 32 位)在配置为 ISA 模拟模式时也会受此限制。该问题可通过以下方式避免:
使用 IDE 控制器(不使用 DMA)
使用真正的 EISA 控制器(如 UltraStor 或 Adaptec 1742A)
使用大多数 VLB(局部总线)控制器
在需要时,系统将使用“跳转缓冲区”(bounce buffers)与控制器通信,从而仍然可以轻松使用超过 16MB 的内存。
2.2 以太网卡
以下以太网卡支持 FreeBSD:
SMC Elite 16 WD8013 网卡以及大多数基于以下型号的克隆卡:
WD8003E、WD8003EBT、WD8003W、WD8013W、WD8003S、WD8003SBT、WD8013EBT
SMC Elite Ultra 也受支持
DEC EtherWORKS 系列:
III 网卡(DE203、DE204、DE205)
II 网卡(DE200、DE201、DE202、DE422)
Isolan 系列:
AT 4141-0(16 位)
Isolink 4110(8 位)
Novell 系列:
NE1000、NE2000、NE2100 网卡
3Com 系列:
3C501
3C503 Etherlink II
3C507 Etherlink 16/TP
3C509 和 3C579 Etherlink III
Toshiba 以太网卡
来自 IBM 和 National Semiconductor 的 PCMCIA 以太网卡
2.3 其他支持
多串口卡:
AST 4 端口串口卡(共享 IRQ)
ARNET 8 端口串口卡(共享 IRQ)
BOCA ATIO66 6 端口串口卡(共享 IRQ)
STB 4 端口卡(共享 IRQ)
光驱和接口卡:
Mitsumi(所有型号)CD-ROM 接口和驱动器
SoundBlaster SCSI 和 ProAudio Spectrum SCSI CD-ROM 接口和驱动器
声卡:
Adlib、SoundBlaster、SoundBlaster Pro、ProAudioSpectrum、Gravis UltraSound 和 Roland MPU-401
注意:FreeBSD 当前不支持 IBM 的微通道(MCA)总线,但支持似乎即将到来。有关最新动态将另行发布。
3. 获取 FreeBSD
你可以通过以下方式获取 FreeBSD:
1. FTP/邮件
从官方站点 freebsd.cdrom.com
下载 FreeBSD 及其可选软件包。
有关镜像站点的信息,请参阅文件 MIRROR.SITES
,并从网络最近的站点下载。
如果没有互联网访问权限,可以通过电子邮件发送请求至 ftpmail@decwrl.dec.com
获取文件。在邮件正文中输入关键词 “help” 以获取更多关于文件下载的信息。注意:此方法可能会通过邮件产生大量(数十兆字节)数据,仅作为最后手段使用!
2. 光盘
可通过以下方式订购 FreeBSD 2.0 光盘:
光盘售价为 $39.95,美过、加拿大和墨西哥运费 $5,其他国家 $10。支持 Visa、Mastercard、American Express,并提供美国货到付款服务。加州居民需加 8.25% 销售税。
光盘可无条件退货,但 Walnut Creek CDROM 不提供技术支持,技术问题请联系 FreeBSD 团队(参见第 5 节)。
4. 准备安装
1. 软盘安装
如果你必须使用软盘进行安装,无论是因为硬盘空间有限,还是你单纯喜欢挑战困难的方式,首先需要准备一些软盘。
你需要 10 张 1.44MB 软盘 或 12 张 1.2MB 软盘 来存储 bindist(二进制发行版)。这些软盘 必须 使用 MS-DOS 格式化,可以通过 MS-DOS 的 FORMAT
命令或 Microsoft Windows 的文件管理器来完成(当然,如果是出厂预格式化的软盘且未被用于其他用途,也可以直接使用)。
格式化软盘后,需要将文件拷贝到软盘中。bindist 包含 56 个文件,此外还有三个小文件(CKSUMS
、do_cksum.sh
和 extract.sh
)供安装程序使用。这些文件 都必须 被拷贝到软盘上。bindist 的文件名为 bindist.??
,其中 ??
是从 aa
到 cd
的字母序列。将这些文件依次拷贝到软盘中,并将三个小型安装文件拷贝到最后一张软盘中。文件的拷贝顺序并不重要,但按照字母顺序会更容易给软盘贴标签。
完成后,这些软盘即可用于安装程序。
在安装了二进制发行版并顺利运行后,相同的方法也适用于其他发行版(如 manpages 或 XFree86 发行版)的安装。需要的软盘数量会根据发行版的大小而有所不同。
2. 硬盘安装
如果从 MS-DOS 分区安装,只需将发行版文件复制到一个与发行版同名的目录下。例如,要准备安装 bindist,则在 C 盘上创建一个名为 C:BINDIST
的目录,并将文件复制到该目录中。这样安装程序就会自动找到这些文件。
3. QIC/SCSI 磁带安装
从磁带安装是最简单的安装方式之一,仅次于在线使用 FTP 或从 CD-ROM 安装。安装程序要求文件以 tar 格式写入磁带。在获取所有相关的发行版文件后,可以使用如下命令将其写入磁带:
确保目录中包含 CKSUMS
、do_cksum.sh
和 extract.sh
文件!
如果想从一盘磁带安装多个发行版,请按以下步骤操作:
进入发行版的父目录,并按如下方式将文件写入磁带:
使用磁带安装方法正常安装磁带上的第一个发行版。安装完成后,不要 删除临时目录的内容。按
ESC-ESC
打开 shell,手动进入临时目录。对于每个额外的发行版,进入其子目录并运行以下命令:
5. 报告问题、提供建议、提交代码
你的建议、错误报告和代码贡献对我们非常重要——如果发现任何问题,请不要犹豫地报告(如果可以,请附上修复方案!)。
如果你的机器可以通过互联网发送邮件,建议使用 send-pr
命令提交错误报告。错误报告会被我们的忠实错误归档程序接收,我们会尽力尽快回应所有报告的问题。
如果因为某种原因无法使用 send-pr
提交错误报告,也可以将问题发送到:bugs@FreeBSD.org
如果你有任何问题或建议,可以发送邮件到:questions@FreeBSD.org
此外,作为一个志愿者项目,我们始终欢迎额外的帮助——目前需要完成的增强功能远远超过我们能够独自完成的范围!如需讨论技术问题或提供帮助,请发送邮件至:hackers@FreeBSD.org
如果你不希望接收大量邮件,只是想关注 FreeBSD 的重要事件,可以选择订阅:announce@FreeBSD.org
除 FreeBSD-bugs 邮件组外,其他邮件组任何人都可以自由加入。发送邮件至 MajorDomo@FreeBSD.org
,在邮件正文中独立写上一行 help
,即可获取有关加入各种邮件组、访问存档等的更多信息。还有许多面向特殊兴趣群体的邮件组未在此提及,请向 majordomo
发送邮件查询!
6. 致谢
FreeBSD 是全球众多开发者共同努力的结晶,这些人付出了巨大的努力,才有了这一版本的问世。虽然要列举出所有为 FreeBSD 作出贡献的人几乎是不可能的,但我们仍然希望尽可能地做到(当然,是按字母顺序排列)。如果你的名字未被提及,请放心,这纯属意外遗漏。
致谢名单
加州大学伯克利分校 (U.C. Berkeley) 计算机系统研究组 (CSRG)
Bill Jolitz,感谢他在 386BSD 上所做的大量工作。
FreeBSD “核心”团队:
Andrew A. Chernov
John Dyson
Bruce Evans
David Greenman
Rodney W. Grimes
Jordan K. Hubbard
Poul-Henning Kamp
Rich Murphey
Gary Palmer
Geoff Rehmet
Paul Richards
Soren Schmidt
Andreas Schulz
Jack Vogel
Garrett A. Wollman
特别感谢:
Robert Bruce 和 Jack Velte,来自 Walnut Creek CDROM 的两位,若没有他们的帮助和持续支持,这一版本将不可能实现。
Dermot McDonnell,捐赠了 Toshiba XM3401B CDROM 驱动器。
NetBSD 团队,为他们的频繁协助与意见。
其他 FreeBSD 助手和测试人员:
J.T. Conklin
Julian Elischer
Sean Eric Fagan
Jeffrey Hsu
Terry Lambert
L Jonas Olsson
Chris Provenzano
Dave Rivers
Guido van Rooij
Steven Wallace
Atsushi Murai
Scott Mace
Andrew Moore
Nate Williams
以及 蒙大拿州立大学 (Montana State University) 的所有成员,感谢他们最初的支持。
感谢所有人,尤其是那些未被提及的朋友!我们真诚希望你能享受这个版本的 FreeBSD!
FreeBSD 核心团队
最后更新于