26.04.2015 Views

ChinaUnix.net -----全球最大的Linux/Unix 应用与开发

ChinaUnix.net -----全球最大的Linux/Unix 应用与开发

ChinaUnix.net -----全球最大的Linux/Unix 应用与开发

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

开 源 时 代 2008 年 10 月 刊 - 2 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

开 源 时 代 2008 年 10 月 刊 - 3 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

卷 首 语<br />

*******************************************************************************************************<br />

北 京 的 秋 天 很 短 暂 , 转 眼 就 到 深 秋 ,《 开 源 时 代 》 很 快 又 和 大 家 见 面 了 。 自 九 月 份 《 开 源 时 代 》<br />

电 子 杂 志 推 出 以 来 , 我 们 得 到 了 很 多 网 友 的 支 持 和 帮 助 , 在 短 短 的 一 个 月 时 间 里 , 有 超 过 近 5 万 网<br />

友 通 过 各 种 方 式 下 载 和 阅 读 了 这 份 创 刊 号 ! 并 且 很 多 网 友 给 我 们 发 来 了 大 量 的 建 议 、 意 见 和 投 稿 。<br />

在 此 , 我 们 向 所 有 关 心 这 份 开 源 电 子 杂 志 的 朋 友 们 说 一 声 谢 谢 !<br />

十 月 份 的 软 件 业 界 还 是 比 较 热 闹 的 。 当 定 价 为 零 , 且 已 经 可 以 与 微 软 Office 相 媲 美 的 开 源 软 件<br />

OpenOffice 3.0 发 布 时 , 微 软 宣 布 推 出 “ 黑 屏 ” 计 划 和 正 版 Office 验 证 计 划 。 虽 然 这 两 件 事 的 发<br />

布 没 有 必 然 联 系 , 但 微 软 黑 屏 事 件 闹 得 沸 沸 扬 扬 , 让 更 多 的 人 将 目 光 投 向 了 开 源 软 件 。 有 网 友 调 侃 :<br />

“ 微 软 黑 屏 了 , 众 人 慌 了 , 开 源 人 笑 了 ”, 甚 至 有 人 开 始 高 呼 :“ 中 国 软 件 企 业 的 机 会 来 了 ! 开 源<br />

软 件 的 机 会 来 了 !”。<br />

很 多 软 件 厂 商 开 始 计 划 如 何 借 此 黑 屏 之 风 推 推 自 己 的 免 费 产 品 。 其 实 “ 黑 屏 ” 事 件 并 不 见 得 会<br />

对 开 源 软 件 产 生 多 大 的 影 响 , 但 这 的 确 是 一 个 宣 传 契 机 。 据 说 OpenOffice 3.0 由 于 下 载 量 过 大 ,<br />

一 度 导 致 服 务 器 宕 机 ; 国 产 的 金 山 WPS 办 公 软 件 则 声 称 已 经 与 微 软 产 品 深 度 兼 容 , 并 且 完 全 免 费 。<br />

在 开 源 操 作 系 统 方 面 , 月 底 即 将 发 布 的 Ubuntu 8.10 正 式 版 , 相 信 能 让 更 多 人 体 验 并 感 受 到 开 源 操<br />

作 系 统 并 不 会 亚 于 黑 屏 的 Windows。 如 果 开 源 软 件 在 允 许 自 由 再 分 发 的 基 础 上 , 探 索 出 一 条 可 持 续<br />

发 展 的 商 业 模 式 来 , 这 才 是 最 能 让 微 软 汗 颜 的 。<br />

无 论 外 界 如 何 喧 嚣 ,CU 还 是 一 直 默 默 地 坚 持 做 着 自 己 的 事 , 我 们 会 一 如 既 往 地 服 务 广 大 开 源 技<br />

术 爱 好 者 , 为 开 源 社 区 贡 献 着 我 们 的 绵 薄 之 力 !CU 技 术 沙 龙 是 我 们 与 大 家 线 下 交 流 的 主 要 形 式 。9<br />

月 下 旬 , 我 们 就 开 源 技 术 在 网 络 负 载 均 衡 上 的 应 用 , 在 北 京 组 织 了 一 次 沙 龙 , 与 会 人 数 众 多 , 大 家<br />

交 流 踊 跃 , 效 果 非 常 好 , 可 见 开 源 社 区 活 力 依 旧 。CU 在 接 下 来 的 几 个 月 内 , 还 要 将 线 下 活 动 扩 展 到<br />

全 国 各 地 , 比 如 携 手 红 旗 开 源 软 件 竞 赛 走 进 大 学 校 园 , 第 一 站 成 都 站 已 经 顺 利 完 成 。<br />

这 份 开 源 杂 志 , 则 是 我 们 与 大 家 交 流 的 另 一 种 形 式 。 如 何 更 好 运 用 杂 志 去 更 广 泛 地 传 播 开 源 是<br />

我 们 今 后 要 努 力 去 做 好 的 功 课 。 本 期 杂 志 , 我 们 接 受 了 用 户 的 反 馈 和 建 议 , 加 强 了 评 论 文 章 的 深 度<br />

和 技 术 文 章 的 实 用 性 , 改 进 了 内 容 的 排 版 和 篇 幅 安 排 , 并 尽 量 做 到 资 讯 的 及 时 性 。 希 望 大 家 能 够 喜<br />

欢 本 期 内 容 , 并 给 我 们 反 馈 更 多 的 意 见 和 批 评 。<br />

尽 管 京 城 的 深 秋 已 至 , 初 冬 的 寒 气 开 始 逼 人 , 但 是 想 到 有 这 么 多 的 朋 友 一 直 在 支 持 着 我 们 , 心<br />

里 便 有 了 一 股 暖 流 。 相 信 只 要 大 家 一 同 努 力 ,《 开 源 时 代 》 一 定 会 做 得 更 好 !<br />

开 源 时 代 2008 年 10 月 刊 - 4 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

开 源 业 界<br />

*******************************************************************************************************<br />

Linux 基 金 会 最 终 用 户 合 作 峰 会 闭 幕 成 果 喜 人<br />

上 周 在 美 国 纽 约 举 行 的 Linux 基 金 会 最 终 用<br />

户 峰 会 , 因 为 不 能 有 媒 体 方 面 的 人 员 参 加 , 因<br />

而 消 息 特 别 闭 塞 。 直 到 今 天 , 大 会 相 关 的 信 息<br />

才 被 大 家 所 了 解 。 参 会 用 户 就 不 用 介 绍 了 , 都<br />

是 来 自 各 行 各 业 的 Linux 大 客 户 , 其 中 不 乏 众<br />

多 金 融 和 银 行 业 企 业 , 比 如 瑞 士 信 贷 、AIG、<br />

美 林 、 瑞 银 、 三 菱 UFJ 金 融 集 团 。 其 他 还 包 括<br />

有 美 国 海 军 、 芝 加 哥 商 品 交 易 所 和 纽 约 证 交 所<br />

等 等 。 其 中 还 有 很 多 家 陷 于 金 融 危 机 中 的 金 融<br />

和 投 资 公 司 这 次 并 没 有 能 够 出 席 , 但 这 并 不 妨<br />

碍 他 们 成 为 Linux 的 企 业 用 户 。<br />

这 次 大 会 有 很 多 亮 点 , 比 如 发 布 了 新 一 代<br />

的 Linux 文 件 系 统 --BtrFS。 来 自 Oracle 的<br />

Chris Mason 为 大 家 描 述 了 这 个 文 件 系 统 将 会<br />

带 来 的 前 景 , 许 多 数 据 增 长 中 带 来 的 问 题 将 得<br />

到 有 效 的 解 决 。 目 前 BtrFS 由 一 个 工 作 小 组 在 协<br />

作 完 成 , 工 作 小 组 由 来 自 Oracle 的 人 员 领 导 ,<br />

开 源 时 代 2008 年 10 月 刊 - 5 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

成 员 包 括 IBM、Intel、Novell 等 等 。 工 作 小 组<br />

希 望 年 底 前 能 够 在 Linux 内 核 中 看 到 BtrFS 的 身<br />

影 。 来 自 最 终 用 户 的 代 表 表 示 了 对 这 种 新 文 件<br />

系 统 的 欢 迎 , 特 别 是 演 讲 中 所 提 到 的 易 用 性 。<br />

同 样 , 来 自 Linux 基 金 会 的 内 核 小 组 重 要 负 责<br />

人 Ted Ts'o 宣 布 了 新 一 代 的 ext4 文 件 系 统 的 相<br />

关 动 态 ,Linux 内 核 发 行 版 中 将 附 带 该 文 件 系 统 。<br />

来 自 社 区 的 代 表 往 往 不 会 放 过 这 个 机 会 来<br />

表 达 自 己 的 看 法 。 他 们 呼 吁 这 些 大 的 Linux 最<br />

终 用 户 要 不 断 地 向 硬 件 供 应 商 施 压 , 促 使 他 们<br />

尽 快 地 、 尽 可 能 多 地 开 发 出 开 源 的 驱 动 程 序 ,<br />

而 不 是 现 在 社 区 所 流 行 的 , 通 过 逆 向 工 程 来 获<br />

得 驱 动 。<br />

这 些 大 的 Linux 用 户 还 表 示 , 他 们 将 积 极<br />

参 加 Linux 公 版 内 核 的 测 试 和 回 馈 工 作 , 帮 助<br />

社 区 更 好 的 改 进 和 发 展 新 的 内 核 技 术 , 而 不 是<br />

仅 仅 和 Linux 商 业 版 本 发 行 商 合 作 。 其 中 就 有<br />

一 家 大 银 行 的 代 表 对 此 表 示 了 承 诺 , 他 们 将 积<br />

极 测 试 新 版 内 核 , 并 将 相 关 工 作 结 果 向 社 区 回<br />

馈 。 令 人 奇 怪 的 是 , 到 会 的 Linux 最 终 用 户 中 ,<br />

还 没 有 一 家 在 生 产 环 境 中 部 署 ZFS 文 件 系 统<br />

(Linux 平 台 下 ?)。<br />

本 次 最 终 用 户 大 会 的 Linux 系 统 管 理 议 题 ,<br />

可 以 算 是 本 次 大 会 的 的 最 佳 议 题 , 体 现 了 本 次<br />

大 会 的 意 义 所 在 , 在 这 个 长 达 数 小 时 的 集 体 讨<br />

论 中 , 来 自 最 终 用 户 、 开 发 者 和 产 品 供 应 商 的<br />

代 表 们 济 济 一 堂 , 共 同 探 讨 如 何 提 高 系 统 和 性<br />

能 管 理 效 率 , 以 及 必 需 的 相 关 管 理 措 施 。 这 些<br />

讨 论 的 结 果 将 会 被 Linux 基 金 会 最 终 用 户 委 员<br />

会 整 理 成 案 例 文 稿 , 放 在 Linux 基 金 会 网 站 上<br />

供 社 区 开 发 人 员 和 供 应 商 们 下 载 研 究 。 这 种 合<br />

作 方 式 将 会 在 提 高 Linux 平 台 的 管 理 水 平 中 起<br />

到 不 可 估 量 的 作 用 。 Linux 基 金 会 将 会 在 明 年<br />

的 最 终 用 户 峰 会 上 汇 报 合 作 结 果 。<br />

在 别 的 系 统 和 性 能 管 理 议 题 中 , 还 有 一 个<br />

特 别 的 发 现 。 与 会 的 最 终 用 户 虽 然 在 Linux 平<br />

台 上 经 验 丰 富 , 实 战 水 平 也 很 高 , 但 是 对 于 社<br />

区 中 存 在 的 其 他 解 决 方 案 和 技 术 不 是 特 别 关 注 。<br />

最 终 , 大 会 决 定 将 在 这 次 会 议 后 , 在 Linux 基<br />

金 会 的 网 站 上 建 立 一 个 知 识 库 。 知 识 库 将 由 产<br />

品 供 应 商 和 用 户 共 同 维 护 , 并 且 推 广 到 更 大 的<br />

层 面 , 鼓 励 更 多 的 用 户 参 与 和 阅 读 , 促 进 大 家<br />

互 相 交 流 和 探 讨 。<br />

来 自 IBM 的 Gerrit Huizenga 还 阐 述 了 一<br />

下 IBM 的 云 计 算 思 想 , 以 及 Linux 作 为 操 作 系<br />

统 的 重 要 性 , 在 下 个 月 出 版 的 Linux 基 金 会 的<br />

文 档 合 集 中 将 会 有 更 多 详 细 的 解 释 。<br />

疑 点 解 析 :Linux 系 统 下 的 病 毒 少 是 为 何 ?<br />

可 能 不 少 人 持 这 样 一 种 观 点 , 认 为 Linux<br />

有 力 的 论 据 是 : 如 果 写 病 毒 的 人 写 Windows<br />

病 毒 是 因 为 Windows 用 户 多 而 因 此 破 坏 性 大 ,<br />

那 么 Inter<strong>net</strong> 上 服 务 器 大 多 是 基 于 <strong>Unix</strong>/Linux<br />

的 , 攻 击 这 些 服 务 器 , 破 坏 性 岂 不 是 更 大 么 ?<br />

病 毒 少 是 因 为 Linux 不 像 Windows 那 么 普 及 ,<br />

其 实 这 种 观 点 很 早 已 经 被 人 批 驳 过 了 , 一 个 最<br />

对 一 个 二 进 制 的 Linux 病 毒 , 要 感 染 可 执<br />

行 文 件 , 这 些 可 执 行 文 件 对 启 动 这 个 病 毒 的 用<br />

户 一 定 要 是 可 写 的 。 而 实 际 情 况 通 常 并 不 是 这<br />

样 的 。 实 际 情 况 通 常 是 , 程 序 被 root 拥 有 , 用<br />

户 通 过 无 特 权 的 帐 号 运 行 。 而 且 , 越 是 没 有 经<br />

验 的 用 户 , 他 拥 有 可 执 行 文 件 的 可 能 性 就 越 小 。<br />

因 此 , 越 是 不 了 解 这 种 危 险 的 用 户 的 主 目 录 越<br />

不 适 合 病 毒 繁 殖 。 即 使 这 个 病 毒 成 功 地 感 染 了<br />

这 个 用 户 拥 有 的 一 个 程 序 , 由 于 这 个 用 户 权 限<br />

开 源 时 代 2008 年 10 月 刊 - 6 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

受 限 , 它 进 一 步 传 播 的 任 务 也 会 非 常 困 难 ( 当 然 ,<br />

对 于 运 行 单 用 户 系 统 的 Linux 新 手 , 这 个 论 证<br />

可 能 不 适 用 。 这 样 的 用 户 可 能 会 对 root 帐 户 比<br />

较 粗 心 )。<br />

Linux 网 络 程 序 构 建 地 很 保 守 , 没 有 使 现 在<br />

Windows 病 毒 如 此 快 速 传 播 变 的 可 能 的 高 级 宏<br />

工 具 。 这 并 不 是 Linux 的 固 有 特 征 ; 它 仅 仅 是<br />

两 种 用 户 基 础 的 不 同 和 这 种 不 同 导 致 的 在 这 两<br />

种 市 场 中 的 成 功 产 品 的 不 同 的 反 映 。 通 过 观 察<br />

这 些 问 题 学 到 的 经 验 也 会 被 用 到 将 来 的 Linux<br />

产 品 中 。Linux 的 应 用 软 件 和 系 统 软 件 几 乎 都 是<br />

开 源 的 。 这 对 病 毒 有 两 方 面 的 影 响 。 首 先 , 病<br />

毒 很 难 藏 身 于 开 源 的 代 码 中 间 。 其 次 , 对 仅 有<br />

二 进 制 的 病 毒 , 一 次 新 的 编 译 安 装 就 截 断 了 病<br />

毒 一 个 主 要 的 传 播 途 径 。 虽 然 Linux 发 行 商 也<br />

提 供 大 量 的 二 进 制 软 件 包 , 但 是 用 户 大 都 是 从<br />

发 行 商 提 供 的 可 靠 的 软 件 仓 库 中 下 载 这 些 软 件<br />

包 , 大 都 具 有 md5 验 证 机 制 , 安 全 性 极 高 。<br />

这 些 障 碍 每 一 个 都 是 病 毒 成 功 传 播 的 一 个 重 要<br />

阻 碍 。 然 而 当 把 他 们 放 在 一 起 考 虑 的 时 候 , 基<br />

本 的 问 题 才 浮 现 出 来 。 一 个 计 算 机 病 毒 , 像 生<br />

物 病 毒 一 样 , 要 想 传 播 开 来 , 其 繁 殖 速 度 必 须<br />

超 过 其 死 亡 ( 被 消 灭 ) 的 速 度 。 上 面 提 到 的 障 碍<br />

有 效 地 降 低 了 Linux 病 毒 的 繁 殖 速 度 。 如 果 它<br />

的 繁 殖 速 度 降 到 取 代 原 来 种 群 所 需 要 的 阈 值 之<br />

下 , 那 么 这 个 病 毒 的 厄 运 从 一 开 始 就 注 定 了 —<br />

— 甚 至 在 潜 在 受 害 人 意 识 到 它 们 之 前 。<br />

我 们 没 有 看 到 一 个 真 正 的 Linux 病 毒 疯 狂<br />

传 播 , 原 因 就 在 于 存 在 的 Linux 病 毒 中 没 有 一<br />

个 能 够 在 Linux 提 供 的 敌 对 的 环 境 中 茁 壮 成 长 。<br />

现 在 存 在 的 Linux 病 毒 仅 仅 是 技 术 上 的 好 奇 ;<br />

现 实 是 没 有 能 养 得 活 的 Linux 病 毒 。 当 然 , 这<br />

并 不 意 味 着 永 远 没 有 Linux 病 毒 能 够 流 行 。 然<br />

而 它 确 实 意 味 着 , 一 个 成 功 的 Linux 病 毒 要 在<br />

不 适 合 生 存 的 Linux 生 态 系 统 中 存 活 下 来 , 那<br />

么 它 就 必 须 是 精 心 制 作 并 具 有 创 新 性 的 。<br />

Linux 厂 商 正 加 大 力 度 提 高 发 行 版 安 全 性<br />

有 分 析 指 出 , 日 前 , 各 大 Linux 发 行 版 厂 商<br />

正 在 不 断 努 力 , 加 大 对 Linux 发 行 版 安 全 性 研<br />

发 的 投 入 。 在 即 将 到 来 的 年 末 , 三 大 Linux 厂<br />

商 将 发 布 最 新 的 Linux 发 行 版 ,Ubuntu<br />

8.11、OpenSUSE 11.11 和 红 帽 赞 助 的 Fedora<br />

10, 各 个 版 本 在 安 全 方 面 都 得 到 了 显 著 提 升 。<br />

和 开 源 软 件 已 经 逐 渐 渗 透 到 企 业 架 构 中 去 。 这<br />

些 安 全 性 功 能 在 Linux 发 行 版 中 得 到 加 强 不 是<br />

个 别 和 片 面 的 , 不 仅 仅 因 为 社 区 快 速 变 化 , 以<br />

社 区 为 基 础 的 Linux 发 行 版 的 为 了 安 全 性 而 凑<br />

合 了 事 。 这 一 切 都 是 市 场 的 需 求 所 决 定 的 , 因<br />

为 企 业 级 的 Linux 市 场 需 要 这 些 安 全 性 功 能 。<br />

在 我 试 用 的 三 个 Linux 试 用 版 中 , 安 全 性<br />

功 能 的 增 加 , 各 有 特 别 之 处 。<br />

比 如 在 最 新 版 本 的 ubuntu 8.10 中 就 推 出<br />

了 加 密 私 有 目 录 功 能 , 无 论 从 功 能 和 速 度 方 面<br />

都 较 以 前 版 本 有 了 很 大 的 改 进 , 对 于 桌 面 Linux<br />

用 户 的 私 密 性 来 说 , 有 了 进 一 步 的 提 高 , 相 关<br />

工 具 使 用 起 来 更 加 方 便 。<br />

Linux 和 开 源 软 件 以 其 独 特 的 开 发 模 式 生 存<br />

和 发 展 , 既 有 利 又 有 弊 。 好 处 是 系 统 管 理 员 能<br />

够 更 早 的 发 现 系 统 的 问 题 所 在 , 害 处 是 先 发 现<br />

系 统 安 全 隐 患 的 可 能 是 那 些 不 怀 好 意 的 骇 客 。<br />

但 是 不 得 不 说 的 趋 势 是 , 有 越 来 越 多 的 Linux<br />

新 版 本 的 OpenSUSE 11.1 将 在 12 月 初 发<br />

布 。 最 新 版 本 的 OpenSUSE 11.1 同 样 在 安 全 性<br />

方 面 得 到 了 全 面 改 进 , 比 如 完 全 支 持 SELinux<br />

的 强 制 处 理 控 制 系 统 (mandatory access<br />

control system)。 Novell 这 次 全 面 拥 抱<br />

开 源 时 代 2008 年 10 月 刊 - 7 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

SELinux 不 得 不 说 是 一 次 进 步 , 吸 引 了 不 少<br />

Linux 社 区 安 全 技 术 人 员 的 眼 球 。 因 为 在 过 去 的<br />

几 年 中 ,Linux 安 全 中 的 SELinux 技 术 一 直 都 是<br />

Red Hat 在 领 导 和 推 广 ,Novell 坚 持 他 自 有 的<br />

Linux 安 全 控 制 系 统 --AppArmor, 而 这 一 安 全<br />

功 能 要 归 功 于 2005 年 Novell 对 Immuix 的 收<br />

购 。Novell 一 直 诟 病 SELinux 的 复 杂 性 问 题 ,<br />

因 为 要 实 现 SELinux 的 安 全 功 能 , 就 要 构 建 一<br />

组 复 杂 的 安 全 策 略 , 这 些 策 略 落 实 到 各 个 用 户 、<br />

各 个 应 用 程 序 。 正 因 为 如 此 复 杂 , 非 常 不 利 于<br />

安 全 策 略 的 构 建 、 审 查 和 问 题 解 决 。 这 次<br />

OpenSUSE 也 仅 仅 是 提 供 最 简 单 的 SELinux 功<br />

能 , 它 们 的 推 荐 还 是 AppArmor。 但 是 根 据<br />

Novell 的 说 法 , 他 们 还 提 供 SELinux 的 迁 移 服<br />

务 , 能 够 将 已 经 部 署 好 的 SELinux 安 全 策 略 迁<br />

移 到 Novell 的 SUSE Linux 操 作 系 统 上 来 。<br />

最 新 版 本 的 Fedora Linux 10 将 于 11 月 末<br />

推 出 。 新 版 本 安 全 功 能 亮 点 是 , 附 带 全 新 的 安<br />

全 审 计 和 入 侵 检 测 工 具 。 这 个 被 Red Hat 称 为<br />

Sectool 的 安 全 审 计 工 具 , 提 供 了 一 组 用 于 系<br />

统 配 置 测 试 的 工 具 , 包 括 用 户 权 限 、 防 火 墙 规<br />

则 和 其 他 系 统 安 全 的 配 置 选 项 。 另 外 ,<br />

Sectool 还 为 管 理 员 提 供 了 一 个 额 外 的 模 块 ,<br />

让 管 理 员 输 入 自 有 的 测 试 内 容 , 这 些 内 容 可 以<br />

是 bash、python, 或 者 是 其 他 的 脚 本 语 言 写<br />

的 代 码 。 在 Fedora 10 中 , 安 全 测 试 等 级 将 被<br />

分 为 5 类 , 分 别 是 傻 瓜 级 、 桌 面 用 户 、 网 络 电<br />

脑 、 服 务 器 和 安 全 偏 执 狂 。<br />

据 国 外 媒 体 报 道 ,MySQL 社 区 关 系 主 管 卡<br />

伊 · 阿 莫 周 二 宣 布 ,MySQL 联 合 创 始 人 大 卫 ·<br />

艾 克 马 克 (David Axmark) 已 经 向 Sun 递 交 了<br />

辞 呈 。<br />

艾 克 马 克 在 辞 职 信 中 称 :“ 我 对 自 己 在<br />

Sun 公 司 的 角 色 进 行 了 评 估 , 认 为 自 己 更 适 合<br />

于 小 公 司 。 我 痛 恨 每 天 都 要 遵 守 的 各 种 规 章 制<br />

度 , 我 也 不 愿 打 破 它 们 。 对 于 我 而 言 , 退 休 比<br />

较 合 适 , 然 后 再 以 一 种 非 正 式 的 关 系 与 MySQL<br />

和 Sun 合 作 。” 在 过 去 的 几 年 中 , 艾 克 马 克 在<br />

MySQL 公 司 扮 演 着 重 要 角 色 , 其 中 包 括 工 程 主<br />

MySQL 联 合 创 始 人 向 Sun 递 交 辞 呈<br />

管 、 内 部 IT 主 管 和 社 区 关 系 主 管 等 。 也 正 是 在<br />

艾 克 马 克 的 主 张 下 , 才 使 得 MySQL 成 为 一 款<br />

开 源 软 件 。<br />

对 于 Sun 而 言 , 艾 克 马 克 的 离 职 无 疑 是 个<br />

不 小 的 打 击 。 今 年 1 月 ,Sun 以 10 亿 美 元 收 购<br />

了 MySQL。 阿 莫 称 :“ 艾 克 马 克 是 一 名 重 量 级<br />

人 物 ,MySQL 很 多 高 级 工 程 师 都 是 由 艾 克 马 克<br />

招 募 的 。” 只 是 在 近 期 , 艾 克 马 克 的 职 责 才 逐<br />

渐 转 向 与 媒 体 和 社 区 打 交 道 。 但 艾 克 马 克 同 时<br />

指 出 :“ 从 感 情 上 讲 , 一 名 创 始 人 的 离 职 是 比<br />

较 伤 感 的 。 但 对 于 公 司 的 日 常 业 务 不 会 造 成 太<br />

大 影 响 。” 据 悉 , 艾 克 马 克 将 于 11 月 10 日 正<br />

式 离 职 。 离 职 后 , 艾 克 马 克 将 继 续 为 Sun 提 供<br />

咨 询 服 务 。<br />

阿 莫 上 个 月 还 曾 透 露 ,MySQL 另 一 名 创 始<br />

人 迈 克 尔 · 维 德 纽 斯 (Michael Widenius) 也 计<br />

划 辞 职 。 阿 莫 周 二 称 :“ 维 德 纽 斯 目 前 仍 在 公<br />

司 , 但 他 的 将 来 很 难 预 测 。” 当 前 ,Sun 数 据<br />

库 部 门 仍 由 MySQL 前 CEO 马 顿 · 米 科 斯<br />

(Marten Mickos) 负 责 。<br />

开 源 时 代 2008 年 10 月 刊 - 8 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

经 济 动 荡 下 开 源 软 件 的 新 机 遇<br />

的 软 件 厂 商 希 望 进 入 SaaS 领 域 , 很 多 已 经 推<br />

出 了 基 于 SaaS 的 应 用 。SaaS 厂 商 要 保 持 继 续<br />

以 服 务 费 用 低 的 优 势 来 吸 引 用 户 , 必 将 采 取 更<br />

多 措 施 来 削 减 成 本 , 而 采 用 开 源 软 件 也 将 成 为<br />

趋 势 之 一 。<br />

当 前 的 经 济 环 境 虽 然 不 理 想 , 但 对 开 源 社<br />

区 和 开 源 爱 好 者 们 来 说 , 却 是 推 广 开 源 技 术 的<br />

一 个 绝 好 时 机 。 经 过 金 融 危 机 的 洗 礼 后 , 使 用<br />

物 美 价 廉 的 开 源 软 件 的 企 业 用 户 无 疑 会 增 多 ,<br />

因 为 这 意 味 着 节 省 一 大 笔 开 支 。 全 球 最 大 的 开<br />

源 组 织 Linux 基 金 会 主 席 Jim Zemlin 就 对 开 源<br />

产 品 的 前 景 非 常 乐 观 , 并 称 将 把 握 住 金 融 危 机<br />

所 带 来 的 机 遇 开 拓 市 场 , 他 声 称 :"Linux 基 金<br />

会 将 在 华 尔 街 召 开 一 个 会 议 , 相 信 会 非 常 成 功 。<br />

那 些 金 融 公 司 的 老 板 会 意 识 到 , 通 过 使 用 免 费<br />

或 低 价 的 开 源 产 品 , 他 们 能 把 节 省 下 来 的 钱 用<br />

到 刀 刃 上 。"<br />

当 然 , 经 济 形 势 并 非 刺 激 开 源 技 术 发 展 的<br />

唯 一 原 因 ,SaaS、SOA、 云 计 算 等 软 件 领 域 的<br />

新 技 术 的 发 展 , 也 将 带 动 开 源 技 术 在 企 业 中 的<br />

应 用 。SaaS 在 国 内 正 日 益 受 到 追 捧 , 越 来 越 多<br />

开 源 也 开 始 频 频 受 到 SOA 厂 商 的 青 睐 , 由<br />

开 源 社 区 主 导 的 一 些 SOA 项 目 正 在 受 到 人 们 的<br />

关 注 , 比 如 由 Apache 软 件 基 金 会 发 起 的<br />

Tuscany 项 目 , 主 要 目 标 是 为 用 户 提 供 一 组<br />

SOA 基 础 设 施 , 其 中 包 括 Java 和 C++ 实 现 的<br />

SCA/SDO/DAS 标 准 ; 由 Eclipse 基 金 会 主 导<br />

的 开 源 项 目 STP(SOA Tools Platform), 目<br />

的 在 于 为 技 术 人 员 提 供 一 个 灵 活 可 扩 展 的 框 架 ,<br />

技 术 人 员 能 够 在 这 个 框 架 的 基 础 之 上 围 绕 SOA<br />

方 便 地 进 行 设 计 、 配 置 、 组 装 、 布 署 、 监 控 和<br />

管 理 等 工 作 。<br />

云 计 算 对 于 开 源 技 术 来 说 , 也 将 是 一 个 非<br />

常 积 极 的 趋 势 。 如 果 你 喜 欢 微 软 的 开 发 工 具 ,<br />

你 可 以 使 用 .<strong>net</strong>, 如 果 你 喜 欢 开 源 开 发 工 具 ,<br />

你 可 以 使 用 Eclipse 和 NetBeans, 云 计 算 使 所<br />

有 的 开 发 人 员 和 开 发 工 具 处 于 相 同 的 起 跑 线 上 ,<br />

开 源 社 区 也 有 机 会 与 其 他 厂 商 一 起 在 " 云 " 里 竞<br />

争 。 有 了 SaaS、SOA、 云 计 算 这 些 因 素 的 带<br />

动 , 开 源 不 愁 没 有 用 武 之 地 。<br />

Sun Solaris 已 是 穷 途 末 路 Linux 将 取 而 代 之<br />

用 于 企 业 级 <strong>Unix</strong> 平 台 。 随 着 Linux 逐 渐 成 为 业<br />

内 讨 论 的 焦 点 ,Sun 公 司 的 Solaris <strong>Unix</strong> 能 继 续<br />

保 持 其 市 场 竞 争 力 吗 ? 或 者 , 其 将 被 Linux 彻<br />

底 取 代 ?<br />

Linux 正 处 于 增 长 态 势 , 其 追 捧 者 数 目 越 来<br />

越 多 。 而 Solaris 系 统 已 有 长 足 发 展 , 其 主 要 是<br />

Solaris 的 劣 势<br />

Sun 公 司 官 方 认 为 已 有 16 年 历 史 的 Solaris<br />

平 台 仍 是 一 款 具 市 场 竞 争 力 和 创 新 性 的 平 台 。<br />

但 是 Linux 基 金 会 的 态 度 则 完 全 不 同 , 其 认 为<br />

Solaris 和 Sun 应 该 退 出 市 场 。 执 行 主 管 Jim<br />

Zemlin 说 ,“ 未 来 的 市 场 是 属 于 Linux 和<br />

开 源 时 代 2008 年 10 月 刊 - 9 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Microsoft Windows 的 , 而 不 是 <strong>Unix</strong> 或<br />

Solaris。 他 说 ,Solaris 几 乎 没 有 新 发 展 , 这 是<br />

一 款 由 存 在 资 金 危 机 的 公 司 所 提 供 的 过 时 操 作<br />

系 统 。 原 始 设 备 供 应 商 也 认 为 Solaris 前 景 堪 忧 。<br />

Zemlin 说 ,Linux 则 是 新 型 x86 系 统 的 最 佳 选<br />

择 。Sun 公 司 的 实 力 体 现 在 应 用 软 件 上 , 如<br />

ERP 系 统 ( 拥 有 7—20 年 的 生 命 周 期 )。 而 现 在<br />

的 情 况 是 这 些 产 品 的 生 命 周 期 即 将 完 结 。 而 这<br />

些 用 户 则 转 而 采 用 Linux 系 统 。<br />

随 着 Linux 在 网 络 软 件 ( 当 前 用 户 关 注 的 主<br />

要 方 面 ) 上 实 力 的 加 强 , 越 来 越 多 的 用 户 转 而 采<br />

用 Linux 系 统 。Zemlin 说 ,Linux 的 价 格 也 更 低 。<br />

Sun 公 司 也 应 该 转 向 Linux 系 统 。 同 时 ,<br />

Zemlin 认 为 IBM 的 AIX 和 惠 普 公 司 的 HP-UX<br />

<strong>Unix</strong> 平 台 也 在 丧 失 竞 争 力 。 他 说 ,“ 很 明 显 ,<br />

<strong>Unix</strong> 系 统 整 体 处 于 下 降 态 势 。”Zemlin 说 ,“<br />

用 户 很 清 楚 <strong>Unix</strong> 是 一 款 陈 旧 的 、 昂 贵 的 系 统 。<br />

出 于 成 本 的 考 虑 , 用 户 仍 在 支 持 这 一 系 统 , 因<br />

为 他 们 不 想 将 其 现 有 的 应 用 软 件 转 到 一 个 新 平<br />

台 上 。 但 是 现 在 他 们 发 现 最 终 还 是 要 转 向 新 系<br />

统 , 因 为 <strong>Unix</strong> 无 法 整 合 针 对 Linux 系 统 开 发 的<br />

众 多 组 件 。”IDC 公 司 的 分 析 师 Al Gillen 说 ,<br />

“Linux 产 品 购 买 量 之 大 是 Solaris 从 未 达 到 过<br />

的 。”IDC 数 据 显 示 Linux 的 购 买 量 在 2006 年<br />

为 240 万 , 在 2007 年 为 270 万 。 而 Solaris 的<br />

购 买 量 在 2006 年 为 376,000,2007 年 的 购 买<br />

量 则 继 续 下 降 。<br />

Distribution License(CDDL)—— 与 Linux<br />

GNU General Public License 不 兼 容 。Sun<br />

公 司 称 CDDL 给 系 统 所 提 供 的 许 可 证 支 持 比<br />

GPL 范 围 广 。 一 个 将 系 统 从 Solaris 转 为 Linux<br />

的 公 司 是 Sesame Workshop。Sesame<br />

Workshop 信 息 服 务 副 总 Noah Broadwater<br />

说 , 公 司 转 而 采 用 Linux 的 原 因 是 , 其 采 用 率<br />

比 Solaris 高 。Solaris 系 统 的 另 一 劣 势 是 价 格 高 。<br />

Broadwater 说 ,Sesame 在 转 而 采 用 Linux<br />

后 , 一 年 成 本 节 约 了 约 20,000 美 元 。<br />

Broadwater 唯 一 担 心 的 是 在 转 而 采 用 Linux<br />

后 系 统 性 能 降 低 , 但 是 他 惊 喜 地 发 现 担 忧 是 完<br />

全 多 余 的 。 他 说 , 比 如 , 公 司 的 IBM Cognos<br />

BI 应 用 软 件 在 x86 Linux 服 务 器 上 的 运 行 速 度 比<br />

在 Sparc Solaris 上 还 要 快 。<br />

Solaris 的 优 势<br />

Sun 公 司 Solaris 产 品 主 管 Charlie Boyle<br />

说 ,“ 之 前 选 择 Linux 系 统 的 用 户 , 现 在 有 些<br />

已 经 转 而 采 用 Solaris。”Boyle Solaris 称 其<br />

ZFS 功 能 可 简 化 存 储 器 和 Solaris 虚 拟 化 容 器 的<br />

管 理 。 他 提 到 近 期 与 戴 尔 公 司 的 合 作 , 戴 尔 公<br />

司 将 Solaris 系 统 用 于 其 计 算 机 。 而 这 是 出 于 用<br />

户 的 定 制 需 求 。 越 来 越 多 的 新 用 户 开 始 采 用<br />

Solaris 系 统 ,Boyle 说 ,“ 我 认 为 Solaris 前 景<br />

广 阔 。”<br />

Zemlin 说 , 由 于 性 价 比 不 高 ,Solaris 正 在<br />

失 去 其 市 场 份 额 。Zemlin 也 对 Sun 所 称<br />

“Solaris 技 术 比 Linux 更 具 优 势 ” 提 出 异 议 。<br />

他 说 ,“ 唯 一 说 Dtrace(Solaris 访 问 程 序 和 操<br />

作 系 统 运 行 技 术 ) 和 ZFS (Zettabyte File<br />

System) 具 市 场 竞 争 力 的 是 Sun Microsystems<br />

的 销 售 代 表 。 而 这 根 本 不 能 作 为 其 具 市 场 竞 争<br />

力 的 说 明 。” 凭 借 ZFS 和 Dtrace 两 种 技 术 ,<br />

SunSolaris 正 继 续 其 市 场 竞 争 。<br />

Sun 在 其 Sparc 和 x86 服 务 器 上 采 用 了<br />

Linux 系 统 ,Zemlin 建 议 其 实 现 ZFS 和 Dtrace<br />

技 术 在 Linux 兼 容 许 可 证 下 的 可 用 性 。 而 Sun<br />

则 采 用 了 Common Development 和<br />

Sun 公 司 之 前 的 员 工 Neil Wilson 说 ,“ 我<br />

认 为 Solaris 是 一 款 非 常 棒 的 操 作 系 统 。 从 硬 件<br />

支 持 角 度 看 ,Solaris 系 统 比 Linux 强 得 多 。<br />

”Gracenote( 一 家 给 MP3 用 户 提 供 媒 体 识 别<br />

和 元 数 据 服 务 ) 公 司 同 意 这 一 说 法 。<br />

开 源 时 代 2008 年 10 月 刊 - 10 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Gracenote 公 司 的 运 营 副 总 Matthew Leeds<br />

说 ,“ 我 们 发 现 Linux 的 线 程 模 式 存 在 问 题 。<br />

同 时 进 行 多 线 程 运 行 时 , 操 作 系 统 速 度 就 会 变<br />

慢 。” 他 认 为 Solaris 系 统 很 适 合 其 公 司 。<br />

关 于 Solaris 开 放 源 码 未 来 的 讨 论<br />

为 了 延 长 Solaris 的 生 命 周 期 ,Sun 开 发 了<br />

基 于 Solaris 的 开 放 源 码 服 务 —— 被 称 作<br />

OpenSolaris, 这 是 Solaris 二 进 制 版 本 。 尽 管<br />

Linux 基 金 会 的 Zemlin 认 为 Sun 公 司 的 开 放 源<br />

码 Solaris 系 统 “ 开 放 的 太 少 , 来 的 太 晚 ”。 其<br />

基 金 会 也 显 示 出 Sun 公 司 实 际 上 没 有 开 放<br />

OpenSolaris 系 统 ,Sun 公 司 仍 控 制 着 开 发 。<br />

为 了 支 持 这 一 观 点 , 基 金 会 指 出 博 客 中 针 对<br />

OpenSolaris 和 Sun-driven OpenDS 目 录 项<br />

目 控 制 的 辩 论 。Zemlin 称 Open Solaris 仅 仅<br />

是 为 了 扩 大 Solaris 用 户 群 而 进 行 的 一 个 尝 试 。<br />

Sun 公 司 的 Boyle 承 认 Sun 公 司 员 工 加 入<br />

了 OpenSolaris 研 发 项 目 , 但 是 他 说 这 些 员 工<br />

是 与 个 人 和 企 业 支 持 者 ( 如 英 特 尔 ) 共 同 进 行 这<br />

一 项 目 的 。OpenSolaris 的 注 册 量 已 经 超 过<br />

160,000, 远 远 超 过 了 Sun 公 司 的 员 工 数 目 。<br />

“ 我 们 已 经 有 了 一 个 OpenSolaris 支 持 团 体 ,<br />

团 体 成 员 可 自 由 加 入 和 退 出 , 但 团 体 人 数 每 个<br />

月 都 在 增 加 。 如 果 说 Sun 公 司 在 控 制 着 一 切 ,<br />

我 认 为 这 一 说 法 是 不 公 平 也 不 准 确 的 。”<br />

OpenOffice 3.0 威 胁 微 软 Office 地 位 ?<br />

很 长 时 间 以 来 , 能 够 提 供 文 字 处 理 、 电 子<br />

表 格 和 演 示 应 用 功 能 的 办 公 套 件 一 直 是 用 户 在<br />

电 脑 上 使 用 最 多 的 应 用 程 序 。 对 于 Windows<br />

用 户 来 说 , 他 们 主 要 使 用 微 软 的 Office 办 公 套<br />

件 , 而 对 于 开 源 用 户 来 说 , 他 们 往 往 选 择<br />

OpenOffice.org。 经 过 几 年 的 发 展 ,<br />

OpenOffice.org 已 经 发 展 到 了 3.0 版 本 。<br />

OpenOffice 3.0 能 够 提 供 与 微 软 Office 更 好<br />

的 互 操 作 性 , 并 且 还 具 备 一 个 新 的 可 扩 展 框 架 ,<br />

用 来 向 开 源 办 公 套 件 增 加 新 功 能 。<br />

在 微 软 忙 于 处 理 Office Open XML<br />

(OOXML) 面 临 的 标 准 化 问 题 以 及 来 自 在 线 替<br />

代 品 比 如 谷 歌 的 竞 争 时 , OpenOffice 3.0 发<br />

布 了 。 不 过 ,OpenOffice 3.0 遇 到 的 最 大 问<br />

题 是 这 次 升 级 能 否 让 用 户 普 遍 将 它 视 作 微 软<br />

Office 软 件 的 一 个 有 效 的 替 代 品 。“ 百 分 之 九<br />

十 五 的 用 户 都 认 为 OpenOffice.org 可 以 完 全<br />

取 代 微 软 的 Office 套 件 ,” SUSE Linux<br />

Enterprise Desktop 高 级 产 品 营 销 经 理 Grant<br />

Ho 在 接 受 媒 体 采 访 时 说 。Novell 公 司 对 于<br />

OpenOffice 的 研 发 做 出 了 很 大 的 贡 献 , 并 且<br />

其 SUSE Linux 发 行 版 已 经 将 OpenOffice 作 为<br />

自 己 的 一 部 分 。<br />

“ 虽 然 目 前 的 OpenOffice.org 产 品 在 功<br />

能 上 可 能 不 会 与 微 软 的 Office 完 全 匹 配 , 不 过<br />

由 于 它 具 备 同 Office 文 件 格 式 强 大 的 互 操 作<br />

性 , 再 加 上 极 具 吸 引 力 的 价 格 、 较 低 的 维 护 和<br />

培 训 成 本 , 这 些 使 得 OpenOffice.org 成 为 一<br />

个 非 常 有 新 引 力 的 替 代 品 。” Grant Ho 说 。<br />

他 还 表 示 ,Novell 公 司 对 于 OpenOffice 3.0<br />

的 贡 献 包 括 改 善 它 与 微 软 Office 文 档 格 式 的 互<br />

操 作 性 、Calc 以 及 VBA 宏 支 持 。<br />

就 其 本 身 而 言 , 微 软 并 不 担 心<br />

OpenOffice 3.0 的 冲 击 。“ 我 们 努 力 在<br />

Microsoft Office 套 件 中 增 加 新 功 能 , 比 如 深<br />

度 集 成 、Web 功 能 、 移 动 性 、 技 术 支 持 、 协 作<br />

和 统 一 通 信 , 因 为 这 是 我 们 的 客 户 所 期 望 的 。<br />

” 微 软 高 级 营 销 经 理 Michael Croan 在 接 受<br />

媒 体 采 访 时 表 示 。“ 而 开 源 办 公 套 件 并 非 都 具<br />

开 源 时 代 2008 年 10 月 刊 - 11 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

备 这 些 功 能 。” 并 非 所 有 的 OpenOffice 用 户<br />

者 都 将 替 代 微 软 Office 作 为 终 极 目 标 。Sun<br />

Microsystems 公 司 OpenOffice.org 社 区 经<br />

理 Louis Suarez-Potts 认 为 OpenOffice 的 功<br />

能 要 比 微 软 的 Office 办 公 套 件 功 能 更 强 大 , 并<br />

且 能 满 足 不 同 类 型 的 用 户 。“ 我 们 不 会 按 照 一<br />

刀 切 的 模 式 来 研 发 OpenOffice, 因 为 那 是 极<br />

端 错 误 的 。”Suarez-Potts 解 释 说 。 在 他 看 来 ,<br />

OpenOffice 3.0 最 重 要 的 一 个 新 特 性 是 能 够<br />

通 过 扩 展 框 架 添 加 新 功 能 , 就 像 目 前 的 Firefox<br />

浏 览 器 那 样 。 比 如 , 你 可 以 从<br />

xtensions.services.openoffice.org 上 寻 找 和<br />

下 载 自 己 喜 欢 的 OpenOffice 插 件 。<br />

这 么 做 的 意 义 在 于 使 用 户 不 仅 能 够 免 受 某 个 供<br />

应 商 的 限 制 , 而 且 还 能 让 用 户 具 备 一 系 列 专 有<br />

应 用 和 准 时 制 (JIT) 应 用 来 处 理 各 种 任 务 。”<br />

Suarez-Potts 说 。“ 没 有 必 要 依 靠 或 指 望 任 何<br />

一 个 单 一 的 应 用 就 能 完 成 所 有 工 作 , 否 则 就 是<br />

曲 解 了 现 代 软 件 学 的 宗 旨 。 现 代 软 件 学 提 倡 灵<br />

活 性 和 速 度 , 提 供 在 网 上 将 多 个 应 用 无 缝 集 成 ,<br />

高 效 地 完 成 某 个 任 务 。 而 传 统 的 设 计 思 想 是 利<br />

用 一 个 单 一 庞 大 的 软 件 完 成 任 务 , 没 有 户 操 作<br />

性 、 协 作 性 。”Suarez-Potts 补 充 说 。<br />

“ 这 个 功 能 是 非 常 重 要 的 , 因 为 这 意 味 着<br />

任 何 用 户 都 可 以 通 过 访 问 我 们 提 供 的 插 件 库 并<br />

下 载 喜 欢 的 插 件 , 从 而 对 OpenOffice.org 或<br />

StarOffice( 与 OpenOffice.org 拥 有 相 同 的<br />

代 码 库 ) 进 行 非 常 显 著 的 修 改 , 而 不 是 细 微 的<br />

改 动 。” Suarez-Potts 说 。“ 这 样 , 用 户 就 能<br />

根 据 自 己 的 需 要 搭 建 属 于 自 己 的<br />

OpenOffice, 省 去 了 所 有 不 必 要 的 插 件 。 用<br />

户 可 以 添 加 免 费 的 扩 展 软 件 , 甚 至 还 能 将<br />

OpenOffice 与 另 外 一 个 应 用 程 序 连 接 在 一 起 。<br />

”“ 这 种 设 计 思 想 是 非 常 灵 活 的 并 且 功 能 强 大 ,<br />

甚 至 任 何 受 过 最 简 单 培 训 的 人 都 能 很 容 易 地 对<br />

代 码 进 行 修 改 ,” Suarez-Potts 补 充 说 。<br />

Suarez-Potts 还 指 出 ,OpenOffice 有 一<br />

个 PDF 导 入 插 件 程 序 , 这 意 味 着 你 可 以 从 外 部<br />

导 入 PDF 文 件 , 然 后 对 它 们 进 行 编 辑 。 处 理 文<br />

档 格 式 尤 其 是 开 放 的 文 档 格 式 是 Suarez-Potts<br />

的 团 队 的 主 要 任 务 。“ 我 们 使 用<br />

OpenDocument Format(ODF) 文 档 格 式 ,<br />

Sun 对 于 OpenOffice 并 不 陌 生 。<br />

Suarez-Potts 说 ,Sun 公 司 的 许 多 工 程 师 20 多<br />

年 以 来 一 直 致 力 于 编 写 OpenOffice 的 底 层 代<br />

码 。1999 年 ,Sun 收 购 了<br />

StarOffice(OpenOffice 的 前 身 和 基 础 )。<br />

迄 今 为 止 ,OpenOffice 的 用 户 已 经 超 过 了 50<br />

万 ,uarez-Potts 说 。“ 在 过 去 , 大 型 应 用 软 件<br />

进 行 比 较 的 时 候 , 谁 具 备 的 功 能 越 多 谁 的 优 势<br />

就 越 大 ,” Suarez-Potts 说 。“ 现 在 , 这 种 设<br />

计 思 想 已 经 过 时 了 。 未 来 是 小 型 、 便 携 式 应 用<br />

程 序 的 天 下 , 它 们 通 过 相 同 的 格 式 和 设 计 逻 辑<br />

无 缝 结 合 在 一 起 , 共 同 协 作 来 完 成 一 项 任 务 。<br />

开 放 的 还 是 专 有 的 --- 这 不 是 问 题 。<br />

红 帽 公 司 周 二 宣 布 , 他 们 将 推 出 最 新 的 超<br />

级 计 算 高 性 能 平 台 解 决 方 案 , 该 平 台 高 度 集 成<br />

化 、 基 于 Linux 平 台 。 目 标 直 指 近 日 微 软 刚 刚<br />

推 出 的 基 于 Windows 系 统 的 云 计 算 高 性 能 平<br />

台 。<br />

其 实 这 不 是 红 帽 公 司 第 一 次 推 出 这 样 的 解<br />

红 帽 简 化 超 级 计 算 平 台 对 抗 微 软 竞 争<br />

决 方 案 , 早 在 去 年 10 月 份 就 有 类 似 的 解 决 方 案<br />

推 出 , 这 不 过 是 一 个 升 级 版 本 。 去 年 的 那 个 版<br />

本 限 制 太 多 , 比 如 硬 件 支 持 方 面 , 还 有 就 是 ,<br />

当 时 由 于 信 息 安 全 原 因 , 解 决 方 案 不 能 出 口 到<br />

美 国 以 外 的 地 区 和 国 家 。 最 新 版 本 则 不 受 这 样<br />

的 限 制 , 用 户 可 以 直 接 通 过 Red Hat Network<br />

开 源 时 代 2008 年 10 月 刊 - 12 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

获 取 , 并 且 获 得 红 帽 全 球 分 公 司 的 本 地 化 支 持 。<br />

红 帽 的 解 决 方 案 每 个 节 点 收 费 为 249 美 金 ,<br />

比 微 软 那 套 方 案 每 节 点 价 格 便 宜 , 虽 然 价 格 便<br />

宜 , 但 是 附 带 的 集 群 组 件 和 管 理 工 具 一 样 丰 富 。<br />

微 软 HPC 高 性 能 解 决 方 案 每 节 点 起 价 475 美 金 ,<br />

而 且 要 附 带 一 个 三 年 的 企 业 级 支 持 服 务 , 目 前<br />

价 格 并 没 有 透 露 。 红 帽 最 近 推 出 改 进 版 本 高 性<br />

能 解 决 方 案 被 看 作 是 想 占 据 高 速 增 长 高 性 能 计<br />

算 市 场 领 先 地 位 的 信 号 。<br />

十 年 前 欧 洲 的 许 多 国 家 就 已 经 开 始 大 刀 阔<br />

斧 的 推 广 开 源 软 件 , 其 中 力 度 最 大 的 国 家 非 法<br />

国 莫 属 。 通 过 政 策 支 持 和 备 受 瞩 目 的 项 目 , 法<br />

兰 西 共 和 国 数 年 以 来 一 直 在 不 停 的 大 力 发 展 开<br />

源 软 件 , 尤 其 是 在 政 府 和 教 育 领 域 表 现 尤 为 突<br />

出 。<br />

即 使 到 了 今 天 , 法 国 依 然 在 不 断 让 开 源 软<br />

件 担 任 更 重 要 的 任 务 , 并 采 取 更 优 惠 的 措 施 扶<br />

持 开 源 软 件 厂 商 。 今 年 1 月 份 , 法 国 准 军 事 警<br />

察 部 队 表 示 , 将 逐 步 放 弃 使 用 微 软 Windows<br />

操 作 系 统 , 而 转 向 使 用 Linux 操 作 系 统 。 自<br />

2005 年 以 来 , 法 国 国 家 宪 兵 部 门 已 先 后 放 弃 使<br />

用 微 软 Office 办 公 套 件 和 IE 浏 览 器 , 转 而 使 用<br />

OpenOffice 和 Firefox( 火 狐 ) 浏 览 器 等 开 源 产<br />

品 。<br />

今 年 7 月 份 , 由 法 国 总 统 尼 古 拉 * 萨 科 齐 领<br />

导 的 一 个 经 济 委 员 会 提 议 , 通 过 免 税 的 方 式 来<br />

刺 激 更 广 范 围 内 开 源 应 用 的 普 及 。 今 天 的 法 国<br />

无 疑 是 全 球 最 肥 沃 的 开 源 生 长 土 壤 。 备 受 好 评<br />

的 全 球 最 大 的 开 源 中 间 件 组 织 OW2 联 盟 已 经<br />

在 法 国 扎 根 发 芽 , 一 些 大 型 企 业 , 诸 如 法 国 电<br />

信 , 已 经 开 始 全 面 部 署 开 源 软 件 。<br />

媒 体 观 察 : 法 国 收 获 开 源 带 来 的 启 示<br />

根 据 最 新 的 一 份 调 查 报 告 显 示 , 法 国 企 业<br />

使 用 开 源 软 件 的 比 例 达 24%, 高 居 各 国 之 首 ,<br />

德 国 排 名 第 二 , 比 例 为 21%, 美 国 和 加 拿 大 均<br />

为 17%, 英 国 仅 为 15%。 而 且 , 在 未 来 一 年 内 ,<br />

法 国 企 业 计 划 采 用 开 源 软 件 的 比 例 为 39%, 其<br />

次 是 德 国 (34%) 和 美 国 (28%)。 法 国 政 府 在 开 源<br />

推 广 中 的 所 做 的 各 种 努 力 现 在 已 经 到 了 收 获 的<br />

时 候 , 开 源 在 法 国 的 成 功 告 诉 世 人 一 个 需 要 谨<br />

记 在 心 的 道 理 : 在 一 个 单 一 、 共 享 的 技 术 环 境<br />

下 共 同 工 作 时 每 个 人 都 有 可 能 取 得 成 功 。 下 面<br />

让 我 们 看 一 下 从 开 源 在 法 国 的 成 功 我 们 能 学 到<br />

哪 些 经 验 。<br />

好 处 一 : 开 源 从 教 育 抓 起<br />

法 兰 西 未 来 在 开 源 方 面 的 发 展 依 然 非 常 强<br />

劲 , 因 为 它 获 得 了 下 一 代 开 源 开 发 者 的 支 持 。<br />

举 个 例 子 来 说 , 法 国 政 府 去 年 向 高 校 学 生 免 费<br />

派 发 了 175000 份 装 有 开 源 软 件 的 U 盘 。 技 术<br />

性 院 校 已 经 将 开 源 教 育 作 为 它 们 的 首 先 要 考 虑<br />

的 大 事 之 一 , 甚 至 有 很 多 高 校 为 之 提 供 了 高 等<br />

学 位 。 法 国 开 源 数 据 集 成 软 件 商 先 驱 Talend<br />

的 首 席 执 行 官 兼 创 始 人 Bertrand Diard 表 示 ,<br />

“ 法 国 所 有 的 学 生 都 在 使 用 开 源 , 而 美 国 除 了<br />

麻 省 理 工 之 外 的 多 数 大 学 都 在 使 用 来 自 微 软 、<br />

甲 骨 文 和 SAP 的 传 统 工 具 。” 据 Diard 表 示 ,<br />

由 于 开 源 在 法 国 的 普 及 度 非 常 高 , 在 法 国 开 源<br />

人 才 比 比 皆 是 ; 而 且 因 为 法 国 开 发 者 不 会 被 专<br />

有 和 竞 争 技 术 分 散 精 力 , 因 此 可 以 更 快 的 使 用<br />

开 源 工 具 开 发 软 件 , 软 件 质 量 也 更 高 。<br />

那 么 , 其 它 国 家 的 开 发 者 、IT 经 理 和 企 业<br />

管 理 者 们 可 以 从 法 国 的 开 源 经 验 中 学 到 什 么 呢 ?<br />

用 法 国 开 源 集 成 商 Altic 首 席 执 行 官 Marc<br />

Sallieres 的 一 句 话 作 为 答 案 “ 改 变 你 的 观 点 ”<br />

开 源 时 代 2008 年 10 月 刊 - 13 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

好 处 二 : 聚 合 不 同 好 技 术<br />

能 够 将 不 同 的 开 源 项 目 整 合 到 一 起 , 并 创<br />

造 一 个 统 一 的 平 台 , 这 可 能 是 法 国 最 大 的 开 源<br />

收 益 。 正 是 由 于 政 府 、 教 育 和 行 业 各 方 面 的 力<br />

量 聚 合 在 一 起 , 才 为 领 先 的 开 源 发 展 孕 育 了 一<br />

个 最 佳 的 成 长 环 境 。 开 发 开 源 工 作 流 系 统 的<br />

Bonita 项 目 创 始 人 Miguel Valdes 认 为 , 在 重<br />

用 代 码 和 与 其 它 系 统 集 成 方 面 , 法 国 开 源 开 发<br />

者 比 其 它 国 家 的 开 发 者 对 开 源 具 有 更 好 的 理 解 。<br />

Valdes 表 示 ,“ 法 国 无 疑 是 开 源 相 关 人 员 发<br />

展 的 更 佳 地 方 , 法 国 的 社 会 模 式 适 合 创 业 者 和<br />

企 业 家 去 选 择 一 个 专 有 软 件 的 替 代 解 决 方 案 ,<br />

适 合 孕 育 新 项 目 的 创 建 , 在 这 些 项 目 中 很 多 有<br />

经 验 的 专 业 人 士 和 技 术 熟 练 的 计 算 机 专 业 学 生<br />

一 起 工 作 。”<br />

市 场 分 析 机 构 Gartner 的 分 析 师 Massimo<br />

Pezzini 表 示 , 换 句 话 说 , 法 国 的 开 源 开 发 者 为<br />

聚 合 不 同 开 源 项 目 打 下 了 很 好 的 根 基 , 在 这 个<br />

基 础 上 可 以 将 六 个 、 七 个 甚 至 更 多 的 开 源 项 目<br />

集 成 到 一 个 综 合 性 的 平 台 中 。<br />

好 处 三 : 解 放 带 来 创 新<br />

令 人 毫 不 意 外 的 情 况 是 , 开 源 聚 合 和 集 成<br />

技 巧 已 经 在 法 国 迅 速 发 展 , 并 且 已 经 传 播 到 欧<br />

洲 的 其 它 地 方 。Pezzini 表 示 ,“ 在 美 国 , 开 源<br />

项 目 通 常 应 用 面 比 较 窄 , 只 在 一 些 技 术 领 先 的<br />

企 业 才 会 使 用 它 们 , 而 在 欧 洲 开 源 已 经 成 为 主<br />

流 ,” 他 补 充 说 , 法 国 开 创 了 开 源 之 路 后 , 北<br />

欧 的 一 些 国 家 已 经 紧 跟 而 上 。“ 欧 洲 的 机 构 面<br />

临 着 一 个 商 机 , 即 将 多 个 开 源 方 案 进 行 组 合 以<br />

成 为 虚 拟 专 用 网 、SOA 和 商 业 智 能 等 解 决 方 案 。<br />

”<br />

看 一 下 开 源 的 法 语 表 示 ,logiciel libre,<br />

意 味 着 你 可 以 这 样 来 理 解 “free<br />

software”——“ 自 由 交 流 , 但 并 不 是 免 费 啤<br />

酒 (free as in speech, not free as in<br />

beer)”Logiciel libre 可 以 轻 松 成 为 全 球 开 源<br />

社 区 的 口 号 。 从 专 有 软 件 的 束 缚 之 中 解 放 出 来 ,<br />

法 国 开 源 开 发 者 正 在 被 鼓 励 去 体 验 创 新 和 无 拘<br />

无 束 。<br />

当 意 识 到 在 整 个 IT 系 统 应 用 开 源 具 有 这 种<br />

有 效 创 新 的 优 势 后 , 法 国 的 大 学 一 马 当 先 , 担<br />

起 了 把 开 源 传 递 给 新 一 代 开 发 者 和 IT 管 理 者 的<br />

重 任 。Pezzini 表 示 ,“ 其 它 国 家 现 在 要 做 的 关<br />

键 一 点 是 , 在 大 学 和 学 院 中 为 开 源 培 养 更 多 的<br />

支 持 者 。”<br />

Red Hat 采 取 各 种 措 施 欲 进 驻 虚 拟 化 市 场<br />

在 Red Hat 收 购 虚 拟 化 公 司 Qumra<strong>net</strong> 之<br />

前 ,Red Hat 就 已 经 明 确 表 示 它 要 用 自 己 的<br />

Linux KVM( 内 核 虚 拟 机 ) 大 举 进 入 虚 拟 化 领 域 。<br />

在 今 年 6 月 份 举 行 的 Red Hat 年 度 峰 会 上 ,<br />

Red Hat 宣 布 它 将 部 署 其 嵌 入 式 Linux 管 理 程<br />

序 oVirt。 这 个 程 序 是 以 其 服 务 器 产 品 线 中 的<br />

KVM 为 基 础 的 。 这 种 情 形 的 、 嵌 入 式 管 理 程 序<br />

目 前 能 够 让 用 户 运 行 Red Hat 企 业 版 Linux 和<br />

在 Linux 平 台 上 的 Windows 虚 拟 机 。<br />

Red Hat 负 责 平 台 业 务 的 副 总 裁 Scott<br />

Crenshaw 解 释 说 ,Red Hat 收 购 Qumra<strong>net</strong><br />

公 司 有 三 个 理 由 : 第 一 , 加 快 更 广 泛 的 虚 拟 化<br />

解 决 方 案 的 上 市 时 间 ; 第 二 , 开 放 KVM 源 代 码<br />

并 且 进 一 步 向 它 投 资 ; 第 三 , 把 我 们 的 虚 拟 化<br />

产 品 线 扩 展 到 VDI( 虚 拟 桌 面 基 础 设 施 ) 市 场 。<br />

Crenshaw 接 下 来 详 细 地 解 释 说 ,KVM 将 组 成<br />

Red Hat 的 嵌 入 式 管 理 程 序 的 基 础 。 这 个 产 品<br />

计 划 在 明 年 年 初 推 出 。 我 们 知 道 客 户 和 OEM<br />

厂 商 对 于 把 这 种 Linux 裸 机 管 理 程 序 的 优 势 引<br />

开 源 时 代 2008 年 10 月 刊 - 14 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

进 到 市 场 非 常 感 兴 趣 。<br />

整 合 到 RHEL。<br />

Crenshaw 继 续 说 , 如 论 是 否 推 出 这 个 产<br />

品 和 什 么 时 候 推 出 这 个 产 品 ,KVM 应 用 到 Red<br />

Hat 企 业 版 Linux(RHEL) 中 已 经 是 确 定 的 。 我 们<br />

要 让 RHEL 虚 拟 化 成 为 本 行 业 第 一 个 开 源 软 件<br />

的 开 放 标 准 的 接 口 , 允 许 新 的 管 理 程 序 和 管 理<br />

工 具 能 够 像 即 插 即 用 设 备 一 样 方 便 地 使 用 。 这<br />

样 , 对 于 客 户 来 说 , 管 理 任 何 过 渡 都 将 是 无 缝<br />

的 。Crenshaw 还 明 确 指 出 ,Red Hat 正 在 考<br />

虑 把 虚 拟 化 引 进 到 台 式 电 脑 市 场 。 在 此 之 前 ,<br />

Red Hat 不 愿 意 进 入 传 统 的 Linux 台 式 电 脑 市<br />

场 。<br />

现 在 , 由 于 收 购 了 SolidICE VDI 解 决 方 案 ,<br />

Red Hat 要 在 Qumra<strong>net</strong> 已 经 产 生 的 极 好 的 增<br />

长 势 头 的 基 础 生 更 进 一 步 。 这 对 于 VDI 市 场 是<br />

一 个 改 变 游 戏 规 则 的 产 品 。 我 们 预 计 , 在 Red<br />

Hat 的 支 持 下 , 我 们 的 客 户 将 加 快 部 署 这 种 产<br />

品 。SolidICE 是 一 种 虚 拟 桌 面 , 使 用 SPICE( 用<br />

于 独 立 计 算 环 境 的 简 单 协 议 ) 协 议 在 服 务 器 上 的<br />

虚 拟 机 上 运 行 Windows 或 者 Linux 桌 面 操 作 系<br />

统 。 因 此 , 这 个 产 品 与 Citrix 公 司 的<br />

XenDesktop 产 品 很 相 似 。<br />

研 究 公 司 The 451 Group 的 开 源 软 件 分 析<br />

师 Jay Lyman 说 , 那 是 Red Hat 要 做 的 事 情 。<br />

但 是 , 这 些 举 措 有 意 义 吗 ? 这 些 举 措 肯 定 是 有<br />

意 义 的 。 这 次 收 购 具 有 完 美 的 技 术 意 义 , 因 为<br />

Red Hat 已 经 在 把 KVM 更 多 地 集 成 到 自 己 的<br />

产 品 中 。 当 然 ,Red Hat 将 继 续 支 持<br />

Xen。Xen 到 目 前 为 止 已 经 成 为 Red Hat 虚 拟<br />

化 技 术 和 战 略 的 很 大 一 部 分 。 但 是 , 我 认 为 ,<br />

Red Hat 将 明 智 地 积 极 进 入 由 Linux 内 核 开 发<br />

人 员 支 持 的 KVM 技 术 。Lyman 补 充 说 ,Red<br />

Hat 认 为 它 必 须 要 抢 先 一 步 通 过 这 个 收 购 使 自<br />

己 成 为 虚 拟 化 领 域 的 一 个 更 大 的 厂 商 , 继 续 扩<br />

大 和 建 立 自 己 的 操 作 系 统 。 通 过 收 购<br />

Qumra<strong>net</strong>, Red Hat 增 加 了 做 这 种 整 合 工 作<br />

和 使 KVM 精 益 求 精 所 需 要 的 人 员 和 产 品 。 但<br />

是 ,Red Hat 还 需 要 一 些 时 间 才 能 把 这 些 技 术<br />

Kus<strong>net</strong>zky Group 主 要 分 析 师 Dan<br />

Kus<strong>net</strong>zky 考 察 了 Red Hat 的 历 史 。 他 说 ,<br />

Red Hat 在 相 当 长 的 一 段 时 间 里 似 乎 都 把 虚 拟<br />

化 当 做 次 要 的 问 题 。 虽 然 Red Hat 把 Xen 和<br />

KVM 集 成 到 了 自 己 的 产 品 中 ( 因 为 这 两 个 产 品<br />

目 前 是 Linux 内 核 的 一 部 分 ), 但 是 ,Red Hat<br />

的 重 点 似 乎 在 这 个 软 件 的 其 它 层 面 上 。 随 着 虚<br />

拟 化 环 境 日 益 重 要 ,Red Hat 需 要 做 一 下 四 件<br />

事 情 :1. 改 善 Red Hat 在 市 场 中 的 地 位 ;2. 收<br />

购 有 用 的 和 可 行 的 技 术 ;3. 获 取 虚 拟 机 软 件 领<br />

域 的 人 才 ;4. 进 入 提 供 丰 富 的 其 它 资 源 的 领 域<br />

Kuz<strong>net</strong>zky 做 结 论 说 , 收 购 Qumra<strong>net</strong> 公<br />

司 似 乎 接 触 到 了 上 述 的 每 一 点 。Red Hat 的 这<br />

一 举 措 涵 盖 了 广 泛 的 领 域 , 并 且 显 示 了 它 对 虚<br />

拟 化 的 兴 趣 。Qumra<strong>net</strong> 公 司 的 SolidICE 产 品<br />

和 管 理 技 术 为 Red Hat 在 虚 拟 化 桌 面 市 场 提 供<br />

了 一 席 之 地 , 并 且 为 Red Hat 进 入 服 务 器 虚 拟<br />

化 领 域 提 供 了 空 间 。Qumra<strong>net</strong> 的 员 工 有 许 多<br />

是 KVM 关 键 的 开 发 人 员 , 还 有 在 其 它 虚 拟 化 技<br />

术 方 面 有 丰 富 经 验 的 开 发 人 员 。Red Hat 现 在<br />

获 得 了 丰 富 的 虚 拟 化 经 验 。<br />

因 此 , 从 专 家 的 观 点 看 ,Red Hat 似 乎 正<br />

在 采 取 正 确 的 步 骤 以 成 为 虚 拟 化 市 场 中 的 一 个<br />

厂 商 。 现 在 的 问 题 是 : 这 个 市 场 同 意 吗 ?<br />

开 源 时 代 2008 年 10 月 刊 - 15 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

开 源 大 师 痛 批 云 计 算 称 其 “ 比 愚 蠢 更 糟 ”<br />

据 《 卫 报 》 报 道 , 开 源 软 件 大 师 、 自 由 软 件<br />

基 金 会 创 始 人 Richard Stallman 日 前 对 云 计 算<br />

技 术 提 出 猛 烈 批 评 。 他 认 为 , 使 用 Gmail 等 云<br />

计 算 服 务 “ 比 愚 蠢 更 糟 ”。<br />

近 年 来 , 云 计 算 成 为 计 算 机 行 业 最 热 门 的 词<br />

汇 . 包 括 Google、 亚 马 逊 和 微 软 在 内 的 大 型 互<br />

联 网 公 司 均 全 力 推 动 各 自 的 云 计 算 计 划 。 对 于<br />

目 前 的 “ 云 计 算 热 ”,Stallman 认 为 , 云 计 算<br />

是 一 个 陷 阱 , 将 迫 使 更 多 人 使 用 封 闭 、 私 有 的 系<br />

统 , 并 使 他 们 的 软 件 成 本 越 来 越 高 。Stallman<br />

在 接 受 《 卫 报 》 采 访 时 表 示 :“( 云 计 算 ) 非 常<br />

愚 蠢 , 甚 至 比 愚 蠢 更 糟 , 这 就 是 一 个 营 销 宣 传 活<br />

动 。”“ 一 些 人 表 示 , 云 计 算 是 不 可 避 免 的 趋<br />

势 , 然 而 无 论 你 何 时 听 到 这 样 的 言 论 , 随 后 都<br />

将 出 现 一 系 列 的 商 业 活 动 。”<br />

Stallman 是 自 由 软 件 运 动 GNU 的 创 始 人 ,<br />

他 表 示 , 计 算 机 用 户 应 当 牢 牢 把 握 自 己 的 信 息 ,<br />

而 不 是 把 这 些 信 息 交 到 第 三 方 手 中 。 他 的 表 态<br />

与 甲 骨 文 CEO 拉 里 - 埃 利 森 的 说 法 不 谋 而 合 ,<br />

埃 利 森 当 时 表 示 , 云 计 算 只 是 “ 由 潮 流 驱 动 的<br />

”,“ 完 全 是 莫 名 其 妙 ”。<br />

目 前 已 有 越 来 越 多 的 用 户 使 用 云 计 算 服 务 ,<br />

他 们 将 信 息 存 储 在 互 联 网 的 服 务 器 中 , 而 不 是<br />

本 地 电 脑 上 。 云 计 算 也 正 在 成 为 Web2.0 应 用 ,<br />

包 括 网 络 电 子 邮 件 和 图 片 共 享 服 务 的 核 心 。 计<br />

算 机 厂 商 戴 尔 近 日 曾 试 图 将 “ 云 计 算 ” 注 册 为<br />

商 标 , 但 遭 到 拒 绝 。 主 流 用 户 仍 然 担 心 云 计 算<br />

服 务 带 来 的 隐 私 和 所 有 权 问 题 , 以 及 用 户 有 可<br />

能 无 法 访 问 自 己 的 文 件 。 作 为 一 名 隐 私 权 拥 护<br />

者 ,Stallman 建 议 用 户 将 文 件 储 存 在 本 地 电 脑<br />

中 , 并 且 使 用 本 地 电 脑 上 的 软 件 。<br />

Oracle 再 祭 收 购 大 旗 , 这 次 红 帽 价 值 几 何 ?<br />

金 融 市 场 动 荡 ,IT 产 业 同 样 不 能 逃 脱 危 机 的<br />

影 响 。 即 使 像 Red Hat 这 样 的 高 成 长 的 高 科 技<br />

公 司 现 在 也 遭 遇 到 困 难 了 。 目 前 红 帽 的 股 价 已<br />

经 跌 至 15 美 金 左 右 。 这 次 Oracle 应 该 不 会 放<br />

过 这 样 的 机 会 了 , 也 应 该 放 弃 他 一 厢 情 愿 打 造<br />

的 Unbreakable Linux, 整 个 正 二 八 经 的<br />

Linux 发 行 版 软 件 公 司 。 说 的 直 白 点 , 价 格 便 宜 ,<br />

趁 火 打 劫 。<br />

虽 然 一 直 在 标 榜 他 的 Unbreakable Linux<br />

在 改 变 整 个 IT 业 界 , 但 是 真 正 买 Oracle 账 的<br />

没 有 几 个 。 而 且 我 不 相 信 RedHat 愿 意 被<br />

Oracle 收 购 , 事 实 上 我 非 常 肯 定 红 帽 不 会 这 么<br />

干 。 因 为 Red Hat 是 如 此 的 注 重 用 户 的 自 由 ,<br />

虽 然 Oracle 也 非 常 注 重 用 户 的 利 益 , 做 的 也<br />

非 常 多 , 但 是 不 包 括 用 户 自 由 。<br />

永 远 不 要 说 永 远 , 因 为 我 们 不 知 道 会 发 生<br />

什 么 。 从 某 种 程 度 上 说 ,Yahoo! 没 有 卖 给 微<br />

软 是 一 个 错 误 , 尽 管 两 家 企 业 存 在 制 度 和 文 化<br />

上 的 差 异 。 既 然 价 格 合 适 就 没 有 什 么 不 可 以 ,<br />

只 能 说 杨 致 远 实 在 太 固 执 了 。 当 然 ,Red Hat<br />

不 是 Yahoo!, 从 某 种 程 度 上 说 ,RedHat 还<br />

能 做 的 更 好 , 继 续 向 上 发 展 , 而 Yahoo! 则 逐<br />

渐 式 微 。<br />

企 业 终 归 是 企 业 , 以 牟 利 为 主 , 只 要 价 格<br />

合 适 ,Red Hat 的 股 东 们 是 不 会 不 动 心 的 , 特<br />

别 目 前 华 尔 街 金 融 动 荡 , 现 金 流 为 王 。Oralce<br />

也 是 非 常 渴 望 完 成 这 次 收 购 , 因 为 Red Hat 可<br />

以 正 好 完 整 他 们 的 软 件 解 决 方 案 , 作 为 操 作 系<br />

开 源 时 代 2008 年 10 月 刊 - 16 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

统 一 环 ,RedHat Linux 非 常 完 美 。 相 对 于 其 他<br />

潜 在 的 RedHat 收 购 者 ,Red Hat 对 于<br />

Oracle 来 说 更 加 有 价 值 。 即 使 买 来 以 后 , 将<br />

RedHat 的 相 关 产 品 和 服 务 免 费 提 供 给 用 户 ,<br />

Oracle 也 可 以 从 他 的 应 用 软 件 和 数 据 库 产 品 上<br />

赚 的 盘 满 钵 满 。 目 前 Red Hat 价 值 约 为 28 亿<br />

美 金 , 而 且 Oralce 的 Larry Ellison 是 个 说 到 做<br />

到 的 人 , 我 相 信 Oracle 收 购 Red Hat 是 迟 早<br />

的 事 。<br />

过 去 几 年 时 间 内 , 人 们 对 备 份 和 数 据 恢 复<br />

的 需 求 迅 速 增 长 。 市 场 研 究 机 构 IDC 最 近 一 份<br />

题 为 《Digital Universe》 的 研 究 报 告 中 指 出 ,<br />

过 去 三 年 时 间 内 数 据 存 储 量 猛 增 了 50 多 倍 。<br />

IDC 表 示 :“ 企 业 机 构 将 越 来 越 多 的 数 据<br />

转 变 成 为 有 价 值 的 信 息 。 这 种 趋 势 , 再 加 上 更<br />

加 严 格 的 法 律 法 规 , 带 来 了 诸 多 例 如 如 何 对 这<br />

些 数 据 进 行 保 存 、 管 理 、 归 档 以 及 确 保 其 安 全<br />

性 的 难 题 。” 但 是 随 着 需 求 的 增 加 , 存 储 经 理<br />

寻 找 适 当 工 具 的 需 求 也 日 益 增 强 。 虽 然 现 在 有<br />

赛 门 铁 克 Backup Exec 这 样 的 首 选 解 决 方 案 ,<br />

但 是 开 源 解 决 方 案 也 逐 渐 在 市 场 中 涌 现 。<br />

开 源 备 份 软 件 渐 入 主 流<br />

易 。 但 是 正 如 Kant 指 出 , 开 源 技 术 的 好 处 远<br />

不 止 这 些 。 部 署 和 维 护 一 个 开 源 解 决 方 案 的 成<br />

本 要 比 采 用 特 定 解 决 方 案 的 成 本 低 得 多 。 就 其<br />

本 质 来 说 , 开 源 技 术 因 为 具 有 分 析 源 代 码 和 掌<br />

握 解 决 方 案 运 作 情 况 的 特 点 而 成 为 用 户 一 个 更<br />

好 的 选 择 。 有 了 这 种 认 识 之 后 , 开 源 社 区 开 始<br />

彼 此 帮 助 合 作 , 为 用 户 提 供 更 完 善 的 服 务 系 统 。<br />

Kant 表 示 :“ 如 果 一 位 存 储 经 理 安 装 了 开 源 软<br />

件 , 并 在 使 用 过 程 中 遇 到 了 难 题 。 那 么 他 可 以<br />

很 容 易 地 联 系 到 开 源 社 区 中 了 解 这 款 产 品 以 及<br />

能 够 回 答 他 问 题 的 专 业 人 士 , 他 们 可 以 给 出 现<br />

实 操 作 中 优 化 工 具 性 能 的 实 例 和 经 验 。”<br />

Zmanda 是 一 家 专 门 针 对<br />

Linux,<strong>Unix</strong>、Windows、Mac、 数 据 库 和 应<br />

用 的 商 业 开 源 备 份 和 恢 复 解 决 方 案 提 供 商 , 该<br />

公 司 创 始 人 兼 首 席 执 行 官 兼 Chander Kant 表<br />

示 :“ 越 来 越 多 的 用 户 开 始 以 不 同 的 方 式 部 署<br />

开 源 软 件 。 随 着 开 源 备 份 技 术 的 好 处 逐 渐 被 人<br />

们 熟 知 , 越 来 越 多 的 用 户 将 把 开 源 备 份 作 为 取<br />

代 那 些 特 有 解 决 方 案 的 选 择 。” 开 源 解 决 方 案<br />

的 一 个 主 要 好 处 就 是 信 息 保 留 。 以 特 定 格 式 保<br />

存 数 据 的 话 , 如 果 你 想 读 取 几 年 之 前 的 数 据 信<br />

息 , 不 仅 成 本 很 高 , 而 且 非 常 麻 烦 。 在 一 个 特<br />

定 系 统 中 , 数 据 必 须 通 过 原 始 的 备 份 应 用 进 行<br />

保 存 , 也 就 是 说 , 存 储 经 理 只 能 使 用 某 个 特 定<br />

厂 商 的 解 决 方 案 。<br />

但 是 在 开 源 环 境 下 , 数 据 格 式 通 过 使 用<br />

tar、rsync、 cpio、Linux 和 <strong>Unix</strong> 系 统 的<br />

dump 以 及 Windows 系 统 的 ntbackup 等 程<br />

序 支 持 数 据 找 回 功 能 。 开 源 数 据 格 式 还 使 得 数<br />

据 从 一 个 平 台 到 另 一 个 平 台 的 迁 移 变 得 十 分 容<br />

开 源 备 份 厂 商 Zmanda 和 BackupPC,<br />

从 名 字 中 我 们 就 可 以 知 道 这 两 家 厂 商 的 产 品 分<br />

别 是 针 对 PC 和 笔 记 本 的 , 他 们 表 示 自 己 的 技<br />

术 是 可 以 取 代 传 统 备 份 产 品 的 低 成 本 选 择 之 一 。<br />

正 如 Kant 指 出 :“ 一 位 经 验 丰 富 的 系 统 管 理<br />

员 甚 至 不 需 要 花 费 一 分 钱 就 可 以 部 属 好 一 套 开<br />

源 备 份 解 决 方 案 。” 不 过 不 足 之 处 就 是 运 行 开<br />

源 备 份 时 需 要 有 周 密 的 规 划 和 设 计 , 不 过 Kant<br />

表 示 这 项 工 作 不 会 花 费 太 多 时 间 的 。 他 说 :“<br />

只 有 对 PERL 和 开 源 软 件 有 了 解 的 话 , 这 就 不 会<br />

太 难 。”Zmanda 的 解 决 方 案 采 用 了<br />

开 源 时 代 2008 年 10 月 刊 - 17 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Amanda Network Backup, 那 些 不 需 要<br />

Zmanda 附 加 数 据 库 和 应 用 服 务 的 用 户 可 以 免<br />

费 下 载 使 用 Amanda Network Backup。 不<br />

管 怎 样 , 开 源 备 份 技 术 已 经 成 为 备 份 和 数 据 恢<br />

复 领 域 一 个 重 要 的 技 术 。 相 信 借 助 庞 大 用 户 群<br />

的 帮 助 、 可 以 让 存 储 经 理 定 制 系 统 的 功 能 以 及<br />

较 低 的 成 本 等 特 点 , 用 户 一 定 会 越 来 越 青 睐 这<br />

项 技 术 。<br />

Mono 2.0 发 布 平 台 差 异 将 进 一 步 缩 小 ?<br />

布 ,.NET 的 应 用 和 性 能 差 距 在 两 个 平 台 上 将 进<br />

一 步 缩 小 。<br />

随 着 Novell 官 方 发 布 Mono 2.0, 如 今<br />

Linux 平 台 上 的 .NET 模 块 已 经 日 趋 成 熟 。Mono<br />

计 划 是 由 Novell 雄 心 勃 勃 一 手 策 划 , 目 的 是 为<br />

了 在 开 源 的 Linux 平 台 上 实 现 微 软 的 .NET 架 构 ,<br />

最 新 版 本 2.0 刚 刚 发 布 。 随 着 这 个 新 版 本 的 发<br />

尽 管 Mono 2.0 兼 容 微 软 .NET 2.0 版 本 ,<br />

但 是 不 兼 容 最 新 的 .NET 版 本 。 所 以 在 Mono2.0<br />

发 布 的 时 候 ,Mono 项 目 负 责 人 Miguel de<br />

Icaza 不 无 无 奈 的 承 认 ,Mono 项 目 组 还 有 很<br />

多 工 作 要 去 做 。Miguel de Icaza 还 指 出 ,<br />

Mono 项 目 现 在 还 在 不 断 地 了 解 .NET 开 发 者 真<br />

正 所 需 要 的 。 自 从 Mono1.2.3 发 布 中 附 带 了<br />

NoMA 工 具 ( 一 款 用 于 Mono 移 植 分 析 的 工<br />

具 ), 情 况 就 大 有 改 观 了 。 通 过 这 个 工 具 , 我<br />

们 可 以 跟 踪 最 新 的 开 发 者 需 求 , 将 他 们 最 需 要<br />

的 功 能 移 植 到 Linux 平 台 , 满 足 他 们 的 需 求 。<br />

在 解 决 人 们 需 要 的 道 路 上 , 技 术 世 界 往 往<br />

会 造 成 一 片 混 乱 的 局 面 , 而 没 有 解 决 问 题 所 需<br />

要 的 凝 聚 力 。 然 而 , 有 这 样 一 个 技 术 团 队 , 从<br />

最 开 始 就 试 图 把 工 作 重 点 放 在 用 户 需 求 等 问 题<br />

上 , 那 就 是 开 源 团 队 。 我 们 都 知 道 , 开 源 开 发<br />

者 一 直 以 来 都 希 望 尽 最 大 努 力 解 决 用 户 问 题 ,<br />

他 们 投 入 很 大 的 力 量 来 开 发 功 能 不 断 强 大 , 并<br />

开 源 的 艺 术 安 全 市 场 新 的 突 破 点<br />

且 功 能 更 加 丰 富 和 安 全 的 代 码 来 帮 助 解 决 用 户<br />

问 题 。<br />

但 是 开 源 产 品 可 能 也 会 有 缺 点 , 例 如 开 源<br />

开 发 者 制 造 出 来 的 代 码 往 往 倾 向 于 满 足 其 开 发<br />

者 的 设 计 需 要 , 而 普 通 用 户 很 难 利 用 这 些 代 码 。<br />

“ 我 们 有 这 么 一 个 团 队 能 够 完 成 难 以 置 信 的 工<br />

作 , 但 是 他 们 却 没 有 从 用 户 的 角 度 来 考 虑 问 题 ,<br />

”Untangle 公 司 的 产 品 经 理 兼 硅 谷 Linux 用 户<br />

组 主 要 负 责 人 Andrew Fife 这 样 说 道 ,<br />

Untangle 是 一 家 将 开 源 技 术 融 入 其 产 品 的 公<br />

司 之 一 , 其 产 品 主 要 针 对 小 型 企 业 。 从 程 序 员<br />

的 角 度 来 看 , 根 本 没 有 必 要 设 置 一 个 适 合 用 户<br />

使 用 的 界 面 , 因 为 程 序 员 自 己 可 以 直 接 利 用 代<br />

码 来 进 行 工 作 , 将 所 需 要 的 部 分 代 码 拼 凑 在 一<br />

起 然 后 做 出 适 当 调 整 , 将 剩 下 的 部 分 留 下 。<br />

Fife 将 程 序 员 的 工 作 与 木 匠 店 相 比 照 , 在 木 匠<br />

店 每 个 角 落 都 堆 满 了 某 个 项 目 所 需 要 的 美 丽 的<br />

组 件 , 但 是 却 只 有 一 个 木 匠 知 道 该 如 何 将 这 些<br />

开 源 时 代 2008 年 10 月 刊 - 18 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

散 乱 的 组 件 组 装 成 有 用 的 整 体 。 开 源 的 美 妙 之<br />

处 在 于 任 何 木 匠 都 能 够 进 入 木 匠 店 , 并 且 可 以<br />

利 用 那 些 散 乱 的 组 件 建 造 出 新 的 不 同 的 东 西 。<br />

有 了 程 序 员 们 创 造 性 的 投 入 以 及 不 断 的 创 新 ,<br />

开 源 技 术 才 得 以 不 断 的 完 善 。<br />

然 而 , 并 不 是 所 有 的 用 户 们 都 有 高 超 的 技<br />

术 、 时 间 或 者 爱 好 来 当 这 样 的 木 匠 或 者 程 序 员 ,<br />

“ 每 个 人 都 喜 欢 美 丽 的 事 物 , 但 是 每 个 人 对 于<br />

美 丽 又 有 各 自 不 同 的 理 解 ,”Fife 指 出 。 对 于<br />

开 发 商 来 说 , 美 丽 可 能 意 味 着 代 码 编 写 的 方 式<br />

或 者 代 码 运 行 的 方 式 , 但 是 对 于 普 通 用 户 而 言 ,<br />

一 个 程 序 的 视 觉 美 感 或 者 互 动 性 的 应 用 更 为 重<br />

要 。“ 在 这 个 时 代 , 用 户 们 并 不 需 要 知 道 编 译<br />

器 或 者 源 代 码 具 体 为 何 物 , 他 们 只 希 望 简 单 的<br />

点 击 鼠 标 或 者 简 单 的 命 令 就 能 帮 助 他 们 安 装 任<br />

何 程 序 ,”Sourcefire 公 司 的 开 源 邮 件 引 擎<br />

ClamAV 的 项 目 首 席 技 术 官 Tomasz Kojm 说<br />

道 。<br />

开 源 是 如 何 改 变 技 术 市 场 的 ?<br />

Morris 表 示 , 小 型 企 业 并 不 在 乎 技 术 本 身 ,<br />

只 要 技 术 能 够 发 挥 其 重 要 , 并 且 使 用 很 方 便 又<br />

便 宜 , 才 是 他 们 所 需 要 的 。 如 果 公 司 花 费 大 量<br />

的 资 源 来 将 一 个 工 作 效 率 已 经 达 到 95% 的 邮 件<br />

引 擎 提 高 到 98%, 那 么 我 们 就 认 为 这 绝 对 是 资<br />

源 浪 费 。“ 我 们 需 要 制 造 出 他 们 需 要 的 东 西 ,<br />

而 不 是 技 术 本 身 ,”Morris 说 。<br />

Morris 表 示 , 小 型 企 业 没 有 得 到 适 合 他 们<br />

的 技 术 应 用 , 但 是 他 同 时 还 指 出 技 术 市 场 的 发<br />

展 同 样 也 需 要 销 售 力 量 的 推 动 。“ 我 们 看 到 中<br />

小 企 业 市 场 是 巨 大 的 , 然 而 这 个 市 场 又 是 很 难<br />

开 发 的 ,” 他 说 ,“ 他 们 对 于 获 取 技 术 方 面 并<br />

不 感 兴 趣 。” 越 来 越 多 的 经 销 商 们 开 始 转 向 开<br />

发 小 型 企 业 市 场 , 因 为 他 们 发 现 开 发 企 业 级 市<br />

场 变 得 越 来 越 困 难 , 他 还 这 样 说 。 随 着 开 源 的<br />

不 断 完 善 , 企 业 用 户 逐 渐 从 使 用 专 用 解 决 方 案<br />

产 品 转 而 选 择 开 放 代 码 , 因 为 他 们 可 以 自 己 编<br />

辑 开 放 代 码 并 且 能 够 利 用 他 们 内 部 的 专 门 技 术<br />

来 定 制 特 有 的 开 源 代 码 。 一 些 开 源 解 决 方 案 因<br />

为 他 们 比 那 些 相 对 应 的 专 用 解 决 方 案 更 具 可 比<br />

性 甚 至 更 加 优 越 而 被 大 家 所 熟 知 , 例 如<br />

Apache, Linux 和 Firefox。<br />

“ 十 年 前 , 每 个 人 都 在 建 立 自 己 的 技 术 ,<br />

”Untangle 的 首 席 技 术 官 Dirk Morris 说 道 ,<br />

“ 现 在 来 看 , 开 源 的 价 值 更 加 明 显 了 , 开 源 是<br />

关 于 传 递 提 供 技 术 而 不 是 开 发 某 种 技 术 。” 开<br />

源 技 术 为 很 多 公 司 带 来 便 利 , 开 源 技 术 让 一 些<br />

公 司 可 以 利 用 现 有 的 技 术 并 且 在 原 技 术 上 建 立<br />

更 强 的 技 术 , 通 过 加 强 技 术 的 设 计 和 界 面 , 这<br />

样 使 他 们 生 产 出 来 地 产 品 更 加 便 于 最 终 用 户 使<br />

用 , 也 更 具 吸 引 力 。 开 源 社 区 也 已 经 开 始 更 多<br />

地 关 注 用 户 界 面 等 问 题 。“ 除 了 共 同 的 理 念 ,<br />

大 多 数 开 源 应 用 软 件 都 十 分 容 易 安 装 和 使 用 ,<br />

”Kojm 说 ,“ 安 装 后 普 通 用 户 就 能 够 启 用 防 病<br />

毒 软 件 扫 描 , 并 且 在 五 分 钟 内 启 用 ClamAV, 而<br />

且 这 一 切 都 是 免 费 的 。”<br />

不 过 , 在 使 用 开 源 软 件 的 时 候 , 用 户 界 面<br />

本 身 往 往 并 不 一 定 是 最 难 的 问 题 。Fife 表 示 ,<br />

开 源 解 决 方 案 可 能 需 要 花 费 几 天 时 间 来 配 置 ,<br />

虽 然 安 装 过 程 相 对 来 说 比 较 简 单 。 他 指 出 , 特<br />

别 是 对 于 SNORT, 这 是 一 个 强 大 的 开 源 入 侵 检<br />

测 服 务 (IDS), 该 服 务 需 要 进 行 大 量 的 调 试 。 安<br />

装 后 的 第 一 天 , 该 服 务 可 能 会 将 10000 封 邮 件<br />

当 作 垃 圾 邮 件 , 但 是 这 些 都 是 误 报 , 他 说 , 而<br />

对 该 产 品 进 行 微 调 则 需 要 为 期 四 天 的 工 作 。 当<br />

这 些 问 题 最 终 发 展 为 需 要 雇 佣 承 包 商 来 做 这 些<br />

工 作 , 或 者 需 要 购 买 具 有 所 有 功 能 的 产 品 ( 既 可<br />

以 过 虑 垃 圾 邮 件 和 垃 圾 网 页 , 还 能 够 提 供 入 侵<br />

检 测 服 务 ), 那 么 可 能 需 要 考 虑 购 买 使 用 专 有 产<br />

品 了 。 选 择 专 有 解 决 方 案 的 另 一 个 原 因 可 能 是<br />

安 全 问 题 本 身 ,Gartner 公 司 的 分 析 师<br />

Joseph Feiman 表 示 。 我 们 都 知 道 开 源 产 品 是<br />

免 费 提 供 使 用 的 , 这 就 意 味 着 , 黑 客 们 可 以 像<br />

合 法 企 业 一 样 试 用 和 测 试 开 源 产 品 。 而 那 些 专<br />

有 产 品 的 代 码 是 已 经 经 过 测 试 和 更 改 的 , 就 比<br />

较 难 被 黑 客 所 利 用 。<br />

Feiman 说 很 多 开 源 工 具 还 不 够 成 熟 , 而<br />

且 没 有 足 够 强 大 的 功 能 进 行 部 署 。 对 于 有 效 的<br />

安 全 工 具 , 他 表 示 一 些 网 络 安 全 工 具 , 如<br />

Untangle 使 用 的 网 络 安 全 工 具 , 可 能 是 最 强<br />

的 安 全 工 具 。 网 络 安 全 是 安 全 产 业 中 最 成 熟 的<br />

开 源 时 代 2008 年 10 月 刊 - 19 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

部 分 , 相 比 之 下 , 应 用 软 件 安 全 则 是 新 的 相 当<br />

不 成 熟 的 安 全 工 具 ,Feiman 表 示 。Morris 同<br />

意 说 , 很 多 开 源 引 擎 技 术 本 身 还 不 够 成 熟 或 者<br />

完 善 , 通 常 情 况 下 , 他 的 团 队 会 向 他 们 使 用 的<br />

开 源 仓 库 添 加 一 些 遗 漏 的 功 能 , 包 括<br />

ClamAV,Snort。<br />

一 些 较 新 的 开 源 软 件 仍 然 需 要 不 断 开 发 ,<br />

包 括 垃 圾 邮 件 评 估 工 具 、 网 页 过 滤 器 和 SSL<br />

VPN( 安 全 套 接 层 虚 拟 私 人 网 络 ),Morris 说 道 。<br />

Untangle 向 开 源 仓 库 中 对 于 这 些 开 源 软 件 进<br />

行 了 建 设 , 这 向 开 源 社 区 的 完 善 有 很 大 帮 助 ,<br />

他 补 充 道 。<br />

态 度 不 一 致 的 相 互 依 存 社 区<br />

因 为 企 业 公 司 和 开 源 社 区 的 共 同 发 展 , 他<br />

们 自 然 会 对 对 方 形 成 某 些 看 法 。Fife 注 意 到 ,<br />

很 多 开 发 人 员 对 于 那 些 利 用 他 们 努 力 的 成 果 的<br />

公 司 的 动 机 都 持 怀 疑 态 度 , 当 他 开 始 参 加 用 户<br />

组 的 时 候 , 他 说 开 发 人 员 都 会 取 笑 他 ,“ 他 们<br />

对 那 些 技 术 水 平 不 如 他 们 的 人 态 度 十 分 冷 淡 ,<br />

”Fife 表 示 。 这 样 的 态 度 是 有 理 由 的 , 当 营 销<br />

人 员 或 者 销 售 人 员 出 现 在 他 们 面 前 的 时 候 ,<br />

Fife 说 ,“ 他 们 变 得 十 分 粗 暴 。” 由 于 他 不 断<br />

返 回 一 些 有 效 的 成 果 , 开 源 社 区 的 开 发 人 员 开<br />

始 对 他 尊 重 起 来 ,Fife 自 己 表 示 。 在 某 种 程 度<br />

上 来 说 , 他 认 为 开 发 人 员 态 度 的 转 变 是 因 为<br />

Untangle 对 于 继 续 支 持 开 源 社 区 作 出 了 明 确<br />

的 承 诺 。<br />

Tomasz 说 , 只 要 开 源 授 权 得 到 尊 重 和 认<br />

可 , 开 发 人 员 就 会 赞 同 商 业 用 户 使 用 他 们 开 发<br />

的 软 件 ,“ 即 使 是 从 法 律 的 角 度 来 看 , 他 们 也<br />

必 须 同 意 ,”Fife 说 。 他 补 充 说 道 , 那 些 从 开<br />

源 技 术 中 获 益 的 公 司 也 应 该 以 某 种 方 式 回 报 开<br />

源 社 区 ,“ 这 种 回 报 可 以 是 金 钱 、 硬 件 、 工 程<br />

技 术 支 持 等 ,” 他 说 ,“ 开 源 社 区 很 欢 迎 这 种<br />

回 报 , 并 且 也 会 使 开 发 人 员 开 心 。”<br />

面 临 成 本 压 力 <strong>Unix</strong> 用 户 向 开 放 平 台 迁 移 趋 势 加 快<br />

当 经 济 状 况 变 得 越 来 越 艰 难 时 , 公 司 都 在<br />

寻 找 一 些 办 法 来 缩 减 成 本 。<br />

对 于 Sun 这 样 的 以 <strong>Unix</strong> 产 品 为 主 的 公 司 来<br />

讲 , 这 将 是 一 个 坏 消 息 , 因 为 它 的 产 品 价 格 当<br />

前 并 不 便 宜 : 最 近 , 和 我 聊 天 的 一 些 公 司 的 首<br />

席 技 术 官 都 已 经 放 弃 了 Sun 的 Solaris 系 统 ,<br />

因 为 它 居 高 不 下 的 成 本 。 以 下 就 是 其 中 一 位<br />

CTO 的 谈 话 :“ 我 们 有 两 台 Sun 的 系 统 , 每 一<br />

个 带 有 4 颗 处 理 器 都 运 行 着 Solaris 系 统 , 它 需<br />

要 每 年 花 费 我 们 大 约 70000 美 元 来 维 护 。 我 们<br />

最 终 放 弃 了 它 , 而 买 了 两 台 Dell 的 双 路 服 务 器 ,<br />

在 这 上 可 以 运 行 Linux。 结 果 是 , 我 们 得 到 了<br />

30% 性 能 上 的 提 升 , 而 维 护 的 费 用 每 年 将 低 于<br />

1700 美 元 。” 而 下 面 的 一 段 谈 话 来 自 于 另 一 个<br />

放 弃 Sun Solaris 而 改 用 Linux 的 CTO:“ 我 们<br />

做 了 一 些 测 试 , 当 把 软 件 的 版 权 费 用 和 硬 件 成<br />

本 考 虑 进 去 之 后 ,Linux/Intel 的 方 案 比 起 原 先<br />

的 方 案 便 宜 了 90%, 而 速 度 却 提 高 了 3 倍 。”<br />

开 源 时 代 2008 年 10 月 刊 - 20 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

对 于 一 个 用 户 看 来 具 有 附 加 值 的 产 品 , 他 们 一<br />

般 会 给 更 高 的 价 钱 , 但 是 他 们 同 时 也 要 看 到 这<br />

个 产 品 的 未 来 一 定 不 错 。 因 此 , 当 纽 约 时 报 决<br />

定 重 新 印 刷 一 篇 上 周 来 自 于 infoWorld 的 文 章<br />

时 , 对 于 Sun 公 司 来 讲 就 更 加 糟 糕 了 。 这 篇 文<br />

章 的 标 题 是 :Sun Solaris 即 将 被 淘 汰 ?Linux<br />

基 金 会 的 执 行 主 管 Jim Zemlin 的 谈 话 则 在 纽 约<br />

时 报 的 文 章 中 被 引 用 。<br />

客 户 当 前 非 常 关 心 <strong>Unix</strong> 是 不 是 一 个 更 加 昂<br />

贵 的 传 统 架 构 。 他 们 一 直 都 很 支 持 <strong>Unix</strong>, 因 为<br />

他 们 不 想 改 变 原 先 的 一 些 传 统 应 用 , 而 把 它 们<br />

迁 移 到 新 的 平 台 上 , 因 为 这 将 花 费 更 多 的 成 本 。<br />

但 是 , 他 们 现 在 需 要 这 么 做 了 , 因 为 <strong>Unix</strong> 并 不<br />

能 够 像 Linux 那 样 , 可 以 把 不 同 公 司 和 个 人 的<br />

智 慧 集 合 在 一 起 。 他 似 乎 还 把 矛 头 直 接 指 向 了<br />

Sun,“ 未 来 是 Linux 和 Microsoft Windows<br />

的 世 界 , 而 不 属 于 <strong>Unix</strong> 或 者 Solaris”, 他 谈 到 ,<br />

“Solaris 几 乎 没 有 任 何 新 的 部 署 , 并 且 Sun 目<br />

前 正 处 于 财 务 困 境 之 中 。”<br />

所 有 的 投 资 者 在 此 刻 都 会 紧 张 起 来 , 对 于<br />

一 天 内 股 价 下 跌 将 近 7% 这 一 情 况 并 不 经 常 发 生 ,<br />

而 在 这 周 的 一 开 始 就 确 实 发 生 了 。 但 是 ,Sun<br />

的 股 东 一 定 更 想 知 道 这 种 坏 消 息 什 么 时 间 才 是<br />

个 头 —— 因 为 Sun 的 股 票 已 经 连 续 好 几 个 月 下<br />

跌 了 。 回 到 今 年 的 6 月 , 很 多 的 评 论 员 都 质 疑 ,<br />

Sun 是 否 还 能 独 善 其 身 , 因 为 它 的 股 价 下 跌 过<br />

快 , 而 且 市 值 只 有 70 亿 美 元 了 。 在 过 去 的 3 个<br />

月 里 ,Sun 的 股 价 下 降 了 40%—— 远 远 高 于<br />

NASDAQ 的 下 降 值 , 后 者 在 同 一 时 期 下 降 了<br />

13%。 很 多 人 都 希 望 谁 能 够 站 出 来 解 决 当 前 公<br />

司 的 困 境 —— 或 许 会 是 Fujitsu?<br />

经 济 状 况 的 下 滑 并 不 是 销 售 推 进 的 最 好 环<br />

境 , 并 且 对 于 Sun 来 讲 这 就 更 不 是 什 么 好 消 息<br />

了 , 因 为 在 过 去 的 几 个 月 中 它 已 经 被 人 淡 忘 了 。<br />

在 四 大 服 务 器 厂 商 中 ——IBM、HP、Dell 和<br />

Sun, 上 个 季 度 , 只 有 Sun 是 唯 一 一 个 服 务 器<br />

收 益 下 降 的 公 司 , 而 且 下 降 幅 度 高 达 7.2%, 据<br />

IDC 世 界 季 度 服 务 器 跟 踪 报 道 。 相 比 而 言 ,<br />

IBM 的 服 务 器 销 售 却 在 同 期 上 涨 了 14%。<br />

上 述 这 些 说 法 并 不 能 说 明 Solaris 步 履 维 艰 ,<br />

就 像 纽 约 时 报 的 文 章 中 提 到 的 那 样 。 目 前 , 该<br />

操 作 系 统 还 有 很 多 的 追 随 者 , 并 且 在<br />

OpenSolaris 项 目 下 还 有 一 个 巨 大 的 社 区 。 但<br />

是 , 此 刻 围 绕 着 公 司 有 着 太 多 的 坏 消 息 , 很 多<br />

人 都 在 想 Sun 的 未 来 到 底 在 哪 里 , 也 许 Sun 正<br />

在 等 待 机 会 , 厚 积 薄 发 。 当 前 ,Sun 看 起 来 要<br />

将 重 心 放 于 Solaris, 至 少 从 形 式 上 是 这 样 的 。<br />

开 源 时 代 2008 年 10 月 刊 - 21 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

社 区 扫 描<br />

*******************************************************************************************************<br />

PHP 超 越 爱 好 者 正 大 步 进 入 企 业<br />

“PHP ( 超 文 本 预 处 理 ) 正 在 超 越 爱 好 者 和 学<br />

术 界 进 入 企 业 ”,Zend 科 技 CEO 周 二 在 加 利<br />

福 尼 亚 州 圣 克 拉 拉 市 举 办 的 2008 Zend/PHP 会<br />

议 的 主 题 演 讲 中 如 是 强 调 。<br />

根 据 一 份 服 务 器 端 脚 本 平 台 的 企 业 用 户 名<br />

单 , 其 中 包 括 Kargo 移 动 和 嘉 康 利 ,Zend 公<br />

司 的 CEO Harold Goldberg 强 调 了 PHP 的 成<br />

长 。 他 说 :“PHP 已 经 成 长 为 一 门 支 柱 企 业 的<br />

语 言 ”。Goldberg 说 “PHP 为 那 些 分 布 广 泛<br />

的 企 业 应 用 做 好 了 准 备 ”, 而 他 的 公 司 专 注 于<br />

PHP 工 具 。 他 说 :“ 从 社 区 , 市 场 , 合 作 伙 伴<br />

到 整 个 运 作 系 统 从 来 没 有 这 么 好 过 ”。<br />

Goldberg 呈 现 了 一 些 简 短 的 PHP 用 户 特<br />

点 , 以 Kargo 为 例 , 该 公 司 过 去 一 直 使 用<br />

java 但 发 现 扩 展 系 统 需 要 增 加 大 量 硬 件 , 于 是<br />

公 司 决 定 使 用 Zend 框 架 重 建 其 整 个 站 点 , 现<br />

在 系 统 的 处 理 容 量 增 加 了 400%。 企 业 即 将 提<br />

供 大 量 的 PHP 相 关 职 位 , 在 接 下 来 的 5 年 里 ,<br />

百 分 之 四 十 的 PHP 职 位 将 在 企 业 环 境 中 产 生 ,<br />

Goldberg 说 。 在 未 来 5 到 10 年 , 大 多 数 商 业<br />

应 用 将 基 于 浏 览 器 , 而 这 将 是 PHP 的 机 会 。 他<br />

说 , 我 们 看 到 的 是 , 越 来 越 多 的 人 正 在 选 择<br />

PHP。<br />

一 位 出 席 的 PHP 开 发 员 David Swim 为 平<br />

台 作 了 证 明 ,“ 我 在 学 习 PHP 的 过 程 中 喜 欢 上<br />

了 这 门 语 言 , 我 过 去 用 的 是 ColdFusion, 现 在<br />

实 际 上 已 经 转 到 PHP 了 ”, David Swim 是 一<br />

所 主 流 大 学 的 高 级 程 序 员 分 析 师 , 使 用 PHP 构<br />

建 诸 如 电 子 商 务 , 夏 季 房 屋 网 站 之 类 的 应 用 。<br />

Swim 说 PHP 使 他 可 以 随 心 所 欲 , 但 在<br />

ColdFusion 里 , 按 人 家 规 定 的 方 式 使 用 代 码 总<br />

会 有 些 限 制 。Goldberg 还 提 出 了 一 项 针 对 下<br />

一 代 LAMP 组 合 的 建 议 , 除 Linux, Apache,<br />

MySQL, 和 Perl/PHP/Python 外 , 还 包 括 了 如<br />

Windows, IBM DB2, JavaScript, Microsoft<br />

SQL Server, VMware, and Dojo AJAX 的 技<br />

术 。 我 们 已 经 远 超 出 了 LAMP 的 范 畴 ,<br />

Goldberg 说 。Goldberg 还 建 议 重 新 命 名 硅<br />

谷 为 “ 开 源 谷 ” , 因 为 它 已 成 为 像 SugarCRM<br />

和 Zend 一 样 的 著 名 的 开 源 企 业 之 家 。<br />

自 由 软 件 走 过 25 年 坎 坷 路<br />

9 月 27 日 , 是 Richard Stallman 提 出<br />

GNU 计 划 的 25 周 年 , 也 就 是 自 由 软 件 诞 生 25<br />

周 年 。 为 此 ,《 自 由 软 件 基 金 会 》 号 召 全 球 业<br />

界 开 展 为 期 一 个 月 的 纪 念 活 动 。 回 顾 以 往 , 心<br />

情 不 能 平 静 。<br />

根 据 Stallman 本 人 的 回 忆 ,1983 年 ,<br />

GNU 计 划 刚 起 步 的 时 候 , 总 共 只 有 4~5 个 人<br />

参 与 编 写 自 由 软 件 程 序 。 在 当 时 , 发 布 自 由 软<br />

件 , 也 没 有 什 么 规 矩 , 只 有 到 了 1989 年 ,<br />

Stallman 在 律 师 参 与 之 下 制 定 了 GNU GPL<br />

开 源 时 代 2008 年 10 月 刊 - 22 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

1.0( 也 叫 作 “Copyleft” 的 早 期 版 本 ), 后 来 ,<br />

在 1992 年 推 出 了 后 来 影 响 甚 广 的 GNU GPL<br />

2.0 版 本 。GPL 规 则 的 中 心 意 思 是 , 自 由 软 件<br />

作 者 宣 称 :1、 我 拥 有 这 个 软 件 程 序 ;2、 因 而 ,<br />

我 有 权 这 样 处 置 这 些 软 件 , 把 它 提 供 给 任 何 人<br />

自 由 使 用 , 但 是 , 不 得 改 变 这 个 使 用 许 可 的 规<br />

则 。GNU 软 件 的 核 心 (Linux) 就 是 在 这 个 规 则 保<br />

护 之 下 , 在 全 球 互 联 网 广 泛 发 展 和 应 用 的 基 础<br />

上 , 逐 步 发 展 起 来 。<br />

2004 年 10 月 4 日 ,Jeff V. Merkey 提 出 ,<br />

他 想 购 买 一 份 Linux 源 代 码 , 出 价 5 万 美 元 。<br />

Merkey 确 实 需 要 一 份 Linux 代 码 副 本 , 将 其 编<br />

入 他 所 开 发 的 一 套 新 的 操 作 系 统 中 去 。 当 然 ,<br />

这 套 操 作 系 统 不 是 自 由 软 件 。Merkey 的 想 法<br />

并 不 奇 怪 , 它 引 导 人 们 去 思 考 一 个 问 题 :Linux<br />

源 代 码 究 竟 值 多 少 钱 ? 后 来 , 在 2006 年 10 月<br />

9 日 ,David A. Wheeler 发 表 研 究 论 文 , 题 为<br />

“Linux Kernel 2.6:It`s Worth More!”( 共 计<br />

10 页 ), 利 用 他 自 己 所 提 出 的 SLOCCount 源<br />

代 码 计 算 公 式 , 并 且 参 照 COCOMO 评 估 模 型 ,<br />

经 过 严 密 的 论 证 和 计 算 , 最 后 得 出 结 论 :Linux<br />

2.6 内 核 的 最 低 估 算 值 为 6.12 亿 美 元 。 时 至 今<br />

日 , 据 这 种 估 计 和 推 算 ,Linux 2.6.27 源 代 码 总<br />

行 数 可 达 640 万 行 源 代 码 , 价 值 为 10 亿 美 元 之<br />

上 。 由 此 我 们 可 以 想 见 , 一 个 小 小 的 自 启 动 U<br />

盘 , 它 里 面 包 括 了 Linux 最 新 内 核 , 还 要 加 上<br />

GNOME 桌 面 基 础 软 件 , 以 及 办 公 套 件<br />

OpenOffice 等 几 十 种 软 件 包 , 价 值 可 达 上 百<br />

亿 美 元 。 现 在 , 我 们 可 以 说 , 自 由 软 件 , 价 值<br />

连 城 。<br />

自 由 软 件 的 原 本 用 意 就 是 设 法 保 证 软 件 用<br />

户 的 自 由 性 , 但 是 , 历 史 发 展 的 事 实 让<br />

Stallman 很 失 望 , 他 认 为 , 现 今 自 由 软 件 的 以<br />

客 户 使 用 自 由 为 中 心 的 朴 素 思 想 ( 哲 学 理 念 ),<br />

被 掩 盖 在 一 片 “ 开 源 软 件 交 易 ” 的 叫 卖 声 之 中 。<br />

他 认 为 , 商 业 软 件 的 终 端 用 户 许 可 协 议 ( 即<br />

“EULA”) 就 是 对 用 户 使 用 软 件 自 由 的 一 种 法<br />

律 束 缚 条 款 。Stallman 对 商 业 软 件 老 板 们 的 “<br />

无 利 不 起 早 ” 的 恶 习 , 深 恶 痛 绝 。 在 他 看 来 ,<br />

番 茄 花 园 作 者 洪 磊 根 本 没 有 跳 出 商 业 软 件 的 圈<br />

子 , 是 商 业 软 件 推 行 EULA 的 牺 牲 品 。 在 我 国 ,<br />

我 们 必 须 清 醒 地 认 识 到 , 摆 在 发 展 我 国 自 由 软<br />

件 的 前 面 , 我 们 还 有 很 长 的 路 要 走 。 我 们 不 能<br />

泄 气 , 永 远 不 能 泄 气 。 任 凭 风 吹 浪 打 , 我 们 决<br />

不 屈 服 。<br />

最 后 , 我 想 在 此 表 明 的 意 思 是 : 以 此 文 作<br />

为 对 GNU 计 划 诞 生 25 周 年 的 纪 念 。<br />

重 复 去 年 尴 尬 Gentoo Linux 2008.1 版 本 被 取 消<br />

一 般 来 说 Linux 发 行 版 的 发 行 周 期 为 两 年<br />

一 次 , 这 对 于 Gentoo Linux 来 说 也 不 例 外 ,<br />

按 照 这 个 周 期 今 年 应 该 是 Gentoo Linux 发 行<br />

新 版 本 的 时 候 , 但 令 人 遗 憾 的 是 Gentoo Linux<br />

就 像 一 年 前 取 消 发 行 2007.1 版 本 那 样 , 第 二 次<br />

取 消 了 本 应 该 于 九 月 发 行 的 2008.1 版 本 的<br />

Gentoo Linux。 但 是 这 并 不 意 味 着 Gentoo<br />

Linux 项 目 发 展 进 度 的 倒 退 。<br />

Gentoo 的 开 发 者 们 表 示 ,“ 我 们 正 在 推<br />

开 源 时 代 2008 年 10 月 刊 - 23 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

行 一 种 全 新 的 发 行 新 版 本 Gentoo Linux 的 模<br />

式 , 就 是 回 避 诸 如 红 帽 子 、Novell、Debian<br />

以 及 其 他 著 名 发 行 版 Linux 的 推 陈 出 新 的 周 期 。<br />

此 外 ,Gentoo 也 在 极 力 推 动 那 种 实 时 的 、 延<br />

续 式 的 更 新 发 行 方 式 , 以 此 来 取 代 固 定 发 行 新<br />

版 本 的 模 式 。” 目 前 Gentoo 的 开 发 人 员 正 在<br />

通 过 每 周 推 出 一 种 致 力 于 补 充 定 制 化 安 装 包 的<br />

最 小 化 镜 像 (weekly minimal images) 的 实<br />

践 来 逐 渐 改 变 并 取 代 先 前 的 发 行 方 式 。<br />

Gentoo 开 发 者 Donnie Berkholz 表 示 ,<br />

“ 我 们 需 要 在 Gentoo 发 行 树 上 相 对 枝 节 化 的<br />

各 类 发 行 版 本 之 间 的 沟 通 交 流 上 下 苦 功 。 新 版<br />

本 的 发 行 对 于 那 些 对 Gentoo 发 行 方 式 健 康 化<br />

有 异 意 的 非 Gentoo 用 户 来 讲 有 着 过 度 的 影 响 ,<br />

因 此 有 关 Gentoo 内 部 小 组 的 问 题 就 会 被 公 众<br />

所 夸 大 。”Gentoo 不 但 得 继 续 面 临 着 各 种<br />

Linux 发 行 版 本 的 竞 争 还 得 经 历 那 些 旷 日 持 久 的<br />

组 织 内 问 题 。Gentoo 2008.0 版 本 是 在 今 年 七<br />

月 份 发 布 , 而 上 一 版 本 的 Gentoo 就 是 有 着 和<br />

2008.1 版 本 同 样 被 取 消 命 运 的 2007.1 版 本 。<br />

Gentoo 的 开 发 者 们 已 经 抛 弃 了 2007.1 版 本 ,<br />

他 们 抱 怨 指 出 有 限 的 开 发 时 间 和 精 力 是 这 两 个<br />

版 本 被 迫 取 消 的 主 要 原 因 。<br />

Gentoo 的 开 发 者 们 将 Gentoo 的 发 行 版<br />

本 看 作 是 “ 元 发 行 版 ”, 因 为 用 户 可 以 通 过<br />

Gentoo Portage 持 续 提 供 的 更 新 包 来 定 制 化<br />

自 己 想 要 的 版 本 。Berkholz 指 出 ,”Gentoo<br />

官 方 的 发 行 版 只 会 有 两 个 目 的 , 一 个 是 提 供 对<br />

某 些 硬 件 的 安 装 支 持 以 及 创 造 一 些 围 绕 发 行 版<br />

本 的 buzz。 新 的 硬 件 支 持 将 会 被 覆 盖 在 每 周 发<br />

布 的 最 小 化 CD 镜 像 里 面 。 社 区 对 于 新 发 行 模<br />

式 的 反 馈 非 常 积 极 。 但 不 是 所 有 人 对 Gentoo<br />

取 消 发 布 其 2008.1 版 本 而 感 到 兴 奋 。<br />

Gentoo 的 创 始 人 Daniel Robbins 向<br />

Inter<strong>net</strong>News.com 网 站 透 露 表 示 ,” 对 于 取<br />

消 发 行 Gentoo2008.1 版 本 我 感 到 非 常 的 失 望 。<br />

我 原 本 希 望 在 2007.1 版 本 流 产 之 后 , 我 们 能 够<br />

重 新 翻 开 Gentoo 项 目 开 发 史 上 新 的 一 页 , 但<br />

是 结 果 却 事 与 愿 违 。 然 而 也 不 能 把 事 情 想 得 太<br />

坏 , 看 看 好 的 方 面 。 通 过 和 较 为 大 型 的<br />

Gentoo 社 区 的 互 动 以 及 社 区 力 量 的 介 入 ,<br />

Gentoo 近 期 已 经 取 得 了 不 小 的 进 步 和 改 善 ”。<br />

随 后 Robbins 还 透 露 了 对 此 次 Gentoo2008.1<br />

版 本 取 消 事 件 所 带 来 的 外 界 对 于 Gentoo 消 极<br />

影 响 的 担 忧 。 他 表 示 ,“ 任 何 一 次 取 消 原 定 版<br />

本 发 行 的 行 为 意 味 着 开 源 项 目 的 发 展 并 不 是 很<br />

健 康 , 但 是 目 前 来 看 有 这 两 次 取 消 原 定 发 行 版<br />

本 的 Gentoo 还 是 有 一 线 生 机 的 。”<br />

Robbins 暗 示 新 的 态 势 会 刺 激 项 目 开 发 者<br />

做 出 一 些 变 动 。 首 先 , 他 认 为 相 信 Gentoo 的<br />

开 发 发 行 模 式 已 经 被 打 破 , 希 望 由 Linus<br />

Torvalds 开 发 的 版 本 发 行 控 制 系 统 工 具 git 能<br />

够 应 用 到 开 发 Gentoo 之 中 。 此 外 ,Robbins<br />

还 建 议 表 示 Gentoo 应 开 始 使 用 全 自 动 的 用 于<br />

构 建 新 发 行 版 本 的 工 具 。 在 他 看 来 ,Gentoo<br />

之 所 以 出 现 如 今 的 尴 尬 局 面 是 因 为 使 用 了 一 个<br />

被 称 作 “catalyst”( 催 化 剂 ) 的 工 具 来 构 建<br />

新 的 发 行 版 本 , 他 认 为 这 个 工 具 缺 乏 官 方 正 式<br />

的 说 明 并 且 也 不 符 合 Gentoo 使 用 的 标 准 。<br />

Robbins 补 充 道 ,“ 我 已 经 亲 自 开 发 了 最<br />

新 型 的 版 本 构 建 工 具 并 且 在 自 己 的 个 人 工 作 站<br />

上 构 建 了 新 的 "Funtoo" 版 本 的 Gentoo 系 统 。<br />

这 个 工 具 非 常 易 于 上 手 , 可 以 让 Gentoo 的 开<br />

发 者 们 用 来 开 发 每 周 甚 至 每 天 的 Gentoo 发 行<br />

版 本 。 我 在 尝 试 着 为 Gentoo 社 区 提 供 他 们 所<br />

需 的 用 于 更 好 协 作 的 开 发 工 具 , 这 样 Gentoo<br />

的 开 发 工 作 就 可 以 高 效 集 中 地 进 行 , 也 就 不 会<br />

在 出 现 什 么 取 消 原 定 版 本 发 行 的 尴 尬 了 。”<br />

开 源 时 代 2008 年 10 月 刊 - 24 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

当 Ian Murdock 还 是 一 个 学 生 时 就 创 建 了<br />

老 牌 的 Linux 发 行 版 Debian, 还 有 这 个 名 字 源<br />

于 他 妻 子 和 他 的 名 字 的 组 合 , 关 于 Debian 类<br />

似 的 相 关 传 奇 我 们 可 能 已 经 听 了 无 数 次 。 众 所<br />

周 知 ,Debian 不 仅 是 当 今 最 大 的 Linux 发 行 版<br />

之 一 , 同 时 , 作 为 一 个 基 于 社 区 的 开 源 软 件 项<br />

目 模 型 , 很 多 其 它 的 GNU/Linux 发 行 版 都 是 以<br />

它 为 基 础 衍 生 出 来 的 。<br />

然 而 , 当 Debian 在 8 月 16 日 庆 祝 其 15<br />

岁 生 日 的 时 候 , 这 个 令 人 尊 敬 的 Linux 发 行 版<br />

发 现 自 己 正 面 临 着 诸 多 问 题 , 其 中 有 的 问 题 来<br />

自 项 目 的 内 部 , 有 的 则 来 自 于 外 部 新 兴 Linux<br />

发 行 版 的 挑 战 。 那 么 这 个 项 目 有 哪 些 战 略 是 正<br />

确 的 ? 又 有 哪 些 是 错 误 的 ? 还 有 它 的 未 来 将 走<br />

向 何 方 ?<br />

要 想 发 现 这 些 问 题 的 答 案 , 请 随 笔 者 一 起<br />

回 顾 过 去 , 审 视 现 在 , 展 望 未 来 。<br />

风 雨 15 年 中 所 取 得 的 成 绩<br />

据 Debian 现 在 的 项 目 领 袖 McIntyre 看<br />

来 ,Debian 在 这 风 风 雨 雨 的 15 年 中 最 明 显 的<br />

收 获 是 拥 有 了 一 只 更 加 壮 大 的 团 队 。 从 1993<br />

年 的 只 有 一 个 开 发 者 ——Ian Murdock, 到 今<br />

天 的 具 有 来 自 全 球 各 地 的 1000 多 个 登 记 在 册<br />

的 开 发 者 , 另 外 还 有 数 千 社 区 开 发 者 在 为 这 个<br />

系 统 的 某 些 工 作 而 奉 献 力 量 , 例 如 封 装 、 文 档<br />

和 翻 译 等 工 作 。<br />

风 雨 15 年 后 Debian 再 次 站 在 十 字 路 口<br />

据 McIntyre 估 计 , 在 今 年 秋 天 即 将 推 出<br />

的 下 一 版 本 中 ,Debian 将 包 含 23000 个 程 序<br />

包 , 并 且 提 供 对 10 种 不 同 硬 件 架 构 的 支 持 , 其<br />

中 包 括 i386 和 AMD64, 还 有 PowerPC 或<br />

SPARC, 这 一 数 字 是 其 它 发 行 版 所 根 本 无 法 相<br />

比 的 。 不 过 , 尽 管 Debian 中 包 含 的 东 西 越 来<br />

越 多 , 它 依 然 是 最 稳 定 和 最 可 靠 的 Linux 发 行<br />

版 之 一 ,Debian 用 户 不 会 像 Windows 用 户 那<br />

样 隔 一 段 时 间 就 得 重 装 系 统 。 同 时 ,McIntyre<br />

表 达 了 他 对 这 个 项 目 的 理 念 的 赞 赏 , 在<br />

Debian 会 章 和 Debian 社 会 契 约 等 文 档 中 如<br />

此 写 道 :“ 我 们 所 有 开 发 都 是 开 放 和 自 由 的 ,<br />

在 我 们 开 发 的 每 一 个 阶 段 中 , 所 有 源 代 码 都 提<br />

供 给 人 们 研 究 使 用 。 我 们 并 不 隐 藏 自 己 存 在 的<br />

问 题 —— 我 们 的 漏 洞 跟 踪 系 统 也 对 外 开 放 , 人<br />

们 无 需 登 录 就 可 以 对 其 进 行 搜 索 和 浏 览 。 随 着<br />

我 们 的 成 长 ,Debian 的 许 多 思 想 已 经 传 播 给<br />

Linux 社 区 中 的 其 它 项 目 。” 而 Debian 的 创 建<br />

者 Ian Murdock 也 表 达 了 对 该 项 目 的 同 样 赞 赏<br />

之 情 。 不 过 和 McIntyre 相 比 ,Murdock 主 要<br />

将 赞 美 之 词 送 给 了 该 项 目 的 开 发 模 式 和 包 管 理<br />

系 统 。<br />

除 了 Linux 内 核 本 身 之 外 ,“ 我 们 是 最 先<br />

认 识 到 ‘ 开 源 软 件 的 力 量 来 自 社 区 ’ 的 项 目 之<br />

一 ,”Murdock 表 示 ,“Debian 很 多 计 划 都<br />

是 经 过 深 思 熟 虑 后 才 做 出 决 定 的 。 在 创 建<br />

Debian 的 时 候 , 我 还 是 一 个 学 生 , 我 的 时 间<br />

有 限 , 而 且 我 知 道 我 不 可 能 靠 一 己 之 力 把 所 有<br />

事 情 都 做 好 , 于 是 我 们 开 始 明 确 的 考 虑 如 何 利<br />

用 来 自 外 界 的 力 量 。 我 还 记 得 , 当 把 这 个 项 目<br />

完 全 转 向 开 源 社 区 的 时 候 , 人 们 说 这 种 模 式 不<br />

会 成 功 。 然 而 事 实 证 明 这 一 步 走 的 相 当 明 智 。<br />

我 认 为 Debian 对 开 源 开 发 模 式 所 带 来 的 影 响<br />

是 无 与 伦 比 的 。”Murdock 还 对 Debian 的 应<br />

用 程 序 管 理 系 统 称 赞 不 已 。 他 表 示 ,“Debian<br />

是 首 个 采 用 <strong>Unix</strong> 包 系 统 的 Linux 发 行 版 ,” 当<br />

时 由 于 互 联 网 的 网 速 非 常 慢 , 而 软 件 可 以 被 压<br />

缩 到 软 盘 上 , 因 此 包 系 统 是 必 须 的 选 择 。 不 过<br />

现 在 事 实 证 明 这 也 的 确 是 一 种 非 常 好 的 系 统 管<br />

理 手 段 。 依 赖 项 解 析 (dependency<br />

开 源 时 代 2008 年 10 月 刊 - 25 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

resolution) 功 能 的 加 入 也 是 尤 其 重 要 的 , 现 在<br />

已 经 被 应 用 到 Debian 项 目 之 外 的 很 多 地 方 ,<br />

包 括 .RPM 包 系 统 中 。<br />

在 不 久 前 ,Debian 的 前 项 目 领 导 人<br />

Martin Michlmayr 强 调 说 ,Debian 具 有 攻 克<br />

许 多 长 期 存 在 的 问 题 的 历 史 。Michlmayr 表 示 ,<br />

“ 在 过 去 数 年 中 Debian 走 过 了 很 长 的 路 , 我<br />

们 已 经 解 决 了 很 多 困 扰 我 们 数 年 的 关 键 问 题 。<br />

从 技 术 角 度 来 说 , 我 们 已 经 让 Debian 变 得 更<br />

加 易 于 安 装 、 配 置 和 使 用 。 另 外 在 开 发 过 程 和<br />

社 区 优 化 方 面 , 我 们 已 经 做 出 了 大 量 改 进 。 你<br />

会 发 现 当 前 的 Debian 社 区 氛 围 相 当 好 。” 在<br />

谈 到 项 目 的 发 展 趋 势 和 团 队 职 责 的 时 候 ,<br />

Michlmayr 继 续 表 示 ,“ 现 在 我 们 的 核 心 团 队<br />

终 于 取 得 了 重 大 的 发 展 。 我 们 的 团 队 数 年 以 来<br />

存 在 许 多 结 构 性 问 题 , 积 极 性 不 高 。 不 过 最 近<br />

我 们 已 经 增 加 了 新 的 志 愿 者 到 许 多 团 队 中 , 诸<br />

如 版 本 发 布 、 安 全 和 FTPmaster 团 队 的 实 力 都<br />

得 到 了 增 强 , 新 成 员 为 这 些 团 队 注 入 了 新 的 活<br />

力 。”<br />

审 视 15 周 年 之 际 存 在 问 题<br />

在 Debian 的 15 周 年 之 际 , 回 首 它 的 过 去 ,<br />

我 们 认 为 它 取 得 了 令 人 尊 敬 的 成 绩 , 但 是 同 时<br />

也 不 可 否 认 它 也 存 在 许 多 内 部 问 题 , 概 括 起 来<br />

讲 可 以 分 为 几 个 问 题 : 一 是 如 何 保 证 自 身 力 量<br />

的 培 养 和 发 展 , 二 是 如 何 解 决 Debian 本 身 越<br />

来 越 复 杂 的 问 题 , 三 是 还 缺 少 一 个 具 有 鲜 明 性<br />

格 的 领 导 者 。<br />

第 一 个 日 渐 重 要 的 问 题 是 , 主 要 依 靠 志 愿<br />

者 力 量 发 展 的 Debian 和 其 它 一 些 开 源 项 目 ,<br />

如 何 才 能 够 不 落 后 于 那 些 能 够 得 到 大 公 司 支 持<br />

的 项 目 ?Michlmayr 表 示 ,“ 有 几 个 领 域 我 们<br />

正 在 努 力 追 赶 它 们 。” 不 过 他 也 表 示 ,Debian<br />

也 有 一 些 功 能 是 其 它 Linux 发 行 版 所 没 有 的 ,<br />

例 如 Debian 对 网 络 附 加 存 储 设 备 的 支 持 。 还<br />

有 一 个 更 严 重 的 问 题 , 即 Debian 还 能 继 续 发<br />

展 多 长 时 间 。Debian 曾 经 几 次 出 现 达 到 其 自<br />

然 极 限 的 情 况 , 不 过 话 说 回 来 ,Debian 现 在<br />

的 规 模 已 经 比 多 数 公 司 大 的 多 , 其 继 续 增 长 的<br />

能 力 到 底 有 多 大 已 经 不 是 任 何 人 可 以 预 测 的 了 。<br />

尽 管 Debian 已 经 如 此 庞 大 , 它 的 研 发 团 队 本<br />

身 的 工 作 已 经 做 的 非 常 好 , 他 们 采 取 了 将 多 数<br />

工 作 转 移 给 个 人 开 发 者 或 小 团 队 的 方 式 , 让<br />

Debian 继 续 向 前 发 展 。 不 过 , 随 着 这 一 项 目<br />

的 继 续 成 长 , 不 同 开 发 者 之 间 的 交 流 将 逐 渐 面<br />

临 考 验 。 而 且 随 着 Debian 使 用 的 资 源 越 来 越<br />

多 , 以 及 越 来 越 多 的 开 发 团 队 来 进 入 它 的 开 发 ,<br />

Debian 团 队 需 要 面 临 的 工 作 量 显 然 还 会 继 续<br />

加 大 。<br />

实 际 上 ,Debian 的 创 始 人 Murdock 曾 暗<br />

示 ,Debian 的 发 展 已 经 受 到 了 其 规 模 的 阻 碍 。<br />

随 着 它 的 长 大 , 开 始 在 它 身 上 出 现 了 一 些 大 机<br />

构 所 具 有 的 特 点 , 例 如 官 僚 作 风 严 重 , 繁 文 缛<br />

节 太 多 。 举 个 例 子 来 说 , 一 个 志 愿 者 要 想 成 为<br />

官 方 开 发 者 需 要 通 过 很 复 杂 的 审 批 过 程 , 和 冗<br />

长 的 等 待 时 间 , 这 些 都 是 令 人 难 以 接 受 的 。<br />

Murdock 认 为 ,Debian 所 存 在 的 最 明 确 的 一<br />

个 致 命 弱 点 是 , 在 这 个 项 目 试 图 保 持 增 长 而 又<br />

不 迷 失 其 目 标 的 过 程 中 , 最 缺 的 是 一 个 “ 具 有<br />

热 情 洋 溢 的 领 导 风 格 ” 的 善 意 的 独 裁 者 , 这 个<br />

人 可 以 有 效 的 根 据 实 际 情 况 做 出 决 策 , 同 时 把<br />

项 目 相 关 的 不 同 群 体 团 结 在 一 起 有 条 不 紊 的 向<br />

前 发 展 。<br />

任 何 机 构 都 想 拥 有 这 样 一 个 领 导 者 , 无 论<br />

它 是 一 个 商 业 公 司 还 是 一 个 开 源 项 目 。 不 过 ,<br />

即 使 拥 有 了 这 样 一 个 领 导 者 ,Debian 项 目 如<br />

何 在 主 要 决 策 上 保 持 自 己 的 开 放 和 尊 重 多 数 人<br />

意 见 的 风 格 呢 ? 这 又 是 一 个 难 以 解 决 的 问 题 。<br />

或 许 ,Debian 作 为 一 个 非 商 业 性 项 目 , 并 不<br />

需 要 像 盈 利 企 业 那 样 的 高 效 决 策 战 略 。<br />

开 源 时 代 2008 年 10 月 刊 - 26 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

展 望 未 来 挑 战 Debian 将 走 向 何 方 ?<br />

就 在 Debian 还 在 寻 找 适 合 自 己 的 领 导 者<br />

的 时 候 ,Mark Shuttleworth 却 已 经 率 领 他 的<br />

Ubuntu 乘 风 而 行 , 基 于 Debian 的 Ubuntu 在<br />

普 及 度 上 已 经 超 过 它 的 前 辈 。 定 期 发 布 新 版 ,<br />

还 有 来 自 Canonical 公 司 的 商 业 化 支 持 , 两 者<br />

加 起 来 会 让 用 户 对 Ubuntu 更 加 信 任 。Ubuntu<br />

的 流 行 可 能 很 好 的 证 明 Debian 的 角 色 正 在 发<br />

生 改 变 。 它 不 再 是 众 多 普 通 用 户 的 首 选 , 而 发<br />

展 成 了 一 个 上 游 的 提 供 商 , 一 个 更 突 出 以 用 户<br />

为 中 心 的 发 行 版 。Debian 的 应 用 程 序 的 可 靠<br />

性 , 以 及 强 大 的 包 管 理 功 能 , 让 它 更 加 适 合 这<br />

个 角 色 。 或 许 Michlmayr 对 于 Debian 和<br />

Ubuntu 之 间 关 系 的 定 位 更 加 正 确 , 他 认 为 两<br />

者 是 互 相 补 充 的 关 系 , 可 以 供 不 同 需 求 的 用 户<br />

来 选 择 。 那 些 认 同 Debian 的 非 商 业 价 值 的 用<br />

户 依 然 会 被 它 吸 引 , 而 那 些 更 倾 向 于 最 新 版 本<br />

以 及 更 重 视 用 户 友 好 性 的 用 户 则 会 把 Ubuntu<br />

作 为 首 选 。<br />

然 而 即 使 是 Debian 作 为 “ 最 开 放 ”Linux<br />

发 行 版 的 地 位 也 正 在 被 其 它 发 行 版 所 威 胁 , 例<br />

如 GNewSense, 这 又 是 一 个 基 于 Debian 的<br />

发 行 版 , 另 外 还 有 Blag。 这 类 新 的 Linux 发 行<br />

版 的 主 要 特 点 是 它 们 从 内 核 中 移 除 了 具 有 专 利<br />

权 的 部 分 , 打 造 了 一 个 真 正 “ 自 由 ” 的 Linux<br />

发 行 版 , 这 一 点 与 Debian、Ubuntu 和 多 数 主<br />

流 Linux 发 行 版 所 完 全 不 同 的 。 要 想 保 住 自 己<br />

的 荣 誉 ,Debian 可 能 需 要 好 好 的 思 考 一 下 如<br />

何 处 理 一 下 其 内 核 中 所 使 用 的 那 些 专 利 产 品 了 ,<br />

或 许 可 以 采 取 把 它 们 移 动 到 非 自 由 软 件 库 中 ,<br />

对 于 这 个 库 中 的 软 件 , 用 户 在 安 装 它 们 之 前 需<br />

要 深 思 熟 虑 。 不 过 , 和 过 去 一 样 ,Debian 似<br />

乎 还 不 急 于 在 这 方 面 做 出 一 个 决 定 。<br />

上 述 挑 战 已 经 给 Debian 带 来 了 影 响 。 在<br />

过 去 几 年 中 Debian 的 增 长 趋 势 已 经 开 始 逐 渐<br />

有 变 慢 的 趋 势 。 不 过 , 新 的 开 发 者 正 在 不 断 加<br />

入 这 个 伟 大 的 团 队 , 为 它 注 入 新 的 活 力 , 以 应<br />

对 其 越 来 越 复 杂 的 系 统 开 发 和 管 理 。 当 然 也 不<br />

能 排 除 另 一 种 可 能 ,Debian 的 角 色 会 发 生 转<br />

变 , 但 其 在 业 内 的 影 响 力 依 然 举 足 轻 重 , 或 许<br />

它 可 以 给 我 们 带 来 另 一 个 完 全 不 同 的 15 年 。<br />

动 态 程 序 设 计 语 言 和 Web 应 用 程 序 在 5<br />

年 内 会 有 如 何 变 化 ?Perl、PHP、Python 和<br />

Ruby 等 脚 本 语 言 的 未 来 前 景 又 将 如 何 ?<br />

选 择 正 确 的 语 言 和 库 会 使 以 后 的 工 作 更 简<br />

10 种 力 量 决 定 脚 本 语 言 的 未 来<br />

单 , 因 为 最 热 门 的 语 言 能 吸 引 更 多 的 开 发 者 ,<br />

能 向 其 中 引 入 最 新 的 创 意 ; 选 择 错 误 的 语 言 则<br />

会 令 你 陷 身 泥 潭 , 以 后 也 没 有 几 个 人 能 提 供 帮<br />

助 。Slashdot 创 始 人 之 一 Rob Malda 表 示 ,<br />

当 初 选 择 Perl 是 因 为 CPAN(Perl 综 合 典 藏 网 )<br />

中 包 含 了 许 多 优 秀 的 组 件 , 具 有 很 多 优 点 。 他<br />

说 “1997 年 CPAN 的 开 发 极 为 活 跃 , 能 快 速<br />

的 找 到 有 用 的 东 西 。” 但 今 天 的 情 况 不 再 如 此 。<br />

现 在 多 数 开 发 者 在 精 通 HTML 后 首 先 学 的 是<br />

PHP, 当 然 PHP 不 是 没 有 问 题 , 有 些 人 仍 旧 认<br />

为 Perl 和 Python 吸 引 了 最 杰 出 的 视 程 序 为 艺<br />

术 的 开 发 天 才 , 他 们 有 能 力 让 目 前 不 流 行 的 语<br />

言 变 成 一 个 杰 出 的 平 台 。InfoWorld 列 出 了 10<br />

大 能 推 动 脚 本 语 言 在 未 来 兴 旺 的 力 量 : 包 括 了<br />

语 义 障 碍 , 社 区 的 重 要 性 , 现 代 架 构 的 适 应 性<br />

等 等 。<br />

开 源 时 代 2008 年 10 月 刊 - 27 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

通 常 情 况 下 , 一 个 开 发 语 言 的 新 版 本 都 会<br />

保 持 向 后 兼 容 原 来 的 老 版 本 , 但 是 在 2000 年 ,<br />

Python 语 言 的 创 始 人 Guido van Rossum 宣<br />

布 , 他 将 跨 入 一 个 新 的 Python 版 本 ,3.0 版 本<br />

将 不 会 向 后 兼 容 。 现 在 Python 3.0 RC 候 选 版<br />

本 已 经 发 布 , 正 式 版 本 将 在 这 个 月 月 底 发 布 。<br />

开 发 者 也 许 会 无 法 接 受 语 言 新 版 本 的 用 法<br />

和 老 的 代 码 不 兼 容 , 但 是 对 于 Rossum 来 说 ,<br />

激 进 的 升 级 是 必 要 的 。 语 言 如 果 能 用 无 数 种 方<br />

式 做 同 一 件 事 情 , 那 么 应 该 做 的 工 作 没 有 人 真<br />

正 做 到 了 。3.0 的 发 布 是 一 个 重 要 动 作 ,<br />

Rossum 说 , 这 是 要 让 python 语 言 有 更 好 的<br />

基 础 向 前 迈 进 。<br />

Python3.0 将 面 市 : 一 个 巨 大 的 改 变<br />

一 , 而 且 很 优 雅 。 但 是 Python 的 简 单 正 在 遏<br />

制 自 己 的 增 长 , 在 整 个 90 年 代 , 不 停 有 新 的 功<br />

能 和 属 性 进 入 python 语 言 , 但 是 不 一 致 开 始<br />

在 整 个 平 台 上 显 现 出 来 。 Rossum 说 , 我 们 开<br />

始 慢 慢 逝 去 了 简 单 的 优 势 , 我 们 必 须 打 破 向 后<br />

兼 容 性 , 停 止 语 言 定 义 的 膨 胀 , 虽 然 这 种 转 变<br />

发 生 的 非 常 缓 慢 , 几 乎 难 以 察 觉 。Python 语 法<br />

改 变 有 一 系 列 的 列 表 , 有 些 改 变 很 小 , 可 能 被<br />

忽 略 , 有 些 程 序 员 可 以 迅 速 接 受 : 比 如 去 除<br />

print 语 句 , 加 入 print() 函 数 实 现 相 同 的 功 能 。<br />

同 样 的 还 有 exec 语 句 , 已 经 改 为 exec() 函 数 。<br />

去 除 了 , 全 部 改 用 !=。<br />

如 何 转 换 ?<br />

Python 3.0 改 变 了 什 么 ?<br />

从 某 种 意 义 来 说 ,Python 已 经 成 为 自 身 成<br />

功 的 受 害 者 。Rossum 说 ,“ 最 初 的 想 法 中 ,<br />

Python 的 使 用 范 围 很 小 , 我 真 的 没 有 想 到<br />

Python 是 如 此 成 功 , 正 在 各 种 各 样 的 应 用 中 使<br />

用 , 从 web 应 用 编 程 到 科 学 计 算 , 以 及 所 有 的<br />

一 切 类 型 程 序 。”Van Rossum 于 1990 年 创<br />

建 Python, 作 为 一 个 开 源 , 可 扩 展 , 高 层 次 的<br />

语 言 , 他 还 需 要 处 理 一 些 系 统 管 理 的 职 责 。 如<br />

今 Python 是 世 界 上 最 流 行 的 语 言 之 一 。08 年<br />

3 月 , 奥 地 利 研 究 者 Anton Ertl 通 过 在 新 闻 组<br />

发 贴 数 量 来 统 计 语 言 的 热 门 程 度 ,Python 排 在<br />

第 三 位 , 仅 次 于 C 和 Java 之 后 。<br />

今 天 , 最 容 易 来 教 别 人 如 何 编 程 的 语 言 是<br />

python,python 是 使 用 起 来 最 简 单 的 语 言 之<br />

Python 2.6 作 为 过 渡 版 本 ,2.6 可 以 帮 助<br />

开 发 者 找 到 过 时 的 程 序 代 码 , 为 3.0 版 本 做 准<br />

备 , 同 时 还 有 一 个 python 2.0 到 python 3.0<br />

的 代 码 转 换 工 具 。 当 然 也 有 很 多 人 置 疑<br />

python 3.0 是 否 必 要 , 有 可 能 升 级 被 大 多 数 不<br />

愿 意 转 换 老 代 码 的 开 发 商 忽 视 , 因 此 , 它 可 能<br />

失 去 其 地 位 , 类 似 于 微 软 的 vista 没 有 取 代<br />

windows xp 成 为 事 实 流 行 标 准 。 比 如 编 写 打<br />

印 软 件 的 Aahz Maruch 负 责 的 工 程 ,Page<br />

DNA 项 目 , 有 超 过 20 万 行 代 码 需 要 转 换 , 这<br />

是 将 是 一 个 巨 大 的 工 作 ,Maruch 说 道 , 我 们<br />

将 等 待 几 年 后 的 自 动 翻 译 工 具 来 改 善 , 我 们 甚<br />

至 没 有 谈 到 3.0, 打 算 等 它 发 布 两 三 年 以 后 。 今<br />

天 Python 主 要 的 实 现 是 CPython, 这 是 一 个<br />

用 C 写 的 Python 翻 译 器 , 而 且 还 有 其 他 的<br />

Python 实 现 , 比 如 JPython(Python in<br />

Java),IronPython ( 用 微 软 .<strong>net</strong> 通 用 运 行 时 语<br />

言 编 写 的 Python), 以 及 PyPy( 一 个 用 Python<br />

写 的 Python 翻 译 器 )。<br />

不 管 怎 样 ,Python 的 核 心 开 发 团 队 对 推 广<br />

Python 3.0 非 常 有 信 心 ,Rossum 认 为 人 们 使<br />

用 2.6 从 现 在 开 始 不 到 一 年 就 会 转 移 到 3.0 版 本<br />

上 , 他 同 时 建 议 : 你 如 果 开 始 一 个 新 的 Python<br />

项 目 , 你 绝 对 应 该 使 用 3.0。 让 我 们 祝 Python<br />

3.0 取 得 成 功 。<br />

开 源 时 代 2008 年 10 月 刊 - 28 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

专 家 专 栏<br />

*******************************************************************************************************<br />

“ 黑 屏 ” 是 国 产 开 源 软 件 发 展 的 契 机 吗 ?<br />

“ 黑 屏 ” 事 件 以 来 , 我 们 看 到 了 国 产 软 件 厂 商 的 一 系 列 市 场 动 作 。 金 山 求 伯 君 、 永 中 科 技 曹 参<br />

频 频 在 媒 体 上 发 表 观 点 并 积 极 推 广 自 身 的 产 品 , 其 他 国 产 软 件 厂 商 如 中 标 软 件 ( 桌 面 +OFFICE)58 元<br />

计 划 、 红 旗 2000 发 布 RedOffice 4.0 学 生 一 元 体 验 计 划 、 中 科 红 旗 将 大 力 推 进 49 元 个 人 版 本 等 等 。<br />

在 厂 商 看 来 这 或 许 是 一 次 机 会 , 扩 大 市 场 份 额 的 机 会 , 积 极 入 市 是 一 种 进 步 。 但 “ 黑 屏 ” 事 件 真 是<br />

国 产 软 件 发 展 的 契 机 吗 ? 我 们 是 否 应 该 反 思 ? 难 道 国 产 软 件 的 发 展 战 略 里 , 只 能 靠 这 种 偶 然 事 件 才<br />

能 得 到 发 展 ? 如 果 没 有 微 软 的 “ 黑 屏 ” 事 件 , 国 产 软 件 的 出 路 又 在 那 里 ? 政 府 支 持 力 度 不 够 ? 还 是<br />

企 业 产 品 与 市 场 策 略 有 问 题 ?<br />

国 产 软 件 问 题 在 那 里 ?<br />

中 联 部 信 息 办 副 主 任 任 锦 华 接 受 记 者 采 访 时 给 记 者 举 了 一 个 例 子 , 这 或 许 就 是 国 产 软 件 问 题 之<br />

所 在 。 任 锦 华 谈 到 :“20 年 前 , 对 于 WPS, 政 府 支 持 力 度 不 可 谓 不 大 ,WPS 员 工 不 能 说 不 努 力 ,<br />

也 不 能 说 WPS 产 品 不 行 。 但 最 终 我 们 看 到 的 效 果 并 不 理 想 。 这 是 因 为 什 么 ?”<br />

任 锦 华 接 着 谈 到 “ 这 是 因 为 WPS 没 有 形 成 一 套 完 整 的 产 业 链 , 没 有 一 套 完 整 的 解 决 方 案 。 当 时<br />

的 WPS 要 依 附 微 软 的 Windows 操 作 系 统 。 我 们 知 道 , 微 软 产 品 不 仅 仅 有 操 作 系 统 、 办 公 软 件 , 还<br />

有 数 据 库 、 开 发 平 台 等 等 其 他 一 系 列 配 套 产 品 。 微 软 有 着 一 套 完 整 的 自 主 体 系 。 自 主 体 系 非 常 重 要 。<br />

中 国 信 息 化 市 场 目 前 完 全 被 外 企 控 制 。 做 信 息 化 的 最 高 境 界 是 标 准 而 不 是 技 术 。 中 国 单 一 标 准 有 不<br />

少 , 但 成 系 统 的 标 准 却 没 有 , 因 此 我 们 国 家 这 次 推 出 了 自 己 的 标 准 UOF( 标 文 通 )。 UOF 是 个 历 史 性<br />

转 折 , 中 央 外 联 部 是 在 07 年 11 月 从 原 国 家 信 息 化 办 公 室 ( 现 为 工 业 和 信 息 化 部 ) 接 到 的 任 务 , 要 把 中<br />

央 外 联 部 作 为 UOF 的 试 点 单 位 , 在 中 联 部 门 进 行 UOF 试 点 过 程 中 , 参 与 该 项 目 的 国 产 软 件 企 业 有<br />

40 多 家 ,80 多 个 软 件 产 品 。 大 家 按 照 一 个 标 准 来 做 , 这 样 我 们 才 能 提 供 一 套 完 整 的 , 有 竞 争 力 的 信<br />

息 化 解 决 方 案 。”<br />

从 任 副 主 任 的 谈 话 我 们 不 难 看 出 , 政 府 力 挺 国 产 软 件 的 态 度 是 坚 决 的 , 力 度 也 是 强 劲 的 。 当 然<br />

国 产 软 件 企 业 也 需 要 摆 正 心 态 , 积 极 入 市 。 一 味 躺 在 那 儿 叫 穷 , 等 着 政 府 部 门 的 扶 持 永 远 无 法 走 向<br />

成 功 。“ 黑 屏 ” 事 件 带 给 我 们 的 思 考 不 仅 仅 是 事 件 本 身 , 更 多 的 是 国 产 软 件 发 展 之 路 该 怎 么 走 ? 如<br />

何 走 ?<br />

“ 黑 屏 ” 事 件 回 顾 :<br />

近 日 , 微 软 的 “ 黑 屏 ” 事 件 闹 的 是 满 城 风 雨 , 人 心 惶 惶 。 个 人 用 户 担 心 电 脑 不 能 正 常 使 用 。 企<br />

业 用 户 不 仅 担 心 电 脑 不 能 正 常 使 用 , 更 担 心 被 微 软 告 上 法 庭 。<br />

虽 然 随 后 微 软 全 球 资 深 副 总 裁 、 微 软 中 国 董 事 长 张 亚 勤 出 面 进 行 安 抚 :“ 我 们 这 么 做 , 不 是 为 了<br />

釜 底 抽 薪 打 盗 版 , 只 是 为 了 帮 助 用 户 识 别 自 己 电 脑 中 的 软 件 是 不 是 正 版 , 以 选 择 购 买 正 版 软 件 , 或<br />

者 采 取 其 他 措 施 。 同 时 , 微 软 不 会 用 自 己 拥 有 的 正 版 预 装 数 据 对 盗 版 软 件 用 户 企 业 提 起 诉 讼 。” 但<br />

微 软 此 举 撇 开 了 中 国 法 律 程 序 、 不 顾 中 国 市 场 状 况 , 霸 道 的 作 风 却 招 到 了 一 致 的 批 评 声 。<br />

“ 黑 屏 ” 带 来 的 思 考<br />

反 盗 版 当 然 是 值 得 支 持 的 一 件 事 情 , 但 针 对 中 国 这 个 特 定 的 市 场 , 微 软 的 “ 黑 屏 ” 计 划 意 欲 何<br />

开 源 时 代 2008 年 10 月 刊 - 29 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

为 ? 微 软 的 “ 黑 屏 ” 计 划 是 否 合 适 ?“ 黑 屏 ” 计 划 未 经 用 户 同 意 而 随 便 入 侵 用 户 的 计 算 机 并 强 制 插<br />

入 提 示 标 示 是 否 侵 犯 了 个 人 用 户 的 权 利 呢 ?“ 黑 屏 ” 计 划 是 否 是 国 产 软 件 发 展 的 一 次 契 机 ?<br />

任 锦 华 :“ 黑 屏 ” 意 图 就 是 垄 断<br />

( 第 一 批 “ 黑 屏 ” 中 招 用 户 界 面 )<br />

近 日 中 联 部 信 息 办 副 主 任 任 锦 华 接 受 记 者 采 访 时 谈 到 :“ 微 软 的 意 图 , 通 过 “ 黑 屏 ” 事 件 暴 露<br />

的 非 常 彻 底 , 微 软 就 是 想 垄 断 一 切 。 微 软 的 策 略 是 , 有 钱 买 正 版 , 没 钱 用 盗 版 。 但 不 能 用 别 人 的 。<br />

微 软 现 在 还 未 做 到 一 家 独 大 , 如 果 没 有 Linux, 微 软 或 许 手 段 更 狠 。 其 目 的 就 是 为 了 扼 杀 竞 争 对 手 。<br />

”<br />

胡 才 勇 :“ 黑 屏 ” 不 意 外 , 微 软 高 层 坦 诚 受 益 盗 版<br />

红 旗 2000 总 经 理 胡 才 勇 则 认 为 , 此 事 其 实 并 不 意 外 , 因 为 早 在 1998 年 , 比 尔 盖 兹 就 曾 经 说 过 :<br />

“And as long as they`re going to steal it, we want them to steal ours.” 并 表 示 , 十 年 之 后 ,<br />

等 他 们 上 瘾 了 , 我 们 会 想 出 办 法 把 钱 收 回 来 。 无 独 有 偶 ,2007 年 3 月 , 微 软 商 业 集 团 总 裁 杰 夫 • 莱<br />

基 斯 (Jeff Raike) 在 摩 根 斯 坦 利 科 技 会 议 上 表 示 :“ 如 果 你 要 使 用 盗 版 软 件 , 那 么 请 使 用 盗 版 微 软 软<br />

件 , 而 不 是 其 它 公 司 的 产 品 。” 他 在 谈 话 中 解 释 了 这 一 言 论 的 理 由 : 正 是 由 于 盗 版 软 件 的 存 在 , 很<br />

多 可 能 永 远 不 会 接 触 微 软 产 品 的 消 费 者 最 终 成 为 了 微 软 用 户 。 很 明 显 , 微 软 的 美 国 高 层 是 承 认 自 己<br />

也 是 盗 版 的 受 益 者 的 。 因 此 , 虽 然 “ 黑 屏 ” 这 种 方 式 不 可 预 见 , 但 微 软 收 割 的 意 图 是 明 确 的 。 微 软<br />

最 擅 长 的 就 是 恐 吓 要 挟 式 营 销 , 比 如 以 前 采 用 的 发 律 师 函 。 希 望 微 软 把 握 好 “ 善 意 提 醒 ” 的 尺 度 。<br />

韩 乃 平 : 国 产 软 件 当 自 强<br />

中 标 软 件 总 经 理 韩 乃 平 指 出 微 软 的 黑 屏 事 件 再 一 次 给 我 国 的 信 息 产 业 敲 响 了 警 钟 , 我 国 操 作 系<br />

统 和 办 公 软 件 的 发 展 长 期 滞 后 于 我 国 信 息 化 发 展 水 平 , 信 息 产 业 的 基 础 核 心 技 术 一 直 握 在 国 外 的 厂<br />

商 手 中 , 这 个 潜 在 隐 患 的 突 然 爆 发 让 全 国 都 陷 入 在 “ 人 为 刀 俎 、 我 为 鱼 肉 ” 的 尴 尬 境 地 。 在 这 里 ,<br />

我 们 不 禁 还 要 说 , 只 有 致 力 于 发 展 自 己 的 民 族 信 息 产 业 , 加 速 我 国 自 主 产 权 的 操 作 系 统 的 发 展 , 使<br />

之 成 为 具 有 国 际 水 平 的 产 品 才 是 能 够 解 决 这 种 尴 尬 局 面 的 唯 一 途 径 。<br />

董 正 伟 :“ 黑 屏 ” 是 犯 罪 行 为<br />

开 源 时 代 2008 年 10 月 刊 - 30 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

有 消 息 称 , 昨 日 (21 日 ) 北 京 市 中 银 律 师 事 务 所 律 师 董 正 伟 昨 天 向 公 安 部 递 交 举 报 信 , 直 指 微 软<br />

的 黑 屏 计 划 属 于 “ 黑 客 攻 击 计 算 机 系 统 的 犯 罪 行 为 ”, 建 议 对 微 软 展 开 刑 事 侦 查 追 究 刑 事 责 任 。<br />

董 正 伟 称 微 软 实 施 的 “ 黑 屏 ” 强 制 性 正 版 计 划 是 未 经 计 算 机 用 户 同 意 和 司 法 裁 判 , 就 私 自 侵 入<br />

计 算 机 用 户 电 脑 系 统 并 干 扰 破 坏 , 不 但 破 坏 了 计 算 机 用 户 的 系 统 功 能 , 而 且 还 造 成 一 些 计 算 机 用 户<br />

信 息 安 全 受 到 威 胁 , 这 种 做 法 等 同 于 黑 客 攻 击 入 侵 , 涉 嫌 “ 破 坏 计 算 机 信 息 系 统 罪 ” 和 “ 非 法 侵 入<br />

计 算 机 信 息 系 统 罪 ” 犯 罪 行 为 。<br />

倪 光 南 : 盗 版 对 国 产 软 件 危 害 大 于 跨 国 软 件<br />

中 国 工 程 院 院 士 倪 光 南 指 出 盗 版 对 本 国 软 件 公 司 的 危 害 远 大 于 对 跨 国 软 件 公 司 的 危 害 。 我 们 不<br />

是 为 应 付 跨 国 公 司 的 压 力 搞 正 版 化 , 而 是 为 本 国 软 件 公 司 的 生 存 和 发 展 为 了 国 家 信 息 安 全 搞 正 版 。<br />

央 视 : 不 掌 握 核 心 技 术 , 只 能 “ 人 为 刀 俎 , 我 为 鱼 肉 ”<br />

20 日 中 午 ,CCTV 新 闻 30 分 栏 目 关 注 和 报 道 了 微 软 黑 屏 事 件 , 并 发 表 短 评 。CCTV 认 为 , 面<br />

对 微 软 的 黑 屏 计 划 , 不 管 用 的 是 正 版 还 是 盗 版 , 用 户 只 能 选 择 接 受 。 用 惯 了 windows 操 作 系 统 的<br />

国 内 电 脑 用 户 , 现 在 终 于 体 会 到 了 什 么 叫 “ 人 为 刀 俎 , 我 为 鱼 肉 ”。 这 就 是 不 掌 握 核 心 技 术 的 无 奈 ,<br />

这 就 是 核 心 技 术 被 别 人 垄 断 时 用 户 不 得 不 面 对 的 结 果 —— 受 制 于 人 、 而 且 只 能 接 受 。<br />

开 源 时 代 2008 年 10 月 刊 - 31 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

技 术 活 动<br />

*******************************************************************************************************<br />

<strong>China<strong>Unix</strong></strong> 技 术 沙 龙 北 京 站 : 开 源 负 载 均 衡 技 术 应 用<br />

金 色 九 月 , 秋 高 气 爽 , 刚 刚 告 别 了 奥 运 和 残 奥 会 后 , 北 京 又 恢 复 了 她 往 日 的 宁 静 。<br />

2008 年 9 月 20 日 ,<strong>China<strong>Unix</strong></strong> 技 术 沙 龙 如 期 举 行 , 这 次 沙 龙 的 主 题 是 开 源 负 载 均 衡 技 术 , 会 场<br />

由 新 东 方 提 供 , 讲 师 则 是 来 自 社 区 的 热 心 网 友 和 业 界 的 资 深 工 程 师 。 这 次 技 术 沙 龙 活 动 是 我 们 社 区<br />

线 上 技 术 讨 论 的 一 个 延 续 , 在 CU 网 络 技 术 版 和 Linux 网 络 问 题 版 , 负 载 均 衡 技 术 的 线 上 讨 论 气 氛 十<br />

分 活 跃 , 为 了 满 足 用 户 线 下 交 流 的 期 望 , 我 们 组 织 了 这 场 技 术 沙 龙 。 预 计 160 人 左 右 的 会 场 涌 入 超<br />

过 200 名 听 众 , 再 次 说 明 了 这 个 话 题 是 业 内 的 技 术 热 点 。<br />

如 今 , 不 少 企 业 的 网 络 流 量 越 来 越 大 , 服 务 器 压 力 越 来 越 大 , 网 络 瓶 颈 越 来 越 严 重 。 低 下 的 应<br />

用 网 络 访 问 速 度 , 服 务 器 时 常 宕 机 , 提 高 接 入 带 宽 和 升 级 硬 件 成 本 高 , 因 昂 贵 的 硬 件 负 载 均 衡 解 决<br />

方 案 而 无 法 得 到 领 导 批 准 。 南 北 互 通 问 题 一 直 困 扰 着 大 家 。 如 何 用 多 线 接 入 来 解 决 南 北 互 通 问 题 呢 ?<br />

因 此 , 我 们 希 望 采 用 一 种 廉 价 有 效 的 负 载 均 衡 手 段 解 决 以 上 问 题 ( 当 然 , 低 成 本 的 负 载 均 衡 技<br />

术 的 解 决 范 围 是 有 限 的 ), 正 是 基 于 这 样 的 现 实 行 业 背 景 ,<strong>China<strong>Unix</strong></strong> 组 织 了 负 载 均 衡 技 术 应 用 讨<br />

论 , 其 讨 论 范 围 包 括 : 服 务 器 负 载 均 衡 、 访 问 优 化 、 链 路 负 载 均 衡 , 解 决 南 北 互 通 问 题 ; 重 点 提 到<br />

了 haproxy、nginx、LVS、Squid、DNS 动 态 解 析 , 以 及 部 分 商 业 负 载 均 衡 解 决 方 案 等 。<br />

通 过 线 上 和 线 下 的 用 户 调 查 显 示 , 参 加 本 次 活 动 的 用 户 , 有 超 过 一 半 使 用 过<br />

haproxy、nginx、LVS、Squid 等 开 源 技 术 ; 至 少 20% 用 户 单 位 已 经 部 署 了 硬 件 的 负 载 均 衡 产 品 , 例<br />

如 F5/<strong>net</strong>scaler/radware 等 产 品 ; 有 一 半 以 上 的 用 户 来 自 网 站 企 业 , 基 于 网 站 开 展 业 务 的 企 业 , 例 如<br />

慧 聪 网 、Sina、 博 宝 网 、 蓝 港 在 线 、 联 播 网 等 等 。 可 见 , 网 站 企 业 对 这 块 的 需 求 的 确 很 大 。<br />

虽 然 说 一 次 技 术 沙 龙 , 再 加 上 线 上 交 流 , 在 有 限 的 时 间 里 , 并 不 能 让 一 个 网 友 学 到 太 多 内 容 ,<br />

探 讨 太 深 的 话 题 。 但 是 这 让 大 家 对 特 定 的 技 术 领 域 有 了 一 定 的 认 识 , 更 重 要 的 是 , 通 过 相 互 交 流 ,<br />

大 家 可 以 学 到 很 多 技 术 以 外 的 东 西 , 比 如 如 何 把 握 学 习 和 工 作 重 点 、 业 界 发 展 和 研 究 方 向 等 。<br />

本 次 沙 龙 主 要 讨 论 四 个 议 题 , 分 别 是 LVS 负 载 均 衡 、Nginx 负 载 均 衡 、 大 型 网 站 集 群 的 整 体 建<br />

设 战 略 、haporxy 的 负 载 均 衡 。<strong>China<strong>Unix</strong></strong> 社 区 和 IT 分 别 邀 请 了 相 应 的 资 深 高 手 进 行 精 彩 讲 解 , 依<br />

次 为 田 逸 、 张 宴 、Metoo2008、HonestQiao, 沙 龙 主 持 人 为 草 上 飞 2008。<br />

在 LVS 负 载 均 衡 这 块 , 我 们 邀 请 到 了 田 逸 , 作 为 多 年 的 资 深 系 统 管 理 员 , 精 通 linux/unix 等 操<br />

作 系 统 , 以 及 复 杂 的 网 络 负 载 均 衡 工 程 实 战 经 验 。 针 对 Nginx 这 块 , 我 们 邀 请 了 张 宴 进 行 讲 解 。 张<br />

宴 曾 在 新 浪 等 公 司 任 系 统 工 程 师 、 系 统 架 构 师 , 具 有 系 统 架 构 设 计 与 部 署 、 系 统 运 维 与 调 优 等 丰 富<br />

经 验 。 第 三 个 议 题 的 演 讲 人 来 自 F5 公 司 , 他 对 目 前 这 个 行 业 的 历 史 和 趋 势 做 一 个 简 要 的 阐 述 , 能 够<br />

给 大 家 更 多 的 技 术 以 外 的 知 识 。 来 自 CU 社 区 的 HonestQiao 给 大 家 讲 了 haproxy 的 负 载 均 衡 技 术 ,<br />

作 为 资 深 的 php 程 序 开 发 人 员 , 他 不 仅 精 通 php 程 序 设 计 , 还 在 linux/unix 系 统 管 理 以 及 网 络 负 载<br />

开 源 时 代 2008 年 10 月 刊 - 32 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

均 衡 方 面 有 很 深 的 造 诣 。<br />

下 面 是 这 次 活 动 的 相 关 图 片 和 技 术 资 料 , 以 飨 读 者 。 篇 幅 有 限 , 部 分 内 容 链 接 到 <strong>China<strong>Unix</strong></strong> 网 站 。<br />

文 字 实 录 :Lvs+keepalived 服 务 器 负 载 均 衡<br />

PPT 下 载 :Lvs 搞 定 服 务 器 负 载 均 衡<br />

主 题 讨 论 、 提 问 :LVS 的 应 用 问 题<br />

文 字 速 录 : 使 用 Nginx 轻 松 实 现 开 源 负 载 均 衡<br />

PPT 下 载 : 使 用 Nginx 轻 松 实 现 开 源 负 载 均 衡<br />

主 题 讨 论 、 提 问 : 论 Nginx 负 载 均 衡<br />

演 讲 视 频 下 载 :haproxy 搞 定 负 载 均 衡<br />

文 字 速 录 : 主 题 讲 解 :haproxy 的 使 用 经 验<br />

主 题 讨 论 、 提 问 :haproxy 技 术 应 用 讨 论<br />

文 字 速 录 : 网 站 集 群 建 设<br />

PPT 下 载 : 网 站 集 群 建 设<br />

主 题 讨 论 : 论 整 体 网 站 负 载 均 衡 建 设<br />

开 源 时 代 2008 年 10 月 刊 - 33 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

行 业 观 察<br />

*******************************************************************************************************<br />

前 言<br />

过 去 一 个 月 来 , 自 从 Linux 内 核 社 区 主 要 开 发 人 员 Greg Kroah-Hartman 在 内 核 大 会 上 对<br />

Ubuntu 发 出 挑 战 开 始 , 整 个 开 源 社 区 对 Ubuntu 的 争 论 也 持 续 了 一 个 多 月 之 久 , 大 家 对 问 题 的 认 识<br />

也 上 升 到 了 一 个 新 的 高 度 。 目 前 看 来 , 对 Ubuntu 诟 病 的 远 不 止 一 个 Greg Kroah-Hartman, 其 实<br />

国 内 社 区 的 部 分 Linux 用 户 也 早 对 Ubuntu 的 某 些 做 法 心 存 不 满 。 来 自 newsmth 社 区 LinuxApp 版<br />

的 一 位 名 为 cppgx 的 网 友 , 更 是 以 一 篇 攻 击 Ubunbu 的 大 字 报 在 社 区 中 惹 得 争 议 不 断 。<br />

cppgx 网 友 炮 轰 Ubuntu Linux 发 行 版<br />

Ubuntu 根 本 就 是 个 祸 害 开 源 社 区 发 行 版 。<br />

资 本 家 是 “ 无 利 不 起 早 ” 的 。<br />

新 人 用 Ubuntu 系 列 是 最 不 明 智 的 选 择 ,<br />

因 为 很 难 利 用 到 别 人 的 经 验 。Ubuntu 修 改 了<br />

太 多 东 西 造 就 了 和 其 它 发 行 版 的 不 兼 容 。<br />

Ubuntu 通 过 大 量 散 发 免 费 光 盘 圈 走 很 大 一 部<br />

分 初 级 用 户 , 这 部 分 用 户 自 行 解 决 问 题 能 力 相<br />

对 较 差 , 当 遇 到 问 题 而 又 因 为 系 统 和 别 人 不 兼<br />

容 而 无 法 获 得 别 人 帮 助 时 , 最 终 将 屈 服 于<br />

Ubuntu 而 购 买 Ubuntu 的 服 务 。<br />

这 种 称 作 糖 衣 炮 弹 的 诈 骗 手 段 古 往 今 来 屡<br />

试 不 爽 。 实 际 上 微 软 也 这 样 , 只 不 过 微 软 是 通<br />

过 放 纵 盗 版 来 圈 客 户 , 并 且 微 软 的 Windows<br />

好 歹 还 有 很 大 一 部 分 是 它 自 己 编 的 ;Ubuntu<br />

则 明 着 圈 初 学 者 , 并 且 利 用 的 工 具 也 基 本 上 不<br />

是 它 自 己 的 , 而 是 GNU/Linux。( 按 : 在 以 上<br />

大 字 报 贴 出 一 年 后 ,Ubuntu 果 然 提 供 了 比 买<br />

Windows Vista 还 贵 的 收 费 服 务 。)<br />

由 于 Ubuntu 直 接 抄 袭 Debian 的 特 色 内<br />

容 , 所 以 有 的 网 友 称 Ubuntu 为 “ 番 茄 花 园 版<br />

的 Debian”。 这 个 系 列 的 发 行 版 以 标 新 立 异<br />

为 荣 , 轻 率 修 改 关 键 代 码 , 对 用 户 极 不 负 责 。<br />

例 如 对 随 机 数 发 生 器 的 非 官 方 修 改 导 致<br />

openssl 密 钥 容 易 重 复 , 直 到 现 在 Ubuntu 还<br />

在 不 断 追 加 black list, 让 其 用 户 苦 受 倒 悬 之 危 。<br />

Ubuntu 区 别 于 其 它 大 多 数 发 行 版 的 另 一 显 著<br />

特 征 就 是 临 近 版 本 之 间 改 动 极 大 。 经 常 有 人 抱<br />

怨 :“ 我 的 Ubuntu 升 级 后 不 能 启 动 了 。”<br />

( 例 如 7.04 版 升 级 到 7.10 时 , 很 多 用 户 无 法<br />

进 入 X Window.)<br />

同 时 Ubuntu 为 了 进 一 步 增 加 用 户 的 麻 烦 ,<br />

用 dash 取 代 了 bash, 带 来 繁 多 的 兼 容 问 题 。<br />

不 幸 的 是 , 在 其 自 身 的 论 坛 上 ,Ubuntu 被 证<br />

实 在 一 些 只 兼 容 dash 的 脚 本 开 头 使 用 了<br />

#!/bin/sh 而 不 是 #!/bin/dash, 从 而 自 掘 坟 墓 ,<br />

损 人 害 己 。 由 此 可 见 Ubuntu 本 身 就 不 是 一 个<br />

严 肃 的 产 品 , 不 适 合 作 为 操 作 系 统 使 用 。 只 有<br />

让 用 户 经 常 遇 到 麻 烦 , 为 Ubuntu 提 供 服 务 的<br />

公 司 才 能 最 大 限 度 地 赚 钱 。 要 多 赚 钱 , 不 但 要<br />

让 每 个 用 户 多 使 用 服 务 , 还 要 扩 大 用 户 群 。 这<br />

就 要 从 Windows 世 界 不 择 手 段 地 拉 拢 用 户 。<br />

Ubuntu 为 了 讨 好 Windows 用 户 不 惜 东 施 效 颦 。<br />

作 出 了 一 些 破 坏 *nix 惯 例 的 修 改 , 例 如 学 习<br />

Windows 的 Program Files 目 录 , 将 不 同 软 件<br />

装 到 各 自 的 目 录 而 不 是 分 散 在 统 一 目 录 结 构 中 ,<br />

导 致 类 似 tkConfig 失 效 等 Ubuntu 特 有 问 题 。<br />

综 上 所 述 ,Ubuntu 完 全 就 是 一 个 用 砸 钱<br />

的 办 法 耧 取 商 业 利 益 同 时 祸 害 自 由 软 件 社 区 的<br />

发 行 版 。 一 般 人 无 论 是 从 自 身 利 益 还 是 从 社 会<br />

责 任 考 虑 , 都 不 应 该 主 动 使 用 Ubuntu。<br />

开 源 时 代 2008 年 10 月 刊 - 34 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Linux 内 核 社 区 :Ubuntu 贡 献 几 乎 为 零<br />

Greg Kroah-Hartman 终 于 忍 不 住 发 飙 了 。<br />

他 在 最 近 的 Linux Plumbers Conference<br />

2008 的 主 题 演 讲 中 , 直 言 不 讳 的 指 责 Ubuntu<br />

社 区 的 背 后 公 司 Canonical, 认 为 他 们 对<br />

Linux 社 区 贡 献 微 弱 , 特 别 是 在 内 核 方 面 几 乎 为<br />

零 。<br />

在 他 的 演 讲 ppt 中 , 他 指 出 ,Ubuntu 社 区<br />

对 内 核 的 贡 献 非 常 少 , 在 过 去 的 5 年 中 , 仅 仅<br />

提 交 了 100 个 左 右 的 内 核 补 丁 。 而 在 此 同 时 ,<br />

Linux 内 核 小 组 收 到 了 差 不 多 10 万 多 个 内 核 补<br />

丁 提 交 ,Ubuntu 的 贡 献 只 是 占 到 0.1%。 远 远<br />

落 后 于 其 他 两 个 Linux 发 行 版 厂 商 Red Hat 和<br />

Novell, 这 两 者 分 居 Linux 内 核 贡 献 的 前 两 位 。<br />

对 此 ,Ubuntu 社 区 运 营 公 司 Canonical<br />

坐 不 住 了 ,Ubuntu CEO Matt Zimmerman<br />

站 了 出 来 。 他 认 为 ,Greg Kroah-Hartman 的<br />

言 论 实 在 令 人 作 呕 , 他 的 统 计 方 法 不 科 学 。 此<br />

外 ,Ubuntu 并 没 有 说 他 们 在 内 核 方 面 做 得 比<br />

Red hat 和 Novell 好 。Ubuntu 内 核 大 部 分 是<br />

由 原 始 的 Linux 内 核 源 码 组 成 。Zimmerman<br />

还 提 到 了 Kroah-Hartman 定 义 的 “Linux 生 态<br />

系 统 ” 概 念 , 他 认 为 , 后 者 的 定 义 实 在 太 奇 怪<br />

了 。Kroah-Hartman 定 义 的 “Linux 生 态 系 统<br />

” 中 包 括 了 GCC、binutils、X.org 和 Glibc<br />

等 , 但 是 却 无 视 那 些 普 通 Linux 用 户 的 认 知 ,<br />

因 为 普 通 用 户 一 直 习 惯 认 为 , 比 如 桌 面 环 境 系<br />

统 GNOME 和 KDE、 桌 面 和 服 务 器 应 用 程 序 等<br />

等 这 些 都 应 该 是 Linux 组 成 部 分 。 不 仅 如 此 ,<br />

Zimmerman 还 指 出 ,Kroah-Hartman 和<br />

Novell 存 在 雇 佣 关 系 , 而 Novell 正 是 Ubuntu<br />

在 桌 面 Linux 市 场 上 的 主 要 竞 争 对 手 之 一 。<br />

Ubuntu 的 CEO 还 不 屈 不 挠 的 指 出 , 应 该 就 此<br />

事 在 会 议 主 题 发 言 下 展 开 一 个 讨 论 , 考 虑 所 有<br />

必 要 的 因 数 , 为 Ubuntu 的 贡 献 要 讨 回 一 个 公<br />

道 。<br />

Greg Kroah-Hartman: 目 前 的 Linux 内<br />

核 主 要 维 护 者 之 一 , 主 要 负 责 Linux 架 构 下<br />

USB, PCI, I2C 等 设 备 驱 动 维 护 , 目 前 供 职 于<br />

Novell。 经 典 的 《Linux Device Drivers》 第 三<br />

版 的 作 者 。<br />

为 Ubuntu 辩 护 , 人 人 有 责<br />

作 者 : 袁 萌<br />

近 日 , 有 一 篇 抨 击 Ubuntu 发 行 版 的 “ 猛<br />

文 ” 在 网 上 广 为 流 传 , 影 响 不 小 。 这 里 面 有 什<br />

么 背 景 ? 作 者 是 何 用 意 ? 这 股 歪 风 从 何 而 来 ?<br />

9 月 19 日 ,Novell 公 司 的 Linux 内 核 开 发<br />

高 手 Greg Kroah-Hartman 在 《 国 际 Linux 内<br />

核 维 修 者 》 大 会 上 , 率 先 对 Ubuntu 主 要 支 持<br />

者 Canonical 公 司 发 难 , 指 责 Canonical 公<br />

司 对 Linux 内 核 贡 献 “ 极 少 ”, 在 过 去 3 年 中 ,<br />

Canonical 总 共 才 提 交 了 100 个 补 丁 程 序 , 占<br />

此 期 间 Linux 内 核 补 丁 程 序 总 数 的 0.1%。 由 此 ,<br />

Greg 的 真 正 意 思 是 说 :Ubuntu 对 “Linux 生<br />

态 系 统 ” 的 贡 献 “ 极 小 ”。 这 一 非 常 怪 异 的 说<br />

法 和 看 问 题 的 立 场 和 视 角 , 立 即 遭 到 业 界 相 关<br />

人 士 的 猛 烈 反 击 。<br />

有 关 业 内 人 士 指 出 : 一 方 面 , 在 过 去 几 年<br />

中 ,Linux 内 核 的 演 变 轨 迹 主 要 涉 及 服 务 器 支 持<br />

方 面 , 触 及 桌 面 应 用 (Ubuntu 的 主 攻 方 向 )<br />

的 因 素 很 少 , 另 一 方 面 ,Canonical 在 全 球 的<br />

开 源 时 代 2008 年 10 月 刊 - 35 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

员 工 只 有 130 人 , 相 对 Novell(4,100 名 ) 和<br />

IBM(38 万 名 ) 而 言 , 是 一 个 很 小 的 公 司 , 因<br />

而 ,Canonical 公 司 对 Linux 内 核 提 交 的 补 丁<br />

程 序 必 然 较 少 , 这 是 完 全 可 以 理 解 的 。 近 年 来 ,<br />

Ubuntu 实 际 上 创 造 了 全 球 近 一 半 的 Linux 的 桌<br />

面 基 础 用 户 , 毫 无 疑 问 , 这 是 对 Linux 生 态 系<br />

统 的 最 大 贡 献 。 与 此 同 时 , 业 内 人 士 指 出 ,<br />

Greg 是 Novell 公 司 的 雇 员 , 大 家 知 道 ,<br />

Novell 是 Ubuntu 进 入 企 业 级 市 场 的 竞 争 对 手 。<br />

Greg 如 此 乱 发 议 论 , 不 能 令 人 信 服 。<br />

( 容 我 以 后 撰 文 再 议 ), 这 里 我 们 要 问 , 为 何<br />

猛 文 要 如 此 集 中 发 力 , 猛 烈 攻 击 Ubuntu?<br />

国 际 上 这 股 攻 击 Ubuntu 的 歪 风 , 不 知 怎<br />

么 搞 的 , 很 快 刮 到 我 国 境 内 ,“ 猛 文 ” 便 是 一<br />

例 。 猛 者 , 勇 猛 之 意 也 , 就 是 把 力 气 集 中 地 使<br />

出 来 。 果 真 如 此 ,“ 猛 文 ” 一 开 口 便 断 言 :<br />

“Ubuntu 根 本 就 是 祸 害 开 源 社 区 的 发 行 版 ”,<br />

“ 新 人 用 Ubuntu 系 列 是 最 不 明 智 的 选 择 ”,<br />

理 由 是 “Ubuntu 修 改 了 太 多 的 东 西 ”,“ 与<br />

其 他 发 行 版 不 兼 容 ”, 等 等 ,“ 猛 文 ” 甚 至 还<br />

说 ,“Ubuntu 是 Debian 的 番 茄 花 园 修 改 版<br />

”。“ 猛 文 ” 宣 称 ,“Ubuntu 以 标 新 立 异 为<br />

荣 , 轻 率 修 改 关 键 代 码 , 对 用 户 极 不 负 责 任 ”,<br />

“ 临 近 版 本 之 间 改 动 极 大 ”,“ 用 户 经 常 抱 怨<br />

”, 等 等 。“ 猛 文 “ 作 者 恨 不 得 一 口 气 把<br />

Ubuntu 吃 掉 。 事 实 是 怎 样 的 , 我 们 先 不 细 说<br />

“ 猛 文 ” 作 者 不 只 是 攻 击 Ubuntu 发 行 版 ,<br />

而 是 把 攻 击 矛 头 直 接 指 向 Ubuntu 的 主 要 支 持<br />

者 Canonical 公 司 , 他 的 背 后 必 定 有 利 益 因 素<br />

动 的 , 明 显 地 代 表 了 某 种 利 益 集 团 的 切 身 利 益 。<br />

“ 猛 文 ” 说 ,“ 只 有 让 用 户 经 常 遇 到 麻 烦 , 为<br />

Ubuntu 提 供 服 务 的 公 司 ( 意 指 Canonical 公<br />

司 ) 才 能 最 大 限 度 地 赚 钱 ”,“ 要 多 赚 钱 , 不<br />

但 要 让 每 个 用 户 多 使 用 服 务 , 还 要 个 扩 大 用 户<br />

群 ”, 如 此 一 来 ,Canonical 倾 力 支 持<br />

Ubuntu 的 主 观 动 机 就 全 然 被 否 定 了 , 这 与 客<br />

观 事 实 完 全 不 符 。<br />

开 源 时 代 2008 年 10 月 刊 - 36 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

本 期 推 荐<br />

*******************************************************************************************************<br />

微 软 将 针 对 中 国 市 场 在 本 月 20 日 启 动<br />

Windows XP 专 业 版 及 Office 的 正 版 验 证 计 划 ,<br />

届 时 , 安 装 了 盗 版 Windows XP 专 业 版 的 电 脑<br />

将 被 强 行 每 小 时 “ 黑 屏 ”( 桌 面 背 景 变 为 纯 黑 色 )<br />

一 次 ,Office 的 菜 单 栏 将 被 添 加 “ 不 是 正 版 ”<br />

的 标 记 。<br />

微 软 反 盗 版 大 棒 挥 向 中 国 普 通 用 户<br />

------Linux 桌 面 市 场 重 获 新 生 ?<br />

以 往 差 别 很 大 , 以 前 需 要 用 户 主 动 下 载 , 然 后<br />

安 装 , 而 此 次 的 WGA 计 划 不 使 用 安 装 向 导 ,<br />

用 户 将 在 20 号 后 通 过 操 作 系 统 的 自 动 更 新<br />

(Microsoft update) 自 动 下 载 , 这 意 味 着<br />

WGA 和 OGA 会 在 已 打 开 自 动 更 新 的 盗 版 用<br />

户 电 脑 中 不 知 不 觉 的 下 载 , 如 果 用 户 设 定 为 自<br />

动 安 装 , 它 还 将 在 后 台 自 动 安 装 完 毕 。<br />

该 消 息 最 先 出 现 是 在 10 月 14 日 各 大 门 户<br />

网 站 科 技 频 道 的 首 页 , 紧 接 着 , 这 条 消 息 传 遍<br />

了 中 国 的 互 联 网 。 据 该 新 闻 透 露 , 这 是 一 封 来<br />

自 微 软 公 司 的 内 部 邮 件 透 露 的 , 微 软 此 次 启 动<br />

正 版 验 证 是 为 了 能 直 接 拉 动 销 售 ,“ 请 利 用 这<br />

种 机 会 向 您 的 客 户 推 荐 购 买 正 版 化 产 品 , 避 免<br />

收 到 通 知 或 遭 遇 黑 屏 。”<br />

接 着 , 在 10 月 15 日 , 微 软 中 国 公 司 官 方<br />

承 认 了 该 消 息 的 真 实 性 。2008 年 一 年 内 , 继 番<br />

茄 花 园 “ 被 撬 ”、Office 软 件 降 价 促 销 、 校 园<br />

软 件 计 划 之 后 , 微 软 的 新 正 版 验 证 计 划 被 业 界<br />

人 士 称 为 打 击 盗 版 的 第 四 板 斧 。<br />

据 邮 件 内 容 显 示 , 从 2008 年 10 月 20 日 起 ,<br />

微 软 中 国 将 同 时 推 出 两 个 重 要 更 新 ,Windows<br />

正 版 增 值 计 划 通 知 (WGA 通 知 ) 和 Office 正<br />

版 增 值 计 划 通 知 (OGA 通 知 )。 其 中 WGA<br />

针 对 WindowsXP 专 业 版 的 用 户 ,OGA 针 对<br />

Office XP、Office 2003 和 Office 2007 的 用<br />

户 , 这 两 个 通 知 可 通 过 软 件 升 级 自 动 下 载 到 用<br />

户 电 脑 中 。 此 次 WGA 安 装 到 用 户 的 方 式 也 与<br />

除 了 在 安 装 方 式 上 以 以 往 的 计 划 不 同 外 ,<br />

微 软 对 于 未 通 过 验 证 的 盗 版 用 户 所 采 取 的 强 制<br />

措 施 , 可 能 会 引 发 不 少 用 户 的 反 感 , 因 为 它 将<br />

对 用 户 使 用 电 脑 造 成 诸 多 不 变 。 在 以 往 WGA<br />

验 证 中 , 如 果 被 验 证 出 是 盗 版 系 统 , 用 户 除 了<br />

被 提 醒 是 盗 版 外 , 将 不 能 下 载 “ 增 值 ” 的 小 软<br />

件 , 此 次 没 有 通 过 WGA 验 证 的 用 户 , 开 机 起<br />

进 入 后 桌 面 背 景 将 变 为 纯 黑 色 , 用 户 需 重 设 背<br />

景 后 方 可 正 常 使 用 电 脑 , 但 每 隔 1 个 小 时 背 景<br />

将 变 回 黑 色 。 用 户 登 录 时 会 出 现 登 录 中 断 对 话<br />

框 , 并 在 屏 幕 右 下 方 出 现 一 个 永 久 通 知 和 持 续<br />

提 醒 的 对 话 框 , 显 示 “ 您 可 能 是 软 件 盗 版 的 受<br />

害 者 ”。 一 石 激 起 千 层 浪 , 微 软 这 次 打 击 盗 版<br />

的 强 硬 态 度 引 起 了 互 联 网 众 多 用 户 的 激 烈 讨 论 ,<br />

有 支 持 有 反 对 。<br />

根 据 传 统 各 大 互 联 网 媒 体 的 民 调 显 示 , 有<br />

超 过 6 成 的 网 友 对 此 表 示 反 对 , 认 为 微 软 在 中<br />

国 遭 遇 严 重 盗 版 问 题 根 源 在 于 微 软 自 身 的 定 价<br />

过 高 问 题 。 但 是 在 <strong>China<strong>Unix</strong></strong> 论 坛 中 , 却 有 着<br />

相 反 的 声 音 , 一 位 名 为 zhengwei_zw 的 发 起<br />

“ 你 支 持 微 软 在 中 国 大 陆 地 区 打 击 盗 版 吗 ?”<br />

的 投 票 中 , 竟 然 有 高 达 82% 的 网 友 支 持 这 一 行<br />

动 ! 且 不 说 Linux 用 户 和 普 通 计 算 机 用 户 在 此<br />

事 上 的 观 念 差 别 , 这 也 足 以 说 明 微 软 这 次 打 击<br />

盗 版 行 动 影 响 深 远 。 群 众 的 声 音 有 的 激 进 , 有<br />

的 保 守 , 来 自 专 家 和 企 业 的 代 表 可 能 更 加 理 性<br />

地 分 析 这 起 事 件 。<br />

开 源 时 代 2008 年 10 月 刊 - 37 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

10 月 15 日 , 微 软 官 方 承 认 本 月 20 日 起 将<br />

在 要 我 国 境 内 投 放 WGA 和 OGA, 其 目 的 是<br />

对 用 户 进 行 善 意 的 提 醒 , 以 免 受 到 ( 使 用 ) 盗 版<br />

的 危 害 。 微 软 同 时 声 称 , 用 户 可 以 不 参 加 这 一<br />

验 证 活 动 , 但 是 , 这 不 表 示 微 软 因 此 就 不 对 你<br />

进 行 善 意 的 提 醒 。 这 就 是 说 , 微 软 将 在 一 定 时<br />

间 之 内 ( 比 如 , 一 个 半 月 ) 通 知 到 所 有 XP 专 业 版<br />

用 户 , 而 不 论 你 参 加 不 参 加 这 次 验 证 活 动 。 微<br />

软 只 是 说 , 你 得 到 善 意 的 提 醒 之 后 , 可 以 继 续<br />

保 持 原 来 的 盗 版 状 态 不 受 影 响 而 已 。<br />

袁 萌 : 微 软 打 击 盗 版 的 “ 三 部 曲 ”<br />

该 明 白 这 一 点 , 不 要 感 到 委 屈 。<br />

微 软 此 举 将 对 所 有 中 国 的 XP 用 户 ( 脸 上 ,<br />

即 在 你 的 显 示 屏 上 ) 打 上 一 个 标 签 , 明 确 你 是 否<br />

是 盗 版 者 , 不 能 再 这 样 继 续 稀 里 糊 涂 下 去 了 。<br />

这 对 于 整 顿 我 们 国 内 软 件 市 场 秩 序 , 打 击 番 茄<br />

花 园 铁 杆 分 子 都 有 好 处 。 使 用 盗 版 , 没 有 关 系<br />

( 即 不 要 紧 的 意 思 ), 只 要 你 能 够 忍 受 盗 版 者 的<br />

美 名 。<br />

人 们 看 得 很 清 楚 , 执 法 ( 番 茄 花 园 )、 技 术<br />

(WGA 和 OGA) 和 教 育 ( 先 抓 学 生 教 育 ) 是 微 软<br />

打 击 盗 版 的 “ 三 部 曲 ”。 不 把 正 版 人 群 和 盗 版<br />

人 群 区 分 开 来 ,( 打 击 盗 版 的 ) 教 育 从 何 入 手 ?<br />

凡 商 业 软 件 厂 商 有 了 规 模 之 后 , 大 都 采 取 这 种<br />

“ 三 部 曲 ” 来 整 治 盗 版 者 。 我 们 反 对 番 茄 花 园 ,<br />

就 必 须 支 持 微 软 的 WGA 和 OGA 技 术 措 施 ,<br />

这 一 点 不 能 动 摇 。 微 软 搞 WGA 和 OGA 有 法<br />

律 依 据 (EULA), 不 是 胡 来 。 我 们 的 XP 用 户 应<br />

盗 版 者 是 微 软 的 大 敌 , 也 是 Linux 的 大 敌 。<br />

( 某 些 ) 盗 版 者 的 ( 人 品 ) 素 质 太 低 , 出 口 骂 人 , 毫<br />

无 水 准 。 让 微 软 来 整 治 整 治 他 们 , 活 该 。<br />

Windows 和 Linux, 可 以 互 操 作 , 交 朋 友 , 同<br />

时 , 两 者 又 是 死 对 头 ( 竞 争 对 手 )。 微 软 是 桌 面<br />

软 件 的 先 行 者 , 我 们 必 须 尊 重 。 如 今 ,OOo<br />

3.0 出 来 了 , 实 际 上 , 在 某 些 方 面 ,OOo 3.0<br />

还 是 落 在 微 软 Office 的 后 面 ( 见 Michael<br />

Meeks 的 文 章 “Measuring the true success<br />

of OpenOffice.org”)。 我 们 不 能 因 为 OOo<br />

3.0 上 了 一 个 新 台 阶 , 头 脑 就 晕 糊 糊 , 迷 失 方 向 。<br />

有 人 说 , 微 软 打 击 盗 版 ,Linux 机 会 来 了 。 这 简<br />

直 是 孩 子 话 。 北 京 中 关 村 得 了 “Linux 恐 惧 症 ”,<br />

一 时 间 不 可 能 完 全 治 愈 。 中 国 Linux 根 本 没 有<br />

准 备 好 , 大 部 分 市 场 还 是 微 软 的 , 对 此 , 我 们<br />

不 能 不 服 气 。<br />

倪 光 南 : 微 软 反 盗 版 是 为 了 应 对 《 反 垄 断 法 》<br />

月 20 日 开 始 同 时 推 出 两 个 重 要 更 新 , 通 过 黑 屏<br />

来 警 告 XP 专 业 版 盗 版 用 户 , 这 一 消 息 引 起 了 中<br />

国 用 户 的 极 大 关 注 。<br />

10 月 15 日 , 微 软 中 国 宣 布 将 从 2008 年 10<br />

中 国 工 程 院 院 士 认 为 , 微 软 加 大 力 度 反 盗<br />

版 , 包 括 起 诉 “ 番 茄 花 园 ”, 对 用 户 实 施 黑 屏 警<br />

告 等 等 , 显 然 是 有 周 密 计 划 的 。 业 界 对 此 有 种 种<br />

猜 测 , 看 来 , 比 较 合 理 的 猜 测 是 微 软 要 设 法 应 对<br />

我 国 的 《 反 垄 断 法 》。 记 得 这 个 法 刚 出 台 , 人<br />

们 就 议 论 微 软 可 能 成 为 IT 反 垄 断 的 首 选 对 象 ,<br />

为 了 摆 脱 被 动 局 面 , 微 软 就 大 力 反 盗 版 。 这 样<br />

可 以 强 调 自 己 是 盗 版 的 受 害 者 , 淡 化 了 它 在 桌<br />

开 源 时 代 2008 年 10 月 刊 - 38 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

面 软 件 领 域 的 垄 断 , 可 以 说 是 “ 以 攻 为 守 ”。<br />

另 外 , 倪 光 南 也 认 为 , 微 软 大 力 反 盗 版 也<br />

有 利 于 国 产 软 件 的 发 展 。<br />

他 认 为 ,“ 过 去 , 微 软 有 条 件 地 容 忍 某 些<br />

盗 版 , 许 多 人 没 有 体 会 到 盗 版 对 国 产 软 件 的 巨<br />

大 危 害 , 图 方 便 , 使 用 了 盗 版 。 现 在 , 情 况 发<br />

生 了 变 化 , 使 用 盗 版 将 会 感 到 不 便 , 更 会 丧 失<br />

尊 严 。 这 时 , 用 户 应 当 认 真 地 考 虑 切 换 到 正 版<br />

国 产 软 件 上 来 。 所 以 , 现 在 是 推 广 国 产 Office<br />

和 Linux 等 开 源 软 件 的 大 好 时 机 , 其 中 切 换 成<br />

本 最 低 的 是 国 产 Office。”<br />

他 表 示 , 对 于 绝 大 多 数 用 户 来 说 , 国 产<br />

Office 已 可 以 满 足 使 用 需 求 。 国 产 Office 性 价<br />

比 很 高 , 有 的 厂 商 还 提 供 免 费 下 载 版 本 , 所 以<br />

切 换 到 国 产 Office 不 会 增 加 用 户 的 负 担 。 在 切<br />

换 过 程 中 可 能 需 要 适 应 某 些 不 同 的 使 用 习 惯 ,<br />

但 付 出 这 样 的 代 价 和 被 人 扣 上 盗 版 帽 子 相 比 ,<br />

显 然 是 值 得 的 。<br />

同 时 , 倪 光 南 也 强 调 , 使 用 国 产 正 版 软 件<br />

的 更 大 意 义 是 保 障 信 息 安 全 。 私 有 软 件 是 不 可<br />

控 的 , 它 是 否 安 全 是 没 有 保 障 的 。 比 如 , 微 软<br />

可 以 知 道 是 谁 用 了 盗 版 , 它 在 用 户 不 知 情 的 情<br />

况 下 , 可 以 从 用 户 机 器 中 提 取 某 些 信 息 , 可 以<br />

发 出 黑 屏 等 等 警 告 , 如 果 需 要 的 话 , 也 可 以 干<br />

脆 叫 它 死 机 。 所 以 , 不 是 自 主 可 控 的 软 件 就 不<br />

可 能 保 障 信 息 安 全 。 总 之 , 现 在 对 微 软 的 反 垄<br />

断 行 动 , 我 们 最 好 的 应 对 是 大 力 推 进 基 于 国 产<br />

软 件 的 正 版 化 。<br />

近 日 微 软 在 中 国 即 将 启 动 Windows 正 版<br />

增 值 计 划 ( 简 称 “WGA”) 和 Office 正 版 增 值<br />

计 划 通 知 ( 简 称 “OGA”)。 一 时 间 引 来 了 媒 体<br />

和 业 内 及 用 户 的 高 度 关 注 和 激 烈 的 反 应 。 但 通<br />

过 笔 者 对 于 此 新 闻 的 报 道 看 , 多 数 的 媒 体 都 将<br />

微 软 实 施 的 此 计 划 与 微 软 的 反 盗 版 联 系 起 来 ,<br />

认 为 是 针 对 中 国 盗 版 软 件 所 采 取 的 又 一 轮 打 击<br />

的 具 体 行 动 。 但 笔 者 通 过 对 于 微 软 WGA 和<br />

OGA 的 了 解 及 微 软 相 关 人 士 的 采 访 后 认 为 ,<br />

国 内 的 某 些 媒 体 和 用 户 对 于 微 软 的 WGA 和<br />

OGA 存 在 着 一 些 误 区 。 那 么 微 软 此 次 计 划 的<br />

目 的 究 竟 是 什 么 ?<br />

首 先 从 微 软 实 施 此 计 划 的 名 称 看 ,WGA<br />

和 OGA 的 正 确 解 释 应 为 Windows 正 版 增 值 计<br />

划 和 Office 正 版 增 值 计 划 通 知 。 仅 仅 从 字 面 上<br />

看 , 根 本 没 有 什 么 针 对 盗 版 之 类 的 词 汇 。 所 以<br />

有 的 媒 体 或 者 用 户 认 为 WGA 和 OGA 是 对 于<br />

盗 版 软 件 的 验 证 根 本 就 是 理 解 上 的 错 误 。 其 实<br />

单 从 名 称 上 看 , 微 软 的 WGA 和 OGA 针 对 的<br />

是 使 用 正 版 Windows 和 Office 的 用 户 , 只 是<br />

由 于 盗 版 软 件 的 存 在 , 某 些 使 用 或 者 愿 意 使 用<br />

正 版 软 件 的 用 户 可 能 并 不 知 道 他 们 正 在 使 用 的<br />

Windows 和 Office 是 否 是 正 版 软 件 , 就 像 我<br />

们 日 常 生 活 中 买 了 某 些 认 为 有 价 值 的 原 商 品 ,<br />

为 了 确 定 商 品 是 否 是 赝 品 或 者 是 假 冒 伪 劣 产 品 ,<br />

孙 永 杰 : 微 软 正 版 增 值 计 划 为 哪 般 ?<br />

我 们 去 找 权 威 的 部 门 予 以 鉴 定 是 同 样 的 道 理 。<br />

当 然 这 里 面 首 先 是 我 们 属 于 愿 意 买 到 真 正 有 价<br />

值 的 原 商 品 的 用 户 , 这 是 前 提 , 其 次 才 是 确 认<br />

是 否 是 原 商 品 。 所 以 我 们 的 媒 体 和 用 户 应 该 正<br />

确 理 解 微 软 的 WGA 和 OGA 针 对 的 是 使 用 和<br />

愿 意 使 用 正 版 软 件 的 用 户 , 其 WGA 和 OGA<br />

均 被 称 为 正 版 增 值 计 划 也 就 是 这 个 道 理 , 即 让<br />

用 户 方 便 地 验 证 自 己 的 软 件 是 否 是 正 版 软 件 ,<br />

如 果 不 是 , 以 提 醒 用 户 及 时 发 现 问 题 , 将 风 险<br />

降 到 最 低 , 同 时 利 于 用 户 维 护 自 己 的 合 法 权 益 。<br />

其 次 , 从 微 软 WGA 和 OGA 实 施 的 过 程<br />

看 , 对 于 正 在 使 用 盗 版 Windows 和 Office 的<br />

用 户 , 从 系 统 和 软 件 的 功 能 上 并 未 受 到 任 何 的<br />

影 响 。 这 里 也 许 有 的 用 户 会 说 ,Windows 系 统<br />

一 小 时 一 次 的 黑 屏 , 以 及 Office 中 的 非 正 版 用<br />

户 的 标 识 会 令 人 感 到 很 不 舒 服 和 不 方 便 , 影 响<br />

了 使 用 体 验 。 但 笔 者 想 说 的 是 , 为 何 这 些 用 户<br />

不 首 先 反 问 一 下 自 己 , 本 身 使 用 的 并 不 是 微 软<br />

的 正 版 软 件 , 这 就 好 比 你 免 费 或 者 以 比 原 商 品<br />

实 际 价 格 低 得 多 的 价 格 获 得 了 赝 品 或 假 冒 伪 劣<br />

产 品 , 难 道 还 希 望 它 能 给 你 带 来 原 产 品 才 拥 有<br />

的 使 用 体 验 和 价 值 吗 ? 这 是 生 活 中 的 常 识 , 应<br />

该 很 容 易 理 解 的 , 所 以 那 些 明 知 是 是 赝 品 或 假<br />

冒 伪 劣 产 品 可 还 要 买 和 使 用 的 用 户 , 应 该 有 心<br />

理 上 的 准 备 , 而 且 应 该 很 坦 然 地 接 受 由 此 而 带<br />

开 源 时 代 2008 年 10 月 刊 - 39 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

来 的 后 果 。 所 以 这 也 从 另 一 个 侧 面 说 明 微 软 实<br />

施 WGA 和 OGA 的 必 要 性 , 即 要 让 使 用 正 版<br />

和 愿 意 使 用 正 版 软 件 用 户 的 权 益 得 到 最 基 本 的<br />

保 证 ( 让 他 们 至 少 知 道 自 己 使 用 的 是 否 是 功 能 、<br />

安 全 、 服 务 等 均 有 保 障 的 正 版 软 件 ), 否 则 那<br />

些 使 用 和 愿 意 使 用 正 版 软 件 的 用 户 到 哪 里 去 说<br />

理 ? 使 用 正 版 和 盗 版 软 件 的 区 别 何 在 ? 正 版 软<br />

件 用 户 的 权 益 如 何 保 证 ? 如 果 真 假 不 分 的 话 ,<br />

这 个 世 界 上 也 就 没 有 真 品 、 赝 品 和 假 冒 伪 劣 产<br />

品 之 说 了 。 笔 者 认 为 这 是 任 何 人 都 不 愿 意 看 到<br />

的 , 所 谓 便 宜 没 好 货 , 好 货 不 便 宜 及 物 有 所 值<br />

都 是 对 此 最 朴 素 的 解 释 。<br />

第 三 从 微 软 WGA 和 OGA 实 施 的 松 紧 程<br />

度 看 , 笔 者 认 为 , 微 软 对 于 盗 版 用 户 已 经 做 得<br />

相 当 的 宽 松 , 比 如 用 户 可 以 自 愿 选 择 是 否 采 用<br />

此 升 级 验 证 程 序 ; 即 使 选 择 并 证 明 是 非 正 版 软<br />

件 的 话 , 软 件 的 使 用 功 能 依 旧 不 会 受 到 任 何 影<br />

响 ( 只 是 标 识 和 周 期 性 的 黑 屏 )。 这 说 明 微 软<br />

的 WGA 和 OGA 在 维 护 正 版 软 件 用 户 的 同 时 ,<br />

也 兼 顾 了 教 育 盗 版 软 件 用 户 的 目 的 。 体 现 出 微<br />

软 在 推 进 正 版 化 软 件 方 面 一 直 坚 持 3E 策 略 , 即<br />

Education( 教 育 )、Engineering( 技 术 )、<br />

Enforcement( 执 法 ) 中 , 仍 然 是 以 教 育 和 培 育<br />

使 用 正 版 软 件 意 识 和 环 境 为 主 。<br />

第 四 从 微 软 WGA 和 OGA 实 施 的 范 围 看 ,<br />

WGA 和 OGA 在 美 国 、 东 南 亚 、 欧 洲 ( 例 如<br />

捷 克 、 意 大 利 等 ) 和 日 本 都 已 经 实 施 , 据 微 软<br />

的 相 关 人 士 透 露 , 由 于 各 国 家 和 地 区 语 言 、 应<br />

用 需 求 的 不 同 , 该 计 划 的 实 施 是 逐 步 进 行 的 ,<br />

但 肯 定 是 全 球 范 围 的 , 所 以 此 前 传 言 的 只 是 针<br />

对 中 国 市 场 的 说 法 也 就 不 攻 自 破 。 鉴 于 中 国 用<br />

户 对 于 微 软 软 件 的 偏 爱 , 微 软 总 部 认 为 应 该 优<br />

先 给 中 国 使 用 和 愿 意 使 用 微 软 正 版 软 件 的 用 户<br />

提 供 这 一 服 务 , 以 保 障 他 们 的 合 法 权 益 。<br />

综 上 所 述 , 笔 者 认 为 , 我 们 的 媒 体 和 用 户<br />

应 该 对 于 微 软 即 将 实 施 的 WGA 和 OGA 计 划<br />

有 正 确 和 理 性 的 认 识 , 因 为 反 盗 版 的 前 提 是 正<br />

版 软 件 用 户 的 合 法 权 益 受 到 保 障 , 只 有 这 样 ,<br />

用 户 才 会 意 识 到 正 版 软 件 和 盗 版 软 件 的 区 别 ,<br />

才 会 激 发 用 户 使 用 正 版 软 件 的 积 极 性 , 而 随 着<br />

正 版 软 件 用 户 的 增 加 , 盗 版 软 件 的 市 场 会 逐 步<br />

萎 缩 , 国 家 的 知 识 产 权 保 护 环 境 也 会 得 到 改 善 ,<br />

当 我 们 正 面 严 厉 打 击 盗 版 软 件 的 同 时 , 更 多 地<br />

去 保 护 正 版 软 件 用 户 的 权 益 , 正 反 两 方 面 双 管<br />

齐 下 , 才 能 取 得 事 半 功 倍 的 效 果 。<br />

金 山 CEO 求 伯 君 : 微 软 打 击 盗 版 手 段 值 得 商 榷<br />

针 对 微 软 的 反 盗 版 行 为 , 金 山 软 件 董 事 长<br />

求 伯 君 表 示 , 金 山 坚 决 支 持 软 件 正 版 化 , 金 山<br />

也 深 受 盗 版 之 害 , 但 微 软 的 手 段 有 待 商 榷 。<br />

10 月 20 日 , 微 软 将 在 中 国 对 盗 版 祭 出 重 拳 ,<br />

未 通 过 WGA 验 证 的 盗 版 将 被 黑 屏 , 还 首 次 对<br />

盗 版 Office 进 行 验 证 , 届 时 盗 版 的 Office 将<br />

被 强 制 插 入 提 醒 栏 。 与 微 软 恩 怨 纠 葛 20 年 的 金<br />

山 , 此 次 被 市 场 看 成 是 翻 身 的 时 机 。 据 了 解 ,<br />

目 前 WPS Office 的 活 跃 用 户 已 超 过 200 万 ,<br />

WPS 用 户 量 正 以 日 均 万 人 高 速 递 增 。<br />

任 何 的 异 样 。 他 还 强 调 , 金 山 绝 不 会 通 过 技 术<br />

“ 胁 迫 ” 或 “ 威 胁 ” 的 方 式 , 迫 使 用 户 使 用 正<br />

版 。 求 伯 君 表 示 , 政 府 部 门 、 大 型 央 企 都 是 国<br />

产 WPS Office 的 忠 实 用 户 ,WPSOffice 在 中<br />

文 办 公 特 色 、 绿 色 小 巧 等 多 方 面 并 不 输 国 外 同<br />

类 产 品 。 实 际 上 , 在 2006 年 的 政 府 第 三 轮 全 面<br />

采 购 中 ,WPSOffice 就 一 举 获 得 了 56.2% 的 政<br />

府 采 购 份 额 , 首 次 超 过 国 外 产 品 , 并 在 国 家 57<br />

个 部 委 及 28 个 省 、200 多 个 城 市 的 政 府 办 公 中<br />

获 得 广 泛 应 用 。<br />

针 对 微 软 在 中 国 启 动 的 反 盗 版 策 略 , 金 山<br />

WPS 创 始 人 求 伯 君 建 议 , 从 保 证 使 用 的 角 度 ,<br />

用 户 此 时 都 不 妨 下 载 WPSOffice。 不 仅 是 因 为<br />

个 人 版 的 WPSOffice 针 对 个 人 计 算 机 的 使 用 完<br />

全 免 费 , 更 重 要 的 是 国 产 Office 在 功 能 上 完 全<br />

能 替 代 微 软 Office, 用 户 在 使 用 习 惯 上 也 没 有<br />

求 伯 君 认 为 , 从 WPS1.0 推 出 时 的 风 靡 一<br />

时 , 到 后 来 走 向 边 缘 化 , 并 非 表 明 国 产 Office<br />

的 水 平 不 高 , 只 是 由 于 微 软 Office“ 先 入 为 主<br />

” 和 存 在 盗 版 的 缘 故 ,WPS 才 没 有 完 全 推 广 开<br />

来 。<br />

开 源 时 代 2008 年 10 月 刊 - 40 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

技 术 新 知<br />

*******************************************************************************************************<br />

Linux shell 之 -- 环 境 和 shell 变 量<br />

CU 网 友 : 磁 针 石<br />

参 考 资 料<br />

*《LINUX 与 UNIX SHELL 编 程 指 南 》 之 “ 第 14 章 环 境 和 shell 变 量 ”<br />

*《 学 习 bash shell 第 3 版 》Chapter 3. Customizing Your Environment<br />

2008-10-21 建 立 初 稿 。《LINUX 与 UNIX SHELL 编 程 指 南 》 个 别 例 子 还 没 有 涉 及 。 环 境 变 量 和 本 地 变<br />

量 不 必 去 刻 意 区 分 , 因 为 很 多 时 候 也 有 混 用 。<br />

简 介<br />

为 使 shell 编 程 更 有 效 , 系 统 提 供 了 一 些 shell 变 量 。shell 变 量 可 以 保 存 诸 如 路 径 名 、 文 件 名 或<br />

者 一 个 数 字 这 样 的 变 量 名 。shell 将 其 中 任 何 设 置 都 看 做 文 本 字 符 串 。<br />

有 两 种 变 量 , 本 地 和 环 境 。 严 格 地 说 可 以 有 4 种 , 但 其 余 两 种 是 只 读 的 , 可 以 认 为 是 特 殊 变 量 ,<br />

它 用 于 向 shell 脚 本 传 递 参 数 。<br />

本 章 内 容 有 :<br />

• shell 变 量<br />

• 环 境 变 量<br />

• 变 量 替 换<br />

• 导 出 变 量<br />

• 特 定 变 量<br />

• 向 脚 本 传 递 信 息 。<br />

• 在 系 统 命 令 行 下 使 用 位 置 参 数 。<br />

本 地 变 量<br />

变 量 设 置 时 的 不 同 模 式<br />

Variable-name =value 设 置 实 际 值 到 Variable-name<br />

Variable-name +value 如 果 设 置 了 Variable-name, 则 重 设 其 值<br />

Variable-name:?value 如 果 未 设 置 Variable-name, 显 示 未 定 义 用 户 错 误 信 息<br />

Variable-name ?value 如 果 未 设 置 Variable-name, 显 示 系 统 错 误 信 息<br />

Variable-name:= value 如 果 未 设 置 Variable-name e, 设 置 其 值<br />

Variable-name :- value 同 上 , 但 是 取 值 并 不 设 置 到 Variable-name, 可 以 被 替 换<br />

注 意 , 等 号 两 边 可 以 有 空 格 。 如 果 取 值 包 含 空 格 , 必 须 用 引 号 括 起 来 。shell 变 量 可 以 用 大 小 写 字 母 。<br />

开 源 时 代 2008 年 10 月 刊 - 41 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

变 量 的 设 定 , 显 示 和 清 除<br />

]# HELLO='Hello World!'<br />

]# echo $HELLO<br />

Hello World!<br />

]# echo ${HELLO};<br />

Hello World!<br />

使 用 set 命 令 显 示 所 有 本 地 定 义 的 shell 变 量 。 使 用 unset 命 令 清 除 变 量 。<br />

设 置 只 读 变 量 :<br />

]# HELLO='Hello World!'<br />

]# readonly HELLO<br />

]# HELLO="YES"<br />

-bash: HELLO: readonly variable<br />

环 境 变 量<br />

环 境 变 量 用 于 所 有 用 户 进 程 ( 经 常 称 为 子 进 程 ), 不 像 本 地 变 量 ( 只 用 于 现 在 的 shell) 环 境 变 量 可<br />

用 于 所 有 子 进 程 , 这 包 括 编 辑 器 、 脚 本 和 应 用 。<br />

环 境 变 量 可 以 在 命 令 行 中 设 置 , 但 用 户 注 销 时 这 些 值 将 丢 失 , 因 此 最 好 在 profile 文 件 中 定 义 。<br />

系 统 管 理 员 可 能 在 /etc/profile 文 件 中 已 经 设 置 了 一 些 环 境 变 量 。 将 之 放 入 profile 文 件 意 味 着 每 次<br />

登 录 时 这 些 值 都 将 被 初 始 化 。<br />

环 境 变 量 应 用 于 用 户 进 程 前 , 必 须 用 export 命 令 导 出 。<br />

使 用 env 命 令 可 以 查 看 所 有 的 环 境 变 量 。<br />

比 如 :<br />

PATH=$PATH:$HOME/bin:/usr/local/ActiveTcl/bin:/home/meil/program/expect<br />

export PATH<br />

使 用 unset 命 令 清 除 变 量 。<br />

Brourne shell 有 一 些 预 留 的 环 境 变 量 名 , 这 些 变 量 名 不 能 用 作 其 他 用 途 。 通 常 在 /etc/profile<br />

中 建 立 这 些 嵌 入 的 环 境 变 量 , 但 也 不 完 全 是 , 这 取 决 于 用 户 自 己 。 以 下 是 嵌 入 shell 变 量 列 表 。<br />

CDPATH: 改 变 目 录 路 径 变 量 , 保 留 一 系 列 由 冒 号 隔 开 的 路 径 名 , 用 于 cd 命 令<br />

EXINIT:EXINIT 变 量 保 存 使 用 vi 编 辑 器 时 的 初 始 化 选 项 。<br />

HOME: 通 常 定 位 于 passwd 文 件 的 倒 数 第 2 列 , 用 于 保 存 用 户 自 身 文 件 。<br />

IFS: 用 作 shell 指 定 的 缺 省 域 分 隔 符 。<br />

LOGNAME:<br />

MAIL<br />

MAILCHECK<br />

开 源 时 代 2008 年 10 月 刊 - 42 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

MAILPATH<br />

PATH<br />

PS1: 基 本 提 示 符 包 含 shell 提 示 符 , 缺 省 对 超 级 用 户 为 #, 其 他 为 $。 可 以 使 用 任 何 符 号 作 提 示 符<br />

PS2:PS2 为 附 属 提 示 符 , 缺 省 为 符 号 > 。PS2 用 于 执 行 多 行 命 令 或 超 过 一 行 的 一 个 命 令 。<br />

SHELL<br />

TERMINFO: 终 端 初 始 化 变 量 保 存 终 端 配 置 文 件 的 位 置 。 通 常 在 /usr/lib/terminfo<br />

或 /usr/share/terminfo/<br />

TERM: 保 存 终 端 类 型 。 设 置 TERM 使 应 用 获 知 终 端 对 屏 幕 和 键 盘 响 应 的 控 制 序 列 类 型 , 常 用 的 有<br />

vt100,vt200、vt200-8 等 。<br />

TZ<br />

其 他 环 境 变 量 :<br />

EDITOR<br />

PWD<br />

PAGER<br />

MAMPATH<br />

LPDEST 或 PRINTER<br />

在 $ H O M E. profile 文 件 中 设 置 环 境 变 量 时 , 还 有 另 一 种 方 法 导 出 这 些 变 量 。 使 用 s e t 命 令 - a 选<br />

项 , 即 set -a 指 明 所 有 变 量 直 接 被 导 出 。 不 要 在 /etc/profile 中 使 用 这 种 方 法 , 最 好 只 在 自 己 的 $ H<br />

O M E. profile 文 件 中 使 用 。<br />

环 境 变 量 可 以 在 不 同 的 程 序 中 传 递 参 数 .<br />

位 置 变 量 参 数 :<br />

本 章 开 始 提 到 有 4 种 变 量 , 本 地 、 环 境 , 还 有 两 种 变 量 被 认 为 是 特 殊 变 量 , 因 为 它 们 是 只 读 的 。<br />

这 两 种 变 量 即 为 位 置 变 量 和 特 定 变 量 参 数 。<br />

参 数 相 关 数 目 传 入 脚 本 , 此 数 目 可 以 任 意 多 , 但 只 有 前 9 个 可 以 被 访 问 , 使 用 shift 命 令 可 以 改<br />

变 这 个 限 制 。<br />

表 14-2 特 定 shell 变 量<br />

$# 传 递 到 脚 本 的 参 数 个 数<br />

$* 以 一 个 单 字 符 串 显 示 所 有 向 脚 本 传 递 的 参 数 。 与 位 置 变 量 不 同 , 此 选 项 参 数 可 超 过 9 个<br />

$$ 脚 本 运 行 的 当 前 进 程 I D 号<br />

$! 后 台 运 行 的 最 后 一 个 进 程 的 进 程 I D 号<br />

$@ 与 $# 相 同 , 但 是 使 用 时 加 引 号 , 并 在 引 号 中 返 回 每 个 参 数<br />

$- 显 示 shell 使 用 的 当 前 选 项 , 与 set 命 令 功 能 相 同<br />

$? 显 示 最 后 命 令 的 退 出 状 态 。0 表 示 没 有 错 误 , 其 他 任 何 值 表 明 有 错 误 。<br />

位 置 变 量<br />

本 章 开 始 提 到 有 4 种 变 量 , 本 地 、 环 境 , 还 有 两 种 变 量 被 认 为 是 特 殊 变 量 , 因 为 它 们 是 只 读 的 。<br />

开 源 时 代 2008 年 10 月 刊 - 43 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

这 两 种 变 量 即 为 位 置 变 量 和 特 定 变 量 参 数 。<br />

位 置 变 量 参 数 相 关 数 目 传 入 脚 本 , 此 数 目 可 以 任 意 多 , 但 只 有 前 9 个 可 以 被 访 问 , 使 用 shift 命<br />

令 可 以 改 变 这 个 限 制 。 有 $0-$9, 意 $ 0 返 回 当 前 目 录 路 径 。<br />

特 定 变 量 参 数 如 下 :<br />

$# 传 递 到 脚 本 的 参 数 个 数<br />

$* 以 一 个 单 字 符 串 显 示 所 有 向 脚 本 传 递 的 参 数 。 与 位 置 变 量 不 同 , 此 选 项 参 数 可 超 过 9 个<br />

$$ 脚 本 运 行 的 当 前 进 程 id 号<br />

$! 后 台 运 行 的 最 后 一 个 进 程 的 进 程 id 号<br />

$@ 与 $# 相 同 , 但 是 使 用 时 加 引 号 , 并 在 引 号 中 返 回 每 个 参 数<br />

$- 显 示 shell 使 用 的 当 前 选 项 , 与 set 命 令 功 能 相 同<br />

$? 显 示 最 后 命 令 的 退 出 状 态 。0 表 示 没 有 错 误 , 其 他 任 何 值 表 明 有 错 误 。<br />

§3 环 境 自 定 义<br />

§3.1 .bash_profile, .bash_logout, and .bashrc<br />

修 改 了 .bash_profile 之 后 , 要 使 用 source .bash_profile 才 能 生 效 ,. 和 source 一 样 的 效 果 。 如<br />

果 .bash_profile 不 存 在 , 寻 找 .bash_login, 其 次 是 .profile。 分 别 和 c shell, Bourne shell 类 似 。<br />

.bashrc 则 在 启 动 子 shell 的 时 候 使 用 ,.bash_profile 是 作 为 登 陆 shell 时 使 用 。.bash_logout 则 在<br />

退 出 登 陆 shell 时 使 用 。<br />

§3.2 别 名<br />

alias rm='rm -i'<br />

alias cp='cp -i'<br />

alias mv='mv -i'<br />

不 像 c shell,bash 中 别 名 不 支 持 变 量 。= 前 后 不 能 又 空 格 。<br />

alias cdvoy='cd sipp/demo/animation/voyager'<br />

shell 脚 本 和 函 数 实 际 可 以 取 代 别 名 。<br />

§3.3 选 项<br />

- 表 示 打 开 ,+ 表 示 关 闭 。<br />

基 本 参 数 如 下 :<br />

Option<br />

emacs<br />

Description<br />

Enters emacs editing mode (on by default)<br />

ignoreeo Doesn't allow use of a single CTRL-D to log off; use the exit command to log off<br />

开 源 时 代 2008 年 10 月 刊 - 44 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Option<br />

f<br />

noclobb<br />

er<br />

noglob<br />

nounset<br />

vi<br />

Description<br />

immediately (this has the same effect as setting the shell variable<br />

IGNOREEOF=10)<br />

Doesn't allow output redirection (>) to overwrite an existing file<br />

Doesn't expand filename wildcards like * and ? (wildcard expansion is<br />

sometimes called globbing)<br />

Indicates an error when trying to use a variable that is undefined<br />

Enters vi editing mode<br />

附 录 B 列 出 了 所 有 参 数 。set –o 可 以 看 出 他 们 的 状 态 。<br />

*shopt<br />

Option Meaning<br />

-p Displays a list of the settable options and their current values<br />

-s Sets each option name<br />

-u Unsets each option name<br />

-q Suppresses normal output; the return status indicates if a variable is set or unset<br />

-o<br />

Allows the values of the option names to be those defined for the -o option of the<br />

set command<br />

Option<br />

Meaning<br />

cdable_v<br />

ars<br />

checkhas<br />

h<br />

cmdhist<br />

dotglob<br />

If set, an argument to the cd built-in command that is not a directory is<br />

assumed to be the name of a variable whose value is the directory to change<br />

to.<br />

If set, bash checks that a command found in the hash table exists before trying<br />

to execute it. If a hashed command no longer exists, a normal path search is<br />

performed.<br />

If set, bash attempts to save all lines of a multiple-line command in the same<br />

history entry.<br />

If set, bash includes filenames beginning with a . (dot) in the results of<br />

开 源 时 代 2008 年 10 月 刊 - 45 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Option<br />

Meaning<br />

pathname expansion.<br />

execfail<br />

If set, a non-interactive shell will not exit if it cannot execute the file specified as<br />

an argument to the exec command. An interactive shell does not exit if exec<br />

fails.<br />

histappen<br />

d<br />

If set, the history list is appended to the file named by the value of the HISTFILE<br />

variable when the shell exits, rather than overwriting the file.<br />

lithist<br />

mailwarn<br />

If set, and the cmdhist option is enabled, multiline commands are saved to the<br />

history with embedded newlines, rather than using semicolon separators where<br />

possible.<br />

If set, and a file that bash is checking for mail has been accessed since the last<br />

time it was checked, the message "The mail in mailfile has been read" is<br />

displayed.<br />

§3.4 shell 变 量<br />

* 变 量 和 引 用<br />

双 引 号 的 作 用 :<br />

fred='Four spaces between these words.'<br />

# echo "$fred"<br />

Four spaces between these words.<br />

# echo $fred<br />

Four spaces between these words.<br />

如 果 不 加 双 引 号 ,shell 会 把 输 出 做 类 似 shell 命 令 的 处 理 , 多 个 空 格 被 缩 成 一 个 。<br />

* 内 置 变 量<br />

* 编 辑 模 式 变 量<br />

Table 3-4. Editing mode variables<br />

Variable<br />

HISTCMD<br />

HISTCONTROL<br />

Meaning<br />

The history number of the current command.<br />

A list of patterns, separated by colons (:), which can have the<br />

following values. ignorespace: lines beginning with a space are not<br />

开 源 时 代 2008 年 10 月 刊 - 46 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Table 3-4. Editing mode variables<br />

Variable<br />

Meaning<br />

entered into the history list. ignoredups: lines matching the last history<br />

line are not entered. erasedups: all previous lines matching the<br />

current line are removed from the history list before the line is saved.<br />

ignoreboth: enables both ignorespace and ignoredups. [8]<br />

HISTIGNORE<br />

HISTFILE<br />

HISTFILESIZE<br />

HISTSIZE<br />

HISTTIMEFORMAT<br />

FCEDIT<br />

A list of patterns, separated by colons (:), used to decide which<br />

command lines to save in the history list. Patterns are considered to<br />

start at the beginning of the command line and must fully specify the<br />

line, i.e., no wildcard (*) is implicitly appended. The patterns are<br />

checked against the line after HISTCONTROL is applied. An<br />

ampersand (&) matches the previous line. An explicit & may be<br />

generated by escaping it with a backslash. [9]<br />

Name of history file in which the command history is saved. The<br />

default is ~/.bash_history.<br />

The maximum number of lines to store in the history file. The default is<br />

500. When this variable is assigned a value, the history file is truncated,<br />

if necessary, to the given number of lines.<br />

The maximum number of commands to remember in the command<br />

history. The default is 500.<br />

If it is set and not null, its value is used as a format string for strftime(3)<br />

to print the time stamp associated with each history entry displayed<br />

by the history command. Time stamps are written to the history file so<br />

they may be preserved across shell sessions. [10]<br />

Pathname of the editor to use with the fc command.<br />

HISTSIZE 针 对 内 存 中 的 命 令 历 史<br />

HISTCONTROL 中 ignoredups 选 项 可 以 去 掉 重 复 命 令 。<br />

HISTIGNORE 表 示 可 以 忽 略 的 部 分 , 添 加 & 还 可 以 避 免 重 复 。 比 如 :l*:&<br />

HISTTIMEFORMAT 可 以 设 定 时 间 戳 , 比 如 :HISTTIMEFORMAT="%y/%m/%d %T "。 参 数 如 下 。<br />

开 源 时 代 2008 年 10 月 刊 - 47 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Table 3-5. Time stamp formats<br />

Format Replaced by<br />

%a The locale's abbreviated weekday name<br />

%A The locale's full weekday name<br />

%b The locale's abbreviated month name<br />

%B The locale's full month name<br />

%c The locale's appropriate date and time representation<br />

%C<br />

The century number (the year divided by 100 and truncated to an integer) as a<br />

decimal number [00-99]<br />

%d The day of the month as a decimal number [01-31]<br />

%D The date in American format; the same value as %m/%d/%y.<br />

%e<br />

The day of the month as a decimal number [1-31]; a single digit is preceded by a<br />

space<br />

%h The same as %b<br />

%H The hour (24-hour clock) as a decimal number [00-23]<br />

%I The hour (12-hour clock) as a decimal number [01-12]<br />

%j The day of the year as a decimal number [001-366]<br />

%m The month as a decimal number [01-12]<br />

%M The minute as a decimal number [00-59]<br />

%n A newline character<br />

%p The locale's equivalent of either a.m. or p.m<br />

%r<br />

The time in a.m. and p.m. notation; in the POSIX locale this is equivalent to %I:%M:<br />

%S %p<br />

%R The time in 24-hour notation (%H:%M)<br />

%S The second as a decimal number [00-61]<br />

%t A tab character<br />

%T The time (%H:%M:%S)<br />

开 源 时 代 2008 年 10 月 刊 - 48 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Table 3-5. Time stamp formats<br />

Format Replaced by<br />

%u The weekday as a decimal number [1-7], with 1 representing Monday<br />

%U<br />

%V<br />

The week number of the year (Sunday as the first day of the week) as a decimal<br />

number [00-53]<br />

The week number of the year (Monday as the first day of the week) as a decimal<br />

number [01-53]; if the week containing 1 January has four or more days in the new<br />

year, then it is considered week 1—otherwise, it is the last week of the previous<br />

year, and the next week is week 1<br />

%w The weekday as a decimal number [0-6], with 0 representing Sunday<br />

%W<br />

The week number of the year (Monday as the first day of the week) as a decimal<br />

number [00-53]; all days in a new year preceding the first Monday are considered<br />

to be in week 0<br />

%x The locale's appropriate date representation<br />

%X The locale's appropriate time representation<br />

%y The year without century as a decimal number [00-99]<br />

%Y The year with century as a decimal number<br />

%Z The timezone name or abbreviation, or by nothing if no timezone information exists<br />

%% %<br />

Shell 通 过 检 查 文 件 是 否 更 新 来 判 断 是 否 有 邮 件 。bash 只 能 在 邮 件 到 达 时 提 示 "you have new<br />

mail",BSD 中 的 biff 可 以 在 任 何 时 候 提 示 。<br />

* 邮 件 变 量<br />

Table 3-6. Mail variables<br />

Variable<br />

MAIL<br />

MAILCHECK<br />

MAILPATH<br />

Meaning<br />

Name of file to check for incoming mail<br />

How often, in seconds, to check for new mail (default 60 seconds)<br />

List of filenames, separated by colons (:), to check for incoming mail<br />

一 些 用 户 使 用 非 标 准 的 mailers, 使 用 多 个 mail 文 件 ,MAILPATH 用 于 适 应 这 种 情 况 ,bash 会 检 查<br />

开 源 时 代 2008 年 10 月 刊 - 49 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

MAILPATH 中 的 每 个 文 件 。<br />

比 如 :MAILPATH=/usr/mail/you/martin:/usr/mail/you/geoffm:\<br />

/usr/mail/you/paulr。 更 复 杂 的 例 子 暂 略 。<br />

* 提 示 符 变 量<br />

Shell 有 4 个 提 示 符 :PS1, PS2, PS3, and PS4。PS1 为 基 本 提 示 字 符 串 。 默 认 值 是 "\s-\v\$ ".<br />

比 如 PS1="\u--> ", 添 加 用 户 名 显 示 。PS1="\u \!--> " 的 显 示 结 果 如 下 :alice 1—>, alice 2—> 等 。<br />

PS1="\w--> " 显 示 工 作 路 径 。<br />

Table 3-7. Prompt string customizations<br />

Comman<br />

d<br />

Meaning<br />

\a The ASCII bell character (007)<br />

\A The current time in 24-hour HH:MM format<br />

\d The date in "Weekday Month Day" format<br />

\D<br />

{format}<br />

The format is passed to strftime(3) and the result is inserted into the prompt<br />

string; an empty format results in a locale-specific time representation; the<br />

braces are required<br />

\e The ASCII escape character (033)<br />

\H The hostname<br />

\h The hostname up to the first "."<br />

\j The number of jobs currently managed by the shell<br />

\l The basename of the shell's terminal device name<br />

\n A carriage return and line feed<br />

\r A carriage return<br />

\s The name of the shell<br />

\T The current time in 12-hour HH:MM:SS format<br />

\t The current time in HH:MM:SS format<br />

\@<br />

The current time in 12-hour a.m./p.m. format<br />

\u The username of the current user<br />

开 源 时 代 2008 年 10 月 刊 - 50 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Table 3-7. Prompt string customizations<br />

Comman<br />

d<br />

Meaning<br />

\v The version of bash (e.g., 2.00)<br />

\V The release of bash; the version and patchlevel (e.g., 2.00.0)<br />

\w The current working directory<br />

\W The basename of the current working directory<br />

\# The command number of the current command<br />

\! The history number of the current command<br />

\$ If the effective UID is 0, print a #, otherwise print a $<br />

\nnn<br />

Character code in octal<br />

\\ Print a backslash<br />

\[<br />

Begin a sequence of non-printing characters, such as terminal control<br />

sequences<br />

\] End a sequence of non-printing characters<br />

PS2 为 第 2 提 示 符 , 一 般 用 于 续 行 提 示 。PS3 and PS4 用 户 shell 程 序 设 计 和 调 测 , 见 第 5,9 章 。<br />

*PATH<br />

略<br />

* 命 令 哈 希<br />

输 入 命 令 的 时 候 先 查 找 hash, 而 后 才 是 PATH。<br />

比 如 :<br />

#hash<br />

hits command<br />

1 /bin/grep<br />

1 /bin/chmod<br />

1 /usr/bin/vim<br />

5 /usr/bin/ssh<br />

1 /bin/ls<br />

开 源 时 代 2008 年 10 月 刊 - 51 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

* 目 录 查 找 路 径 和 变 量<br />

先 查 找 当 前 路 径 , 然 后 CDPATH<br />

# pwd<br />

/root/temp<br />

[root@localhost temp]# CDPATH=/usr/local/rss<br />

[root@localhost temp]# cd bin<br />

/usr/local/rss/bin<br />

[root@localhost bin]# pwd<br />

/usr/local/rss/bin<br />

使 用 shopt 设 置 cdable_vars 也 可 以 达 到 同 样 的 效 果<br />

* 杂 项 变 量<br />

Table 3-8. Status variables<br />

Variable<br />

HOME<br />

SECONDS<br />

BASH<br />

BASH_VERSION<br />

BASH_VERSINFO<br />

PWD<br />

OLDPWD<br />

Meaning<br />

Name of your home (login) directory<br />

Number of seconds since the shell was invoked<br />

Pathname of this instance of the shell you are running<br />

The version number of the shell you are running<br />

An array of version information for the shell you are running<br />

Current directory<br />

Previous directory before the last cd command<br />

§3.5 自 定 义 和 子 程 序<br />

执 行 命 令 是 在 子 shell 中 执 行 。<br />

* 环 境 变 量<br />

环 境 变 量 可 以 用 于 参 数 传 递 。 比 如 vi 和 emacs 用 TERM 来 确 定 终 端 类 型 。<strong>Unix</strong> 邮 件 程 序 通 过<br />

EDITOR 或 者 VISUAL 来 确 定 要 使 用 的 编 辑 器 。 所 有 变 量 需 要 通 过 export 成 为 环 境 变 量 ( 除 非 设 置 了<br />

set -a or set -o allexport, 这 样 会 导 入 所 有 变 量 )。<br />

export varnames<br />

export wonderland=alice<br />

开 源 时 代 2008 年 10 月 刊 - 52 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

给 指 定 子 程 序 定 义 :varname=value command<br />

TERM=trythisone emacs filename<br />

Export 或 者 export –p 可 以 查 看 定 义 的 环 境 变 量 。<br />

一 些 标 准 变 量 :<br />

Variable<br />

Meaning<br />

COLUMNS The number of columns your display has [22]<br />

EDITOR<br />

LINES<br />

SHELL<br />

TERM<br />

Pathname of your text editor<br />

The number of lines your display has<br />

Pathname of the shell you are running<br />

The type of terminal that you are using<br />

* 终 端 类 型<br />

位 于 /usr/share/terminfo。TERM 类 型 的 猜 测 办 法 暂 略 。<br />

* 其 他 通 用 变 量<br />

* 环 境 文 件<br />

默 认 为 .bashrc。<br />

LVS 集 群 技 术 基 础 及 配 置 详 解<br />

CU 网 友 :jerrywjl<br />

第 一 部 分 : LVS 集 群 的 基 本 概 念 与 说 明<br />

a.Linux Virtual Server 基 本 概 念 :<br />

负 载 均 衡 集 群 往 往 由 进 行 任 务 分 配 的 调 度 服 务 器 和 多 台 提 供 服 务 的 真 实 服 务 器 构 成 , 而 且 能 够<br />

根 据 企 业 成 本 方 面 的 要 求 灵 活 定 制 其 架 构 。 一 般 情 况 下 每 台 真 实 服 务 器 都 维 护 同 样 的 客 户 访 问 内 容 。<br />

在 众 多 客 户 进 行 幷 发 访 问 的 时 候 , 集 群 中 的 调 度 服 务 器 能 够 将 大 量 的 服 务 请 求 按 照 多 种 不 同 的 算 法 ,<br />

分 发 到 真 实 的 服 务 器 上 以 减 轻 单 台 服 务 器 的 负 载 和 压 力 。 从 而 实 现 基 于 IP, 连 接 数 以 及 访 问 量 等 多<br />

种 类 型 的 负 载 均 衡 。 而 且 一 旦 集 群 中 的 某 台 真 实 服 务 器 出 现 故 障 而 不 可 用 时 , 集 群 软 件 能 够 快 速 侦<br />

测 到 这 一 状 况 并 将 服 务 请 求 定 向 到 其 它 的 真 实 服 务 器 。 同 样 整 个 的 过 程 对 于 用 户 来 说 也 是 透 明 的 。<br />

在 Red Hat 的 Cluster Suite 中 所 提 供 的 LVS(Linux Virtual Server) 就 是 用 于 实 现 这 种 集 群 的 软 件 。<br />

LVS 是 一 个 由 国 人 ( 章 文 嵩 博 士 ) 主 持 的 项 目 。 他 是 一 个 负 载 均 衡 / 高 可 用 性 集 群 , 主 要 针 对 大<br />

业 务 量 的 网 络 应 用 ( 如 新 闻 服 务 、 网 上 银 行 、 电 子 商 务 等 ), 是 一 种 典 型 的 基 于 IP 的 高 效 率 负 载 均<br />

衡 技 术 。LVS 是 由 一 组 主 控 服 务 器 ( 通 常 为 具 备 主 备 功 能 的 双 机 , 也 称 为 Director 或 者 LVS<br />

Router) 及 若 干 真 实 服 务 器 (Real-server) 所 组 成 。 在 LVS 集 群 中 ,real-server 负 责 实 际 提 供 服 务 ,<br />

主 控 服 务 器 (LVS Router) 根 据 指 定 的 调 度 算 法 对 real-server 进 行 控 制 , 并 将 来 自 外 部 的 请 求 按 照<br />

开 源 时 代 2008 年 10 月 刊 - 53 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

不 同 的 算 法 分 发 给 真 实 服 务 器 (real server) 以 分 担 在 单 台 服 务 器 上 的 负 载 并 提 高 性 能 和 响 应 效 率 。<br />

这 种 工 作 机 制 类 似 于 扑 克 中 的 发 牌 , 但 是 从 采 用 的 算 法 方 面 往 往 比 发 牌 更 加 复 杂 和 科 学 , 同 时 集 群<br />

的 结 构 对 于 用 户 来 说 是 透 明 的 , 客 户 端 通 常 只 与 单 个 的 IP( 集 群 系 统 的 虚 拟 IP) 进 行 通 信 , 也 就 是<br />

说 从 客 户 端 的 视 角 来 看 , 这 里 只 存 在 单 个 服 务 器 。<br />

因 此 , 结 论 就 是 在 LVS 集 群 中 ,Real-server 可 以 提 供 众 多 服 务 , 如 ftp, http, dns, tel<strong>net</strong>,<br />

nntp, smtp 等 。 主 控 服 务 器 负 责 对 Real-Server 进 行 控 制 。 客 户 端 在 向 LVS 发 出 服 务 请 求 时 ,<br />

Director 会 通 过 特 定 的 调 度 算 法 来 指 定 由 某 个 Real-Server 来 应 答 请 求 , 而 客 户 端 只 与 Load<br />

Balancer 的 IP( 即 虚 拟 IP,VIP) 进 行 通 信 。<br />

b.Linux Virtual Server 架 构 的 基 本 分 类 :<br />

在 LVS 调 度 器 的 实 现 技 术 中 ,IP 负 载 均 衡 技 术 效 率 最 高 。 在 已 有 的 IP 负 载 均 衡 技 术 中 有 通 过 网<br />

络 地 址 转 换 (Network Address Translation) 将 一 组 服 务 器 构 成 一 个 高 性 能 的 、 高 可 用 的 虚 拟 服 务<br />

器 , 我 们 称 之 为 VS/NAT 技 术 (Virtual Server via Network Address Translation), 大 多 数 商 品 化<br />

的 IP 负 载 均 衡 调 度 器 产 品 都 是 使 用 此 方 法 , 如 Cisco 的 LocalDirector、F5 的 Big/IP 和 Alteon 的<br />

ACEDirector。 在 分 析 VS/NAT 的 缺 点 和 网 络 服 务 的 非 对 称 性 的 基 础 上 , 我 们 提 出 通 过 IP 隧 道 实 现<br />

虚 拟 服 务 器 的 方 法 VS/TUN(Virtual Server via IP Tunneling), 和 通 过 直 接 路 由 实 现 虚 拟 服 务 器 的<br />

方 法 VS/DR(Virtual Server via Direct Routing), 它 们 可 以 极 大 地 提 高 系 统 的 伸 缩 性 。 所 以 ,<br />

IPVS 软 件 实 现 了 这 三 种 IP 负 载 均 衡 技 术 , 它 们 的 大 致 原 理 如 下 :<br />

Virtual Server via Network Address Translation(VS/NAT)<br />

通 过 网 络 地 址 转 换 , 调 度 器 重 写 请 求 报 文 的 目 标 地 址 , 根 据 预 设 的 调 度 算 法 , 将 请 求 分 派 给 后<br />

端 真 实 服 务 器 ; 真 实 服 务 器 的 响 应 报 文 通 过 调 度 器 时 , 报 文 源 地 址 被 重 写 再 返 回 给 客 户 , 完 成 整 个<br />

负 载 调 度 过 程 。<br />

在 Red Hat 的 官 方 网 站 上 对 采 用 LVS 的 基 本 结 构 和 较 为 复 杂 与 HA 集 群 配 合 的 三 层 结 构 其 实 都<br />

是 利 用 NAT 这 种 方 式 。 这 种 情 况 的 配 置 比 较 简 单 , 但 通 常 在 流 量 比 较 大 的 情 况 下 会 造 成 调 度 器 的 瓶<br />

颈 。 因 为 服 务 数 据 的 返 回 必 须 通 过 调 度 器 出 去 。 详 情 见 下 图 :<br />

同 时 在 下 面 的 链 接 有 对 基 于 NAT 结 构 的 LVS 的 官 方 说 明 :<br />

开 源 时 代 2008 年 10 月 刊 - 54 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

http://www.redhat.com/docs/en-<br />

US/Red_Hat_Enterprise_Linux/5.2/html/Virtual_Server_Administration/s2-lvs-nat-VSA.html<br />

Virtual Server via Direct Routing(VS/DR)<br />

VS/DR 通 过 改 写 请 求 报 文 的 MAC 地 址 , 将 请 求 发 送 到 真 实 服 务 器 , 而 真 实 服 务 器 将 响 应 直 接<br />

返 回 给 客 户 。 同 VS/TUN 技 术 一 样 ,VS/DR 技 术 可 极 大 地 提 高 集 群 系 统 的 伸 缩 性 。 这 种 方 法 没 有 IP<br />

隧 道 的 开 销 , 对 集 群 中 的 真 实 服 务 器 也 没 有 必 须 支 持 IP 隧 道 协 议 的 要 求 , 但 是 要 求 调 度 器 与 真 实 服<br />

务 器 都 有 一 块 网 卡 连 在 同 一 物 理 网 段 上 。 也 就 是 说 , 在 这 种 结 构 中 , 数 据 从 外 部 到 内 部 真 实 服 务 器<br />

的 访 问 会 通 过 调 度 器 进 来 , 但 是 真 实 服 务 器 对 其 的 应 答 不 是 通 过 调 度 器 出 去 。 即 在 大 多 数 情 况 下 ,<br />

真 实 服 务 器 可 以 通 过 各 自 的 网 关 或 者 专 用 的 网 关 对 数 据 进 行 外 发 , 从 而 降 低 调 度 器 负 载 。 详 情 见 下<br />

图 :<br />

同 时 在 下 面 的 链 接 有 对 基 于 DR 结 构 的 LVS 的 官 方 说 明 :<br />

http://www.redhat.com/docs/en-<br />

US/Red_Hat_Enterprise_Linux/5.2/html/Virtual_Server_Administration/s2-lvs-directrouting-<br />

VSA.html<br />

Virtual Server via IP Tunneling(VS/TUN)<br />

采 用 NAT 技 术 时 , 由 于 请 求 和 响 应 报 文 都 必 须 经 过 调 度 器 地 址 重 写 , 当 客 户 请 求 越 来 越 多 时 ,<br />

调 度 器 的 处 理 能 力 将 成 为 瓶 颈 。 为 了 解 决 这 个 问 题 , 调 度 器 把 请 求 报 文 通 过 IP 隧 道 转 发 至 真 实 服 务<br />

器 , 而 真 实 服 务 器 将 响 应 直 接 返 回 给 客 户 , 所 以 调 度 器 只 处 理 请 求 报 文 。 由 于 一 般 网 络 服 务 应 答 比<br />

请 求 报 文 大 许 多 , 采 用 VS/TUN 技 术 后 , 集 群 系 统 的 最 大 吞 吐 量 可 以 提 高 10 倍 。<br />

但 事 实 上 使 用 Tunnel 技 术 实 现 LVS 的 做 法 , 根 据 我 们 在 工 作 环 境 中 Debug LVS 的 经 验 , 实 际<br />

上 是 三 种 结 构 中 配 置 最 复 杂 、 排 错 最 困 难 且 同 时 也 是 性 能 最 低 第 一 种 。 之 所 以 有 生 存 空 间 , 从 个 人<br />

角 度 理 解 实 际 上 是 因 为 在 一 些 特 殊 的 网 络 环 境 中 客 户 有 特 殊 的 要 求 。 否 则 大 多 数 情 况 下 也 都 是 使 用<br />

基 于 NAT 或 者 DR 的 方 式 来 实 现 LVS。 因 此 下 面 的 配 置 过 程 也 是 针 对 这 两 种 结 构 进 行 配 置 说 明 。<br />

开 源 时 代 2008 年 10 月 刊 - 55 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

c.Linux Virtual Server 工 作 原 理 与 核 心 组 件 :<br />

LVS 集 群 采 用 IP 负 载 均 衡 技 术 和 基 于 内 容 请 求 分 发 技 术 。 调 度 器 具 有 很 好 的 吞 吐 率 , 将 请 求 均<br />

衡 地 转 移 到 不 同 的 服 务 器 上 执 行 , 且 调 度 器 自 动 屏 蔽 掉 服 务 器 的 故 障 , 从 而 将 一 组 服 务 器 构 成 一 个<br />

高 性 能 的 、 高 可 用 的 虚 拟 服 务 器 。 整 个 服 务 器 集 群 的 结 构 对 客 户 是 透 明 的 , 而 且 无 需 修 改 客 户 端 和<br />

服 务 器 端 的 程 序 。<br />

为 此 , 在 设 计 时 需 要 考 虑 系 统 的 透 明 性 、 可 伸 缩 性 、 高 可 用 性 和 易 管 理 性 。 一 般 来 说 ,LVS 集<br />

群 采 用 三 层 结 构 , 其 体 系 结 构 如 图 1 所 示 , 三 层 主 要 组 成 部 分 为 :<br />

负 载 调 度 器 (load balancer), 它 是 整 个 集 群 对 外 面 的 前 端 机 , 负 责 将 客 户 的 请 求 发 送 到 一 组 服<br />

务 器 上 执 行 , 而 客 户 认 为 服 务 是 来 自 一 个 IP 地 址 ( 我 们 可 称 之 为 虚 拟 IP 地 址 ) 上 的 。<br />

服 务 器 池 (server pool), 是 一 组 真 正 执 行 客 户 请 求 的 服 务 器 , 服 务 有 WEB、MAIL、FTP 和 DNS<br />

等 。<br />

共 享 存 储 (shared storage), 它 为 服 务 器 池 提 供 一 个 共 享 的 存 储 区 , 这 样 很 容 易 使 得 服 务 器 池 拥<br />

有 相 同 的 内 容 , 提 供 相 同 的 服 务 。<br />

调 度 器 是 服 务 器 集 群 系 统 的 唯 一 入 口 点 (Single Entry Point), 它 可 以 采 用 IP 负 载 均 衡 技 术 、<br />

基 于 内 容 请 求 分 发 技 术 或 者 两 者 相 结 合 。 在 IP 负 载 均 衡 技 术 中 , 需 要 服 务 器 池 拥 有 相 同 的 内 容 提 供<br />

相 同 的 服 务 。 当 客 户 请 求 到 达 时 , 调 度 器 只 根 据 服 务 器 负 载 情 况 和 设 定 的 调 度 算 法 从 服 务 器 池 中 选<br />

出 一 个 服 务 器 , 将 该 请 求 转 发 到 选 出 的 服 务 器 , 并 记 录 这 个 调 度 ; 当 这 个 请 求 的 其 他 报 文 到 达 , 也<br />

会 被 转 发 到 前 面 选 出 的 服 务 器 。 在 基 于 内 容 请 求 分 发 技 术 中 , 服 务 器 可 以 提 供 不 同 的 服 务 , 当 客 户<br />

请 求 到 达 时 , 调 度 器 可 根 据 请 求 的 内 容 选 择 服 务 器 执 行 请 求 。 因 为 所 有 的 操 作 都 是 在 Linux 操 作 系 统<br />

核 心 空 间 中 将 完 成 的 , 它 的 调 度 开 销 很 小 , 所 以 它 具 有 很 高 的 吞 吐 率 。<br />

服 务 器 池 的 结 点 数 目 是 可 变 的 。 当 整 个 系 统 收 到 的 负 载 超 过 目 前 所 有 结 点 的 处 理 能 力 时 , 可 以<br />

在 服 务 器 池 中 增 加 服 务 器 来 满 足 不 断 增 长 的 请 求 负 载 。 对 大 多 数 网 络 服 务 来 说 , 请 求 间 不 存 在 很 强<br />

的 相 关 性 , 请 求 可 在 不 同 的 结 点 上 并 行 执 行 , 所 以 整 个 系 统 的 性 能 基 本 上 可 随 着 服 务 器 池 的 结 点 数<br />

目 增 加 而 线 性 增 长 。<br />

共 享 存 储 通 常 是 数 据 库 、 网 络 文 件 系 统 或 者 分 布 式 文 件 系 统 。 负 载 调 度 器 、 服 务 器 池 和 共 享 存<br />

储 系 统 通 过 高 速 网 络 相 连 接 , 如 100Mbps 交 换 网 络 、Myri<strong>net</strong> 和 Gigabit 网 络 等 。 使 用 高 速 的 网 络 ,<br />

主 要 为 避 免 当 系 统 规 模 扩 大 时 互 联 网 络 成 为 整 个 系 统 的 瓶 颈 。 在 具 体 实 施 过 程 中 , 在 红 帽 企 业 版<br />

Linux 上 对 LVS 集 群 的 定 义 和 配 置 提 供 了 更 加 详 细 的 方 案 。<br />

另 外 在 红 帽 的 LVS 中 还 有 一 个 比 较 关 键 的 东 西 是 LVS 的 组 件 :<br />

LVS 的 组 件 中 服 务 包 括 pulse,lvs,ipvsadm 以 及 nany; 另 外 还 包 括 配 置 文 件 /etc/sysconfig/ha/<br />

lvs.cf, 配 置 工 具 piranha configuration tooly 以 及 服 务 IP 进 行 浮 动 之 前 arp 欺 骗 手 段 中 的<br />

send_arp。<br />

pulse 是 LVS 的 控 制 进 程 , 该 进 程 用 于 启 动 和 控 制 所 有 的 其 他 LVS 相 关 的 守 护 进 程 。 该 进 程 的<br />

配 置 文 件 是 /etc/sysconfig/ha/lvs.cf。 在 主 router 上 pulse 用 于 启 动 LVS 守 护 进 程 , 在 备 份 router<br />

上 pulse 通 过 定 期 收 发 心 跳 信 号 监 控 主 router 的 状 态 。 如 果 一 旦 主 router 失 效 , 在 备 份 router 上 的<br />

pulse 进 程 将 关 闭 所 有 主 router 上 的 LVS 服 务 , 并 且 开 启 send_arp 程 序 来 重 新 指 派 浮 动 IP 到 备 份<br />

router 的 MAC 上 。<br />

lvs 进 程 运 行 在 主 router 上 , 主 要 读 取 /etc/sysconfig/ha/lvs.cf 文 件 , 调 用 lvsadm 工 具 来 建<br />

开 源 时 代 2008 年 10 月 刊 - 56 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

立 与 维 护 ipvs 路 由 表 并 对 每 一 个 LVS 服 务 指 派 nanny 进 程 。 如 果 nanny 报 告 一 个 真 实 服 务 器 失 效 ,<br />

lvs 进 程 将 调 用 ipvsadm 工 具 将 失 效 真 实 服 务 器 从 IPVS 路 由 表 中 删 除 。<br />

ipvsadm 用 于 升 级 kernel 中 的 IPVS 路 由 表 , 该 进 程 主 要 用 于 更 改 、 添 加 、 删 除 IPVS 路 由 表 的<br />

条 目 。nanny 监 控 的 进 程 运 行 在 主 LVS Router 上 , 主 LVS Router 会 通 过 他 来 监 控 每 一 个 真 实 服 务<br />

器 的 状 况 。 另 外 piranha configuration tool 提 供 了 一 个 图 形 接 口 用 于 修<br />

改 /etc/sysconfig/ha/lvs.cf 文 件 , 而 send_arp 会 在 浮 动 IP 向 不 同 的 LVS router 进 行 切 换 时 发 送<br />

arp 广 播 。<br />

【 前 言 】<br />

在 Redhat 上 部 署 DHCP Server 的 负 载 均 衡<br />

CU 网 友 : 黄 雨<br />

传 统 的 DHCP 服 务 器 的 冗 余 部 署 都 是 采 用 80/20 原 则 , 即 在 主 服 务 器 上 配 置 80% 的 地 址 池 , 备<br />

机 上 配 置 20% 的 地 址 池 , 以 避 免 发 生 地 址 冲 突 问 题 。 当 主 服 务 器 宕 机 时 , 备 机 可 以 在 短 期 内 接 替 主<br />

服 务 器 工 作 。 但 这 种 做 法 , 无 疑 需 浪 费 大 量 的 地 址 池 空 间 , 因 为 需 保 证 20% 的 备 机 地 址 池 能 够 满 足<br />

客 户 机 的 地 址 需 求 。<br />

【 摘 要 】<br />

近 几 年 随 着 技 术 的 发 展 , 已 经 可 以 实 现 DHCP 服 务 器 的 负 载 均 衡 配 置 。 本 文 的 部 署 的 软 件 环 境<br />

为 :Red Hat Enterprise Linux AS release 4 (Nahant Update 5), 采 用 操 作 系 统 自 带 的 DHCP 软<br />

件 ; 主 要 硬 件 为 2 颗 4 核 至 强 CPU,8G 内 存 。 最 多 配 置 了 8 千 多 个 地 址 池 , 为 十 数 万 用 户 提 供<br />

DHCP 服 务 。<br />

第 一 节 : 安 装 软 件 包<br />

用 命 令 行 安 装 软 件 包 ( 在 第 5 张 光 盘 上 ) 或 直 接 “ 添 加 删 除 程 序 -- 网 络 服 务 器 ”, 只 要 安 装<br />

dhcp-3.0.1-59.EL4.i386.rpm:<br />

第 二 节 : 配 置 DHCP 双 机 负 载 均 衡<br />

目 前 DHCP-Failover( 虽 然 叫 failover, 但 实 际 上 是 双 机 同 时 在 工 作 ) 仅 支 持 最 多 两 个 节 点 。<br />

配 置 文 件 和 单 机 配 置 一 样 , 依 然 是 /etc/dhcpd.conf; 但 出 于 方 便 管 理 的 目 的 , 在 部 署 时 , 我 们 把<br />

地 址 池 的 配 置 放 在 /etc/dhcpd.master 文 件 中 , 然 后 在 /etc/dhcpd.conf 中 调 用 。<br />

主 节 点 的 /etc/dhcpd.conf:<br />

authoritative;<br />

ddns-update-style interim;<br />

ignore client-updates;<br />

开 源 时 代 2008 年 10 月 刊 - 57 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

one-lease-per-client true;<br />

failover peer "dhcp" {<br />

primary;<br />

address 10.14.0.9;<br />

port 520;<br />

peer address 10.14.0.13;<br />

peer port 519;<br />

max-response-delay 60;<br />

max-unacked-updates 10;<br />

mclt 600;<br />

split 128;<br />

load balance max seconds 3;<br />

}<br />

include "/etc/dhcpd.master";<br />

次 节 点 的 /etc/dhcpd.conf:<br />

authoritative;<br />

ddns-update-style interim;<br />

ignore client-updates;<br />

one-lease-per-client true;<br />

failover peer "dhcp" {<br />

secondary;<br />

address 10.14.0.13;<br />

port 519;<br />

peer address 10.14.0.9;<br />

peer port 520;<br />

max-response-delay 60;<br />

max-unacked-updates 10;<br />

}<br />

include "/etc/dhcpd.master";<br />

【 注 意 】<br />

开 源 时 代 2008 年 10 月 刊 - 58 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

1、 两 台 dhcp server 的 时 间 必 须 同 步 , 可 用 ntp<br />

2、Dhcp Failover 的 互 相 监 听 地 址 可 以 采 用 专 用 网 卡 互 相 直 连 做 心 跳 的 方 式 , 甚 至 心 跳 卡 可 以 考 虑<br />

双 网 卡 绑 定 ! 从 而 使 监 听 和 网 络 数 据 流 分 开 , 即 使 网 络 中 断 亦 不 会 因 此 导 致 dhcp 双 机 中 断 , 如 下<br />

所 示 :<br />

这 种 时 候 Failover 专 用 接 口 所 在 网 段 , 可 在 地 址 池 中 定 义 一 个 空 池 , 不 做 任 何 地 址 分 配 操 作 :<br />

}<br />

sub<strong>net</strong> x.x.x.x <strong>net</strong>mask 255.255.255.248 {<br />

Bonding 接 口<br />

Dhcp01<br />

Failover 专 用<br />

Failover 专 用<br />

Dhcp02<br />

数 据 接 口<br />

数 据 接 口<br />

数 据 网 络<br />

本 文 列 出 的 配 置 是 采 用 心 跳 和 数 据 网 卡 混 用 的 方 式 。<br />

/etc/dhcpd.conf<br />

主 控 服 务 器<br />

authoritative;<br />

ddns-update-style interim;<br />

ignore client-updates;<br />

one-lease-per-client true;<br />

failover peer "dhcp" {<br />

primary;<br />

address 10.14.0.9;<br />

port 520;<br />

peer address 10.14.0.13;<br />

peer port 519;<br />

max-response-delay 60;<br />

说 明<br />

说 明 这 是 正 式 ( 官 方 ) 服 务 器 , 而 非 测 试 用<br />

1<br />

动 态 DNS 的 更 新 方 式 , 有 3 种<br />

不 允 许 客 户 机 更 新 DNS 记 录<br />

每 一 个 客 户 机 对 应 一 个 租 约 信 息 ( 文 件 ) 2<br />

指 定 本 机 所 属 failover 域 的 识 别 码 为 dhcp<br />

指 定 本 机 为 主 控 服 务 器<br />

指 定 本 机 的 监 听 地 址<br />

指 定 本 机 的 监 听 端 口<br />

对 端 的 监 听 地 址<br />

对 端 的 监 听 端 口<br />

最 大 无 响 应 时 间 60 秒 , 如 果 地 址 池 很 多 这 个 时 间<br />

开 源 时 代 2008 年 10 月 刊 - 59 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

3<br />

可 加 大<br />

max-unacked-updates 20;<br />

mclt 3600;<br />

split 128;<br />

load balance max seconds 3;<br />

}<br />

在 得 到 对 端 响 应 之 前 , 最 多 连 续 发 送 20 个 消 息<br />

双 机 联 系 中 断 时 所 分 配 的 地 址 的 租 约 时 间 ,3600<br />

秒<br />

负 载 分 担 比 例 , 取 值 0-256,128 为 平 均 分 担 负<br />

载<br />

include "/etc/dhcpd.master";<br />

地 址 池 文 件<br />

【 注 1】 这 个 style 参 数 必 须 是 interim( 推 荐 )、ad-hoc 或 者 none<br />

【 注 2】 假 如 这 个 标 志 配 置 成 true(enabled), 当 一 个 客 户 端 发 送 一 个 DHCPREQUEST 信 息 来 租<br />

用 租 约 时 , 服 务 器 会 自 动 释 放 任 何 这 个 客 户 的 任 何 其 他 租 约 。 服 务 器 假 定 当 一 个 客 户 端 发 送<br />

DHCPREQUEST 信 息 时 , 他 已 忘 记 任 何 他 没 有 在 DHCPREQUEST 中 提 到 的 租 约 , 例 如 , 客 户 端 只 是<br />

个 简 单 的 网 络 接 口 , 不 能 记 住 原 来 拥 有 而 现 在 不 用 的 租 约 。 这 些 假 定 都 是 没 有 确 保 , 而 且 不 可 证 实<br />

的 , 因 此 小 心 使 用 这 个 语 句 。<br />

【 注 3】 如 果 这 个 值 不 够 大 , 会 发 生 地 址 池 还 未 同 步 结 束 , 就 产 生 连 接 中 断 现 象 。 在 拥 有 近 1 万 个 地<br />

址 池 时 , 这 个 值 被 设 为 180。<br />

/etc/dhcpd.master<br />

两 个 节 点 的 地 址 池 配 置 必 须 保 持 完 全 一 致 。<br />

option domain-name-servers 10.14.0.9,10.14.0.13;<br />

default-lease-time 21600;<br />

max-lease-time 43200;<br />

域 名 服 务 器<br />

默 认 租 约 时 间 (6 小 时 )<br />

最 大 租 约 时 间<br />

sub<strong>net</strong> 10.14.0.8 <strong>net</strong>mask 255.255.255.248 {<br />

option routers 10.14.0.14;<br />

pool {<br />

定 义 子 网 / 掩 码<br />

定 义 子 网 的 网 关<br />

地 址 池<br />

}<br />

failover peer "dhcp";<br />

range 10.14.0.11 10.14.0.12;<br />

deny dynamic bootp clients;<br />

属 于 名 为 dhcp 的 failover<br />

组<br />

地 址 范 围 , 可 多 条 range<br />

拒 绝 bootp 客 户 端<br />

}<br />

#shuniu<br />

开 源 时 代 2008 年 10 月 刊 - 60 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

sub<strong>net</strong> 10.0.0.0 <strong>net</strong>mask 255.255.224.0 {<br />

option routers 10.0.31.254;<br />

pool {<br />

failover peer "dhcp";<br />

range 10.0.0.1 10.0.31.250;<br />

deny dynamic bootp clients;<br />

}<br />

}<br />

......<br />

有 多 少 个 网 段 就 有 多 少 个 地 址 池 , 一 个 个 配 置 下 去 。<br />

第 三 节 : 管 理 操 作<br />

1、 在 两 个 节 点 依 次 启 动 dhcp 服 务 , 先 主 后 备 。<br />

# service dhcpd start<br />

2、 配 置 自 动 启 动<br />

# chkconfig dhcpd on<br />

3、 验 证<br />

# <strong>net</strong>stat -anutp | grep dhcpd<br />

udp 0 0 0.0.0.0:67 0.0.0.0:* 6581/dhcpd<br />

4、 查 看 地 址 租 借 信 息<br />

# cat /var/lib/dhcp/dhcpd.leases<br />

3.1、 租 约 文 件<br />

dhcpd 每 次 都 会 把 所 有 的 租 借 信 息 写 到 /var/lib/dhcpd.leases 文 件 中 , 上 一 次 的 租 借 文 件 被 改 名<br />

成 dhcpd.leases~<br />

3.2、 地 址 池 同 步<br />

每 次 重 启 DHCP 服 务 时 , 双 机 都 会 自 动 执 行 地 址 池 同 步 操 作 。<br />

在 次 服 务 器 上 :<br />

# service dhcpd congrestart<br />

3.3、 查 看 日 志 信 息<br />

凡 是 有 任 何 和 DHCP 服 务 器 的 地 址 分 配 有 关 的 故 障 , 都 可 以 通 过 查 看 日 志 文 件 分 析 出 原 因 并 得 以 处<br />

理 。<br />

# tail -f /var/log/messages<br />

开 源 时 代 2008 年 10 月 刊 - 61 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

其 他 的 故 障 绝 大 部 分 是 由 于 作 为 中 转 的 DHCP-RELAY 设 备 配 置 有 问 题 导 致 。<br />

3.4、 简 要 故 障<br />

1、 某 台 服 务 器 无 法 为 某 个 网 段 的 客 户 机 提 供 地 址 租 借 服 务<br />

有 时 会 由 于 某 种 原 因 导 致 双 机 地 址 池 无 法 合 理 分 配 , 比 如 主 服 务 器 掌 控 了 某 个 地 址 池 的 所 有 地 址 ,<br />

这 时 需 要 先 停 止 两 个 节 点 的 dhcp 服 务 , 删 除 两 个 节 点 的 地 址 租 约 文 件 , 然 后 依 次 重 启 服 务 。<br />

2、 无 法 形 成 双 机<br />

请 注 意 两 个 节 点 的 时 间 是 否 一 致 , 如 果 时 间 差 距 太 大 , 比 如 2 分 钟 , 两 台 dhcp 服 务 器 将 无 法 形 成<br />

集 群 。 可 通 过 配 置 ntp 保 持 两 个 节 点 的 时 间 同 步 。<br />

RedHat 企 业 版 5.0 下 构 建 YUM 升 级 服 务 器<br />

CU 网 友 :anmyyang<br />

Yum( 全 称 为 Yellow dog Updater, Modified) 是 一 个 在 Fedora 中 的 Shell 前 端 软 件 包 管 理 器 。<br />

基 于 RPM 包 管 理 , 能 够 从 指 定 的 服 务 器 自 动 下 载 RPM 包 并 且 安 装 , 可 以 自 动 处 理 依 赖 性 关 系 , 并<br />

且 一 次 安 装 所 有 依 赖 的 软 体 包 , 无 须 繁 琐 地 一 次 次 下 载 、 安 装 。<br />

YUM 服 务 涉 及 到 客 户 端 与 服 务 端 , 其 中 :<br />

1 YUM Client: 要 保 证 安 装 有 如 下 软 件 包 :<br />

yum-3.0.1-5.el5<br />

yum-metadata-parser-1.0-8.fc6<br />

2 YUM Server: 要 保 证 安 装 有 如 下 软 件 包 :<br />

yum-3.0.1-5.el5<br />

yum-metadata-parser-1.0-8.fc6<br />

yum-rhn-plugin-0.4.3-1.el5<br />

yum-updatesd-3.0.1-5.el5<br />

createrepo-0.4.4-2.fc6.noarch.rpm<br />

yum-arch-2.2.2-2.fc7.noarch.rpm<br />

yum 服 务 器 的 安 装<br />

1 存 放 YUM 服 务 器 上 的 软 件 包<br />

放 入 redhatES5 系 统 盘 , 将 其 挂 载 到 /mnt<br />

再 生 成 /rhel5 目 录 用 于 存 放 软 件 包 :<br />

[root@ns100 vmware]# mkdir /rhel5<br />

将 光 盘 上 Server 目 录 ( 该 目 录 主 要 存 放 一 些 服 务 端 软 件 包 ) 下 的 所 有 软 件 包 拷 入 /rhel5, 因 为 Server<br />

目 录 中 软 件 包 较 多 ,rhel5 可 能 放 不 下 , 此 时 可 以 格 式 化 一 块 5G 的 分 区 , 挂 载 于 /rhel5 目 录 下 。<br />

[root@ns100 vmware]# cp -R /mnt/Server /rhel5<br />

将 key 文 件 ( 用 于 客 户 端 与 服 务 端 的 认 证 ) 拷 入 指 定 目 录<br />

[root@ns100 vmware]# cp /mnt/RPM-GPG-KEY-redhat-release /rhel5/Server<br />

备 注 : 如 果 有 系 统 光 盘 的 iso 文 件 ( 光 盘 镜 像 文 件 ), 可 以 利 用 此 文 件 来 做 虚 拟 光 驱 , 再 将 此 虚 拟 光 驱<br />

挂 载 到 /mnt, 方 法 如 下 :<br />

开 源 时 代 2008 年 10 月 刊 - 62 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

mount -o loop redhat.iso /mnt<br />

进 入 /mnt 即 可 使 用 了 ;<br />

2 服 务 端 设 置 软 件 仓 库 及 报 告 文 件<br />

首 先 , 生 成 YUM 的 软 件 仓 库 :<br />

[root@ns100 vmware]# yum-arch /rhel5/Server 注 : 即 可 有 出 错 也 可 不 管<br />

再 设 置 给 客 户 端 获 取 的 报 告 文 件 :<br />

[root@ns100 vmware]# createrepo /rhel5/Server<br />

3 配 置 www 服 务 , 用 于 发 布 这 些 软 件 包<br />

在 /etc/httpd/conf/httpd.conf 中 进 行 如 下 配 置 ( 注 : 如 果 httpd 起 不 来 , 此 时 用 setenforce 0<br />

将 SELinux 关 闭 即 可 )<br />

DocumentRoot "/var/www/html" 改 为 DocumentRoot "/rhel5"<br />

改 为 <br />

接 着 重 启 http 服 务 :<br />

[root@localhost ~]# service httpd restart<br />

Stopping httpd: [ OK ]<br />

Starting httpd: [ OK ]<br />

4 客 户 端 配 置 :<br />

方 法 1<br />

在 /etc/yum.repos.d/ 下 生 成 Server.repo 文 件 注 : 如 果 /etc/yum.conf 有 设 置 的 话 优 先 从<br />

yum.conf 中 查 找 ;<br />

Client:<br />

最 好 把 原 来 的 .repo 文 件 备 份 一 下 :<br />

[root@<strong>net</strong>work yum.repos.d]# mkdir -p /etc/yum.repos.d/backup<br />

[root@<strong>net</strong>work yum.repos.d]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup<br />

[root@<strong>net</strong>work yum.repos.d]# touch /etc/yum.repos.d/Server.repo<br />

[root@<strong>net</strong>work yum.repos.d]# cat /etc/yum.repos.d/Server.repo ( 注 : 如 果 配 置 yum.conf<br />

的 话 , 其 尾 部 也 加 入 如 下 内 容 , 其 余 不 变 ;)<br />

[Server]<br />

name=Red Hat<br />

baseurl=http://10.0.0.1/Server/<br />

gpgcheck=1<br />

gpgkey=http://10.0.0.1/Server/RPM-GPG-KEY-redhat-release<br />

方 法 2<br />

修 改 默 认 的 /etc/rhel-debuginfo.repo 改 两 处 地 方<br />

baseurl=http://10.0.0.1/Server/<br />

enabled=1<br />

5 测 试<br />

开 源 时 代 2008 年 10 月 刊 - 63 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

在 客 户 端 执 行 如 下 命 令 :<br />

yum install dasher<br />

yum -y install firefox 安 装 自 动 应 答 为 yes<br />

yum remove httpd 删 除 软 件 包<br />

yum clean all 清 空 下 载 的 软 件 包 的 缓 存<br />

yum list 列 出 所 有 的 软 件 包 ( 包 括 已 安 装 和 在 YUM 服 务 器 上 存 在 的 )<br />

yum upgrade 或 yum update 升 级 软 件 包<br />

yum list installed 列 出 所 有 已 经 安 装 的 软 件 包<br />

yum list available 列 出 所 有 可 用 的 软 件 包<br />

yum list updates 列 出 所 有 可 升 级 的 软 件 包<br />

附 : 基 于 FTP 的 YUM 服 务 器 搭 建<br />

1 放 入 redhatES5 系 统 盘 , 将 其 挂 载 到 /mnt<br />

[root@ns100 vmware]# cp -R /mnt/Server /var/ftp/Server<br />

[root@ns100 vmware]# cp /mnt/RPM-GPG-KEY-redhat-release /var/ftp/Server<br />

2<br />

[root@ns100 vmware]# yum-arch /var/ftp/Server 注 : 即 可 有 出 错 也 可 不 管<br />

[root@ns100 vmware]# createrepo /var/ftp/Server<br />

3 配 置 yum.conf<br />

[root@ns100 vmware]# cat /etc/yum.conf<br />

[main]<br />

cachedir=/var/cache/yum<br />

keepcache=0<br />

debuglevel=2<br />

logfile=/var/log/yum.log<br />

pkgpolicy=newest<br />

distroverpkg=redhat-release<br />

tolerant=1<br />

exactarch=1<br />

obsoletes=1<br />

gpgcheck=1<br />

plugins=1<br />

metadata_expire=1800<br />

4 运 行 vsftp 服 务<br />

service vsftpd restart<br />

5 客 户 端 配 置 :<br />

开 源 时 代 2008 年 10 月 刊 - 64 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

方 法 1<br />

在 /etc/yum.repos.d/ 下 生 成 Server.repo 文 件 注 : 如 果 /etc/yum.conf 有 设 置 的 话 优 先 从<br />

yum.conf 中 查 找 ;<br />

Client:<br />

[root@<strong>net</strong>work yum.repos.d]# mkdir -p /etc/yum.repos.d/backup<br />

[root@<strong>net</strong>work yum.repos.d]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup<br />

[root@<strong>net</strong>work yum.repos.d]# touch /etc/yum.repos.d/Server.repo<br />

[root@<strong>net</strong>work yum.repos.d]# cat /etc/yum.repos.d/Server.repo 注 :yum.conf 尾 部 也 加 入<br />

如 下 内 容 , 其 余 不 变 ;<br />

[Server]<br />

name=Red Hat<br />

baseurl=ftp://10.0.0.1/Server/<br />

gpgcheck=1<br />

gpgkey=ftp://10.0.0.1/Server/RPM-GPG-KEY-redhat-release<br />

方 法 2<br />

修 改 默 认 的 /etc/rhel-debuginfo.repo 改 两 处 地 方<br />

baseurl=ftp://10.0.0.1/Server/<br />

enabled=1<br />

游 戏 代 理 VPN(pptp+radius+mysql) 安 装 笔 记 总 结<br />

CU 网 友 :vrlinux.cn<br />

软 件 :pptp+radius+mysql<br />

平 台 :linux, 可 以 是 各 发 行 版 , 内 核 最 好 是 2.6 以 上 的<br />

我 的 测 试 平 台 是 RHEL5 beta1, 内 核 2.6.18-1.2747.el5xen<br />

这 个 版 本 有 个 好 处 , 就 是 内 核 已 支 持 MPPE, 不 用 再 安 装 。<br />

首 先 要 确 定 内 核 是 否 支 持 mppe<br />

方 法 :modprobe ppp-compress-18 && echo ok<br />

如 果 显 示 ok, 即 表 示 内 核 已 具 备 了 mppe 支 持<br />

如 不 支 持 , 需 要 升 级 内 核 以 支 持 mppe<br />

软 件 下 载 http://sourceforge.<strong>net</strong>/project/showfiles.php?group_id=44827<br />

下 载 2 个 rpm 包 。<br />

dkms-2.0.10-1.noarch.rpm<br />

开 源 时 代 2008 年 10 月 刊 - 65 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm<br />

dkms 是 一 个 新 的 软 件 , 能 让 你 在 不 编 译 内 核 的 基 础 上 , 外 挂 一 些 内 核 的 模 块 。<br />

kernel_ppp_mppe 就 是 mppe 支 持 的 内 核 模 块<br />

OK 后 最 好 重 起 下 你 的 系 统<br />

安 装 pppd<br />

也 可 以 在 上 面 的 地 址 下 载 , 但 只 可 以 下 载 RPM 包 , 最 高 版 本 为 ppp-2.4.3-5.rhel4.i386.rpm, 也 有<br />

FC 的 。 源 码 下 载 可 以 到 http://samba.org/ppp/download.html, 最 新 版 本 为<br />

ppp-2.4.4b1.tar.gz。 最 新 版 已 支 持 mppe, 不 用 再 打 补 丁 。 如 不 支 持 , 可 以 到 此 下 载<br />

http://mppe-mppc.alphacron.de/#AEN56, 包 括 ppp 和 内 核 补 丁 。<br />

检 查 pppd 是 否 支 持 mppe<br />

[root@localhost]# strings `which pppd`|grep -i mppe|wc --lines<br />

42<br />

结 果 大 于 36, 即 表 示 支 持<br />

解 压 安 装<br />

tar -zxvf ...<br />

configure,make,make install<br />

用 make install-etcppp 来 安 装 范 例 配 置 文 件<br />

安 装 pptpd<br />

下 载 http://sourceforge.<strong>net</strong>/project/showfiles.php?group_id=44827<br />

最 新 版 本 , 源 码 包 的 是 pptpd-1.3.4.tar.gz<br />

RPM 包 的 是 pptpd-1.3.3-1.rhel4.i386.rpm,FC6<br />

解 压 安 装 tar -zxvf ...<br />

configure,make,make install<br />

配 置<br />

pppd 的 配 置 文 件 /etc/ppp<br />

pptpd 的 配 置 文 件 /etc/pptpd.conf<br />

在 pptpd.conf<br />

localip 10.10.10.1<br />

remoteip 10.10.110.2-100<br />

开 源 时 代 2008 年 10 月 刊 - 66 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

localip 是 pptpd 的 对 外 服 务 的 ip, 也 就 是 客 户 端 需 要 拨 号 的 ip<br />

remoteip 是 拨 号 服 务 器 分 配 给 拨 号 用 户 的 ip , 可 以 用 - 表 示 ip 范 围<br />

添 加 测 试 用 户 /etc/ppp/chap-secrets<br />

# Secrets for authentication using CHAP<br />

# client server secret IP addresses<br />

test pptpd test *<br />

认 证 方 式 设 置 /etc/ppp/options.pp<br />

默 认 就 可 以 用 , 如 果 不 mppe, 或 是 不 用 加 密 , 可 以 在 此 文 件 设 置<br />

为 方 便 测 试 , 请 打 开 debug 和 dump 调 试 , 并 查 看 /var/log/messages 文 件<br />

启 动 pptpd 后 , 就 可 以 在 XP 建 立 连 接 测 试 了<br />

以 上 一 个 简 单 的 VPN 就 完 成 了 。<br />

结 合 radius<br />

软 件 下 载 http://www.freeradius.org<br />

当 前 最 新 版 本 为 freeradius-server-2.0.4.tar.bz2<br />

但 与 1.X 的 配 置 方 式 上 , 有 比 较 大 的 区 别 。<br />

我 开 始 是 用 2.X 测 试 的 , 但 没 成 功 , 最 后 用 了 1.X 的 , 有 空 再 研 究 2.X 的 。<br />

解 压 安 装<br />

tar -zxvf ...,configure,make,make install<br />

配 置<br />

从 pppd 的 源 码 目 录 把 下 面 这 个 目 录 复 制 到 /etc/radiusclient/<br />

cp -R ppp-2.4.4b1/pppd/plugins/radius/etc /etc/radiusclient/<br />

修 改 options.pptpd<br />

在 最 后 加 入<br />

plugin /usr/local/lib/pppd/2.4.4b1/radius.so<br />

配 置 /etc/radiusclient 中 的 servers 和 radiusclient.conf<br />

在 servers 中 , 你 需 要 增 加 一 个 radiusd 的 地 址 和 密 码<br />

开 源 时 代 2008 年 10 月 刊 - 67 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

localhost<br />

vpn<br />

这 里 localhost 表 示 你 的 radiusd 就 在 本 机 , 并 且 访 问 的 密 码 是 vpn<br />

在 radiusclient.conf 中 加 入<br />

authserver<br />

acctserver<br />

localhost:1812<br />

localhost:1813<br />

确 认 上 面 也 是 本 地 的 , 默 认 就 是 本 地 , 所 以 一 般 不 需 要 修 改 。<br />

同 时 确 保 这 个 文 件 中 radiusclient 相 关 的 路 径 所 有 的 路 径 都 是 /etc/radiusclient 开 头 的 。<br />

配 置 freeradius<br />

在 freeradius/etc/raddb 下<br />

修 改 clients.conf<br />

这 里 说 明 一 下 , 所 有 的 nas 都 是 radiusd 的 client,nas 就 是 那 个 pptpd, 所 以 这 个 文 件 就 是 配 置<br />

pptpd 的 登 陆 权 限 的 。<br />

client 127.0.0.1 {<br />

secret = vpn<br />

shortname = mm<br />

nastype<br />

= other<br />

}<br />

修 改 127.0.0.1 部 分 为 上 面 的 样 子 。secret 就 是 我 们 刚 才 在 /etc/radiusclient 中 servers 里 设 置 的 那<br />

个 。 这 两 个 要 一 致<br />

在 users 文 件 的 最 上 面 加 入 一 个 用 户<br />

ww Auth-Type:= MS-CHAP, User-Password=="ww", Simultaneous-Use:=1<br />

Service-Type = Framed-User,<br />

Framed-Protocol = PPP,<br />

Framed-IP-Address = 255.255.255.254,<br />

Framed-IP-Netmask = 255.255.255.0<br />

说 明 一 下 ww 是 用 户 名<br />

auth-type 是 验 证 的 类 型<br />

开 源 时 代 2008 年 10 月 刊 - 68 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

第 二 个 ww 是 密 码<br />

Simultaneous-Use 是 允 许 这 个 用 户 名 同 时 登 陆 的 个 数<br />

所 有 这 些 都 是 check 属 性 , 要 写 在 第 一 行<br />

然 后 第 二 行 开 始 用 tab 开 头 , 是 服 务 器 返 回 给 radius 客 户 端 的 ( 也 就 是 返 回 给 pptpd) 时 reply 属<br />

性 。<br />

其 中 ip 地 址 设 置 为 255.255<br />

用 debug 模 式 运 行 radiusd<br />

sbin/radiusd -x<br />

测 试 , 在 XP 建 个 VPN 连 接 , 用 户 密 码 均 为 ww<br />

结 合 mysql<br />

mysql 安 装 略 过 .<br />

建 立 一 个 radius 数 据 库 , 把 结 构 导 入 即 可<br />

库 结 构 文 件 在 freeradius16/share/doc/freeradius/examples/mysql.sql<br />

配 置 sql.conf 在 安 装 目 录 下 的 etc/raddb<br />

修 改 sql.conf 的 连 接 信 息<br />

# Connect info<br />

server = "192.168.8.53"<br />

login = "radius"<br />

password = "radius"<br />

# Database table configuration<br />

radius_db = "radius"<br />

去 掉 下 面 的 simul。。。。 前 面 的 #<br />

打 开 sql 的 用 户 同 时 连 接 数 测 试 的 语 句<br />

# Uncomment simul_count_query to enable simultaneous use checking<br />

simul_count_query = "SELECT COUNT(*) FROM ${acct_table1} WHERE UserName='%<br />

{SQL-User-Name}' AND AcctStopTime = 0"<br />

开 源 时 代 2008 年 10 月 刊 - 69 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

配 置 radiusd.conf<br />

注 释 掉 authorize {<br />

的 files<br />

去 掉 sql 前 的 注 释<br />

注 释 掉 preacct {<br />

的 files<br />

注 释 掉 accounting {<br />

的 radutmp<br />

去 掉 sql 前 面 的 #<br />

注 释 掉 session{<br />

的 radutmp<br />

去 掉 sql 前 面 的 #<br />

去 掉 post-auth {<br />

sql 前 的 #<br />

总 之 就 是 去 掉 files 模 块 , 开 启 sql 模 块<br />

在 数 据 库 中 添 加 用 户<br />

在 usergroup 中 添 加 一 个 test 用 户 , 组 名 为 vpn<br />

在 radgroupcheck 中 添 加 一 个 vpn 组 ,<br />

attribute 为 Simultaneous-Use<br />

op 为 :=<br />

value 为 1<br />

的 纪 录<br />

在 radcheck 中 添 加<br />

username 为 test<br />

开 源 时 代 2008 年 10 月 刊 - 70 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

attribute 为 User-Password<br />

op 为 ==<br />

value 为 test<br />

这 样 就 添 加 了 一 个 用 户 为 test, 组 为 vpn, 密 码 为 test<br />

并 且 所 有 的 组 用 户 的 都 只 能 1 个 用 户 名 登 陆 一 次<br />

测 试<br />

用 debug 模 式 启 动 radiusd<br />

本 文 参 考 了 http://www.chinaunix.<strong>net</strong>/jh/50/698648.html, 谢 谢 i_amok 的 文 章<br />

Squid 实 现 基 于 MySQL 的 用 户 及 IP 绑 定 的 验 证<br />

CU 网 友 :geekjim<br />

概 述 : 本 文 档 为 Squid Proxy 实 现 基 于 MySQL 的 用 户 认 证 及 IP 绑 定 的 实 现 而 编 写 , 本 文 档 在 GPL<br />

v2 下 发 布 。<br />

I. 本 文 档 在 Red Hat Enterprise Linux AS 4 下 测 试 通 过 , 其 他 <strong>Unix</strong>/Linux 平 台 可 类 同 参 照<br />

需 要 的 主 要 软 件 包 有 :<br />

Squid 2.5 以 上<br />

MySQL 3.0 or 4.x<br />

MySQL_auth<br />

ip_user ( 注 :ip_user 通 常 在 一 些 Linux 所 带 的 Squid 中 已 经 附 带 , 可 以 不 用 另 外 安 装 )<br />

其 中 MySQL_Auth 用 来 完 成 用 户 名 及 密 码 的 验 证 ,ip_user 用 来 进 行 用 户 名 和 IP 的 绑 定 验 证<br />

II. 确 定 squid 已 经 安 装<br />

# rpm -q squid<br />

squid-2.5.STABLExxxx-xxxx<br />

III. 获 取 MySQL_Auth<br />

MySQL_auth Homepage: http://people.arx<strong>net</strong>.hu/airween/mysql.auth/<br />

进 入 该 页 面 后 下 载 mysql_auth-0.8.tar.gz<br />

IV. 获 取 ip_user ( 如 squid 已 经 内 置 , 则 不 用 另 行 安 装 )<br />

开 源 时 代 2008 年 10 月 刊 - 71 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

ip_user Hompage: geekbunker.org/rodrigo/ip_user.html<br />

进 入 该 页 面 后 下 载 ip_user 1.0<br />

V. 编 译 , 调 试 MySQL_Auth, 及 MySQL<br />

a. 编 译 MySQL_Auth<br />

$ tar -xzvf mysql_auth-0.8.tar.gz<br />

$ cd mysql_auth-0.8<br />

$ make<br />

通 常 这 步 会 有 错 误 , 出 错 信 息 如 下 :<br />

/usr/bin/ld: cannot find -lmysqlclient<br />

collect2: ld returned 1 exit status<br />

make: *** [mysql_auth] Error 1<br />

出 现 该 错 误 的 原 因 是 Makefile 里 没 有 考 虑 到 libmysqlclient 真 正 所 处 的 路 径 通 常 会<br />

是 /usr/lib/mysql, 而 不 是 /usr/local/lib, 所 以 打 开 Makefile, 修 改 里 面 的 CFLAGS 参 数 , 加<br />

上 /usr/lib/mysql 路 径 即 可 :<br />

修 改 后 的 CFLAGS 为 :<br />

CFLAGS = -I/usr/local/include -L/usr/local/lib -L /usr/lib/mysql<br />

保 存 修 改 好 的 Makefile, 退 出 vi (or emacs or nano or joe or whatever)<br />

再 次 运 行 make 进 行 编 译<br />

$ make<br />

编 译 成 功 .<br />

$ su -


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

修 改 后 的 Make 内 的 install 内 容 格 式 类 似 如 下 :<br />

$(INSTALL) -D -o nobody -o nogroup -m 600 .....<br />

确 认 以 上 步 骤 都 完 成 后 , 再 次 运 行 make install<br />

# make install<br />

如 没 有 报 错 信 息 出 现 , 则 mysql_auth 安 装 完 成 。<br />

注 1: 如 果 squid 在 系 统 中 不 是 以 nobody 的 身 份 来 运 行 , 需<br />

将 /usr/local/squid/etc/mysql_auth.conf 文 件 的 ownership 改 为 对 应 的 user/group, 在 Red Hat<br />

Enterprise 4 中 ,squid 是 以 其 自 己 的 身 份 squid.squid 来 运 行 的 , 则 需 将 该 conf 文 件 改 为 :<br />

chown squid.squid /usr/local/squid/etc/mysql_auth.conf<br />

b. 配 置 MySQL 和 MySQL_Auth 之 间 的 连 接 是 否 正 常<br />

首 先 确 认 MySQL 3.0 或 以 上 的 版 本 已 经 正 确 安 装<br />

# rpm -q mysql<br />

检 查 mysql_auth 中 关 于 MySQL 部 分 的 配 置 是 否 正 确 , 这 部 分 的 配 置 信 息<br />

在 /usr/local/squid/etc/mysql_auth.conf 中 描 述 . 配 置 文 件 的 具 体 内 容 可 参 照 文 档 ,<br />

通 常 在 这 个 配 置 文 件 中 有 几 点 需 要 注 意 :<br />

1. hostname 是 否 正 确 , 如 果 是 缺 省 情 况 下 连 接 位 于 本 地 的 MySQL server, 则 原 先 的 参 数<br />

localhost 可 不 作 改 动<br />

2. 默 认 mysql_auth 会 用 username: squid, password: squid 来 连 接 MySQL, 并 会 在<br />

mysql_auth 这 个 database 内 的 data 表 中 建 立 squid 验 证 所 需 的 proxy username 和<br />

password. (mysql_auth 提 供 了 一 个 初 始 化 script 来 完 成 mysql 建 数 据 库 和 表 等 一 系 列 操 作 , 稍 后<br />

会 提 到 )<br />

3. mysql_auth.conf 中 最 需 要 注 意 的 是 mysqld_socket 这 个 参 数 , 这 个 参 数 缺 省 情 况 下 指 向 的 位<br />

置 为<br />

/tmp/mysqld.sock<br />

现 在 一 般 主 流 的 Linux 一 般 已 将 mysql unix socket 移 至 /var/lib/mysql/mysql.sock, 所 以 修 改<br />

该 行 为 :<br />

mysqld_socket /var/lib/mysql/mysql.sock<br />

如 遇 其 他 情 况 , 可 参 照 mysql 的 配 置 文 件 my.cnf 来 确 定 sock 的 具 体 存 放 位 置 .<br />

4. 完 成 上 列 步 骤 后 , 可 运 行 mysql_auth 提 供 的 script 来 完 成 步 骤 2 中 所 提 及 的 初 始 化 工 作 ,<br />

该 脚 本 所 在 位 置 为 mysql_auth-0.8.tar.gz 解 开 后 的 目 录 下 的 scripts 目 录<br />

# cd scripts<br />

# mysql -u root -p < create_script<br />

Enter password:<br />

开 源 时 代 2008 年 10 月 刊 - 73 -<br />

系 统 提 示 输 入 mysql root 的 password<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

如 无 出 错 信 息 , 则 表 示 该 步 骤 完 成 , mysql 中 现 在 已 有 一 名 为 mysql_auth 的 新 增 数 据 库 , 该 数 据<br />

库 中 仅 包 含 一 张 表 data, 访 问 该 表 可 通 过 mysql 用 户 squid, 密 码 squid 来 访 问<br />

5. MySQL_auth 中 还 附 带 有 一 个 用 户 管 理 工 具 mypasswd, 存 放 的 路 径 通 常<br />

为 /usr/local/bin/mypasswd<br />

# mypasswd jim 123456


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

192.168.1.123 test<br />

6. 启 动 squid, 正 常 运 行 的 squid 应 该 可 以 从 内 存 中 看 到 如 下 的 情 况 :<br />

# pstree<br />

squid---squid---5*[ip_user_check]<br />

|-5*[mysql_auth]<br />

|-unlinkd<br />

VII: SELinux 的 问 题<br />

Red Hat Enterprise Linux 4 的 SeLinux 缺 省 情 况 为 打 开 状 态 ,selinux 似 乎 会 干 扰 mysql_auth<br />

的 启 动 , 需 将 selinuxdisable 后 , 再 启 动 squid, disable selinux 的 办 法 为<br />

# cd /etc/selinux/<br />

# vi config<br />

将 selinux=enforcing 改 为 disabled<br />

注 :selinux 理 论 上 应 该 可 以 通 过 policy 设 定 allow mysql_auth 的 运 行 , 具 体 需 参 照 selinux 的 文<br />

档 。<br />

VII: 测 试<br />

启 动 squid, 设 定 相 应 客 户 端 上 的 浏 览 器 的 proxy 设 置 , 进 行 测 试 .<br />

死 守 命 令 行<br />

CU 网 友 :sxsloin<br />

曾 几 何 时 ,win 用 户 抱 怨 ,linux 命 令 行 界 面 不 容 易 接 触 。 那 时 代 linux 不 是 没 有 图 形 界 面 , 但 是 ,<br />

仅 仅 外 表 的 相 似 就 会 引 发 长 达 多 年 的 法 律 指 控 。 现 在 ,linux 仍 旧 在 发 展 , 桌 面 已 经 相 对 成 熟 , 虽 然<br />

法 律 问 题 不 是 完 全 消 除 , 但 是 受 到 影 响 少 多 了 , 很 多 linux 初 级 玩 家 可 以 很 快 上 手 图 形 的 linux。 即 使<br />

是 老 鸟 也 不 会 抵 制 , 毕 竟 图 形 界 面 有 不 错 的 地 方 。<br />

但 是 , 是 否 要 抛 弃 命 令 行 ? 初 级 linuxer 很 多 将 矛 头 指 向 相 对 图 形 界 面 缺 乏 的 unix 的 时 候 , 多 少<br />

人 发 出 疑 问 : 为 何 要 死 守 命 令 行 ?! 我 们 说 说 一 个 很 奇 怪 的 逻 辑 : 图 形 界 面 人 机 交 互 好 , 图 形 界 面<br />

简 单 。<br />

首 先 来 说 , 图 形 界 面 在 某 些 任 务 方 面 , 确 实 是 高 效 而 且 简 单 的 , 但 是 , 某 些 任 务 方 面 , 图 形 界<br />

面 是 无 能 的 。 因 为 ,UNIX-like 的 操 作 系 统 是 一 款 文 本 式 驱 动 的 操 作 系 统 , 这 是 他 的 优 点 所 在 , 即<br />

使 是 win, 处 理 复 杂 任 务 的 时 候 , 图 形 界 面 也 只 是 一 个 摆 设 。 图 形 界 面 消 耗 的 是 物 理 实 体 的 空 间 ,<br />

你 的 屏 幕 上 需 要 复 杂 的 处 理 问 题 的 时 候 , 图 形 界 面 要 密 密 麻 麻 的 列 出 一 堆 列 表 , 而 它 的 作 用 不 过 是<br />

开 源 时 代 2008 年 10 月 刊 - 75 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

基 于 某 个 命 令 的 图 形 外 壳 , 这 个 时 候 , 图 形 界 面 的 直 观 作 用 和 命 令 行 没 有 区 别 。 而 命 令 行 遵 循 的 是<br />

逻 辑 原 则 , 当 你 需 要 处 理 某 个 任 务 的 时 候 , 命 令 和 参 数 的 位 置 决 定 了 你 执 行 的 逻 辑 , 这 个 时 候 图 形<br />

界 面 无 法 做 到 。 也 许 有 人 说 , 对 于 图 形 界 面 的 执 行 逻 辑 可 以 决 定 命 令 行 的 位 置 依 赖 性 , 并 且 可 以 在<br />

合 适 的 地 方 增 加 更 多 的 更 直 观 的 元 素 。 但 是 , 问 题 是 图 形 界 面 一 旦 达 到 这 个 地 步 , 它 的 定 制 性 能 迅<br />

速 下 降 。<br />

既 然 计 算 机 逻 辑 精 髓 在 于 排 序 和 查 找 , 我 们 就 拿 一 个 邮 件 日 期 举 例 。 无 论 邮 电 部 门 还 是 个 人 ,<br />

对 于 邮 件 的 处 理 是 不 可 或 缺 的 , 假 定 ( 注 意 是 假 定 !) 你 的 电 脑 某 个 文 件 夹 有 10 个 邮 件 , 邮 件 尾 端<br />

一 行 是 固 定 格 式 的 信 件 日 期 , 我 们 要 找 出 x 月 x 日 ( 或 者 更 复 杂 逻 辑 的 ) 邮 件 。 由 于 系 统 升 级 或 者<br />

文 件 读 写 , 我 们 都 不 可 能 通 过 文 件 本 身 日 期 来 决 定 , 只 能 通 过 内 容 了 。<br />

以 下 是 两 者 比 较 :<br />

图 形 界 面 最 优 逻 辑 解 决 办 法 : 首 先 获 得 输 入 , 确 定 文 件 位 置 , 可 以 弹 出 一 个 文 件 浏 览 器 , 然 后<br />

指 定 文 件 。 这 点 来 说 做 的 不 错 。 然 后 , 按 一 个 按 钮 , 接 着 完 成 , 看 , 多 简 单 , 虽 然 直 观 , 那 个 按 钮<br />

十 分 神 秘 , 按 钮 是 god, 做 到 了 一 切 。<br />

命 令 行 : 恩 , 使 用 ls 或 者 其 他 什 么 获 得 文 件 列 表 , 用 tail 1 找 到 他 们 文 件 最 尾 端 , 用 grep 和 正<br />

则 表 达 式 匹 配 , 高 兴 的 话 可 以 再 用 cat 之 类 的 看 看 什 么 内 容 , 如 果 更 开 心 可 以 用 编 辑 器 编 辑 一 下 ,<br />

如 果 觉 得 麻 烦 你 把 一 切 放 在 vi 中 解 决 也 不 错 。 额 , 看 起 来 确 实 不 方 便 。 不 过 如 果 确 定 的 话 把 他 做 成<br />

一 个 脚 本 , 那 么 这 个 脚 本 和 按 钮 是 一 样 的 。<br />

但 是 , 我 们 继 续 看 :<br />

如 果 格 式 不 规 范 , 那 么 图 形 界 面 将 会 跳 出 一 个 错 误 提 示 ( 如 果 设 计 的 话 ), 命 令 行 更 糟 糕 , 如<br />

果 没 有 设 计 将 什 么 都 没 有 。 恩 , 下 面 是 分 水 岭 : 如 果 你 不 放 弃 , 并 且 知 道 有 错 误 了 , 通 过 设 计 命 令<br />

行 也 会 给 出 错 误 提 示 , 然 后 你 可 以 通 过 其 他 命 令 的 组 合 来 解 决 这 个 任 务 。 而 图 形 界 面 你 就 要 加 入 新<br />

的 设 计 , 但 是 ... 但 是 .... 你 觉 着 这 个 简 单 么 ? 可 能 你 要 修 改 源 码 , 编 译 , 再 运 行 , 呵 呵 , 或 者 , 你 可<br />

以 选 择 放 弃 。<br />

我 已 经 很 仁 慈 了 , 并 没 有 等 同 条 件 下 测 试 , 已 经 假 定 有 专 门 的 软 件 去 完 成 这 个 功 能 , 如 果 没 有<br />

的 话 , 你 可 以 选 择 一 个 个 打 开 那 10 个 文 件 , 这 个 时 候 看 你 运 气 , 好 的 话 你 第 一 次 打 开 并 且 看 文 件 底<br />

端 就 获 得 正 确 日 期 了 , 如 果 不 好 的 话 , 你 应 该 庆 幸 我 只 说 了 10 个 。 当 然 , 你 的 这 个 软 件 只 能 用 来 处<br />

理 这 次 的 信 件 , 如 果 其 他 问 题 , 比 如 找 其 他 东 西 , 同 样 要 面 对 百 数 量 级 的 东 西 的 时 候 , 你 需 要 另 外<br />

的 软 件 , 如 果 你 有 无 数 类 似 的 任 务 , 那 么 你 有 无 数 的 类 似 的 软 件 去 做 。 或 者 , 你 说 你 并 不 需 要 , 恩 ,<br />

也 许 , 只 不 过 , 从 原 理 来 说 , 计 算 机 不 用 排 序 和 检 索 的 话 , 那 么 计 算 机 学 院 真 的 很 轻 松 了 。 一 切 不<br />

过 如 此 , 软 件 是 只 是 打 包 了 任 务 解 决 方 案 , 但 是 一 旦 打 包 , 那 么 你 只 能 解 决 一 个 问 题 。 所 以 , 图 形<br />

界 面 带 来 了 庞 杂 。<br />

图 形 界 面 的 优 点 就 是 这 里 : 对 于 简 单 , 固 定 逻 辑 流 程 的 东 西 , 它 处 理 起 来 简 单 , 直 观 , 高 效 ,<br />

所 以 非 常 适 合 作 为 应 用 软 件 的 交 互 界 面 。 但 是 这 也 是 图 形 界 面 的 缺 点 : 对 于 复 杂 变 化 逻 辑 的 东 西 ,<br />

它 处 理 能 力 低 下 , 定 制 和 改 变 不 行 。 用 unix-like, 你 是 在 用 系 统 , 虽 然 软 件 可 以 解 决 不 少 问 题 , 但<br />

是 本 来 系 统 能 解 决 的 东 西 不 需 要 软 件 ! 你 的 高 效 和 稳 定 来 自 于 你 的 命 令 行 , 而 图 形 界 面 无 法 解 决 这<br />

开 源 时 代 2008 年 10 月 刊 - 76 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

一 个 矛 盾 。<br />

死 守 命 令 行 , 不 是 要 抛 弃 图 形 界 面 , 但 是 使 用 图 形 界 面 , 无 法 抛 弃 命 令 行 ! 如 果 想 要 自 己 的 系<br />

统 , 那 么 还 是 好 好 学 习 命 令 行 吧 , 学 会 UNIX-like, 不 是 让 你 去 学 软 件 说 明 书 , 软 件 说 明 书 可 以 随<br />

着 厂 家 , 开 发 人 员 , 版 本 而 变 更 , 但 是 命 令 相 对 稳 定 的 多 。<br />

谁 都 不 愿 做 容 易 逝 去 的 东 西 的 幽 灵 。<br />

新 手 入 门 之 —Nagios 安 装 篇<br />

CU 网 友 : 阿 宇<br />

Nagios 安 装<br />

1. 下 载 源 软 件 www.nagios.org www.apache.org<br />

主 要 文 件 :<br />

nagios-3.0.4.tar.gz<br />

nagios-plugins-1.4.13.tar.gz<br />

httpd-2.0.63.tar.gz<br />

参 考 网 站 文 档 :<br />

http://blog.chinaunix.<strong>net</strong>/u/28387/article_63200.html<br />

http://blog.chinaunix.<strong>net</strong>/u/28387/article_63200.html<br />

官 方 :<br />

http://nagios.sourceforge.<strong>net</strong>/docs/3_0/<br />

2. nagios 服 务 器 端 安 装<br />

(1) 操 作 系 统 环 境 :<br />

redhat AS5 64bit update5 kernel:2.6.9.55<br />

(2) 安 装 步 骤<br />

[root@wxserver2 nagios-3.0.4]# useradd nagios<br />

[root@wxserver2 nagios-3.0.4]# mkdir /usr/local/nagios<br />

[root@wxserver2 nagios-3.0.4]# chown nagios.nagios /usr/local/nagios<br />

tar zxvf nagios-3.0.4.tar.gz<br />

cd nagios-3.0.4<br />

./configure –prefix=/usr/local/nagios<br />

开 源 时 代 2008 年 10 月 刊 - 77 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

make all<br />

make install<br />

make install-config<br />

make install-config<br />

ls /usr/local/nagios<br />

/usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagios<br />

New password:<br />

Re-type new password:<br />

Adding password for user nagios<br />

将 nagios 的 信 息 加 到 apache 中 , 打 开 /etc/httpd/conf/httpd.conf 文 件 , 在 文 件 最 后 添 加 如 下<br />

代 码 :<br />

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin<br />

<br />

Options ExecCGI<br />

AllowOverride None<br />

Order allow,deny<br />

Allow from all<br />

AuthName "Nagios Access"<br />

AuthType Basic<br />

AuthUserFile /usr/local/nagios/etc/htpasswd.users<br />

Require valid-user<br />

<br />

Alias /nagios /usr/local/nagios/share<br />

<br />

Options None<br />

AllowOverride None<br />

Order allow,deny<br />

Allow from all<br />

AuthName "Nagios Access"<br />

开 源 时 代 2008 年 10 月 刊 - 78 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

AuthType Basic<br />

AuthUserFile /usr/local/nagios/etc/htpasswd.users<br />

Require valid-user<br />

<br />

至 此 ,nagios 的 WEB 配 置 部 分 完 成 。<br />

安 装 插 件 :<br />

tar nagios-plugins-1.4.13<br />

cd nagios-plugins-1.4.13<br />

./configure –prefix=/usr/local/nagios ### 此 步 是 指 您 的 nagios 的 安 装 目 录 。<br />

make;make install<br />

检 查 一 下 :<br />

ls /usr/local/nagios/libexec<br />

开 源 时 代 2008 年 10 月 刊 - 79 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

测 试 :<br />

./check_icmp -H www.baidu.com<br />

OK - www.baidu.com: rta 33.632ms, lost 0%|rta=33.632ms;200.000;500.000;0; pl=0%;40;80;;<br />

至 此 , 插 件 安 装 完 成 , 下 面 要 修 改 配 置 文 件 :<br />

由 于 我 用 的 是 3 系 列 的 版 本 , 和 网 上 田 老 师 和 loesprite.cublog.cn 作 者 介 绍 的 都 是 版 本 2 的 , 不 太<br />

一 样 , 主 要 就 是 配 置 文 件 的 目 录 有 一 点 点 区 别 , 其 他 的 配 置 都 一 样 。<br />

1. Nagios.cfg 文 件 , 这 是 nagios 的 主 要 配 置 文 件 :<br />

我 修 改 以 下 内 容 :<br />

cfg_file=/usr/local/nagios/etc/objects/windows.cfg # 将 此 行 启 用 , 前 面 的 注 释 符 号 去 掉 。 因<br />

为 我 要 监 控 的 服 务 器 都 是 WINDOWS 平 台 的 。<br />

check_external_commands=0 为 check_external_commands=1 . 这 行 的 作 用 是 允 许 在 web<br />

界 面 下 执 行 重 启 nagios、 停 止 主 机 / 服 务 检 查 等 操 作 。 版 本 3 的 , 默 认 选 项 即 可 。<br />

把 command_check_interval 的 值 从 默 认 的 1 改 成 command_check_interval=10s( 根 据 自 己<br />

的 情 况 定 这 个 命 令 检 查 时 间 间 隔 , 不 要 太 长 也 不 要 太 短 )。 为 了 测 试 需 要 , 时 间 短 些 可 以 看 到 效 果 ,<br />

要 不 等 报 警 的 邮 件 等 的 时 间 太 长 了 。<br />

2. Cgi.cfg 文 件 :<br />

authorized_for_system_information=nagiosadmin,nagios<br />

authorized_for_configuration_information=nagiosadmin,nagios<br />

authorized_for_system_commands=nagios // 多 个 用 户 之 间 用 逗 号 隔 开<br />

authorized_for_all_services=nagiosadmin,nagios<br />

authorized_for_all_hosts=nagiosadmin,nagios<br />

authorized_for_all_service_commands=nagiosadmin,nagios<br />

authorized_for_all_host_commands=nagiosadmin,nagios<br />

##nagios 这 个 用 户 是 之 前 用 /usr/local/apache/bin/htpasswd –c<br />

/usr/local/nagios/etc/htpasswd nagios 所 生 成 的 , 这 个 要 注 意 , 不 能 随 便 加 没 有 存 在 的 验 证 用<br />

户 , 为 了 安 全 起 见 , 不 要 添 加 过 多 的 验 证 用 户<br />

[root@wxserver2 objects]# /usr/local/nagios/bin/nagios -v<br />

开 源 时 代 2008 年 10 月 刊 - 80 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

/usr/local/nagios/etc/nagios.cfg<br />

Nagios 3.0.4<br />

Copyright (c) 1999-2008 Ethan Galstad (http://www.nagios.org)<br />

Last Modified: 10-15-2008<br />

License: GPL<br />

Reading configuration data...<br />

Error in configuration file '/usr/local/nagios/etc/nagios.cfg' - Line 551 (NULL value)<br />

***> One or more problems was encountered while processing the config files...<br />

Check your configuration file(s) to ensure that they contain valid<br />

directives and data defintions. If you are upgrading from a previous<br />

version of Nagios, you should be aware that some variables/definitions<br />

may have been removed or modified in this version. Make sure to read<br />

the HTML documentation regarding the config files, as well as the<br />

'Whats New' section to find out what has changed.<br />

[root@wxserver2 objects]# vi ../nagios.cfg # 注 意 掉 551 行 time_change_threshold=<br />

[root@wxserver2 objects]# /usr/local/nagios/bin/nagios -v<br />

/usr/local/nagios/etc/nagios.cfg<br />

Nagios 3.0.4<br />

Copyright (c) 1999-2008 Ethan Galstad (http://www.nagios.org)<br />

Last Modified: 10-15-2008<br />

License: GPL<br />

Reading configuration data...<br />

Running pre-flight check on configuration data...<br />

Checking services...<br />

Checked 15 services.<br />

Checking hosts...<br />

Checked 2 hosts.<br />

Checking host groups...<br />

Checked 2 host groups.<br />

Checking service groups...<br />

Checked 0 service groups.<br />

开 源 时 代 2008 年 10 月 刊 - 81 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

Checking contacts...<br />

Checked 1 contacts.<br />

Checking contact groups...<br />

Checked 1 contact groups.<br />

Checking service escalations...<br />

Checked 0 service escalations.<br />

Checking service dependencies...<br />

Checked 0 service dependencies.<br />

Checking host escalations...<br />

Checked 0 host escalations.<br />

Checking host dependencies...<br />

Checked 0 host dependencies.<br />

Checking commands...<br />

Checked 24 commands.<br />

Checking time periods...<br />

Checked 5 time periods.<br />

Checking for circular paths between hosts...<br />

Checking for circular host and service dependencies...<br />

Checking global event handlers...<br />

Checking obsessive compulsive processor commands...<br />

Checking misc settings...<br />

Total Warnings: 0<br />

Total Errors: 0<br />

Things look okay - No serious problems were detected during the pre-flight check<br />

[root@wxserver2 objects]# /usr/local/nagios/bin/nagios -d<br />

/usr/local/nagios/etc/nagios.cfg<br />

启 动 发 现 , 启 动 异 常<br />

查 看 share/nagios.log 文 件 , 发 现 错 误 如 下 :<br />

[1224570550] Error: Could not create external command file<br />

'/usr/local/nagios/var/rw/nagios.cmd' as named pipe: (2) -> No such file or directory. If this<br />

file already exists and you are sure that another copy of Nagios is not running, you should<br />

delete this file.<br />

开 源 时 代 2008 年 10 月 刊 - 82 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

[1224570550] Bailing out due to errors encountered while trying to initialize the external<br />

command file... (PID=20619)<br />

mkdir rw<br />

chown nagios.nagios rw<br />

[1224570746] Error: Cannot open main configuration file '/usr/local/nagios/var/d' for<br />

reading!<br />

Mkdir d<br />

Chown nagios.nagios d<br />

至 此 ,nagios 可 以 暂 时 简 陋 的 启 动 , 可 以 看 一 下 他 的 运 行 情 况 及 状 态 。 其 他 的 进 一 步 去 设 置 :<br />

需 要 过 几 分 钟 才 能 看 到 相 关 的 状 态 信 息 。<br />

此 服 务 器 做 的 别 用 处 ,SENDMAIL 我 早 就 关 掉 了 。 现 在 不 能 正 常 启 动 , 发 送 邮 件 的 情 况 可 能 看 不 到<br />

了 。<br />

开 源 时 代 2008 年 10 月 刊 - 83 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

关 于 MySQL 表 设 计 应 该 注 意 的 问 题<br />

CU 网 友 : 杨 涛<br />

1. 慎 重 选 择 表 名 。<br />

有 两 种 选 择 :<br />

A. 按 照 多 数 开 发 语 言 的 命 名 规 则 。 比 如 (myCustomer)。<br />

B. 按 照 多 数 开 源 思 想 命 名 规 则 。 比 如 (my_customer)。<br />

C. 按 照 咱 们 中 国 人 的 思 想 。 比 如 ( 我 的 客 户 )。<br />

第 一 种 有 个 缺 点 , 很 容 易 忘 掉 大 写 的 字 母 。<br />

第 二 种 则 比 较 好 , 每 个 WORD 间 用 下 划 线 连 接 , 避 免 遗 忘 。<br />

第 三 种 建 议 不 要 用 , 虽 然 很 好 记 。 不 觉 得 解 析 这 个 表 的 时 候 还 需 要 编 码 转 化 吗 ? 我 个 人<br />

理 解 , 大 家 可 以 补 充 。<br />

2. 关 于 编 码 的 设 定 。<br />

A.GBK/GB2312.( 适 用 于 纯 中 文 存 储 )。<br />

B. UTF8.( 适 用 于 中 英 文 混 合 存 储 )。<br />

C.LATIN1。( 适 用 于 纯 英 文 存 储 )。<br />

3. 关 于 表 引 擎 的 选 择 。<br />

A.MYISAM.( 很 多 人 说 她 的 表 级 锁 定 会 带 来 好 多 问 题 , 其 实 只 要 设 计 好 对 应 的 表 以 及<br />

写 好 对 应 的 SQL 查 询 就 没 有 那 么 大 的 问 题 。)<br />

B. INNODB. ( 如 果 要 用 到 事 务 , 选 择 她 不 会 错 。 至 于 多 数 人 讲 的 MASTER/SLAVE 结<br />

构 上 用 INNODB 在 MASTER 的 选 择 是 否 正 确 , 就 要 看 你 怎 么 用 了 。 不 能 一 味 的 疯 狂 使 用<br />

INNODB。)<br />

C. CSV. ( 以 前 我 写 过 文 章 , 关 于 这 个 引 擎 。 个 人 觉 得 最 主 要 的 是 来 存 储 少 量 数 据 以<br />

及 从 EXCEL 到 MYSQL 的 转 换 方 面 会 很 有 用 。 当 然 只 要 涉 及 到 规 则 数 据 的 导 入 , 她 就 可<br />

以 办 到 。)<br />

D.BLACKHOLE. ( 觉 得 最 完 美 的 用 处 在 于 MASETR/SLAVE 上 面 , 并 且 MASTER 是 一<br />

开 源 时 代 2008 年 10 月 刊 - 84 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

个 临 时 的 专 门 负 责 写 的 机 器 。)。<br />

E.MEMORY. ( 应 该 说 是 MYISAM 的 兄 弟 了 。 不 过 在 读 内 存 总 比 读 磁 盘 的 速 度 要<br />

快 。)。<br />

F.FEDERATED. ( 典 型 的 分 布 式 引 擎 。 我 以 前 文 章 中 有 介 绍 。)<br />

G. NDB。( 网 络 版 存 储 引 擎 , 在 高 并 发 , 大 数 据 量 的 时 候 用 。)<br />

H. FOLCON。(6.0 后 用 来 代 替 INNODB 的 引 擎 。)<br />

I. 其 他 旧 的 以 及 新 开 发 的 引 擎 具 体 介 绍 :<br />

http://dev.mysql.com/doc/refman/6.0/en/storage-engines.html)。<br />

4. 关 于 属 性 数 据 类 型 的 选 择 。<br />

A. INT( 一 个 字 节 的 TINYINT, 两 个 字 节 的 SMALLINT, 三 个 字 节 的 MEDIUMINT, 四<br />

个 字 节 的 INT,8 个 字 节 的 BIGINT。)<br />

B. 少 于 10 个 字 符 用 CHAR 是 在 合 适 不 过 了 。<br />

C. 我 一 般 用 DECIMAL 或 者 NUMERIC 来 代 替 FLOAT 或 者 DOUBLE。<br />

(DECIMA、FLOAT(P) 是 动 态 存 储 。 比 如 :DECIMAL(10,2) 占 用 5 个 字 节 。FLOAT 占 4 个<br />

字 节 ,)<br />

D. BLOG,TEXT,VARCHAR( 一 般 存 放 文 章 内 容 , 特 别 是 新 闻 网 站 。 需 要 的 字 节 数 是<br />

所 存 储 的 字 符 长 度 +1。)<br />

E.ENUM( 在 一 定 范 围 内 绝 佳 的 代 替 VARCHAR 和 CHAR 的 工 具 , 因 为 她 只 占 一 到 两<br />

个 字 节 。)<br />

F. 时 间 和 日 期 类 型 ( 占 3 个 字 节 的 DATE,8 个 字 节 的 DATETIME,4 个 字 节 的<br />

TIMESTAMP,3 个 字 节 的 TIME,1 个 字 节 的 YEAR。)。 如 果 要 存 储 比 如 ‘1983’ 这 样<br />

的 年 份 , 用 YEAR 明 显 比 VARCHAR 或 者 CHAR 要 节 省 空 间 。 因 为 后 者 要 占 5 个 字 节 。<br />

G.BOOLEAN( 用 来 存 储 YES 或 者 NO 之 类 的 值 , 占 用 一 个 字 节 。)<br />

H. 关 于 自 增 字 段 。 目 前 我 们 的 项 目 中 涉 及 到 好 多 ORDER BY RAND() 操 作 。 此 类 语 句<br />

在 数 据 库 并 发 大 的 时 候 会 造 成 CPU 严 重 阻 塞 , 持 续 产 生 数 据 库 死 锁 ! 解 决 此 类 问 题 最 好<br />

开 源 时 代 2008 年 10 月 刊 - 85 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

的 办 法 就 是 利 用 自 增 字 段 , 用 程 序 随 即 生 成 数 字 序 列 , 或 者 在 数 据 库 端 随 即 生 成 数 字 序<br />

列 。<br />

I. 关 于 ZEROFILL。 非 常 好 用 的 前 置 填 补 0 的 存 储 , 而 不 是 用 用 对 应 个 数 的 空 串 来 代 替 。<br />

在 需 要 前 置 补 零 的 操 作 中 INT ZEROFILL 可 以 用 来 代 替 CHAR 或 者 VARCHR。<br />

5. 关 于 默 认 值 。<br />

A. 在 5.0 之 后 , 只 要 设 定 字 段 为 NOT NULL, 系 统 自 动 给 出 默 认 值 。 对 应 CHAR-<br />

>’’,INT->0,BOOLEAN->0 等 等 。<br />

B. 在 5.0 之 前 的 版 本 , 需 要 手 动 指 定 默 认 值 , 否 则 会 出 现 一 定 的 异 常 。 到 时 候 查 都 不<br />

好 查 了 。<br />

6. 关 于 多 数 据 库 建 立 。<br />

A. 应 该 把 对 应 的 业 务 放 在 各 自 不 同 的 数 据 库 里 , 而 不 是 所 有 业 务 放 到 一 个 库 里 面 。<br />

B. 数 据 库 的 命 名 和 表 命 名 一 样 。<br />

7. 关 于 索 引 。<br />

A. 设 计 表 初 期 尽 量 考 虑 到 应 该 建 立 的 索 引 。 所 有 建 立 的 索 引 一 定 要 测 试 一 下 , 看 是 否<br />

有 必 要 , 否 则 会 翻 倍 的 减 少 写 数 据 的 性 能 。<br />

B. 对 于 只 有 存 储 0 或 者 1 的 列 , 尽 量 干 掉 索 引 , 单 独 分 出 两 个 表 。 一 个 代 替 0, 另 外<br />

一 个 代 替 1。<br />

Nginx 0.7.x + PHP 5.2.6(FastCGI) 搭 建 Web 服 务 器<br />

张 宴<br />

前 言 : 本 文 是 我 撰 写 的 关 于 搭 建 “Nginx + PHP(FastCGI)”Web 服 务 器 的 第 4 篇 文 章 。 本<br />

系 列 文 章 作 为 国 内 最 早 详 细 介 绍 Nginx + PHP 安 装 、 配 置 、 使 用 的 资 料 之 一 , 为 推 动 Nginx 在 国 内<br />

的 发 展 产 生 了 积 极 的 作 用 。 这 是 一 篇 关 于 Nginx 0.7.x 系 列 版 本 的 文 章 , 安 装 、 配 置 方 式 与 第 3 篇 文<br />

章 相 差 不 大 , 但 配 置 参 数 有 不 同 。Nginx 0.7.x 系 列 版 本 虽 然 为 开 发 版 , 但 在 很 多 大 型 网 站 的 生 产 环<br />

境 中 已 经 使 用 。<br />

Nginx ("engine x") 是 一 个 高 性 能 的 HTTP 和 反 向 代 理 服 务 器 , 也 是 一 个 IMAP/POP3/SMTP 代<br />

理 服 务 器 。 Nginx 是 由 Igor Sysoev 为 俄 罗 斯 访 问 量 第 二 的 Rambler.ru 站 点 开 发 的 , 它 已 经 在 该<br />

站 点 运 行 超 过 两 年 半 了 。Igor 将 源 代 码 以 类 BSD 许 可 证 的 形 式 发 布 。<br />

Nginx 超 越 Apache 的 高 性 能 和 稳 定 性 , 使 得 国 内 使 用 Nginx 作 为 Web 服 务 器 的 网 站 也 越 来<br />

开 源 时 代 2008 年 10 月 刊 - 86 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

越 多 , 其 中 包 括 新 浪 博 客 、 新 浪 播 客 、 网 易 新 闻 等 门 户 网 站 频 道 , 六 间 房 、56.com 等 视 频 分 享 网<br />

站 ,Discuz! 官 方 论 坛 、 水 木 社 区 等 知 名 论 坛 , 豆 瓣 、YUPOO 相 册 、 海 内 SNS、 迅 雷 在 线 等 新 兴<br />

Web 2.0 网 站 。<br />

Nginx 的 官 方 中 文 维 基 :http://wiki.codemongers.com/NginxChs<br />

在 高 并 发 连 接 的 情 况 下 ,Nginx 是 Apache 服 务 器 不 错 的 替 代 品 。Nginx 同 时 也 可 以 作 为 7 层<br />

负 载 均 衡 服 务 器 来 使 用 。 根 据 我 的 测 试 结 果 ,Nginx 0.7.17 + PHP 5.2.6 (FastCGI) 可 以 承 受 3 万 以<br />

上 的 并 发 连 接 数 , 相 当 于 同 等 环 境 下 Apache 的 10 倍 。<br />

根 据 我 的 经 验 ,4GB 内 存 的 服 务 器 +Apache(prefork 模 式 ) 一 般 只 能 处 理 3000 个 并 发 连 接 ,<br />

因 为 它 们 将 占 用 3GB 以 上 的 内 存 , 还 得 为 系 统 预 留 1GB 的 内 存 。 我 曾 经 就 有 两 台 Apache 服 务 器 ,<br />

因 为 在 配 置 文 件 中 设 置 的 MaxClients 为 4000, 当 Apache 并 发 连 接 数 达 到 3800 时 , 导 致 服 务 器<br />

内 存 和 Swap 空 间 用 满 而 崩 溃 。<br />

而 这 台 Nginx 0.7.17 + PHP 5.2.6 (FastCGI) 服 务 器 在 3 万 并 发 连 接 下 , 开 启 的 10 个 Nginx 进<br />

程 消 耗 150M 内 存 (15M*10=150M), 开 启 的 64 个 php-cgi 进 程 消 耗 1280M 内 存<br />

(20M*64=1280M), 加 上 系 统 自 身 消 耗 的 内 存 , 总 共 消 耗 不 到 2GB 内 存 。 如 果 服 务 器 内 存 较 小 ,<br />

完 全 可 以 只 开 启 25 个 php-cgi 进 程 , 这 样 php-cgi 消 耗 的 总 内 存 数 才 500M。<br />

在 3 万 并 发 连 接 下 , 访 问 Nginx 0.7.17 + PHP 5.2.6 (FastCGI) 服 务 器 的 PHP 程 序 , 仍 然 速 度 飞<br />

快 。 下 图 为 Nginx 的 状 态 监 控 页 面 , 显 示 的 活 动 连 接 数 为 28457( 关 于 Nginx 的 监 控 页 配 置 , 会 在<br />

本 文 接 下 来 所 给 出 的 Nginx 配 置 文 件 中 写 明 ):<br />

我 生 产 环 境 下 的 两 台 Nginx + PHP5(FastCGI) 服 务 器 , 跑 多 个 一 般 复 杂 的 纯 PHP 动 态 程 序 , 单 台<br />

Nginx + PHP5(FastCGI) 服 务 器 跑 PHP 动 态 程 序 的 处 理 能 力 已 经 超 过 “700 次 请 求 / 秒 ”, 相 当 于<br />

每 天 可 以 承 受 6000 万 (700*60*60*24=60480000) 的 访 问 量 ( 更 多 信 息 见 此 ), 而 服 务 器 的 系 统<br />

负 载 也 不 高 :<br />

开 源 时 代 2008 年 10 月 刊 - 87 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

安 装 步 骤 :<br />

( 系 统 要 求 :Linux 2.6+ 内 核 , 本 文 中 的 Linux 操 作 系 统 为 CentOS 5.1, 另 在 RedHat AS4 上 也 安<br />

装 成 功 )<br />

一 、 获 取 相 关 开 源 程 序 :<br />

1、 利 用 CentOS Linux 系 统 自 带 的 yum 命 令 安 装 、 升 级 所 需 的 程 序 库 (RedHat 等 其 他 Linux 发 行<br />

版 可 从 安 装 光 盘 中 找 到 这 些 程 序 库 的 RPM 包 , 进 行 安 装 ):<br />

sudo -s<br />

LANG=C<br />

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype<br />

freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2<br />

bzip2-devel ncurses ncurses-devel curl curl-devel<br />

2、RedHat 等 其 他 Linux 发 行 版 可 从 安 装 光 盘 中 找 到 这 些 程 序 库 的 RPM 包 ( 事 先 可 通 过 类 似 “rpm<br />

-qa | grep libjpeg” 的 命 令 查 看 所 需 的 RPM 包 是 否 存 在 , 通 常 是 “xxx-devel” 不 存 在 , 需 要 安<br />

装 )。RedHat 可 以 直 接 利 用 CentOS 的 RPM 包 安 装 , 以 下 是 RPM 包 下 载 网 址 :<br />

1、RedHat AS4 & CentOS 4<br />

http://mirror.be10.com/centos/4/os/i386/CentOS/RPMS/<br />

http://mirror.be10.com/centos/4/os/x86_64/CentOS/RPMS/<br />

2、RedHat AS5 & CentOS 5<br />

http://mirror.be10.com/centos/5/os/i386/CentOS/<br />

http://mirror.be10.com/centos/5/os/x86_64/CentOS/<br />

3、RPM 包 搜 索 网 站<br />

开 源 时 代 2008 年 10 月 刊 - 88 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

http://rpm.pbone.<strong>net</strong>/<br />

http://www.rpmfind.<strong>net</strong>/<br />

3、 下 载 程 序 源 码 包 :<br />

本 文 中 提 到 的 所 有 开 源 软 件 为 截 止 到 2008 年 8 月 28 日 的 最 新 稳 定 版 。<br />

mkdir -p /data0/software<br />

cd /data0/software<br />

wget http://sysoev.ru/nginx/nginx-0.7.17.tar.gz<br />

wget http://www.php.<strong>net</strong>/get/php-5.2.6.tar.gz/from/this/mirror<br />

wget http://php-fpm.anight.org/downloads/head/php-5.2.6-fpm-0.5.9.diff.gz<br />

#wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.26-<br />

rc.tar.gz/from/http://mirror.x10.com/mirror/mysql/<br />

wget http://blog.s135.com/soft/linux/mysql/mysql-5.1.26-rc.tar.gz<br />

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz<br />

#wget "http://downloads.sourceforge.<strong>net</strong>/mcrypt/libmcrypt-2.5.8.tar.gz?<br />

modtime=1171868460&big_mirror=0"<br />

wget http://mirror.optus.<strong>net</strong>/sourceforge/m/mc/mcrypt/libmcrypt-2.5.8.tar.gz<br />

#wget "http://downloads.sourceforge.<strong>net</strong>/mcrypt/mcrypt-2.6.7.tar.gz?<br />

modtime=1194463373&big_mirror=0"<br />

wget http://mirror.optus.<strong>net</strong>/sourceforge/m/mc/mcrypt/mcrypt-2.6.7.tar.gz<br />

wget http://pecl.php.<strong>net</strong>/get/memcache-2.2.3.tgz<br />

#wget "http://downloads.sourceforge.<strong>net</strong>/mhash/mhash-0.9.9.tar.gz?<br />

modtime=1175740843&big_mirror=0"<br />

wget http://mirror.optus.<strong>net</strong>/sourceforge/m/mh/mhash/mhash-0.9.9.tar.gz<br />

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz<br />

wget http://bart.eaccelerator.<strong>net</strong>/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2<br />

二 、 安 装 PHP 5.2.6(FastCGI 模 式 )<br />

1、 编 译 安 装 PHP 5.2.6 所 需 的 支 持 库 :<br />

tar zxvf libiconv-1.12.tar.gz<br />

cd libiconv-1.12/<br />

./configure --prefix=/usr/local<br />

make<br />

开 源 时 代 2008 年 10 月 刊 - 89 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

make install<br />

cd ../<br />

tar zxvf libmcrypt-2.5.8.tar.gz<br />

cd libmcrypt-2.5.8/<br />

./configure<br />

make<br />

make install<br />

/sbin/ldconfig<br />

cd libltdl/<br />

./configure --enable-ltdl-install<br />

make<br />

make install<br />

cd ../../<br />

tar zxvf mhash-0.9.9.tar.gz<br />

cd mhash-0.9.9/<br />

./configure<br />

make<br />

make install<br />

cd ../<br />

cp /usr/local/lib/libmcrypt.* /usr/lib<br />

ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br />

tar zxvf mcrypt-2.6.7.tar.gz<br />

cd mcrypt-2.6.7/<br />

./configure<br />

make<br />

make install<br />

cd ../<br />

开 源 时 代 2008 年 10 月 刊 - 90 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

2、 编 译 安 装 MySQL 5.1.26-rc<br />

/usr/sbin/groupadd mysql<br />

/usr/sbin/useradd -g mysql mysql<br />

tar zxvf mysql-5.1.26-rc.tar.gz<br />

cd mysql-5.1.26-rc/<br />

./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extracharsets=complex<br />

--enable-thread-safe-client --with-big-tables --with-readline --with-ssl<br />

--with-embedded-server --enable-local-infile<br />

make && make install<br />

chmod +w /usr/local/webserver/mysql<br />

chown -R mysql:mysql /usr/local/webserver/mysql<br />

cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf<br />

cd ../<br />

附 : 以 下 为 附 加 步 骤 , 如 果 你 想 在 这 台 服 务 器 上 运 行 MySQL 数 据 库 , 则 执 行 以 下 两 步 。 如 果 你 只 是<br />

希 望 让 PHP 支 持 MySQL 扩 展 库 , 能 够 连 接 其 他 服 务 器 上 的 MySQL 数 据 库 , 那 么 , 以 下 两 步 无 需 执<br />

行 。<br />

1、 以 mysql 用 户 帐 号 的 身 份 建 立 数 据 表 :<br />

/usr/local/webserver/mysql/bin/mysql_install_db --defaultsfile=/usr/local/webserver/mysql/my.cnf<br />

--basedir=/usr/local/webserver/mysql<br />

--datadir=/usr/local/webserver/mysql/data --user=mysql --pidfile=/usr/local/webserver/mysql/mysql.pid<br />

--skip-locking --port=3306<br />

--socket=/tmp/mysql.sock<br />

2、 启 动 MySQL( 最 后 的 & 表 示 在 后 台 运 行 )<br />

/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaultsfile=/usr/local/webserver/mysql/my.cnf<br />

&<br />

3、 编 译 安 装 PHP(FastCGI 模 式 )<br />

tar zxvf php-5.2.6.tar.gz<br />

gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1<br />

cd php-5.2.6/<br />

./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/<br />

php/etc --with-mysql=/usr/local/webserver/mysql --withmysqli=/usr/local/webserver/mysql/bin/mysql_config<br />

--with-iconv-dir=/usr/local --with-<br />

开 源 时 代 2008 年 10 月 刊 - 91 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml<br />

--disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enableshmop<br />

--enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers<br />

--enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enablembstring<br />

--with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl<br />

sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile<br />

make<br />

make install<br />

cp php.ini-dist /usr/local/webserver/php/etc/php.ini<br />

cd ../<br />

4、 编 译 安 装 PHP5 扩 展 模 块<br />

tar zxvf memcache-2.2.3.tgz<br />

cd memcache-2.2.3/<br />

/usr/local/webserver/php/bin/phpize<br />

./configure --with-php-config=/usr/local/webserver/php/bin/php-config<br />

make<br />

make install<br />

cd ../<br />

tar jxvf eaccelerator-0.9.5.3.tar.bz2<br />

cd eaccelerator-0.9.5.3/<br />

/usr/local/webserver/php/bin/phpize<br />

./configure --enable-eaccelerator=shared --with-phpconfig=/usr/local/webserver/php/bin/php-config<br />

make<br />

make install<br />

cd ../<br />

5、 修 改 php.ini 文 件<br />

手 工 修 改 : 查 找 /usr/local/webserver/php/etc/php.ini 中 的 extension_dir = "./"<br />

修 改 为 extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-nonzts-20060613/"<br />

开 源 时 代 2008 年 10 月 刊 - 92 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

并 在 此 行 后 增 加 以 下 几 行 , 然 后 保 存 :<br />

extension = "memcache.so"<br />

再 查 找 output_buffering = Off<br />

修 改 为 output_buffering = On<br />

自 动 修 改 : 若 嫌 手 工 修 改 麻 烦 , 可 执 行 以 下 shell 命 令 , 自 动 完 成 对 php.ini 文 件 的 修 改 :<br />

sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/webserver/php/lib/php/extensions/<br />

no-debug-non-zts-20060613/"\nextension = "memcache.so"\n#'<br />

/usr/local/webserver/php/etc/php.ini<br />

sed -i 's#output_buffering = Off#output_buffering = On#'<br />

/usr/local/webserver/php/etc/php.ini<br />

6、 配 置 eAccelerator 加 速 PHP:<br />

mkdir -p /usr/local/webserver/eaccelerator_cache<br />

vi /usr/local/webserver/php/etc/php.ini<br />

按 shift+g 键 跳 到 配 置 文 件 的 最 末 尾 , 加 上 以 下 配 置 信 息 :<br />

[eaccelerator]<br />

zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-nonzts-20060613/eaccelerator.so"<br />

eaccelerator.shm_size="128"<br />

eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"<br />

eaccelerator.enable="1"<br />

eaccelerator.optimizer="1"<br />

eaccelerator.check_mtime="1"<br />

eaccelerator.debug="0"<br />

eaccelerator.filter=""<br />

eaccelerator.shm_max="0"<br />

eaccelerator.shm_ttl="300"<br />

eaccelerator.shm_prune_period="120"<br />

eaccelerator.shm_only="0"<br />

eaccelerator.compress="1"<br />

eaccelerator.compress_level="9"<br />

开 源 时 代 2008 年 10 月 刊 - 93 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

修 改 配 置 文 件 :<br />

vi /etc/sysctl.conf<br />

输 入 以 下 内 容 :<br />

kernel.shmmax = 134217728<br />

然 后 执 行 以 下 命 令 使 配 置 生 效 :<br />

/sbin/sysctl -p<br />

7、 创 建 www 用 户 和 组 , 以 及 供 blog.s135.com 和 www.s135.com 两 个 虚 拟 主 机 使 用 的 目 录 :<br />

/usr/sbin/groupadd www -g 48<br />

/usr/sbin/useradd -u 48 -g www www<br />

mkdir -p /data0/htdocs/blog<br />

chmod +w /data0/htdocs/blog<br />

chown -R www:www /data0/htdocs/blog<br />

mkdir -p /data0/htdocs/www<br />

chmod +w /data0/htdocs/www<br />

chown -R www:www /data0/htdocs/www<br />

8、 创 建 php-fpm 配 置 文 件 (php-fpm 是 为 PHP 打 的 一 个 FastCGI 管 理 补 丁 , 可 以 平 滑 变 更<br />

php.ini 配 置 而 无 需 重 启 php-cgi):<br />

在 /usr/local/webserver/php/etc/ 目 录 中 创 建 php-fpm.conf 文 件 :<br />

rm -f /usr/local/webserver/php/etc/php-fpm.conf<br />

vi /usr/local/webserver/php/etc/php-fpm.conf<br />

输 入 以 下 内 容 ( 如 果 您 安 装 Nginx + PHP 用 于 程 序 调 试 , 请 将 以 下 的 0 改 为 1, 以 便 显 示<br />

PHP 错 误 信 息 , 否 则 ,Nginx 会 报 状 态 为 500 的 空 白 错 误 页 ):<br />

1. <br />

2. <br />

3.<br />

4. All relative paths in this config are relative to php's install prefix<br />

5.<br />

6. <br />

7.<br />

开 源 时 代 2008 年 10 月 刊 - 94 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

8. Pid file<br />

9. /usr/local/webserver/php/logs/php-fpm.pid<br />

10.<br />

11. Error log file<br />

12. /usr/local/webserver/php/logs/php-fpm.log<br />

13.<br />

14. Log level<br />

15. notice<br />

16.<br />

17. When this amount of php processes exited with SIGSEGV or SIGBUS ...<br />

18. 10<br />

19.<br />

20. ... in a less than this interval of time, a graceful restart will be initiated.<br />

21. Useful to work around accidental curruptions in accelerator's shared memory.<br />

22. 1m<br />

23.<br />

24. Time limit on waiting child's reaction on signals from master<br />

25. 5s<br />

26.<br />

27. Set to 'no' to debug fpm<br />

28. yes<br />

29.<br />

30. <br />

31.<br />

32. <br />

33.<br />

34. <br />

35.<br />

36. Name of pool. Used in logs and stats.<br />

37. default<br />

38.<br />

开 源 时 代 2008 年 10 月 刊 - 95 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

39. Address to accept fastcgi requests on.<br />

40. Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'<br />

41. 127.0.0.1:9000<br />

42.<br />

43. <br />

44.<br />

45. Set listen(2) backlog<br />

46. -1<br />

47.<br />

48. Set permissions for unix socket, if one used.<br />

49. In Linux read/write permissions must be set in order to allow connections from web<br />

server.<br />

50. Many BSD-derrived systems allow connections regardless of permissions.<br />

51. <br />

52. <br />

53. 0666<br />

54. <br />

55.<br />

56. Additional php.ini defines, specific to this pool of workers.<br />

57. <br />

58. /usr/sbin/sendmail -t -i<br />

59. 1<br />

60. <br />

61.<br />

62. <strong>Unix</strong> user of processes<br />

63. www<br />

64.<br />

65. <strong>Unix</strong> group of processes<br />

66. www<br />

67.<br />

68. Process manager settings<br />

开 源 时 代 2008 年 10 月 刊 - 96 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

69. <br />

70.<br />

71. Sets style of controling worker process count.<br />

72. Valid values are 'static' and 'apache-like'<br />

73. static<br />

74.<br />

75. Sets the limit on the number of simultaneous requests that will be served.<br />

76. Equivalent to Apache MaxClients directive.<br />

77. Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi<br />

78. Used with any pm_style.<br />

79. 128<br />

80.<br />

81. Settings group for 'apache-like' pm style<br />

82. <br />

83.<br />

84. Sets the number of server processes created on startup.<br />

85. Used only when 'apache-like' pm_style is selected<br />

86. 20<br />

87.<br />

88. Sets the desired minimum number of idle server processes.<br />

89. Used only when 'apache-like' pm_style is selected<br />

90. 5<br />

91.<br />

92. Sets the desired maximum number of idle server processes.<br />

93. Used only when 'apache-like' pm_style is selected<br />

94. 35<br />

95.<br />

96. <br />

97.<br />

98. <br />

99.<br />

开 源 时 代 2008 年 10 月 刊 - 97 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

100. The timeout (in seconds) for serving a single request after which the worker process<br />

will be terminated<br />

101. Should be used when 'max_execution_time' ini option does not stop script<br />

execution for some reason<br />

102. '0s' means 'off'<br />

103. 0s<br />

104.<br />

105. The timeout (in seconds) for serving of single request after which a php backtrace<br />

will be dumped to slow.log file<br />

106. '0s' means 'off'<br />

107. 0s<br />

108.<br />

109. The log file for slow requests<br />

110. logs/slow.log<br />

111.<br />

112. Set open file desc rlimit<br />

113. 51200<br />

114.<br />

115. Set max core size rlimit<br />

116. 0<br />

117.<br />

118. Chroot to this directory at the start, absolute path<br />

119. <br />

120.<br />

121. Chdir to this directory at the start, absolute path<br />

122. <br />

123.<br />

124. Redirect workers' stdout and stderr into main error log.<br />

125. If not set, they will be redirected to /dev/null, according to FastCGI specs<br />

126. yes<br />

127.<br />

128. How much requests each process should execute before respawn.<br />

开 源 时 代 2008 年 10 月 刊 - 98 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

129. Useful to work around memory leaks in 3rd party libraries.<br />

130. For endless request processing please specify 0<br />

131. Equivalent to PHP_FCGI_MAX_REQUESTS<br />

132. 10240<br />

133.<br />

134. Comma separated list of ipv4 addresses of FastCGI clients that allowed to<br />

connect.<br />

135. Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)<br />

136. Makes sense only with AF_INET listening socket.<br />

137. 127.0.0.1<br />

138.<br />

139. Pass environment variables like LD_LIBRARY_PATH<br />

140. All $VARIABLEs are taken from current environment<br />

141. <br />

142. $HOSTNAME<br />

143. /usr/local/bin:/usr/bin:/bin<br />

144. /tmp<br />

145. /tmp<br />

146. /tmp<br />

147. $OSTYPE<br />

148. $MACHTYPE<br />

149. 2<br />

150. <br />

151.<br />

152. <br />

153.<br />

154. <br />

155.<br />

156. <br />

9、 启 动 php-cgi 进 程 , 监 听 127.0.0.1 的 9000 端 口 , 进 程 数 为 200( 如 果 服 务 器 内 存 小 于 3GB,<br />

可 以 只 开 启 64 个 进 程 ), 用 户 为 www:<br />

开 源 时 代 2008 年 10 月 刊 - 99 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

ulimit -SHn 51200<br />

/usr/local/webserver/php/sbin/php-fpm start<br />

注 :/usr/local/webserver/php/sbin/php-fpm 还 有 其 他 参 数 , 包 括 :start|stop|quit|restart|<br />

reload|logrotate, 修 改 php.ini 后 不 重 启 php-cgi, 重 新 加 载 配 置 文 件 使 用 reload。<br />

三 、 安 装 Nginx 0.7.17<br />

1、 安 装 Nginx 所 需 的 pcre 库 :<br />

tar zxvf pcre-7.7.tar.gz<br />

cd pcre-7.7/<br />

./configure<br />

make && make install<br />

cd ../<br />

2、 安 装 Nginx<br />

tar zxvf nginx-0.7.17.tar.gz<br />

cd nginx-0.7.17/<br />

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --withhttp_stub_status_module<br />

--with-http_ssl_module<br />

make && make install<br />

cd ../<br />

3、 创 建 Nginx 日 志 目 录<br />

mkdir -p /data1/logs<br />

chmod +w /data1/logs<br />

chown -R www:www /data1/logs<br />

4、 创 建 Nginx 配 置 文 件<br />

1、 在 /usr/local/webserver/nginx/conf/ 目 录 中 创 建 nginx.conf 文 件 :<br />

rm -f /usr/local/webserver/nginx/conf/nginx.conf<br />

vi /usr/local/webserver/nginx/conf/nginx.conf<br />

输 入 以 下 内 容 :<br />

开 源 时 代 2008 年 10 月 刊 - 100 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

user www www;<br />

worker_processes 8;<br />

error_log /data1/logs/nginx_error.log crit;<br />

pid<br />

/usr/local/webserver/nginx/nginx.pid;<br />

#Specifies the value for maximum file descriptors that can be opened by this process.<br />

worker_rlimit_nofile 51200;<br />

events<br />

{<br />

use epoll;<br />

worker_connections 51200;<br />

}<br />

http<br />

{<br />

include<br />

mime.types;<br />

default_type application/octet-stream;<br />

#charset gb2312;<br />

server_names_hash_bucket_size 128;<br />

client_header_buffer_size 32k;<br />

large_client_header_buffers 4 32k;<br />

sendfile on;<br />

tcp_nopush<br />

on;<br />

keepalive_timeout 60;<br />

tcp_nodelay on;<br />

fastcgi_connect_timeout 300;<br />

fastcgi_send_timeout 300;<br />

fastcgi_read_timeout 300;<br />

fastcgi_buffer_size 64k;<br />

fastcgi_buffers 4 64k;<br />

fastcgi_busy_buffers_size 128k;<br />

fastcgi_temp_file_write_size 128k;<br />

开 源 时 代 2008 年 10 月 刊 - 101 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

gzip on;<br />

gzip_min_length 1k;<br />

gzip_buffers 4 16k;<br />

gzip_http_version 1.0;<br />

gzip_comp_level 2;<br />

gzip_types<br />

text/plain application/x-javascript text/css application/xml;<br />

gzip_vary on;<br />

#limit_zone crawler $binary_remote_addr 10m;<br />

server<br />

{<br />

listen 80;<br />

server_name blog.s135.com;<br />

index index.html index.htm index.php;<br />

root /data0/htdocs/blog;<br />

#limit_conn crawler 20;<br />

location ~ .*\.(php|php5)?$<br />

{<br />

#fastcgi_pass unix:/tmp/php-cgi.sock;<br />

fastcgi_pass 127.0.0.1:9000;<br />

fastcgi_index index.php;<br />

include fcgi.conf;<br />

}<br />

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$<br />

{<br />

expires 30d;<br />

}<br />

location ~ .*\.(js|css)?$<br />

{<br />

expires 1h;<br />

}<br />

开 源 时 代 2008 年 10 月 刊 - 102 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

log_format access '$remote_addr - $remote_user [$time_local] "$request" '<br />

'$status $body_bytes_sent "$http_referer" '<br />

'"$http_user_agent" $http_x_forwarded_for';<br />

access_log /data1/logs/access.log access;<br />

}<br />

server<br />

{<br />

listen 80;<br />

server_name www.s135.com;<br />

index index.html index.htm index.php;<br />

root /data0/htdocs/www;<br />

location ~ .*\.(php|php5)?$<br />

{<br />

#fastcgi_pass unix:/tmp/php-cgi.sock;<br />

fastcgi_pass 127.0.0.1:9000;<br />

fastcgi_index index.php;<br />

include fcgi.conf;<br />

}<br />

log_format wwwlogs '$remote_addr - $remote_user [$time_local] "$request" '<br />

'$status $body_bytes_sent "$http_referer" '<br />

'"$http_user_agent" $http_x_forwarded_for';<br />

access_log /data1/logs/wwwlogs.log wwwlogs;<br />

}<br />

server<br />

{<br />

listen 80;<br />

server_name status.blog.s135.com;<br />

开 源 时 代 2008 年 10 月 刊 - 103 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

location / {<br />

stub_status on;<br />

access_log off;<br />

}<br />

}<br />

}<br />

2、 在 /usr/local/webserver/nginx/conf/ 目 录 中 创 建 fcgi.conf 文 件 :<br />

vi /usr/local/webserver/nginx/conf/fcgi.conf<br />

输 入 以 下 内 容 :<br />

fastcgi_param GATEWAY_INTERFACE CGI/1.1;<br />

fastcgi_param SERVER_SOFTWARE nginx;<br />

fastcgi_param QUERY_STRING<br />

fastcgi_param REQUEST_METHOD<br />

fastcgi_param CONTENT_TYPE<br />

fastcgi_param CONTENT_LENGTH<br />

$query_string;<br />

$request_method;<br />

$content_type;<br />

$content_length;<br />

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />

fastcgi_param SCRIPT_NAME<br />

fastcgi_param REQUEST_URI<br />

fastcgi_param DOCUMENT_URI<br />

$fastcgi_script_name;<br />

$request_uri;<br />

$document_uri;<br />

fastcgi_param DOCUMENT_ROOT<br />

$document_root;<br />

fastcgi_param SERVER_PROTOCOL $server_protocol;<br />

fastcgi_param REMOTE_ADDR<br />

fastcgi_param REMOTE_PORT<br />

fastcgi_param SERVER_ADDR<br />

fastcgi_param SERVER_PORT<br />

fastcgi_param SERVER_NAME<br />

$remote_addr;<br />

$remote_port;<br />

$server_addr;<br />

$server_port;<br />

$server_name;<br />

开 源 时 代 2008 年 10 月 刊 - 104 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

# PHP only, required if PHP was built with --enable-force-cgi-redirect<br />

fastcgi_param REDIRECT_STATUS 200;<br />

5、 启 动 Nginx<br />

ulimit -SHn 51200<br />

/usr/local/webserver/nginx/sbin/nginx<br />

四 、 配 置 开 机 自 动 启 动 Nginx + PHP<br />

vi /etc/rc.local<br />

在 末 尾 增 加 以 下 内 容 :<br />

ulimit -SHn 51200<br />

/usr/local/webserver/php/sbin/php-fpm start<br />

/usr/local/webserver/nginx/sbin/nginx<br />

五 、 优 化 Linux 内 核 参 数<br />

vi /etc/sysctl.conf<br />

在 末 尾 增 加 以 下 内 容 :<br />

<strong>net</strong>.ipv4.tcp_fin_timeout = 30<br />

<strong>net</strong>.ipv4.tcp_keepalive_time = 300<br />

<strong>net</strong>.ipv4.tcp_syncookies = 1<br />

<strong>net</strong>.ipv4.tcp_tw_reuse = 1<br />

<strong>net</strong>.ipv4.tcp_tw_recycle = 1<br />

<strong>net</strong>.ipv4.ip_local_port_range = 5000 65000<br />

使 配 置 立 即 生 效 :<br />

/sbin/sysctl -p<br />

六 、 在 不 停 止 Nginx 服 务 的 情 况 下 平 滑 变 更 Nginx 配 置<br />

1、 修 改 /usr/local/webserver/nginx/conf/nginx.conf 配 置 文 件 后 , 请 执 行 以 下 命 令 检 查 配 置 文<br />

件 是 否 正 确 :<br />

/usr/local/webserver/nginx/sbin/nginx -t<br />

如 果 屏 幕 显 示 以 下 两 行 信 息 , 说 明 配 置 文 件 正 确 :<br />

开 源 时 代 2008 年 10 月 刊 - 105 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok<br />

the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully<br />

2、 这 时 , 输 入 以 下 命 令 查 看 Nginx 主 进 程 号 :<br />

ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'<br />

屏 幕 显 示 的 即 为 Nginx 主 进 程 号 , 例 如 :<br />

6302<br />

这 时 , 执 行 以 下 命 令 即 可 使 修 改 过 的 Nginx 配 置 文 件 生 效 :<br />

kill -HUP 6302<br />

或 者 无 需 这 么 麻 烦 , 找 到 Nginx 的 Pid 文 件 :<br />

kill -HUP `cat /usr/local/webserver/nginx/nginx.pid`<br />

七 、 编 写 每 天 定 时 切 割 Nginx 日 志 的 脚 本<br />

1、 创 建 脚 本 /usr/local/nginx/sbin/cut_nginx_log.sh:<br />

vi /usr/local/nginx/sbin/cut_nginx_log.sh<br />

输 入 以 下 内 容 :<br />

#!/bin/bash<br />

# This script run at 00:00<br />

# The Nginx logs path<br />

logs_path="/usr/local/webserver/nginx/logs/"<br />

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/<br />

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday"<br />

+"%m")/access_$(date -d "yesterday" +"%Y%m%d").log<br />

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`<br />

2、 设 置 crontab, 每 天 凌 晨 00:00 切 割 nginx 访 问 日 志 :<br />

crontab -e<br />

输 入 以 下 内 容 :<br />

00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh<br />

开 源 时 代 2008 年 10 月 刊 - 106 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

前 言<br />

基 于 Ubuntu 构 建 协 作 平 台 之 服 务 器 端 篇 ——Trac<br />

CU 网 友 :leo_ss_pku<br />

本 文 讲 述 了 如 何 利 用 Ubuntu Server 8.04 优 秀 的 包 管 理 机 制 快 速 构 建 统 一 协 作 平 台 。 其 中 , 服<br />

务 器 端 包 含 源 码 管 理 系 统 subversion、task/issue/bug 管 理 系 统 trac; 客 户 端 包 括<br />

eclipse、subclipse——eclipse 的 subversion 插 件 、pydev——python 的 eclipse 插 件 、 mylyn<br />

——eclipse 的 任 务 管 理 插 件 。<br />

安 装<br />

一 、Ubuntu 下 安 装 trac<br />

Trac 是 非 常 优 秀 的 task/issue/bug 管 理 系 统 , 它 支 持 SVN/CVS/BZR/HG 等 多 种 版 本 库 。 但 是 Trac<br />

由 于 安 装 比 较 复 杂 , 一 直 成 为 其 普 及 的 重 要 障 碍 之 一 。<br />

现 在 ubuntu 下 , 安 装 trac 将 变 得 非 常 简 单 。 下 面 Trac 在 Ubuntu 8.04 Server 下 的 安 装 步 骤 :<br />

$ sudo aptitude install trac<br />

* 若 需 要 通 过 apache 来 访 问 svn 版 本 库 , 可 以 运 行 , 装 完 之 后 , 根 据 版 本 库 实 际 情 况 编 辑 一<br />

下 /etc/apache2/mod-available/dav_svn.conf 文 件 中 即 可<br />

$ sudo aptitude install libapache2-svn<br />

ubuntu 会 自 动 下 载 安 装 trac、apache、subversion 等 必 要 组 件 ( 若 需 要 trac 支 持 BZR, 则 使 用<br />

sudo aptitude install trac-bzr)。<br />

二 、 配 置 trac<br />

Trac 安 装 完 成 之 后 , 进 行 配 置<br />

1、 创 建 svn 版 本 库<br />

$ sudo mkdir -p /home/svn/repo<br />

$ sudo svnadmin create /home/svn/repo<br />

$ sudo chown -R www-data.www-data /home/svn/repo<br />

2、 创 建 Trac 环 境<br />

$ sudo mkdir -p /home/trac/myproject<br />

$ sudo trac-admin /home/trac/myproject initevn<br />

trac-admin 会 问 几 个 问 题 ,svn 的 库 路 径 填 上 /home/svn/repo, 其 它 关 于 模 板 的 问 题 , 默 认 即 可<br />

$ sudo chown -R www-data.www-data /home/trac/myproject<br />

3、 配 置 apache<br />

$ ln -s /usr/share/trac/cgi-bin/trac.cgi /usr/lib64/cgi-bin/trac.cgi<br />

添 加 trac 相 关 配 置 :<br />

$ cd /etc/apache2/conf.d<br />

开 源 时 代 2008 年 10 月 刊 - 107 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

$ sudo vi trac<br />

添 加 如 下 内 容<br />

<br />

AllowOverride None<br />

Order allow,deny<br />

Allow from all<br />

<br />

<br />

SetEnv TRAC_ENV "/home/trac/myproject"<br />

SetEnv PYTHON_EGG_CACHE "/tmp"<br />

<br />

<br />

AuthType Basic<br />

AuthName "Leo's Projects"<br />

AuthUserFile /home/trac.htpasswd<br />

Require valid-user<br />

<br />

4、 生 成 授 权 文 件 trac.htpasswd<br />

$ htpasswd -c /home/trac.htpasswd leo<br />

New password: mypassword<br />

Re-type new password: mypassword<br />

Adding password for user leo<br />

5、 重 启 apache<br />

$ sudo /etc/init.d/apache2 restart<br />

访 问 http://localhost/cgi-bin/trac.cgi 就 能 看 到 trac 的 画 面 了<br />

6、 插 件<br />

建 议 安 装 如 下 插 件 :<br />

tracrpc——XML RPC 插 件 ★★★★★<br />

webadmin——WEB 管 理 插 件 ★★★★★<br />

tracpygments—— 源 码 语 法 高 亮 插 件 ★★★★☆<br />

大 型 网 站 架 构 演 变 和 知 识 体 系<br />

CU 网 友 :BlueDavy<br />

之 前 也 有 一 些 介 绍 大 型 网 站 架 构 演 变 的 文 章 , 例 如 LiveJournal 的 、ebay 的 , 都 是 非 常 值 得 参<br />

考 的 , 不 过 感 觉 他 们 讲 的 更 多 的 是 每 次 演 变 的 结 果 , 而 没 有 很 详 细 的 讲 为 什 么 需 要 做 这 样 的 演 变 ,<br />

再 加 上 近 来 感 觉 有 不 少 同 学 都 很 难 明 白 为 什 么 一 个 网 站 需 要 那 么 复 杂 的 技 术 , 于 是 有 了 写 这 篇 文 章<br />

的 想 法 , 在 这 篇 文 章 中 将 阐 述 一 个 普 通 的 网 站 发 展 成 大 型 网 站 过 程 中 的 一 种 较 为 典 型 的 架 构 演 变 历<br />

程 和 所 需 掌 握 的 知 识 体 系 , 希 望 能 给 想 从 事 互 联 网 行 业 的 同 学 一 点 初 步 的 概 念 ,:), 文 中 的 不 对 之 处<br />

开 源 时 代 2008 年 10 月 刊 - 108 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

也 请 各 位 多 给 点 建 议 , 让 本 文 真 正 起 到 抛 砖 引 玉 的 效 果 。<br />

架 构 演 变 第 一 步 : 物 理 分 离 webserver 和 数 据 库<br />

最 开 始 , 由 于 某 些 想 法 , 于 是 在 互 联 网 上 搭 建 了 一 个 网 站 , 这 个 时 候 甚 至 有 可 能 主 机 都 是 租 借<br />

的 , 但 由 于 这 篇 文 章 我 们 只 关 注 架 构 的 演 变 历 程 , 因 此 就 假 设 这 个 时 候 已 经 是 托 管 了 一 台 主 机 , 并<br />

且 有 一 定 的 带 宽 了 , 这 个 时 候 由 于 网 站 具 备 了 一 定 的 特 色 , 吸 引 了 部 分 人 访 问 , 逐 渐 你 发 现 系 统 的<br />

压 力 越 来 越 高 , 响 应 速 度 越 来 越 慢 , 而 这 个 时 候 比 较 明 显 的 是 数 据 库 和 应 用 互 相 影 响 , 应 用 出 问 题<br />

了 , 数 据 库 也 很 容 易 出 现 问 题 , 而 数 据 库 出 问 题 的 时 候 , 应 用 也 容 易 出 问 题 , 于 是 进 入 了 第 一 步 演<br />

变 阶 段 : 将 应 用 和 数 据 库 从 物 理 上 分 离 , 变 成 了 两 台 机 器 , 这 个 时 候 技 术 上 没 有 什 么 新 的 要 求 , 但<br />

你 发 现 确 实 起 到 效 果 了 , 系 统 又 恢 复 到 以 前 的 响 应 速 度 了 , 并 且 支 撑 住 了 更 高 的 流 量 , 并 且 不 会 因<br />

为 数 据 库 和 应 用 形 成 互 相 的 影 响 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

这 一 步 架 构 演 变 对 技 术 上 的 知 识 体 系 基 本 没 有 要 求 。<br />

架 构 演 变 第 二 步 : 增 加 页 面 缓 存<br />

好 景 不 长 , 随 着 访 问 的 人 越 来 越 多 , 你 发 现 响 应 速 度 又 开 始 变 慢 了 , 查 找 原 因 , 发 现 是 访 问 数<br />

据 库 的 操 作 太 多 , 导 致 数 据 连 接 竞 争 激 烈 , 所 以 响 应 变 慢 , 但 数 据 库 连 接 又 不 能 开 太 多 , 否 则 数 据<br />

库 机 器 压 力 会 很 高 , 因 此 考 虑 采 用 缓 存 机 制 来 减 少 数 据 库 连 接 资 源 的 竞 争 和 对 数 据 库 读 的 压 力 , 这<br />

个 时 候 首 先 也 许 会 选 择 采 用 squid 等 类 似 的 机 制 来 将 系 统 中 相 对 静 态 的 页 面 ( 例 如 一 两 天 才 会 有 更<br />

新 的 页 面 ) 进 行 缓 存 ( 当 然 , 也 可 以 采 用 将 页 面 静 态 化 的 方 案 ), 这 样 程 序 上 可 以 不 做 修 改 , 就 能<br />

够 很 好 的 减 少 对 webserver 的 压 力 以 及 减 少 数 据 库 连 接 资 源 的 竞 争 ,OK, 于 是 开 始 采 用 squid 来<br />

做 相 对 静 态 的 页 面 的 缓 存 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

前 端 页 面 缓 存 技 术 , 例 如 squid, 如 想 用 好 的 话 还 得 深 入 掌 握 下 squid 的 实 现 方 式 以 及 缓 存 的 失<br />

效 算 法 等 。<br />

架 构 演 变 第 三 步 : 增 加 页 面 片 段 缓 存<br />

开 源 时 代 2008 年 10 月 刊 - 109 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

增 加 了 squid 做 缓 存 后 , 整 体 系 统 的 速 度 确 实 是 提 升 了 ,webserver 的 压 力 也 开 始 下 降 了 , 但<br />

随 着 访 问 量 的 增 加 , 发 现 系 统 又 开 始 变 的 有 些 慢 了 , 在 尝 到 了 squid 之 类 的 动 态 缓 存 带 来 的 好 处 后 ,<br />

开 始 想 能 不 能 让 现 在 那 些 动 态 页 面 里 相 对 静 态 的 部 分 也 缓 存 起 来 呢 , 因 此 考 虑 采 用 类 似 ESI 之 类 的 页<br />

面 片 段 缓 存 策 略 ,OK, 于 是 开 始 采 用 ESI 来 做 动 态 页 面 中 相 对 静 态 的 片 段 部 分 的 缓 存 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

页 面 片 段 缓 存 技 术 , 例 如 ESI 等 , 想 用 好 的 话 同 样 需 要 掌 握 ESI 的 实 现 方 式 等 ;<br />

架 构 演 变 第 四 步 : 数 据 缓 存<br />

在 采 用 ESI 之 类 的 技 术 再 次 提 高 了 系 统 的 缓 存 效 果 后 , 系 统 的 压 力 确 实 进 一 步 降 低 了 , 但 同 样 ,<br />

随 着 访 问 量 的 增 加 , 系 统 还 是 开 始 变 慢 , 经 过 查 找 , 可 能 会 发 现 系 统 中 存 在 一 些 重 复 获 取 数 据 信 息<br />

的 地 方 , 像 获 取 用 户 信 息 等 , 这 个 时 候 开 始 考 虑 是 不 是 可 以 将 这 些 数 据 信 息 也 缓 存 起 来 呢 , 于 是 将<br />

这 些 数 据 缓 存 到 本 地 内 存 , 改 变 完 毕 后 , 完 全 符 合 预 期 , 系 统 的 响 应 速 度 又 恢 复 了 , 数 据 库 的 压 力<br />

也 再 度 降 低 了 不 少 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

缓 存 技 术 , 包 括 像 Map 数 据 结 构 、 缓 存 算 法 、 所 选 用 的 框 架 本 身 的 实 现 机 制 等 。<br />

开 源 时 代 2008 年 10 月 刊 - 110 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

架 构 演 变 第 五 步 : 增 加 webserver<br />

好 景 不 长 , 发 现 随 着 系 统 访 问 量 的 再 度 增 加 ,webserver 机 器 的 压 力 在 高 峰 期 会 上 升 到 比 较 高 ,<br />

这 个 时 候 开 始 考 虑 增 加 一 台 webserver, 这 也 是 为 了 同 时 解 决 可 用 性 的 问 题 , 避 免 单 台 的<br />

webserver down 机 的 话 就 没 法 使 用 了 , 在 做 了 这 些 考 虑 后 , 决 定 增 加 一 台 webserver, 增 加 一 台<br />

webserver 时 , 会 碰 到 一 些 问 题 , 典 型 的 有 :<br />

1、 如 何 让 访 问 分 配 到 这 两 台 机 器 上 , 这 个 时 候 通 常 会 考 虑 的 方 案 是 Apache 自 带 的 负 载 均 衡 方 案 ,<br />

或 LVS 这 类 的 软 件 负 载 均 衡 方 案 ;<br />

2、 如 何 保 持 状 态 信 息 的 同 步 , 例 如 用 户 session 等 , 这 个 时 候 会 考 虑 的 方 案 有 写 入 数 据 库 、 写 入 存<br />

储 、cookie 或 同 步 session 信 息 等 机 制 等 ;<br />

3、 如 何 保 持 数 据 缓 存 信 息 的 同 步 , 例 如 之 前 缓 存 的 用 户 数 据 等 , 这 个 时 候 通 常 会 考 虑 的 机 制 有 缓 存<br />

同 步 或 分 布 式 缓 存 ;<br />

4、 如 何 让 上 传 文 件 这 些 类 似 的 功 能 继 续 正 常 , 这 个 时 候 通 常 会 考 虑 的 机 制 是 使 用 共 享 文 件 系 统 或 存<br />

储 等 ;<br />

在 解 决 了 这 些 问 题 后 , 终 于 是 把 webserver 增 加 为 了 两 台 , 系 统 终 于 是 又 恢 复 到 了 以 往 的 速 度 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

负 载 均 衡 技 术 ( 包 括 但 不 限 于 硬 件 负 载 均 衡 、 软 件 负 载 均 衡 、 负 载 算 法 、linux 转 发 协 议 、 所 选<br />

用 的 技 术 的 实 现 细 节 等 )、 主 备 技 术 ( 包 括 但 不 限 于 ARP 欺 骗 、linuxheart-beat 等 )、 状 态 信 息<br />

或 缓 存 同 步 技 术 ( 包 括 但 不 限 于 Cookie 技 术 、UDP 协 议 、 状 态 信 息 广 播 、 所 选 用 的 缓 存 同 步 技 术<br />

的 实 现 细 节 等 )、 共 享 文 件 技 术 ( 包 括 但 不 限 于 NFS 等 )、 存 储 技 术 ( 包 括 但 不 限 于 存 储 设 备 等 )。<br />

架 构 演 变 第 六 步 : 分 库<br />

享 受 了 一 段 时 间 的 系 统 访 问 量 高 速 增 长 的 幸 福 后 , 发 现 系 统 又 开 始 变 慢 了 , 这 次 又 是 什 么 状 况<br />

呢 , 经 过 查 找 , 发 现 数 据 库 写 入 、 更 新 的 这 些 操 作 的 部 分 数 据 库 连 接 的 资 源 竞 争 非 常 激 烈 , 导 致 了<br />

系 统 变 慢 , 这 下 怎 么 办 呢 , 此 时 可 选 的 方 案 有 数 据 库 集 群 和 分 库 策 略 , 集 群 方 面 像 有 些 数 据 库 支 持<br />

的 并 不 是 很 好 , 因 此 分 库 会 成 为 比 较 普 遍 的 策 略 , 分 库 也 就 意 味 着 要 对 原 有 程 序 进 行 修 改 , 一 通 修<br />

改 实 现 分 库 后 , 不 错 , 目 标 达 到 了 , 系 统 恢 复 甚 至 速 度 比 以 前 还 快 了 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

开 源 时 代 2008 年 10 月 刊 - 111 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

这 一 步 更 多 的 是 需 要 从 业 务 上 做 合 理 的 划 分 , 以 实 现 分 库 , 具 体 技 术 细 节 上 没 有 其 他 的 要 求 ;<br />

但 同 时 随 着 数 据 量 的 增 大 和 分 库 的 进 行 , 在 数 据 库 的 设 计 、 调 优 以 及 维 护 上 需 要 做 的 更 好 , 因 此 对<br />

这 些 方 面 的 技 术 还 是 提 出 了 很 高 的 要 求 的 。<br />

架 构 演 变 第 七 步 : 分 表 、DAL 和 分 布 式 缓 存<br />

随 着 系 统 的 不 断 运 行 , 数 据 量 开 始 大 幅 度 增 长 , 这 个 时 候 发 现 分 库 后 查 询 仍 然 会 有 些 慢 , 于 是<br />

按 照 分 库 的 思 想 开 始 做 分 表 的 工 作 , 当 然 , 这 不 可 避 免 的 会 需 要 对 程 序 进 行 一 些 修 改 , 也 许 在 这 个<br />

时 候 就 会 发 现 应 用 自 己 要 关 心 分 库 分 表 的 规 则 等 , 还 是 有 些 复 杂 的 , 于 是 萌 生 能 否 增 加 一 个 通 用 的<br />

框 架 来 实 现 分 库 分 表 的 数 据 访 问 , 这 个 在 ebay 的 架 构 中 对 应 的 就 是 DAL, 这 个 演 变 的 过 程 相 对 而<br />

言 需 要 花 费 较 长 的 时 间 , 当 然 , 也 有 可 能 这 个 通 用 的 框 架 会 等 到 分 表 做 完 后 才 开 始 做 , 同 时 , 在 这<br />

个 阶 段 可 能 会 发 现 之 前 的 缓 存 同 步 方 案 出 现 问 题 , 因 为 数 据 量 太 大 , 导 致 现 在 不 太 可 能 将 缓 存 存 在<br />

本 地 , 然 后 同 步 的 方 式 , 需 要 采 用 分 布 式 缓 存 方 案 了 , 于 是 , 又 是 一 通 考 察 和 折 磨 , 终 于 是 将 大 量<br />

的 数 据 缓 存 转 移 到 分 布 式 缓 存 上 了 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

开 源 时 代 2008 年 10 月 刊 - 112 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

分 表 更 多 的 同 样 是 业 务 上 的 划 分 , 技 术 上 涉 及 到 的 会 有 动 态 hash 算 法 、consistenthash 算 法<br />

等 ;DAL 涉 及 到 比 较 多 的 复 杂 技 术 , 例 如 数 据 库 连 接 的 管 理 ( 超 时 、 异 常 )、 数 据 库 操 作 的 控 制<br />

( 超 时 、 异 常 )、 分 库 分 表 规 则 的 封 装 等 ;<br />

架 构 演 变 第 八 步 : 增 加 更 多 的 webserver<br />

在 做 完 分 库 分 表 这 些 工 作 后 , 数 据 库 上 的 压 力 已 经 降 到 比 较 低 了 , 又 开 始 过 着 每 天 看 着 访 问 量<br />

暴 增 的 幸 福 生 活 了 , 突 然 有 一 天 , 发 现 系 统 的 访 问 又 开 始 有 变 慢 的 趋 势 了 , 这 个 时 候 首 先 查 看 数 据<br />

库 , 压 力 一 切 正 常 , 之 后 查 看 webserver, 发 现 apache 阻 塞 了 很 多 的 请 求 , 而 应 用 服 务 器 对 每 个<br />

请 求 也 是 比 较 快 的 , 看 来 是 请 求 数 太 高 导 致 需 要 排 队 等 待 , 响 应 速 度 变 慢 , 这 还 好 办 , 一 般 来 说 ,<br />

这 个 时 候 也 会 有 些 钱 了 , 于 是 添 加 一 些 webserver 服 务 器 , 在 这 个 添 加 webserver 服 务 器 的 过 程 ,<br />

有 可 能 会 出 现 几 种 挑 战 :<br />

1、Apache 的 软 负 载 或 LVS 软 负 载 等 无 法 承 担 巨 大 的 web 访 问 量 ( 请 求 连 接 数 、 网 络 流 量 等 ) 的<br />

调 度 了 , 这 个 时 候 如 果 经 费 允 许 的 话 , 会 采 取 的 方 案 是 购 买 硬 件 负 载 , 例 如<br />

F5、Netsclar、Athelon 之 类 的 , 如 经 费 不 允 许 的 话 , 会 采 取 的 方 案 是 将 应 用 从 逻 辑 上 做 一 定 的 分<br />

类 , 然 后 分 散 到 不 同 的 软 负 载 集 群 中 ;<br />

2、 原 有 的 一 些 状 态 信 息 同 步 、 文 件 共 享 等 方 案 可 能 会 出 现 瓶 颈 , 需 要 进 行 改 进 , 也 许 这 个 时 候 会 根<br />

据 情 况 编 写 符 合 网 站 业 务 需 求 的 分 布 式 文 件 系 统 等 ;<br />

在 做 完 这 些 工 作 后 , 开 始 进 入 一 个 看 似 完 美 的 无 限 伸 缩 的 时 代 , 当 网 站 流 量 增 加 时 , 应 对 的 解 决 方<br />

案 就 是 不 断 的 添 加 webserver。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

开 源 时 代 2008 年 10 月 刊 - 113 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

到 了 这 一 步 , 随 着 机 器 数 的 不 断 增 长 、 数 据 量 的 不 断 增 长 和 对 系 统 可 用 性 的 要 求 越 来 越 高 , 这<br />

个 时 候 要 求 对 所 采 用 的 技 术 都 要 有 更 为 深 入 的 理 解 , 并 需 要 根 据 网 站 的 需 求 来 做 更 加 定 制 性 质 的 产<br />

品 。<br />

架 构 演 变 第 九 步 : 数 据 读 写 分 离 和 廉 价 存 储 方 案<br />

突 然 有 一 天 , 发 现 这 个 完 美 的 时 代 也 要 结 束 了 , 数 据 库 的 噩 梦 又 一 次 出 现 在 眼 前 了 , 由 于 添 加 的<br />

webserver 太 多 了 , 导 致 数 据 库 连 接 的 资 源 还 是 不 够 用 , 而 这 个 时 候 又 已 经 分 库 分 表 了 , 开 始 分 析<br />

数 据 库 的 压 力 状 况 , 可 能 会 发 现 数 据 库 的 读 写 比 很 高 , 这 个 时 候 通 常 会 想 到 数 据 读 写 分 离 的 方 案 ,<br />

当 然 , 这 个 方 案 要 实 现 并 不 容 易 , 另 外 , 可 能 会 发 现 一 些 数 据 存 储 在 数 据 库 上 有 些 浪 费 , 或 者 说 过<br />

于 占 用 数 据 库 资 源 , 因 此 在 这 个 阶 段 可 能 会 形 成 的 架 构 演 变 是 实 现 数 据 读 写 分 离 , 同 时 编 写 一 些 更<br />

为 廉 价 的 存 储 方 案 , 例 如 BigTable 这 种 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

开 源 时 代 2008 年 10 月 刊 - 114 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

数 据 读 写 分 离 要 求 对 数 据 库 的 复 制 、standby 等 策 略 有 深 入 的 掌 握 和 理 解 , 同 时 会 要 求 具 备 自<br />

行 实 现 的 技 术 ; 廉 价 存 储 方 案 要 求 对 OS 的 文 件 存 储 有 深 入 的 掌 握 和 理 解 , 同 时 要 求 对 采 用 的 语 言 在<br />

文 件 这 块 的 实 现 有 深 入 的 掌 握 。<br />

架 构 演 变 第 十 步 : 进 入 大 型 分 布 式 应 用 时 代 和 廉 价 服 务 器 群 梦 想 时 代<br />

经 过 上 面 这 个 漫 长 而 痛 苦 的 过 程 , 终 于 是 再 度 迎 来 了 完 美 的 时 代 , 不 断 的 增 加 webserver 就 可<br />

以 支 撑 越 来 越 高 的 访 问 量 了 , 对 于 大 型 网 站 而 言 , 人 气 的 重 要 毋 庸 置 疑 , 随 着 人 气 的 越 来 越 高 , 各<br />

种 各 样 的 功 能 需 求 也 开 始 爆 发 性 的 增 长 , 这 个 时 候 突 然 发 现 , 原 来 部 署 在 webserver 上 的 那 个 web<br />

应 用 已 经 非 常 庞 大 了 , 当 多 个 团 队 都 开 始 对 其 进 行 改 动 时 , 可 真 是 相 当 的 不 方 便 , 复 用 性 也 相 当 糟<br />

糕 , 基 本 是 每 个 团 队 都 做 了 或 多 或 少 重 复 的 事 情 , 而 且 部 署 和 维 护 也 是 相 当 的 麻 烦 , 因 为 庞 大 的 应<br />

用 包 在 N 台 机 器 上 复 制 、 启 动 都 需 要 耗 费 不 少 的 时 间 , 出 问 题 的 时 候 也 不 是 很 好 查 , 另 外 一 个 更 糟<br />

糕 的 状 况 是 很 有 可 能 会 出 现 某 个 应 用 上 的 bug 就 导 致 了 全 站 都 不 可 用 , 还 有 其 他 的 像 调 优 不 好 操 作<br />

( 因 为 机 器 上 部 署 的 应 用 什 么 都 要 做 , 根 本 就 无 法 进 行 针 对 性 的 调 优 ) 等 因 素 , 根 据 这 样 的 分 析 ,<br />

开 始 痛 下 决 心 , 将 系 统 根 据 职 责 进 行 拆 分 , 于 是 一 个 大 型 的 分 布 式 应 用 就 诞 生 了 , 通 常 , 这 个 步 骤<br />

需 要 耗 费 相 当 长 的 时 间 , 因 为 会 碰 到 很 多 的 挑 战 :<br />

1、 拆 成 分 布 式 后 需 要 提 供 一 个 高 性 能 、 稳 定 的 通 信 框 架 , 并 且 需 要 支 持 多 种 不 同 的 通 信 和 远 程 调 用<br />

方 式 ;<br />

2、 将 一 个 庞 大 的 应 用 拆 分 需 要 耗 费 很 长 的 时 间 , 需 要 进 行 业 务 的 整 理 和 系 统 依 赖 关 系 的 控 制 等 ;<br />

3、 如 何 运 维 ( 依 赖 管 理 、 运 行 状 况 管 理 、 错 误 追 踪 、 调 优 、 监 控 和 报 警 等 ) 好 这 个 庞 大 的 分 布 式 应<br />

用 。<br />

经 过 这 一 步 , 差 不 多 系 统 的 架 构 进 入 相 对 稳 定 的 阶 段 , 同 时 也 能 开 始 采 用 大 量 的 廉 价 机 器 来 支 撑 着<br />

巨 大 的 访 问 量 和 数 据 量 , 结 合 这 套 架 构 以 及 这 么 多 次 演 变 过 程 吸 取 的 经 验 来 采 用 其 他 各 种 各 样 的 方<br />

开 源 时 代 2008 年 10 月 刊 - 115 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

法 来 支 撑 着 越 来 越 高 的 访 问 量 。<br />

看 看 这 一 步 完 成 后 系 统 的 图 示 :<br />

这 一 步 涉 及 到 了 这 些 知 识 体 系 :<br />

这 一 步 涉 及 的 知 识 体 系 非 常 的 多 , 要 求 对 通 信 、 远 程 调 用 、 消 息 机 制 等 有 深 入 的 理 解 和 掌 握 ,<br />

要 求 的 都 是 从 理 论 、 硬 件 级 、 操 作 系 统 级 以 及 所 采 用 的 语 言 的 实 现 都 有 清 楚 的 理 解 。 运 维 这 块 涉 及<br />

的 知 识 体 系 也 非 常 的 多 , 多 数 情 况 下 需 要 掌 握 分 布 式 并 行 计 算 、 报 表 、 监 控 技 术 以 及 规 则 策 略 等 等 。<br />

说 起 来 确 实 不 怎 么 费 力 , 整 个 网 站 架 构 的 经 典 演 变 过 程 都 和 上 面 比 较 的 类 似 , 当 然 , 每 步 采 取<br />

的 方 案 , 演 变 的 步 骤 有 可 能 有 不 同 , 另 外 , 由 于 网 站 的 业 务 不 同 , 会 有 不 同 的 专 业 技 术 的 需 求 , 这<br />

篇 blog 更 多 的 是 从 架 构 的 角 度 来 讲 解 演 变 的 过 程 , 当 然 , 其 中 还 有 很 多 的 技 术 也 未 在 此 提 及 , 像 数<br />

据 库 集 群 、 数 据 挖 掘 、 搜 索 等 , 但 在 真 实 的 演 变 过 程 中 还 会 借 助 像 提 升 硬 件 配 置 、 网 络 环 境 、 改 造<br />

操 作 系 统 、CDN 镜 像 等 来 支 撑 更 大 的 流 量 , 因 此 在 真 实 的 发 展 过 程 中 还 会 有 很 多 的 不 同 , 另 外 一 个<br />

大 型 网 站 要 做 到 的 远 远 不 仅 仅 上 面 这 些 , 还 有 像 安 全 、 运 维 、 运 营 、 服 务 、 存 储 等 , 要 做 好 一 个 大<br />

型 的 网 站 真 的 很 不 容 易 , 写 这 篇 文 章 更 多 的 是 希 望 能 够 引 出 更 多 大 型 网 站 架 构 演 变 的 介 绍 。<br />

开 源 时 代 2008 年 10 月 刊 - 116 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>


<strong>China<strong>Unix</strong></strong>.<strong>net</strong> ----- 全 球 最 大 的 Linux/<strong>Unix</strong> 应 用 与 开 发 者 中 文 社 区<br />

网 友 热 评<br />

*******************************************************************************************************<br />

热 点 技 术 评 论<br />

2.6 内 核 Bug 会 导 致 无 法 停 止 <strong>net</strong>work 服 务<br />

JAVA 比 C++ 高 效 ?<br />

GCC 有 没 有 弱 智 一 点 内 嵌 汇 编 写 法 ?<br />

主 WEB 服 务 器 被 入 侵 , 如 何 提 高 安 全 性 ?<br />

现 在 学 习 C 语 言 都 用 什 么 编 辑 工 具 ?<br />

freebsd 真 的 比 linux 难 么<br />

写 一 本 C 语 言 的 书 , 征 求 意 见<br />

i++ 与 ++i 问 题<br />

无 源 码 的 DLL 有 可 能 直 接 移 植 到 Linux 上 么 ?<br />

UNIX 如 何 判 断 一 个 字 符 串 是 数 值<br />

也 说 Hash 与 加 密<br />

【 原 创 】《Linker Script in Linux》<br />

FC8 下 安 装 mplayer<br />

弱 弱 地 问 一 句 CentOS 很 强 大 吗 ?<br />

读 设 备 文 件 出 现 死 循 环 !<br />

为 什 么 很 多 人 都 喜 欢 用 YUM<br />

程 序 如 何 转 向 执 行 vim?<br />

RHCE 认 证 有 用 吗 ?<br />

发 现 redhat linux 搞 笑 的 事 情<br />

如 何 编 译 新 添 加 的 <strong>net</strong>filter 功 能 模 块<br />

系 统 比 拼 Linux 系 统 究 竟 比 Vista 好 在 哪 里<br />

我 装 不 了 RPM 包 是 什 么 原 因 大 家 进 来 看 看<br />

热 点 新 闻 评 论<br />

从 事 linux 方 面 的 工 作 就 那 么 难 吗 ?<br />

Linux 发 行 标 志 , 你 认 识 多 少 ?<br />

中 科 红 旗 : 力 推 49 元 个 人 版 软 件<br />

一 个 班 的 高 中 学 生 一 起 用 ubuntu linux!( 多 图 )<br />

说 句 良 心 话 windows 值 它 的 价 格 么 ?<br />

怎 么 对 付 不 懂 装 懂 装 逼 的 技 术 总 监 和 面 试 官<br />

Solaris 已 穷 途 末 路 Linux 将 取 而 代 之<br />

企 业 网 管 系 统 运 维 联 合 起 来 封 杀 开 心 网<br />

美 媒 称 中 国 假 冒 芯 片 致 驻 伊 美 军 频 繁 坠 机<br />

独 家 : 李 一 男 再 度 离 职 华 为 跳 槽 百 度 任 CTO<br />

VB100 世 界 权 威 病 毒 测 试 : 卡 巴 斯 基 意 外 落 马<br />

IT 行 业 做 什 么 职 业 是 越 老 越 值 钱 的 ?<br />

国 产 TD 二 期 设 备 集 体 摆 脱 美 国 GPS<br />

微 软 将 验 证 Windows 与 Office 盗 版 将 黑 屏<br />

大 家 来 说 说 mysql 现 在 前 景 及 待 遇 如 何<br />

令 人 感 叹 的 10 个 非 主 流 操 作 系 统<br />

踢 馆 ! 抛 弃 Linux 使 用 Vista 的 40 条 理 由<br />

报 告 称 中 国 要 求 外 国 公 司 提 供 硬 件 源 代 码<br />

如 何 查 看 安 装 的 是 i386 还 是 i686<br />

杨 芙 清 编 著 《 操 作 系 统 教 程 》 第 二 版 系 抄 袭<br />

这 几 道 题 会 做 就 可 直 接 找 LINUX 工 作<br />

大 家 在 Linux 下 用 的 是 什 么 代 码 浏 览 器 ?<br />

有 些 与 linux 内 核 相 关 的 笔 试 题<br />

开 源 时 代 2008 年 10 月 刊 - 117 -<br />

投 稿 邮 箱 :qinli@staff.chinaunix.<strong>net</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!