📄 freebsd 开发手册.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>FreeBSD 开发手册</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body class="BOOK" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="BOOK"><a id="AEN1" name="AEN1"></a><div class="TITLEPAGE"><h1 class="TITLE"><a id="AEN2" name="AEN2">FreeBSD 开发手册</a></h1><h3 class="CORPAUTHOR">The FreeBSD Documentation Project</h3><h3 class="CORPAUTHOR">FreeBSD 中文计划</h3><p class="COPYRIGHT">版权 © 2000, 2001, 2002, 2003, 2004, 2005, 2006 The FreeBSDDocumentation Project</p><p class="COPYRIGHT">版权 © 2005, 2006 FreeBSD 中文计划</p><div><div class="ABSTRACT"><a id="AEN52" name="AEN52"></a><p> 欢迎您阅读《FreeBSD开发手册》。 这本手册还在不断由许多人<span class="emphasis"><bclass="EMPHASIS">继续书写</b></span>。 许多章节还是空白,有的章节亟待更新。如果您对这个项目感兴趣并愿意有所贡献,请发信给 <ahref="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc" target="_top">FreeBSD文档计划邮件列表</a>。</p><p> 本文档的最新英文原始版本可从 <a href="../../../../index.html"target="_top">FreeBSD Web 站点</a> 获得, 由 <a href="http://www.FreeBSD.org.cn/"target="_top">FreeBSD 中文计划</a> 维护的最新译本可以在 <ahref="http://cnsnap.cn.FreeBSD.org/zh_CN/" target="_top">FreeBSD 中文计划 快照 Web站点</a> 和 <a href="http://cnsnap.cn.FreeBSD.org/doc/zh_CN.GB2312/"target="_top">FreeBSD 中文计划 文档快照</a> 处获得, 这一译本会不断向主站同步。 此外,您也可以从 <a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/" target="_top">FreeBSD FTP服务器</a> 或众多的 <ahref="../../../../doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html"target="_top">镜像站点</a> 得到这份文档的各种其他格式以及压缩形式的版本。</p></div></div><div class="LEGALNOTICE"><a id="LEGALNOTICE" name="LEGALNOTICE"></a><div class="IMPORTANT"><blockquote class="IMPORTANT"><p><b>重要:</b> <span class="emphasis"><bclass="EMPHASIS">本文中许可证的非官方中文翻译仅供参考,不作为判定任何责任的依据。如与英文原文有出入,则以英文原文为准。</b></span></p></blockquote></div><p>在满足下列许可条件的前提下, 允许再分发或以源代码 (SGML DocBook) 或 “编译” (SGML,HTML, PDF, PostScript, RTF 等) 的经过修改或未修改的形式:</p><ol type="1"><li><p>再分发源代码 (SGML DocBook) 必须不加修改的保留上述版权告示、本条件清单和下述弃权书作为该文件的最先若干行。</p></li><li><p>再分发编译的形式 (转换为其它DTD、 PDF、 PostScript、 RTF 或其它形式),必须将上述版权告示、本条件清单和下述弃权书复制到与分发品一同提供的文件,以及其它材料中。</p></li></ol><div class="IMPORTANT"><blockquote class="IMPORTANT"><p><b>重要:</b> 本文档由 FREEBSD DOCUMENTATION PROJECT “按现状条件” 提供,并在此明示不提供任何明示或暗示的保障, 包括但不限于对商业适销性、对特定目的的适用性的暗示保障。 任何情况下, FREEBSD DOCUMENTATION PROJECT均不对任何直接、 间接、 偶然、 特殊、 惩罚性的, 或必然的损失(包括但不限于替代商品或服务的采购、 使用、 数据或利益的损失或营业中断) 负责,无论是如何导致的并以任何有责任逻辑的, 无论是否是在本文档使用以外以任何方式产生的契约、严格责任或是民事侵权行为(包括疏忽或其它)中的, 即使已被告知发生该损失的可能性。</p></blockquote></div><p>Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF,PostScript, RTF and so forth) with or without modification, are permitted provided thatthe following conditions are met:</p><ol type="1"><li><p>Redistributions of source code (SGML DocBook) must retain the above copyright notice,this list of conditions and the following disclaimer as the first lines of this fileunmodified.</p></li><li><p>Redistributions in compiled form (transformed to other DTDs, converted to PDF,PostScript, RTF and other formats) must reproduce the above copyright notice, this listof conditions and the following disclaimer in the documentation and/or other materialsprovided with the distribution.</p></li></ol><div class="IMPORTANT"><blockquote class="IMPORTANT"><p><b>重要:</b> THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "ASIS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NOEVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p></blockquote></div></div><div class="LEGALNOTICE"><a id="TRADEMARKS" name="TRADEMARKS"></a><p>FreeBSD 是 FreeBSD基金会的注册商标</p><p>Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, 以及 TrueType 是 AppleComputer, Inc. 在美国以及其他国家的注册商标。</p><p>IBM、 AIX、 EtherJet、 Netfinity、 OS/2、 PowerPC、 PS/2、 S/390 以及 ThinkPad是国际商用机器公司在美国和其他国家的注册商标或商标。</p><p>IEEE, POSIX, 和 802 是 Institute of Electrical and Electronics Engineers, Inc.在美国的注册商标。</p><p>Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, 和 Xeon 是 IntelCorporation 及其分支机构在美国和其他国家的商标或注册商标。</p><p>Linux 是 Linus Torvalds 的注册商标。</p><p>Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, 和 Windows NT 是Microsoft Corporation 在美国和/或其他国家的商标或注册商标。</p><p>Motif, OSF/1, 和 UNIX 是 The Open Group 在美国和其他国家的注册商标; IT DialTone 和The Open Group 是其商标。</p><p>Sun、 Sun Microsystems、 Java、 Java Virtual Machine、 JavaServer Pages、 JDK、 JRE、JSP、 JVM、 Netra、 Solaris、 StarOffice、 Sun Blade、 Sun Enterprise、 Sun Fire、 SunOS以及 Ultra 是 Sun Microsystems, Inc. 在美国和其他国家的商标或注册商标。</p><p>许多制造商和经销商使用一些称为商标的图案或文字设计来彰显自己的产品。 本文档中出现的,为 FreeBSD Project 所知晓的商标,后面将以 '™' 或 '®' 符号来标注。</p></div><div class="DOCFORAMTNAVI">[ <a href="./index.html">章节模式</a> / <ahref="./book.html">完整模式</a> ]</div><hr /></div><div class="TOC"><dl><dt><b>目录</b></dt><dt>第I部分. <a href="#BASICS">基础</a></dt><dd><dl><dt>第1章 <a href="#INTRODUCTION">介绍</a></dt><dd><dl><dt>1.1 <a href="#INTRODUCTION-DEVEL">在 FreeBSD 上进行开发</a></dt><dt>1.2 <a href="#INTRODUCTION-BSDVISION">BSD 理念</a></dt><dt>1.3 <a href="#INTRODUCTION-ARCHGUIDE">指导性架构设计原则</a></dt><dt>1.4 <a href="#INTRODUCTION-LAYOUT"><ttclass="FILENAME">/usr/src</tt>的层次结构</a></dt></dl></dd><dt>第2章 <a href="#TOOLS">编程工具</a></dt><dd><dl><dt>2.1 <a href="#TOOLS-SYNOPSIS">概述</a></dt><dt>2.2 <a href="#TOOLS-INTRO">介绍</a></dt><dt>2.3 <a href="#TOOLS-PROGRAMMING">编程初步</a></dt><dt>2.4 <a href="#TOOLS-COMPILING">用 <tt class="COMMAND">cc</tt> 编译</a></dt><dt>2.5 <a href="#TOOLS-MAKE">Make</a></dt><dt>2.6 <a href="#DEBUGGING">调试</a></dt><dt>2.7 <a href="#EMACS">使用 Emacs 作为开发环境</a></dt><dt>2.8 <a href="#TOOLS-READING">补充阅读</a></dt></dl></dd><dt>第3章 <a href="#SECURE">安全的编程</a></dt><dd><dl><dt>3.1 <a href="#SECURE-SYNOPSIS">提要</a></dt><dt>3.2 <a href="#SECURE-PHILOSOPHY">安全的设计方法</a></dt><dt>3.3 <a href="#SECURE-BUFFEROV">缓冲区溢出</a></dt><dt>3.4 <a href="#SECURE-SETUID">SetUID 问题</a></dt><dt>3.5 <a href="#SECURE-CHROOT">限制你的程序环境</a></dt><dt>3.6 <a href="#SECURE-TRUST">信任</a></dt><dt>3.7 <a href="#SECURE-RACE-CONDITIONS">竞态条件</a></dt></dl></dd><dt>第4章 <a href="#L10N">本地化与国际化 - L10N 和 I18N</a></dt><dd><dl><dt>4.1 <a href="#L10N-PROGRAMMING">编写适应国际化的应用程序</a></dt></dl></dd><dt>第5章 <a href="#POLICIES">源代码树指南和维护发展策略</a></dt><dd><dl><dt>5.1 <a href="#POLICIES-MAINTAINER">Makefile 中的 <ttclass="MAKEVAR">MAINTAINER</tt></a></dt><dt>5.2 <a href="#POLICIES-CONTRIBUTED">第三方软件</a></dt><dt>5.3 <a href="#POLICIES-ENCUMBERED">妨碍性的 (Encumbered) 文件</a></dt><dt>5.4 <a href="#POLICIES-SHLIB">共享库</a></dt></dl></dd><dt>第6章 <a href="#TESTING">回归与性能测试</a></dt><dd><dl><dt>6.1. <a href="#TESTING-MICRO-BENCHMARK">微性能测试列表</a></dt></dl></dd></dl></dd><dt>第II部分. <a href="#IPC">进程间通信</a></dt><dd><dl><dt>第7章 <a href="#SOCKETS">套接字</a></dt><dd><dl><dt>7.1 <a href="#SOCKETS-SYNOPSIS">概述</a></dt><dt>7.2 <a href="#SOCKETS-DIVERSITY">联网和多样性</a></dt><dt>7.3 <a href="#SOCKETS-PROTOCOLS">协议</a></dt><dt>7.4 <a href="#SOCKETS-MODEL">套接字模型</a></dt><dt>7.5 <a href="#SOCKETS-ESSENTIAL-FUNCTIONS">重要的套接字函数</a></dt><dt>7.6 <a href="#SOCKETS-HELPER-FUNCTIONS">辅助函数</a></dt><dt>7.7 <a href="#SOCKETS-CONCURRENT-SERVERS">并发服务器</a></dt></dl></dd><dt>第8章 <a href="#IPV6">IPv6内部</a></dt><dd><dl><dt>8.1 <a href="#IPV6-IMPLEMENTATION">IPv6/IPsec的实现</a></dt></dl></dd></dl></dd><dt>第III部分. <a href="#KERNEL">内核</a></dt><dd><dl><dt>第9章 <a href="#DMA">DMA</a></dt><dd><dl><dt>9.1 <a href="#DMA-BASICS">DMA 是什么以及如何工作的</a></dt></dl></dd><dt>第10章 <a href="#KERNELBUILD">联编并安装 FreeBSD 内核</a></dt><dd><dl><dt>10.1 <a href="#KERNELBUILD-TRADITIONAL">以 “传统” 方式联编内核</a></dt><dt>10.2 <a href="#KERNELBUILD-NEW">以 “新” 方式联编内核</a></dt></dl></dd><dt>第11章 <a href="#KERNELDEBUG">调试内核</a></dt><dd><dl><dt>11.1 <a href="#KERNELDEBUG-OBTAIN">如何将内核的崩溃转存数据保存成文件</a></dt><dt>11.2 <a href="#KERNELDEBUG-GDB">使用 <tt class="COMMAND">kgdb</tt>调试内核的崩溃转存</a></dt><dt>11.3 <a href="#KERNELDEBUG-DDD">使用 DDD 调试崩溃转存文件</a></dt><dt>11.4 <a href="#KERNELDEBUG-POST-MORTEM">对于崩溃转存的验尸式分析</a></dt><dt>11.5 <a href="#KERNELDEBUG-ONLINE-DDB">使用 DDB 进行在线内核调试</a></dt><dt>11.6 <a href="#KERNELDEBUG-ONLINE-GDB">使用远程 GDB 进行联机内核调试</a></dt><dt>11.7 <a href="#KERNELDEBUG-KLD">用 GDB 调试可加载模块</a></dt><dt>11.8 <a href="#KERNELDEBUG-CONSOLE">如何调试控制台驱动</a></dt><dt>11.9 <a href="#KERNELDEBUG-DEADLOCKS">调试死锁</a></dt><dt>11.10 <a href="#KERNELDEBUG-OPTIONS">用于调试的内核选项术语表</a></dt></dl></dd></dl></dd><dt>第IV部分. <a href="#ARCHITECTURES">系统结构</a></dt><dd>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -