吉隆坡的 Linux
我与 Linux 的渊源始于 1994 年,当时我的一位朋友为我购买了全套 Slackware 软盘。那时,我正在巴基斯坦 Sir Syed 大学建立计算设施。Linux 被设置为校园内的第一台电子邮件服务器,后来被系统管理员赋予了 Web 服务器的角色 (http://www.ssuet.edu.pk/)。此后不久,我在马来西亚国际伊斯兰大学 (IIUM) 担任教职。IIUM 最近搬到了占地 700 英亩的新校区,并拥有现代化的光纤 155Mbps ATM 核心网络,为各个学院的完全交换网段提供服务。升级和组织工程学院计算机实验室的责任交给了我,我担任了计算机协调员。

图 1. 工程学院大楼
我设置了两个由 70 台新计算机组成的集群,全部都是戴尔 PII 机器,由两台双 CPU 服务器提供服务。在一个实验室中,设置了一台 Windows NT 服务器,为学生提供 Windows 应用程序和打印服务。在另一个集群中,我安装并将服务器配置为双启动机器。默认情况下,服务器启动进入 Linux,通过 NIS 提供用户身份验证,并通过 NFS 提供用户主目录。如果 Windows NT PDC(主域控制器)发生故障,则可以将 NIS 服务器启动为备份 PDC NT 服务器。

图 2. 工程计算机实验室
由于戴尔 RAID 控制器不受支持,我们不得不将 RAID 控制器更换为磁带备份单元,以便 Linux 可以识别硬盘。现在,fdisk print 命令生成了清单 1 中所示的输出。
为了设置名为 garden 的 NIS 服务器,我们不得不克服许多小问题。使用 Dejanews (http://www.deja.com/) 的搜索功能,从 Usenet 上发布的讨论中快速获得了解决方案。通过使用 pwconv 命令禁用阴影密码,解决了阴影密码的问题。检查 NIS 是否正常工作的一个方便方法是发出命令
ypserv -d
当 NIS 客户端尝试验证用户帐户时,这会打印所有调试信息。
通过取消注释 Makefile 中的 SMP=3D1 行并重新编译内核,可以轻松启用 SMP。一旦我在 /etc/lilo.conf 文件中添加了 append=3Dmem=3D128M 行并执行了 /sbin/lilo,Linux 就可以识别出 128MB 的 RAM。此行中的任何空格都会导致它被忽略。
我通过 NFS 导出 /home 有两个目的。一是为 NIS 用户提供主目录,另一个原因是让他们查看重要公告。为此,在用户的配置文件中添加了以下行
cat /home/motd
我配置了一台单独的 PII 机器,名为 jasmine,作为应用程序服务器。Jasmine 通过 NFS 提供应用程序,包括 VLSI 布局工具、Netscape、Scilab、GNUplot、Ghostview 等。为了成为 30 台 PII 客户端的高效 NFS 服务器,jasmine 不参与 NIS。第三台 Linux 服务器,一台奔腾,被配置为学院的电子邮件和 Web 服务器 (http://eng.iiu.edu.my/)。
集群中的所有 30 台 PII 客户端都配置为双启动,以减少 Windows 忠实用户的烦恼。由于实验室管理员对学习 Linux 不感兴趣,我不得不给他一本操作手册,介绍如何将使用 Linux 启动的机器转换为 NIS 客户端工作站。以下是 NIS 客户端设置的步骤。
在使用正确的 NIC 驱动程序设置基本 Linux 系统后,从“模型”客户端复制以下文件
/etc/hosts {To avoid setting up DNS service in localized cluster} /etc/profile {To set up paths and issue initial commands for an NIS user} /etc/host.conf {To set up the host lookup order with NIS} /etc/defaultdomain {To set up NIS domain name} /etc/rc.d/rc.inet2 {To start ypbind using /etc/defaultdomain as domain name} /etc/fstab {To import NFS directories into existing mount points}
在 /etc/passwd、/etc/group 和 /etc/shadow 文件中添加包含“+”的行。重新启动并以“test”NIS 用户身份登录以验证功能。
这本操作手册非常有效,因为管理员能够在无需了解设置细节的情况下启动 NIS 客户端。后来,为了用户的方便,添加了启动消息,以便他们了解客户端的双启动属性。所有必要的操作只是在 /etc/lilo.conf 文件中添加几行
#start LILO global section boot=/dev/sda message=/boot/boot.msg prompt timeout=100
boot.msg 文件包含以下文本
Type "linux" or "nt" to boot into operating system of your choice.为了设置 X Window 系统,我转向了 XSuSE (http://www.suse.de/XSuSE/XSuSE_E.html),因为它们拥有针对各种卡的最大驱动程序集。接受大多数问题的默认选择后,我能够通过填写正确的卡类型、监视器 hsync 和 vsync 值以及视频 RAM 大小来快速启动 X。
我没有在每次添加应用程序时都更改全局配置文件中的路径,而是在配置文件中包含了路径 /usr/local/apps/cad/bin。在此目录中,我使用 shell 脚本或符号链接来添加新应用程序。如果应用程序需要从其主目录运行,则将从此路径运行带有应用程序名称的 shell 脚本。例如,应用程序 exchek shell 脚本包含以下行
cd /usr/local/apps/exchek /usr/local/apps/exchek/exchek
另一种方法是使用符号链接。例如,使用以下命令为 Netscape 创建了符号链接
ln -s /usr/local/apps/netscape/netscape netscape
Linux 在为高年级课程 ECE4330 VLSI 设计提供实验室课程方面派上了用场。如果没有真正的实验室,这门课程将无法进行,因为商业 VLSI(超大规模集成)布局工具对我们来说太昂贵了。我在 X 下设置了 MAGIC VLSI 布局编辑器,并用 SPICE(集成电路重点仿真程序)对其进行了补充,用于小型布局仿真和验证。由于没有许可问题,学生可以在多台工作站上同时使用这些工具。
在阅读了 1998 年 1 月 LJ 上关于 PVM(并行虚拟机)的文章后,我在一台 Linux 机器上设置了 PVM Web 课程服务器。我将学生分成几个小组,并为每个小组分配了两台 Linux 机器。他们的目标是将一台机器设置为主服务器,另一台设置为 PVM 环境中的从服务器,然后测试各种程序。尽管学生们未能完全成功运行各种程序,但他们很乐意在完全控制计算机的情况下研究如此重要的概念。
