易道广大
初级用户
积分 128
发帖 7
注册 2004-4-16
状态 离线
|
『楼 主』:
从微软源代码分析NT就是DOS(二)
您可知道, 从硬体的角度来看, 您的PC在运算速度上, 已经超越
了大部分的大型电脑了(这样比较其实是不对的, 以笔者对这两者的了
解, PC 与大型电脑的差异实在太大了, 这里用 CPU 速度一项来做比
较是不恰当的), 但从软体的角度来看, 您的PC却仍是一个阳春ⅱ简陋
且不安全的系统。上面这句话是真的, 因为您使用DOS。
DOS是有史以来, 最成功商业化的作业系统之一, DOS是少数真正
可以号称为开放系统的作业系统。从软体上来看, 您不大需要害怕不
同厂商所供应的DOS, 会使得原来的软体不再执行。从硬体的角度来看
,您几乎可以随便购买一些周边设备来搭配这一台跑DOS的PC, 只要您
跑DOS, 几乎不会有软硬体匹配的问题, 您有非常好的保障。
可惜上面这些优点都无法掩盖一个事实, DOS是一个极其阳春的作
业系统, DOS是一套16位元ⅱ单工单使用者的作业系统。单工表示在同
一个时间里, DOS只能一次执行一项工作, 於是使用者常常被迫用很多
时间在等待。 多使用者表示系统一次可以有多人使用, 您跑DOS的PC,
一次只能被一个人使用, 也就是一个人(或者一个软体) 就占用个整个
系统。由这个角度, 我们回头看我前面的话〃PC已经超越了几十年前的
大型系统〃, 不令人摇头吗? PC是超越了, 可是PC+DOS的组合却仍极
端落後。
上面这一段话对大部分使用者来说, 其实是没有道理的, 因为这
些使用者已经能够满足DOS亲切好用的风格, DOS刚好笨的恰恰好, 非
常容易驾驭。
请原谅笔者如此正负面交互着讲, 我只是想让您更清楚的知道,您
的PC也可以强悍到与工作站电脑脑互别苗头, 假如您将之搭配一个强悍的作业系统的话。 您的PC也可以简单好用, 假如您搭配一个笨得恰
到好处的作业系统的话, 比方像DOS。这之间的差别, 就是作业系统的
选择。
有了这些心理建设, 您才有理由入Linux/Unix的门来。 Linux可
以充份发挥您 32 位元 PC 的高速运算能力, Linux/Unix可以免除您
对当机的恐惧, Linux/Unix各式各样的发展工具可以让您欣喜若狂,
Linux/Unix可以轻易的让您成为网路通讯的天生赢家, 但Linux/Unix
同样会带给您在系统管理以及使用上的烦恼, 因为伴随强大系统功能
而来的, 也正是复杂ⅱ且使用难度高的系统。
为了给您更完整的概念, 我们先来看看这一部跑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
上面这个表示范着, 一部 PC 在某一个时刻的运转情况, 这化许可以帮助读者了解到现代 PC 的强悍。
[此贴子已经被作者于2004-4-16 21:20:07编辑过]
|
|