为了给您更完整的概念, 我们先来看看这一部跑Linux的PC有何不 同, 对於「多工」ⅱ「多使用者」等概念较薄弱的读者, 下面图表或 许可以帮助读者想像如何充分的把一部 PC 做到最大利用, 以及当今 的 PC 硬体上已经多麽强悍, 只要搭配一个恰当的作业系统。 这例是 笔者所筹办的 「UUserv 社区网路」的主机系统, 有关这主机的硬体 规格, CPU 是 Intel 486DX-50, VESA local bus IDE controler 搭 配一个 420MB Seagate 及 540MB WD硬碟, 记忆体有 32MB RAMⅱ 256KB cache, 以及 NE2000 相容网路卡等等。 软体方面, 这机器所 执行的工作包括Terminal server (可以接受大多 8 条电话拨接连线) , 在内部 Ethernet网路提供 NFS (Network File System) 给网路中 其他两部电脑, 另外一条数据专线 24 小时连线 Internet, 是跑 PPP 上 Internet。 在通讯服务上, 这系统执行有完整的TCP/IP网路环境, 以所执行的Server来说, INN news serverⅱ Gopher serverⅱ Mail server (SMTPⅱPOP3ⅱUUCP)ⅱ Name server等等的工作在同一部 PC 之上。
以上这麽多工作同时集中在一部机器其实并不妥当, 这里我只是 想用一个实际例告诉大家, 一部 486 PC 可以做到这麽大的功能。 事 实上, 初期的 UUserv 主机确实是这样跑, 不过後来把 Local 的网路 (比方 Terminal Serviceⅱ UUCPⅱ NFS等等) 与对外 Internet (比 方 Mail serverⅱ Name serverⅱ Gopher serverⅱ INN Netnews serverⅱ 以及 SLIP/PPP 连线本身) 分开在不同的 PC做, 而後者则 是采用一部老旧 386sx-20 PC 配备 16MB记忆体, 跑得也非常满意。这题外话。
$ uptime 11:27am up 5 min, 5 users, load average: 0.11, 0.08, 0.02 $ who ← who指令瞧瞧系统上有多少使用者上机, 共有七人 root tty2 Oct 2 01:08 guest tty3 Oct 2 01:47 root tty1 Oct 2 00:57 joel ttyS4 Oct 2 01:24 (:dialup_modem) guest ttyS5 Oct 2 01:47 (:dialup_modem) yuan ttyp0 Oct 2 01:03 (linux2.cfic2.com) yuan ttyp1 Oct 2 01:18 (linux2.cfic2.com)
$ ps ← 我想知道系统目前正执行着多少工作 PID TTY STAT TIME COMMAND 1 con S 2:04 init auto 6 con S 0:00 bdflush (daemon) 7 con S 0:08 update (bdflush) 21 con S 0:07 /usr/sbin/crond -l10 40 con S 6:43 /usr/sbin/syslogd 42 con S 0:00 /usr/sbin/klogd -d -f /var/adm/kernel.log 44 con S 0:00 /usr/sbin/rpc.portmap 46 con S 0:00 /usr/sbin/inetd 48 con S 13:03 /usr/sbin/named 52 con S 0:00 /usr/sbin/lpd 54 con S 0:00 /usr/sbin/rpc.ugidd -d 56 con S 0:00 /usr/sbin/rpc.mountd 60 con S 0:00 /usr/sbin/rpc.nfsd 62 con S 0:00 /usr/sbin/rpc.pcnfsd /var/spool/lpd 101 p 1 S 0:03 -tcsh 102 p 2 S 0:03 -tcsh 103 p 3 S 0:03 -tcsh 764 con S 0:02 -waiting for connection @ 70 1894 con S 0:00 /usr/bin/runq 1900 con S 0:00 /usr/bin/runq 3458 p 4 S 0:04 -tcsh 3494 con S 0:08 /usr/sbin/in.telnetd+issue : 3511 p 2 T 0:00 less README.linux 4757 p 2 S 0:02 tail -f log 6217 p 4 T 0:00 vi README 6447 con S 0:06 /usr/sbin/in.telnetd+issue 6787 p 4 T 0:00 vi README 8151 con S 0:00 /etc/modem ttyS5 8350 con S 0:00 /etc/modem ttyS4 8654 pS0 S 0:00 pppd connect chat -v "" ATD CONNECT /dev/cua0 19200 8657 p 1 S 0:00 tail -f /usr/adm/pppdlog 8759 p 4 S 0:02 make -j4 zImage 8768 p 4 S 0:00 gcc -D__KERNEL__ -I/usr/src/linux/include -Wall 8770 p 4 S 0:00 /bin/sh -c set -e; for i in kernel drivers mm fs net ipc 8772 p 4 S 0:00 gcc -Wall -Wstrict-prototypes -O2 8773 p 4 S 0:01 /usr/lib/gcc-lib/i486-linux/2.5.8/cpp -lang-c 8774 p 4 R 0:01 /usr/lib/gcc-lib/i486-linux/2.5.8/cc1 -quiet 8775 p 4 S 0:00 as -o init/main.o 8776 p 4 S 0:02 make -C kernel 8779 p 4 R 0:02 /usr/lib/gcc-lib/i486-linux/2.5.8/cc1 -quiet-dumpbase bu 8780 p 4 S 0:00 as -o /tmp/cca087721.o 8801 p 4 R 0:00 as86 -0 -a -o boot/bootsect.o boot/bootsect.s 8803 p 4 R 0:00 make -C kernel 8806 p 4 R 0:00 gcc -D__KERNEL__ -I/usr/src/linux/include -Wall 8807 p 4 R 0:00 gcc -D__KERNEL__ -I/usr/src/linux/include -Wall 1129 con S 0:40 /usr/lib/news/etc/innd -p4 -i0 3496 pp0 S 0:01 -tcsh 5618 pp0 T 0:39 tin 6449 pp1 S 0:02 -tcsh 8798 pp1 R 0:00 ps ax 8799 pp1 S 0:00 less 7396 con S 0:01 sh /usr/etc/bbs/service-2 7648 con S 0:00 sh /usr/etc/bbs/service-3 7651 con S 0:00 sh /usr/etc/bbs/service-news 7654 con R 11:24 /usr/local/bin/ctin 7226 con S 0:00 sh /usr/etc/bbs/service-2 7229 con S 0:00 sh /usr/etc/bbs/service-3 7232 con S 0:00 sh /usr/etc/bbs/service-news 7235 con R 20:26 /usr/local/bin/ctin 7968 pS7 S 0:01 sh /usr/etc/bbs/bbs-login 8281 pS7 S 0:00 sh /usr/etc/bbs/service-2 8287 pS7 S 0:00 sh /usr/etc/bbs/service-3 8290 pS7 S 0:00 sh /usr/etc/bbs/service-news 8293 pS7 S 0:14 /usr/local/bin/ctin 7647 pS6 S 0:01 sh /usr/etc/bbs/bbs-login 8617 pS6 S 0:00 sh /usr/etc/bbs/service-2 8645 pS6 S 0:00 less -fmer /usr/etc/bbs/announce-charge