附录C 本发行版的内容 -- MIT Core Distribution
本文件是从 MIT 发行版内的原始资料再制作而来的.
本发行版含有大约 100 Mbytes 的原始码与文件. 因为没有人会对它的全
部内容都感兴趣, 所以本发行版被分为大致相等的三个部分: Core 软体(核心
软体)、不同使用者贡献的工具集和使用者贡献的其他软体.
C.1 核心版
这核心版, 包含大约 30 Mbytes 由X协会成员所支援的软体, 它是由下
面所列的目录所架构起来的. 假如你发现该版中某个部分有错误 (bug), 请填
妥位於doc/bugs/bug-report 的表格, 并邮递至 xbugs@expo.lcs.mit.edu.
./ 包含重要通知、一般的X指南页与所有构成该发行版子目录的最上层目录.
X11/ 所有公用的引头档 (header file) 不是储存於此就是在建立系统的各
阶段时被连结. 本目录与其下的位元图像 (bitmaps) 在安装阶段被拷
贝至 incdir架构参考所指定的目录 (预设为 /usr/include/x11). 注
意最後的目录名称应该是 X11, 否则所有X程式在编译时将会出错.
X11/Bitmaps/ 本目录内包含一些以 Bitmaps 格式储存 (可用 Xlib 的常式
XReadBitmapFile, XmuReadBitmapDataFromFile 与 XWrite BitmapFile
处理者) 的一些单平面影像. 在 C 程式中它们通常被以 #include 引入
且使用 xsetroot 公用程式被当作背景磁砖 (background tiles) ,而且
X工具集 (toolkit) 允许使用者指定目录内的档名作为游标与表徵图.
详细资讯请参考 bitmap 的指南页与util/bm-convert/bm-convert.doc.
clients/ 本目录是使用者程式来源树 (source tree) 的最上层. 其他一些
程式则存於 domos/ 与 examples/ 树,原因为它们只是为了示□目的而
已. 其他一些非常有用的使用者贡献程式可在 coutrib/clients/ 下找
到.
clients/bitmap/ 本目录包含建立与修改单平面位元映成影像 (就像储存於
X11/bitmaps/ 的一样) 的编辑器. 可用於定义双色磁砖 (为了用stipple
填满区域) 与遮罩 (为剪除与指定游标影像). 所有resource皆可以
用命令列与预设方式指定. 两个新的程式bmtoa 与 atoma 已经被加入,
它们用於转换位元影像档案成为简单的字串及简单字串转换成映像档案.
clients/uwm/ 本目录包含一个较老的X视窗管理器. 一些错误已更正且增加
了一些新功能.
clients/x10tox11/ 本目录包含一个重写过的 X10 至 X11 的通讯协定转译
器. 它充当X10 Server, 转换 X10 的 request 为 X11 的 request 以
及 X11 的 event 为 X10 event. X10toX11 程式允许 X10 程式不经修
改即可在 X11 server 上执行, 使得从 X10 转换成 X11 非常容易, 新
版本实质上会比旧版本有更快更精确的结果.
clients/xbiff/ 本目录包含一个简单的小程式, 它会在你有新邮件送达时,
在邮箱上显示一个竖起的旗帜, 它使用 athena widget set 里的 Mailbox
(邮箱) Widget.
clients/xcale/ 本目录内包含一个可以模拟 TI-30、HP-10 与计算尺的桌上
型计算器程式. 这个程式需要被重新改写.
clients/xcliphoard/ 本目录内包含两个程式用以处理段落. xclipboard 搜
集来自其他 client (见 xterm 与 Athena Text widget) 的文字将它们
送至 CLIP-BOARD, xcutsel 提供介於只能处理剪一缓冲区的旧 client
与使用段落的新 client 之间的桥梁.
clients/xclock/ 本目录内含有一个可显示时钟的简单小程式. 它可以显示
指针或数字型时间, 它使用 Athena Widget Set 里的 Clock Widget.
clients/xdm/ 本目录内包含新的显示管理器 (Display Mamager). 它企图取
代 xterm-L与大多数使用 xinit 的场合. 位置管理者应该研读文件与样
本架构以裁剪 xdm 配合它们的特殊环境. 一些样本架构提供於 config
子目录下面.
clients/xdpyinfo/ 本目录包含一个可以列印有关显示器的视觉影像与
萤幕的资讯的公用程式.
clients/xedit/ 本目录包含一个建立於 Athena Text widget 与 X Toolkit
之上的文字编辑器.
clients/xev/ 本目录包含一个可以检查 event 内容以及它们如何产生的程式.
clients/xfd/ 本目录包含一个可显示指定字型的字元之公用程式.
clients/xhost/ 本目录包含一个以主机为基础 (host-basis) 控制存取主机
显示器的公用程式.
clients/xinit/ 本目录包含一个可以在无法从 /etc/init 启动一个X server
与初始化一个 client 的系统上, 启动X server 与初始化 client (通
常是一个终端机模拟器) 的公用程式.
clients/xkill/ 本目录包含一个公用程式可除去不要的视窗.
clients/xload/ 本目录包含一个可监视机器平均负载状况的程式. 它可以显
示最近一段期间平均负载的柱状图, 通常用於监视网路上的机器. 它使
用 Athena widget set 里的 Load widget, 假如你将X转移至一个新
的作业系统时, 它须要作些修改.
clients/xlogo/ 本目录包含一个使用 Athena widget set 里的 Logo widget
显示 X视窗系统语标 (Logo) 的程式.
clients/xlsfonts/ 本目录包含一个可以列印目前 server 可供使用的字型
之公用程式.假如你要求从具有许多压缩字型的 server 作较长的列印,
你的显示可能会暂停一段较长的时间.
clients/xlswins/ 本目录包含一个可列印出显示器上的视窗的公用程式.
在找出一个因某种原因而忽然在萤幕上消失之视窗时非常有用.
clients/xmag/ 本目录包含一个当你在侦错图形时, 可以放大部分显示的公
用程式. 如果萤幕上同时有超过一种型式的视像, 可能无法达成目的.
clients/xman/ 本目录包含一个可以显示指南页的公用程式. 加上少量的修
改可以模拟本地作业系统的 man 程式.
clients/xmh/ 本目录包含一个与 MH 邮件处理系统的视像介面. 它扩展X
Toolkit 与Athena widget set 的使用.
clients/xmodmap/ 本目录包含一个可以显示更改的键盘、修正器或指标图
. 它会读取一个包含命令的 script 档且通常在你登录或第一次启动X
时执行.
clients/xpr/ 本目录包含一个可列印由 xwd 所获得的萤幕倾印影像的公用
程式.
clients/xprop/ 本目录包含一个可检查一个特定视窗特性的公用程式.
clients/xpseudoroot/ 本目录包含一个在 Inter-Client 通讯惯例手册
(ICCCM) 的前一版本所描述的原型程式. 它只供实验用且承诺在最终的
ICCCM 规格被发展时予以修正.
clients/xrdb/ 本目录包含一个可载入使用者指定的预设resource定义给
server 的公用程式, 它通常是在 login 或第一次启动 X 时被执行.
clients/xrefresh/ 本目录包含一个可刷新全部萤幕的一个简便公用程式.
clients/xset/ 本目录包含一个可设定按键声音、指标加速度等个人喜好特
性之公用程式.它现在提供从字型路径增加与删除进入点的功能.
clients/xsetroot/ 本目录包含一个可设定根视窗背景的公用程式.
clients/xterm/ 本目录包含一个 VT102 与 Tektronix 4014 终端机模拟器
程式. 先前版本的许许多多错误都已修正. VT102 模式现在可以使用X
Toolkit 转换管理器(使任意重系结按键成为可能)、选择区 (selection)
(见 xclipboard 与 xcutsel)与正确地设定它的处理群 (process group).
clients/xwd/ 本目录包含一个可以倾印视窗影像的公用程式. 它通常是将
一个视窗快拍以便列印或稍後使用 xwud 程式显示, 对某些使用 XY 格
式影像的 server 仍有问题, 且执行时大都相当慢.
clients/xwininfo/ 本目录包含一个可以检查各种不同的视窗属性 (像大小
、位置、视窗管理器资讯等) 的公用程式. 它常与 xprop 合用, 用以
检查视窗的阶层架构.
clients/xwud/ 本目录包含一个可以显示先前用 xwd 建立的影像之公用程式.
demos/ 本目录包含许多看来非常有趣, 但不常用的程式.
demos/ico/ 本目录包含一个可以让一个多边型物体绕著萤幕滚动的精巧程式.
demos/maze/ 本目录包含一个相当吸引人的解迷宫示□程式.
demos/muncher, demos/plaid/ 目录包含一个可以画可爱图画的程式.
demos/puzzle/ 本目录包含一个为 X11 设计的 "重排磁砖" 的益智游戏. 假
如你有彩色显示器, 试著在它建立时的目录执行 puzzle -picture mandrill.cm.
demos/xeyes/ 本目录包含一个在 SIGGRAPH'88 看到的一个 NEWs demo 所
启发出的吸引人的程式.
doc/ 本目录包含描述标准版本的所有文件. 不同 client 的指南页可以在
个别的原始程式目录里找到.
doc/HelloWorld/ 本目录包含 DavidRosenthal's USENIX'88 Hello, World
关於使用toolkit 的文章.
doc/Protocol/ 本目录包含X通讯协定的正式公认规格, 里面说明了甚麽是
与甚麽不是X的通讯协定部分以及那一部分是X标准的最後根据.
doc/Server/ 本目录包含将XServer 植入新工作台的许多指南.
doc/Xaw/ 本目录包含对 Athena Widget Set 的一个指南.
doc/Xlib/ 本目录包含 Xlib 程式规划指南与指南页的原始资料. 其中有一
个未测试过的命令列程序叫做 doc/Xlib/Xman/ expand.names, 它会将
指南页更改名称使其与它所描述的常式 (routines) 名称匹配.
doc/Xt/ 本目录包含X Toolkit Intrinsics 的规格说明. Inrinsics 现在
已经是X标准的一部分; 任何供应 Xlib 的供应商也大都会供应 Xt.
doc/bdf/ 本目录包含一个描述字型的位元映像分布格式 (Bitmap
Distribution Format). BDF 已是 X 标准的一部分; 所有的 server 供
应商也大都会提供一个程式, 可以转换该格式至任何他们所喜欢的内部
格式.
doc/bugs/ 本目录包含一个可提供错误报告的模板(见 doc/bugs/bug-report).
当使用xbug@expo.lcs.mit.edu 报告错误时时请使用这个格式.
doc/extensions/ 本目录包含 core 通讯协定基础程式库可能扩充的文件.
它目前包含已提出的 PEX 3D 图形扩充与一个输入综合 (INPUT
SYNTHESIS) 扩充.
doc/fontnames/ 本目录包含一个经过X协会评估的字型命名草案的规格.
这是对 AdobeSystem Inc.、Digital Equipment Corporation 与
Bitstream Inc. 所赠送的字型命名时所使用的格式.
doc/releasnotes/ 本目录内包含目前你看的这份文件的原始资料.
doc/tutorials/ 本目录内包含评论如何使用X视窗系统的特别麻烦的部分.
且欢迎使用者多提供.
examples/ 本目录内包含不属於任何其他地方的不同例子.
examples/CLX 本目录内包含如何使用 CLX (Common Lisp X) 介面的一些样
本例子.
examples/Xaw 本目录内包含可以测出不同 Athena widget 的一些小程式.
extensions/ 本目录树内包含一些 SERVER 扩充样本的原始码: 一个绘出
request(bezier) 的云形规、一个在X里使用生动视像的程式集 (
plxvideo)、为了作输入记录与综合的一个扩充的开始 (xtest) 与一
个梯形绘出要求 (zoid).
extensions/include/ 本目录包含扩充样本的标头档.
extensions/lib/ 本目录包含 client 程式库常式用以和扩充程式集通讯.
extensions/server/ 本目录包含用以撰写扩充功能 server 的常式.
extensions/test/ 本目录包含一些用以测试扩充功能的□例.
fonts/ 本目录树内包含可以给不同的公用程式产生与处理字型档的原始资料
. 使用者贡献的版本有一个不同的转换器用以转换不同格式的字型成为
BDF 格式.
fonts/bdf/ 本目录内包含经过仔细选择的字型之原始资料. 从这个发行版开
始, 给定字型名称的长度与具有别名与通用字型名称的能力, 对组织字
型到目录是相当重要的. 就像 BDF 格式现在已是X标准的部分, 所有
server 的供应商被期待提供可以转换 BDF 档成他们的 server 可以接
受的适当包装字型格式的编译器. 预设状况是 sample server 将具有
在这里介绍的所有三个字型目录. 假如主显示器的解析度小於每英□
88 点, 75 dpi 字型将较 100 dpi 字型在路径上优先. 否则 100 dpi
字型出现在字型路径的最前面.
fonts/dbf/misc/ 本目录包含前一发行版本的游标与固定宽度字型.
fonts/bdf/75bpi/ 本目录内包含由 Adobe System Inc. 与 DEC 以及
Bitstream, inc.为每英□ 75 点的监视器所设计提供的字型. 这些字
型遵照新的字型命名惯例; 多数使用者将想要去学习如何适当地使用通
用字元 (wildcard).
fonts/bdf/100bpi/ 本目录内包含为每英□ 100 点的监视器所设计的 75
dpi 字型版本.某些家族在这种解析度下无法及时备妥.
fonts/bdftosnf/ 本目录内包含用以编译 BDF 格式的字型成为由 sample
server 所使用的已被压缩的 Server Natural Format 的格式.
fonts/mkfontdir/ 本目录内包含在建立字型资料库时 server 用以映成字
型名称至对应档案的新公用程式. 无论何时字型被增加或移出目录, 这
个程式必须在该目录内执行以便重建资料库.
lib/ 本目录包含标准版本内所有主要的程式库.
lib/CLX/ 本目录包含 CLX common Lisp X程式集. 这是一个本国的 Common
Lisp 与X通讯协定的介面 (也就是说,它不使用 Xlib), 它将会被X
协会审核, 因为考虑它将纳入X标准中.
lib/X/ 本目录内包含 Xlib C 语言程式的程式库. 这个程式集所提供的介
面是X标准的一部分 (亦即任何供应商提供任何 C 介面为了叫用它的
产品X也必须提供 Xlib).供应商可以自由的去改变它的内部, 但介面
必须保持相同. 自从上一个发行版发行以来一些新的常式已被加入以提
供存取不透明的资料结构元素.
lib/X/sysV/ 本目录内包含一个使 Xlib 可工作於 System V-based 机
器的常式.
lib/X/mips/ 本目录内包含一个使 Xlib 可工作於由 Mips Computer
System 制造的工作台的常式.
lib/Xaw/ 本目录内包含 Athena widget set. 它是一个逐渐搜集使用者介
面实体的开始,建於 X Toolkit Intrinsics 的顶端. Widget 是用於建
立高阶应用 (higher level), 且理想地应该尽可能地提供较多的机构
与较少的政策. (使用者介面工具集、使用者介面管理系统与从应用至
撰写). 一个由 HP 发展的较完整集合可以在使用者贡献版本中找到,
(不幸的, 它还无法植入 R3 标准的 X Toolkit Intrinsics).
lib/Xmu/ 本目录内包含一个搜集有支援 MIT 应用的杂项常式. 它不是X
标准的一部分; 供应商可以不提供这个程式库. Xmu 使用外面介面连
结所有程式库且可被植入不同的系统. 它目前被部分 Athena widget
set 与不同的 client 所使用. lib/Xt/ 本目录内包含一个 X
Toolkit Intrinsics 撰写样品、一个resource、事件与物件的管理器
, 此管理器机制用以建立使用者介面物件, 称为 widgets. Intrinsics
已被发展成为X标准的一部分. 任何供应 Xlib 的供应商也被期望能提
供 Xt. lib/oldX/ 本目录内包含 X11 重新改写的 X10 Xdraw 与
Assoc Table.
rgb/ 本目录包含一个 RGB 彩色资料库样品与一个编译它的程式. 一个好的
资料库是非常有需要的, 但是还没一个有人志愿去做. 灰度阶与一些新
色彩已被加入.
server/ 本目录包含一个 Core 通讯协定的 sample Server. 它应该与 X
Protocol Specification 相当匹配, 但规格是最後的根据. 在试图做
任何改变之前请读取在dos/Server 目录内的文件与任何在 Server/ddx
目录内的 README 档案, 并认真地研究它的码.
server/ddx/ 本目录包含一些不同工作台的设备相关程式库. 在建立或安装
任何 Server之前请研究每个 README 档案.
server/ddx/apollo/ 本目录包含一些建立一个 server 的完整原始程式,
它们须在单色与彩色 Apollo 显示器上执行, README 档内建立有这种
Server 的提示与必要条件.
server/ddx/cfb/ 本目录包含一个非现场获取色彩Ports的色彩架构缓冲器
(color frame buffer)函数馆之□例。在 server执行之後,它被用来
在所有可用之硬体支援选择最佳之使用。
server/ddx/dec/ 本目录包含在 VAXstation II、2000 及 300 系列的单色
(qvss) 与彩色 (qdss) 显示器上建立 server 的完整原始码. 它也包
含控制与解译 LK201键盘的常式.
server/ddx/hp/ 本目录包含一个建立可执行於 HP 9000/300 系列,具有
Topcat 显示器的 server 之完整原始码.
server/ddx/ibm/ 本目录包含一个建立可执行於 IBM AOS (不是 AIX) 下的
APA16 与Magaple 显示器的 server 之完整原始码.
server/ddx/macII/ 本目录包含一个建立可执行於 A/UX 下的 Apple
Macintosh II 的Server 之原始码.
server/ddx/mfb/ 本目录包含一个单色架构缓冲显示器的可携式驱动器. 它
的主要目的是为了没有特殊图形硬体的工作台作为一个初始植入基础.
假如硬体可以支援,它也可以用在任何可能的地方.
server/ddx/mi/ 本目录包含与机器无关的不同图形操作的程式. 在将 server
植入新工作台与处理在记忆□里的 (in-memory) 影片影像 (pixmap) 时
通常与 mfb 以及 cfb程式库合用.
server/ddx/ndx/ 本目录包含建立一个不具有输入或输出装置的 server 的
原始码. 它使用一般性的单色与彩色框架缓冲码, 使得它对於测试 server
与机器无关的部分很有用.
server/ddx/plx/ 本目录包含在 Sun 或 VAX 的 parallax 视讯图形控制器
上建立一个server 的原始程式. 它也使用到在 extensions/server/
目录里的 Parallax VideoExtension.
server/ddx/snf/ 本目录包含处理 SNF 字型的常式. 大多数的 server 使
用不方便的SNF, 但它们并没有需要如此作.
server/ddx/sun/ 本目录包含一个建立可执行於 Sun bw2 与 cg 显示器的
server 的完整原始程式. 它使用 cfb 程式库取代一些指定设备的常式
, 也因此在支援分散处理的某些时候较其他彩色 server 慢. 在建立与
安装 Sun server 之前请阅读目录里的README 档.
server/dix/ 本目录包含 sample X server 与设备无关的部分. 它强烈地
建议你不要改变任何码, 就好像阻碍你更新至新版本一样. 假如你发现
问题或建议作一个改变使植入一个新工作台更容易, 请依照附录E所描
述的方式发出一个错误报告.
server/include/ 本目录包含整个 server 所需用到的前置档.
server/os/ 本目录包含 server 与不同作业系统相关的部分.
server/os/4.2bsd/ 本目录包含可以使 sample server 执行於支援 4.2bsd
插座介面的作业系统常式.
server/os/bsdemul 本目录包含可模拟一般使用的 BSD 的常式. 它是 System
V 基础的server 典型的用法.
util/ 本目录包含本发行版建立与建构的不同程式与 script. 当你想将X
带上新工作台时, 应该最先将本部分的程式植入.
util/bm-convert/ 本目录包含一个可以将 X10 格式的位元影像档转换成
X11 格式的过滤器.
util/checkfn/ 本目录包含一个可以检查不合法档案名称的公用程式. 它通
常在准备发布之前使用.
util/compress/ 本目录包含 BSD 压缩程式的原始码.
util/cpp/ 本目录包含一个由 Martin Minow's DECUS cpp 所发展的公开领
域的 C 前置处理器的原始程式. 它提供那些 cpp 无法处理复杂的
server 或 X Toolkit的系统. A/UX 1.0 的使用者在尝试建立本发行版
之前必须建立与安装它 (参考 ser-ver/ddx/macII/R3setup.sh).
util/imake/ 本目录内包含建立系统时大多数重要的公用程式. imake 程式
用於从机器无关的叙述称作 Imakefile 的档案产生适当的机器相关
Makefile 档. 它使用 C前置处理器所以记号名称与巨集函式也可以被
定义. 它有它自己的手工做的Makefile, 且有一个可决定初始编译旗标
的特殊程式. 假如你将本发行版植入新机器, 你可能需要去编辑
util/imake/ccflags.c 以加入当你的机器在编译 imake 时所需要的任
何编译旗标. Imake 会被自动地建立, 就好像 make World 的一部分.
util/imake.includes/ 本目录包含用於产生不同 Makefile 的架构档.
README 档里有哪些参数能被设定与在那里设定的描述. server-specific
值在适当的 macros 档内给定, 与预设值不同的 site-wide 值在 site.def
档给定. Imake.tmpl 不应该被更改. 假如改变任何这些参数, 你将需
要完全重新建立 (rebuild) 使其能发生作用.假如你正想将 X 植入新
机器, 必须非常小心地研读本目录的档案. util/makedepend/ 本目
录包含一个可以自动产生 Makefile 的关联性的程式. 它作用於程式建
立过程, 在有任何原始程式改变的时候会正确地将应该重新编译的档案
重新编译. 假如架构参数 CppSourcesPresent 设为 Yes, makedepend
会有一份 C 前置处理器的拷贝, 以便加快速度. 这不是必要的且本发
行版也未完成该功能. makedepend 被自动地建立, 作为 "make World"
阶段的一部分.
util/patch/ 本目录包含 Larry Wall's patch 程式, 它是一个要将修补差
异转换成原始码时非常有用的程式. 本程式在本发行版不会自动建立;
它提供无法存取 comp.sources.unix 压缩档的人一个简易与方便性.
util/scripts/ 本目录包含不同安装软□与产生连结树等工作的有用说明。
util/soelim/ 本目录包含某些系统需要的一个 soelim 程式版本.