项目维护
新书征集意见 ----------------------------- 经过几个月的辛苦努力,本书(《FreeBSD在中国的未来》)的第二版终于完稿,这里是前言和目录,希望广大读者给于评论,多提宝贵意见。 -- 王波 联系方式:[email protected] /> ----------------------------- FreeBSD在中国的未来 --- 代序 本书从第一版出版到现在的这段时间中,FreeBSD系统又有了相当大的改变,目前版本4.x中包括了原有3.x中很多没有的内容,因此很多朋友很早就建议我进行版本更新,以及时反映系统版本的变化。 从去年8月份起,我就在考虑重新修订这本书的问题,事实上本书的第一版在很多方面仍然存有缺陷,因此在我的构想当中,不仅仅是简单的修订,而是要进行全面的更新和补充。然而,由于终日仍需要为生计奔波,修订工作不得不一再延迟。 在这段日子里,我遇到很多朋友,他们在各个领域内使用FreeBSD系统完成他们的工作,一位朋友一直致力于FreeBSD的推广,他说服一家公司提供BSD的发行、技术服务支持,然而,由于市场推广效果不好,该公司事实上停止了相应的支持。 FreeBSD在技术上的成功和优势是没有人能提出反对意见的,但是目前的时代不再是工程师的时代,技术人员并没有过多的话语权。像FreeBSD这样默默的在后台工作,以至于用户都快遗忘它的系统,可能真是一个老古董了,如果时不时出现一些蓝屏错误,反而能提醒用户自己的存在。不是这样的吗?那些保健品的恶俗广告不也挺成功的吗? 目前使用FreeBSD的厂商,基本上都限于技术公司内部,有些公司也使用FreeBSD作为专用设备的操作系统,例如防火墙等。就目前社会的现状来讲,将FreeBSD用作专有设备的操作系统是比较聪明的做法,因为普通用户认可专有设备,而不管内部是什么系统。当然,这些设备当中使用Linux的也不少,但是选择FreeBSD的另一个好处是许可权比较宽松。目前大部分使用Linux 用作设备操作系统的公司,都没有严格遵循GPL协议发布他们的代码,比较起来,使用FreeBSD的公司至少更为诚实,更可靠和值得信赖。 虽然FreeBSD的应用还不是十分普及,但我想任何事物都有一个过程,从引入到普及,比较起来,我想目前的FreeBSD用户要比几年前要多得多了吧!如果与Linux等系统的发展速度比较起来,FreeBSD的发展速度实在是太慢了。由于FreeBSD的用户局限于技术人员,就导致FreeBSD的商业支持和应用不能很好的发展,因此,FreeBSD目前的主要发展动力还是来自FreeBSD用户本身。 未来几年,我们可以做那些工作可以促进FreeBSD在中国的发展呢?我认为有几项工作可以去做: 普及和教育:本书就是这样的一个尝试,同时也希望更多的人加入到推广技术的行列中去。 宣传和鼓动:没有人会把话语权主动让给我们,只要靠我们自己去争取,我为一些杂志写文章也是出于这个目的,既然现实如此,那么最好的方法就是更好的适应现实。 本地化:目前Linux的本地化已经比较完善,我们所需要的就是将这些工作移植到FreeBSD下,并通过Ports Collection进行维护,从而反馈给整个FreeBSD社区,既是对FreeBSD本身的贡献,也是对FreeBSD国内普及的贡献. 中文安装:推广FreeBSD的应用的一种方法是提供更人性化的安装,它能使普通用户更容易接受FreeBSD,更为重要的是,它可以为我们争取话语权,让更多的人认识FreeBSD。我已经完成了一个初步的安装程序,将附在本书的光盘中提供给大家,以抛砖引玉。未来,这些工作可以和FreeBSD的下一代安装界面libh结合起来,回馈FreeBSD社区。 系统研究:我发现有不少人对系统内核感兴趣,对于极限编程感兴趣,这是非常有意义的,希望未来有国内人员进入FreeBSD的core team,如果那时他们能告诉我,这本书对他们有一定影响,于我愿足矣!对于这些进行系统研究的朋友,我的建议是:尽量遵循已有的规范和标准,以使你们的工作能非常容易的被core team接受,整个FreeBSD应该是一个整体,因而必须考虑协调。 商业推广:虽然FreeBSD的发展不依赖于商业,但商业推广必将带来更大的推广力度。我认为有几种产品领域FreeBSD占有极大的优势,如Email、Web服务器,网络安全产品等等。但对于普通用户来讲,可能配置和操作麻烦一些,因此,将操作系统和应用程序捆绑在一起,作为一个完整的应用服务器系统执行定制安装,可能是一个解决问题的途径。 对于我们来讲,只能根据自己的兴趣,选择一些工作去做,我个人主要选择了普及和教育方向,如果有时间、精力,还会继续在其他几个方面努力,特别是如果能做到商业推广,就可以如同BSD MALL(前CDROM)去支持FreeBSD开发成员一样,真正为FreeBSD在中国的发展提供一个比较良好的环境。 显然,即使不加任何努力,FreeBSD也会自己继续发展下去,但为什么不加入这个推动其发展的行列呢?我们不应该一切都等待他人将现成的东西都做好,只知道享用自由软件的大餐。 未来几年中,希望能在中国的FreeBSD社区中至少能出现以下有意义的工作,建立一个广泛的社区组织和门户站点来团结所有的FreeBSD用户,能够有比较正式的光盘发行,而不是仍然采取简单刻录的方法,此外,开发工作也能够有效的组织起来,等等。 王波于02年3月21日,值沙尘暴过后,阳光明媚 目录 1 第1章 引言 1 1.1 FREEBSD的起源 1 1.1.1 Unix的历史发展 2 1.1.2 FreeBSD的起源和发展 5 1.1.3 当前FreeBSD的版本 7 1.2 FREEBSD的功能特点 9 1.2.1 FreeBSD的特点和应用范围 9 1.2.2 使用FreeBSD的实例 12 1.2.3 关于网络服务器操作系统的调查 13 1.3 其他相关系统和组织 15 1.4 FREEBSD的相关资源 21 1.4.1 联机文档 21 1.4.2 出版物 21 1.4.3 Internet资源 22 1.4.4 商业服务和支持 24 1.5 FREEBSD 5.0新特性 25 1.5.1 下一代SMP支持 25 1.5.2 内核调度实体KSE和线程实现 27 1.5.3 网络I/O和文件系统 28 第2章 安装与配置 30 2.1 安装之前的准备 30 2.1.1 准备硬件 31 2.1.2 安装介质 34 2.1.3 准备启动软盘 37 2.1.5 准备硬盘 38 2.2 安装FREEBSD 44 2.2.1 启动安装系统 44 2.2.2 系统安装程序 49 2.3 基本系统配置 63 2.3.1 设置网络 63 2.3.2 定制控制台 66 2.3.3 其他设置 67 2.3.4 其他安装问题 70 第3章 基本操作与使用 74 3.1 启动与关闭系统 74 3.1.1 Boot Manager 74 3.1.2 系统登录与退出 75 3.1.3 关闭系统 76 3.2 文件与文件系统 77 3.2.1 浏览目录树 77 3.2.2 文件的属性 80 3.2.3 文件系统 82 3.2.4 文件的连接和符号连接 83 3.2.5 文件的编辑 83 3.3 用户的SHELL环境 87 3.3.1 环境变量 87 3.3.2 shell的高级功能 89 3.3.3 shell脚本 92 3.4 进程管理 94 3.4.1 输入输出重定向和管道 94 3.4.2 管理后台进程 95 3.4.3 停止进程 97 3.4.4 定时执行程序 97 3.5 基本开发环境 99 3.5.1 编译器GCC 100 3.5.2 程序性能分析 101 3.5.3 可执行程序格式 102 3.5.4 使用make维护文件依赖关系 105 3.5.5 CVS代码管理简介 107 第4章 系统管理和维护 109 4.1 系统的启动过程 109 4.1.1 boot loader 110 4.1.2 系统启动脚本 114 4.2 用户管理 116 4.2.1 用户数据 116 4.2.2 增加用户 117 4.2.3 超级用户root 120 4.2.4 登录类别 122 4.2.5 系统级shell设置 123 4.3 磁盘操作 125 4.3.1 设备文件 125 4.3.2 安装文件系统 127 4.3.3 设置fstab文件 132 4.3.4 软盘操作 134 4.4 维护文件系统 135 4.4.1 检查硬盘 135 4.4.2 调整文件系统的目录结构 136 4.4.3 建立文件系统 137 4.4.4 管理交换设备 140 4.5 调整系统设置 140 4.5.1 调整控制台设置 141 4.5.2 配置系统时间 146 4.6 日志与备份 148 4.6.1 系统日志 149 4.6.2 系统备份 152 第5章 网络配置与使用 157 5.1 DOD参考模型与TCP/IP 157 5.1.1 DOD参考模型 159 5.2 基本网络设置 167 5.2.1 配置计算机名字 168 5.2.2 配置网络界面 169 5.2.3 配置路由 174 5.2.4 配置名字解析 178 5.2.5 基本网络诊断工具 179 5.5 简单网络规划和路由 181 5.5.1 路由支持 181 5.5.2 网络划分 182 5.5.3 动态路由 183 5.5.4 代理ARP 186 5.6 基本网络应用 189 5.7 下一代IP 194 5.5.1 IPv6简介 194 5.7.2 FreeBSD对IPv6的支持 197 5.7.3 6Bone虚拟网络 203 第6章 拨号网络与广域网连接 204 6.1 串口和MODEM 204 6.1.1 串口设置 205 6.2 PPP协议 206 6.3 使用PPP进行拨号连接 207 6.3.1 手工拨号 207 6.3.2 设置拨号连接 208 6.3.3 简单过滤处理与日志 212 6.3.4 认证方式 215 6.3.5 高级控制功能 216 6.4 使用PPPD及拨号程序 218 6.4.1 外部拨号程序 218 6.4.2 pppd简单配置 219 6.5 拨号访问FREEBSD 220 6.5.1 接受拨号终端访问 220 6.5.2 PPP服务器基本设置 222 6.5.3 PPP服务器高级配置 224 6.6 其他广域网连接方式 229 第7章 系统定制 231 7.1 安装应用软件 231 7.1.1 应用软件的类别 232 7.1.2 Packages Collection 234 7.2 编译应用软件 236 7.2.1 Ports Collection 237 7.2.2 手工编译安装程序 241 7.3 定制FREEBSD内核 242 7.3.1 为编译内核准备源代码 243 7.3.2 编译安装新内核 243 7.3 内核配置选项 246 7.4 定制系统 259 7.4.1 内核模块 259 7.4.2 定制全部系统 261 7.4.3 升级系统 263 7.4.4 安装程序 266 第8章 系统监视与优化 267 8.1 查看系统状态 267 8.1.1 查看系统状态 267 8.1.2 proc文件系统 274 8.1.3 使用sysctl 275 8.2 简单网络管理 283 8.2.1 SNMP协议 283 8.2.2 FreeBSD的SNMP支持 287 8.3 系统监视 290 8.3.1 获取基本数据 290 8.3.2 图形工具RRDtools 292 8.3.3 MRTG 292 8.4 内核优化 293 8.4.1 基本优化方法 293 8.4.2 调整内核参数 295 8.4.3 性能相关的内核参数 299 8.4.4 磁盘和文件系统优化 301 8.5 RAID与卷管理 317 8.5.1 RAID简介 317 8.5.2 使用ccd的简单RAID支持 322 8.5.3 Vinum的简单配置 325 8.5.4 Vinum高级配置 329 第9章 桌面系统硬件支持 340 9.1 常用硬件 340 9.1.1 高级电源管理 340 9.1.2 声卡设备 344 9.1.3 PCMICA和USB支持 349 9.2 GUI界面 353 9.2.1 X Widnow与XFree86 353 9.2.2 安装XFree86 3.3.x 355 9.2.3 安装和配置Xfree86 4 368 9.3 配置文件XF86CONFIG 376 9.3.1 文件搜寻路径 376 9.3.2 可加载模块 377 9.3.3 X服务器选项 377 9.3.4 键盘设置 378 9.3.5 鼠标设置 379 9.3.6 显示器设置 380 9.3.7 显示卡设置 381 9.3.8 屏幕设置 381 第10章 配置桌面环境 384 10.1 桌面环境介绍 385 10.1.1 桌面环境的额外内涵 385 10.1.2 桌面环境的不同部分 386 10.2 X WINDOW基础 387 10.2.1 X Window的基本概念 387 10.2.2 进入X Window 396 10.2.3 定制X Window的基本方法 403 10.2.4 桌面环境简介 409 10.3 中文环境 410 10.3.1 中文化概述 410 10.3.2 设置中文环境 414 10.3.3 传统中文化技术 419 10.4 打印配置 420 10.4.1 系统结构 420 10.4.2 配置打印机 421 10.4.3 使用和控制打印机 427 其他打印系统 428 10.5 其他系统应用程序 429 10.5.1 系统仿真功能 429 10.5.2 运行Linux应用程序 431 第11章 高级系统管理 436 11.1 NIS服务 436 11.1.1 NIS系统结构 436 11.1.2 规划和实施NIS 437 11.1.3 NIS netgroup 442 11.2 网络文件系统NFS 443 11.2.1 NFS服务器 444 11.2.2 NFS客户 445 11.2.3 自动安装守护进程AMD 447 11.3 目录与LDAP 449 11.3.1 目录简介 450 11.3.2 安装和配置OpenLDAP 454 11.3.3 使用OpenLDAP 459 11.3.4 实用LDAP选项 462 11.4 认证与计费 468 11.4.1 Radius简介 468 11.4.2 安装和实现Radius 470 11.4.3 实际Radius应用问题 475 11.5 应用PAM 477 11.5.1 PAM简介 477 11.5.2 支持Radius与LDAP 478 第12章 常用网络服务 482 12.1 基本网络服务 482 12.1.1 inetd及相关服务 482 12.2 DNS服务 488 12.2.1 DNS的体系结构 488 12.1.2 配置DNS缓冲 489 12.2.3 定义名字服务 494 12.3 电子邮件服务 498 12.3.1 邮件服务基础 498 12.3.2 邮件服务的快速设置 502 12.3.3 控制台邮件处理 504 12.3.4 邮件系统的维护和管理 505 12.3.5 用户邮件管理 510 12.3.6 垃圾邮件的防范简介 513 第13章 内部网络服务 515 13.1 WINDOWS对基本协议的支持 515 13.2 NETBIOS与SMB/CIFS协议 516 13.2.1 NetBIOS名字解析 517 13.2.2 SMB/CIFS协议 519 13.3 配置和使用SAMBA 522 13.3.1 基本配置与使用 523 13.3.2 samba配置选项介绍 527 13.3.3 高级设置选项 536 13.3.4 网络规划与设置 543 13.4 访问SMB系统资源 545 13.4.1 命令行方式 546 13.4.2 文件系统方式 547 13.5 DHCP支持 550 13.5.1 DHCP的工作过程 551 13.5.2 设置和使用DHCP 552 13.5.3 提供备份的DHCP设置 556 第14章 系统安全 558 14.1 系统及网络安全概念 558 14.1.1 认证与加密 559 14.1.2 当前的安全问题 562 14.1.3 防火墙技术 565 14.2 系统安全设置 568 14.2.1 用户登录控制 569 14.2.2 安全认证方式 571 14.2.3 系统资源控制 578 14.2.4 网络服务与应用程序安全 583 14.3 受限安全网络服务 588 14.3.1 受限服务的设置 589 14.3.2 虚拟服务器 591 14.4 其他安全工具 593 14.4.1 安全检查工具 593 14.4.2 网络数据侦听 595 第15章 防火墙与VPN 600 15.1 代理服务 600 15.1.1 Web代理 601 15.1.2 Email代理 605 15.1.3 其他代理系统 611 15.2 包过滤与地址转换 612 15.2.1 设置和使用ipfw/natd 612 15.2.2 ipfw的高级设置 623 15.2.3 设置和使用ipfilter 626 15.3 构建防火墙 632 15.3.1 构建原则 632 15.3.2 防火墙的特殊类型 635 15.3.3 系统定制 639 15.4 SSH加密连接 641 15.4.1 使用和设置ssh 641 15.4.2 SSH加密通道 645 15.5 安全传输层协议SSL 648 15.5.1 证书及CA体系 649 15.5.2 SSL基本环境 651 15.6 IP安全体系 657 15.6.1 IPSec协议族 657 15.6.2 FreeBSD的IPSec支持 662 15.7 构建VPN 669 15.7.1 VPN基本概念 669 15.7.2 VPN实现 671 第16章 设置WWW服务 673 16.1 基本概念 673 16.1.1 超文本传输协议HTTP 673 16.1.2 数据处理方式 676 16.2 安装和设置APACHE 678 16.2.1 基本安装 679 16.2.2 配置Apache服务器 680 16.3 服务器的安全控制 698 16.3.1 对IP地址和域名的控制 698 16.3.2 基于用户的访问控制 699 16.3.3 其他认证方式 701 16.3.4 安全连接方式SSL 702 16.3.5 CGI和SSI的安全性 703 16.4 调整服务器性能 704 16.4.1 单服务器性能调整 704 16.4.2 提升静态网页服务能力的综合方式 708 16.5 集群及负载均衡技术 709 16.5.1 基于DNS的负载均衡 710 16.5.2 反向代理负载均衡 711 16.5.3 基于NAT的负载均衡技术 712 附录A 多余的话 715 附录B 参考资料 728 附录C 索引 730 附录D 光盘介绍 736
管理