Linux 安装和 X-Windows
欢迎所有 Linux 新手。如果您是经验丰富的黑客——可以用左手编写设备驱动程序,用右手安装 200 节点网络,同时还能背诵并行端口的引脚排列——那么请跳过本文。新手指南直接面向对 Linux 或 Unix 一无所知,但对其中的喧嚣感到好奇的 PC 专家。由于我自己也是一个完全的 Unix 初学者,希望我幼稚、令人尴尬的错误能够帮助许多读者避免许多痛苦和嘲笑。本系列文章将跟随我尝试达到我认为适合想要学习 Linux 但又不想修改现有设置的 PC 用户的目标。使用 UMSDOS 在 DOS 磁盘上运行 Linux 是显而易见的第一个目标。本文的主题就是它以及运行 X-Windows。
为了记录,我的系统是一台 486DX-66,配备 SVGA、双软驱、罗技鼠标、14,400 波特调制解调器和一个 350 兆硬盘,其中大部分空间都被游戏占据。我已经设法清理出 150 兆空间用于 Linux,各种手册和广告都表明这已足够。MS-DOS 6.2 和 Windows 3.11 都已安装(并经常被我骂)。
尽管 Unix 是最长寿的操作系统之一,但它仍然带有一种神秘感,正是这种神秘感阻碍了它在公众中的普及。Unix 似乎只存在于学术界、工程界和高科技图形领域最黑暗的领域。作为 MS-DOS 用户多年,我决定最终学习 Unix,随之而来的是一些选择:当地学校提供晚间课程,每次几百美元;我可以购买大多数大型 Unix 产品的“个人”版本,仍然只需几百美元;或者我可以获得——这是什么?——一些名为 Linux 的免费 Unix 版本。
作为一个吝啬鬼,我选择了 Linux。我的朋友 David Coons,他是迪士尼幻想工程公司的某种计算机专家,热情地推荐了 Morse Telecommunication 的 Slackware Professional 2.1。他购买了各种版本,并且喜欢这个版本。他愉快地解释了原因,但由于他使用的语言主要由首字母缩略词组成,我只是心照不宣地抿了抿嘴,并在正确的停顿处点了点头。我的标准要简单得多:我认为任何带有“Bob”图片的东西都值得购买。这个版本允许我在不重新分区硬盘驱动器的情况下运行 Linux,这一点让我心动了。UMSDOS 看起来就像是天赐之物。
我打电话给 ACC 书店,订购了 Slackware 套装以及大量的 DrX Linux 书籍。接单员向我保证,Linux——尤其是 Slackware——是学习 Unix 的绝佳方式,而且至少在基本层面上并不难掌握。
新手提示: 当您购买 Linux 时,请查看随附的手册中包含哪些类型的信息。Slackware Professional 附带一本 600 页的书,其中复制了 DrX Linux 中的所有重要信息,并且组织得更好。如果我知道这一点,我就不会订购 DrX Linux,因为未重复的材料包括诸如“内核黑客指南”和“日语语言扩展 HOW-TO”之类的东西。在我对 Linux 有足够的了解以开始破解内核之前,还需要很长时间,到那时,手册将过时。目前,您可能想省下这笔钱。
订购 Linux 后,我出去买了一台 CD-ROM 播放器。关于是购买四倍速(因为我已经有一个原始的 8 位 SoundBlaster)还是购买 Creative Labs Discovery 套件(这将把我的声卡升级到 16 位,但给我一个不太理想的双倍速 CD-ROM),我犹豫了几个月。再次,吝啬鬼胜出,我买了 Discovery 套件。我理性地认为,这笔交易还不错,因为有传言说高密度 CD 将在一两年内开始出现,我宁愿尽可能便宜地过时。此外,Linux 似乎对 Creative Labs 的产品有可靠的支持。在安装多媒体套件时,我切换了我的软盘驱动器,使 3.5 英寸成为我的 A:,5.25 英寸成为 B:。David 强烈建议这样做。
我拿到了 CD 驱动器,拿到了 Linux,拿到了手册,然后开始尖叫。所有手册都建议使用 FIPS 进行重新分区,并且对 UMSDOS 没有任何帮助——只是含糊的提及。甚至 Doom 也列在 Slackware 索引中,但没有关于 UMSDOS 的任何内容。我不想重新分区!我给 David 打了个电话,他向我保证,当我运行 setup 时,选项会很明显,首先要创建引导盘和根磁盘。不要惊慌。好的,谢谢!
通常,我不会介意重新分区。执行此操作的程序 FIPS,一个非破坏性数据的 FDISK,是一个出色且显而易见的(微软,你在听吗?)实用程序,但我担心我可能会 FIPS 分区太多或太少磁盘空间,甚至可能杀死我的 MS-DOS 程序。UMSDOS 是我想要的,一个无承诺的选项。
深吸一口气,念着“Doom”咒语,我开始了。按照安装说明(我讨厌 RTFM),第一步是准备引导盘和根磁盘。由于我有一个 SoundBlaster 系统,我假设 SBPCD 引导映像是显而易见的选项。对于根磁盘,我选择了 UMSDS144,这是用于 1.44 磁盘的神话般的 UMSDOS 系统。
创建了这些磁盘后,我用引导盘启动。它无法识别我的 CD 播放器。嗯... 当然!Discovery 套件使用 Sony CDU-33a 驱动器。我重新制作了引导盘,这次选择了 CDU31a 选项。是的!用这个新磁盘重新启动显示 Linux 识别了我的驱动器。
我忽略了设置引导参数的选项,放入根磁盘,并在第一个障碍处停了下来。我想要在我的硬盘驱动器上创建一个交换文件吗?我有 8 兆内存,手册上说有这么多内存不用担心,所以我只是按了 <Enter>,然后得到了登录提示。一种君临天下的感觉涌上心头,我沾沾自喜地以 root 身份登录并运行了 setup。
一个菜单弹了出来,恐慌再次开始。标签、交换空间——所有这些选择是怎么回事?我终于弄清楚,对于初学者来说,重要的第一步是 (T)arget。这将在您的硬盘驱动器上设置一个 C:\LINUX 子目录,并提示您完成其他必要的步骤。您需要选择一个源;在我的情况下,是一个 CD-ROM 驱动器,具体来说,是 Sony CDU-33a。
接下来,您可以选择要安装哪些磁盘集。我决定安装所有磁盘集,除了 F 系列(常见问题解答和 HOW-TO)。最后,您选择一种安装方法,是将所有内容都放到硬盘驱动器上(“SLAKWARE”——您可以在其中决定要安装哪些文件)还是选择三种 TAG 集,这些 TAG 集预先选择了要安装的文件:SLACKPRO(硬盘驱动器上的所有文件,具有升级功能);SLAKPRO2(某些文件是 CD 的链接,但没有简单的升级功能);或 SLAKPRO3(许多链接,同样没有简单的升级功能)。链接是硬盘驱动器上指向 CD 上实际文件的引用;这节省了硬盘驱动器空间,但牺牲了访问速度。
对于我的第一次安装尝试,我选择了“slakware”选项,以便将所有内容都放到硬盘驱动器上。在安装“X”集的过程中,驱动器空间不足了。重新启动 DOS 并使用 X-Tree(内存不足),我删除了 C:\LINUX 的内容,以便再次尝试。我考虑过是否将我的驱动器升级到完整的千兆字节。抵押贷款到期了,而且正如您已经知道的那样,我是一个吝啬鬼,所以我没有这样做。
我的第二次安装是“slakpro3”,它将最少的文件直接放在硬盘驱动器上。此选项会使以后的升级变得困难,但对于探索性选择来说是不错的。它只使用了 15 兆,生成了大约 3000 个文件,并且没有做太多事情。像 adduser 这样的命令不起作用。我甚至不确定 shell 是否处于活动状态。再次回到 DOS 进行 Linux 删除。
我尝试的第三次安装是将所有文件都放在硬盘驱动器上(“slackpro”),因为我不知道这比我之前的“slakware”安装更大。一个小时后,一万六千个文件和 150 兆空间,我的驱动器再次空间不足。好吧,也许我不需要 200 万种 TeX 字体、一些编程工具或网络东西。再次回到 DOS。我的猜测是,200 兆可以处理这种类型的安装。
新手提示: “A”和“Q”磁盘集都处理内核的安装,无论您想要不带 SCSI 的 IDE、带 SCSI 的 IDE 等等。您可能想要进行两轮安装:首先,您只需处理“A”和“Q”集,以找到您确切想要的内核。我的选择缩小到 CDU31ao(不带 SCSI 支持)或 CDU31a(带 SCSI 支持);我安装了 CDU31a。您的第二轮安装将涵盖所有其他磁盘集。
第四次,再次使用“slackpro”选项,并且仅安装 A、AP、D、Q(用于正确的内核)和 X 数据集,使用了 50 兆空间,创建了大约 5000 个文件,但关于 LOADLIN 的说明不起作用。显然,LOADLIN 在任何时候都不会被复制到硬盘驱动器上。我在 Slackware 磁盘的 KERNELS 子目录中找到了 LOADLIN.ZIP,将其解压缩到 C:\LINUX 中,并修改了给定的 LINUX.BAT 以启动它
rem C:\LINUX.BAT echo off cls echo Put the Slackware CD in the drive! pause rem First, ensure any unwritten disk buffers are flushed: smartdrv /C rem Start the LOADLIN process: c:\linux\loadlin c:\linux\vmlinuz root=/dev/hda rw
成功了!!!成功了!!!成功了!!! 不再需要引导盘和根磁盘!缺少 LOADLIN 可能是“slakpro3”无法正常工作的原因,但我现在不会尝试了,因为这个设置有效。我用“adduser”为自己添加了一个帐户,没有问题,过程非常简单,并通过 Alt-F2 以该帐户登录。同时运行两个活动帐户“太酷了”。
新手提示: 大小写很重要!我几乎要疯了,试图运行一个配置程序。子目录都拼写正确,但有些字母必须大写。我建议安装 Mouseless Commander。(我相信它在 AP 数据集中。它现在被称为 Midnight Commander,因为它现在可以与鼠标一起使用,但 Slackware 在某些地方仍然将其称为 Mouseless Commander。)它是一个很棒的 Norton Commander 克隆,对于这个 X-tree 用户来说,是一种安慰,也是一种查看文件的简单方法。
嗯,花了四次尝试和至少同样多的时间,但 Linux 基础系统已安装在 MS-DOS 分区上,并且似乎运行平稳。安装 Linux 后,我的 DOS 或 Windows 都没有出现问题;它看起来就像另一个子目录,只是文件很多。
现在安装 X-Windows。我打电话给 David 寻求一些线索。“你自己搞定吧。我没有安装 X。” 当他解释他如何用左手编写一个惊人的设备驱动程序,用右手安装一个 200 节点网络时,我礼貌地挂断了电话。
事后看来,我强烈建议您在尝试安装 X 之前,手头准备好关于显示器的信息——特别是带宽、水平同步和垂直刷新率。数据应该在您的显示器手册中。如果没有,Linux 指南建议查看位于 /usr/X11R6/lib/X11/doc 中的名为“modeDB.txt”或“Monitors”的文件。最好有实际的显示器指南。您还应该知道您拥有哪种类型的显卡。如果您有 MS-DOS 6.0 或更高版本,MSD 程序将为您提供该信息。在 Linux 中,一个名为 SuperProbe 的程序也会告诉您。
安装相对容易,但只完成了一半的工作。同样,所有这些都适用于 Slackware Professional。
更改到 /usr/X11R6/lib/ConfigXF 子目录(注意大小写!)并运行 ConfigXF。该程序将首先询问有关您的鼠标的信息(如果您有鼠标)。我有一个罗技鼠标,所以我选择了微软选项。指南建议这样做,并说只有当您有较旧的罗技鼠标时,才应选择罗技选项。在此之后,我同意给定的默认值,并将 /dev/mouse 作为路径。
接下来是显卡。从庞大的列表中,我选择了 Cirrus GD-5426。接下来是显示器列表,我选择了通用 VESA SVGA。在此之后,它会询问您有关虚拟桌面大小和其他事项的问题。由于我没有理解一半的问题,所以我只是接受了默认值。最终,您会进入一个屏幕,您可以在其中保存设置、调整设置、退出和其他选择。对我来说,调整设置的选项根本不起作用,产生各种错误。
有效的方法是:将设置保存到默认选择。编辑 /usr/X11R6/lib/X11/XF86Config,查找名为“Monitor”的部分。您会注意到带宽、水平同步和垂直刷新率都标有“EDIT THIS!!!” 我花了太多次才意识到,当 X 安装程序说您应该编辑 XF86Config 文件时,您真的必须编辑它。现在是关键部分:用您的显示器手册中的信息替换文件中的信息。
新手提示: 花几分钟时间学习使用文本编辑器 vi。这个编辑器不仅无处不在且体积小巧,而且许多其他程序也使用类似的命令。例如,退出 vi 的 :q 也可以让您退出 man 程序。
例如,我为我的 CTX CMS-1561 Multiscan 显示器输入了以下内容
Bandwidth 100 HorizSync 30-60 VertRefresh 50-90
除了这些更改之外,我还添加了 Linux 手册中出现但在 XF86Config 文件中没有出现的行。它们可能不是必需的,但管它呢。在“Keyboard”下,我添加了
AutoRepeat 500 5
在“Screen”部分的“Display”子部分下,我添加了
Depth 8
保存文件。使用 startx(或 xstart)启动 X-Windows,如果幸运的话,它将运行。如果它没有运行,请获取 Linux 手册,完全跳过自动安装,并仔细地自己完成,检查 Config 文件中的信息是否与您的设置匹配。
哇!Linux 可以工作了。X-Windows 也可以工作了。接下来是什么?嗯,我可以安装 XAP 磁盘集,以便在我在 X 中时为我提供程序。Doom 终于可以从隐藏中出来了。或者我可以安装 TeX,看看那些 Klingon 字体是什么样子。或者我可以处理 SLIP,看看我是否可以获得对 Internet 的工作访问。或者我甚至可以重新主张我潜在的极客身份,并用 GNU C/C++ 编写一个“Hello world!”程序。Linux 有太多东西要探索——但这就是乐趣所在。David 和所有其他 Unix 神灵们要小心了——我们正在迎头赶上!
Dean Oisboid (73717.2343@compuserve.com),Garlic Software 的所有者,是一位数据库顾问、Unix 初学者和公开承认的 Doom 瘾君子。