ZZ我的Linux历程 (部分内容涉及商业机密,有删节)
时间:2007-04-04 来源:yjmwolf
我的Linux历程 (部分内容涉及商业机密,有删节)
系统研发部 严挺
终于又有时间来写一篇关于Linux的长文章了,很难说清楚现在的心情,回首Li
nux在国内发展的历程,回首自己学习这个自由操作系统走过的弯路,真是有种苦尽甘来
的感觉。可以说,Linux是出色的网络操作系统,它的一部在我母校-中国科大的发展
史,也可以算是Internet走向高校的历史,它在普及网络在中国的历史中,起着不可磨
灭的作用。如果没有网络在高校的发展,很难想象现在大学毕业生的思维模式的死板,
有很多知识直接从网络中获得,而Linux就是让这种自由的思想在计算机世界中发挥的最
出色的载体,它的发展,折射出Internet网络操作系统进入中国的历史。从没有人知道
到成为被众人追逐的对象,从一个学院操作系统到现在正在走向企业界。
前几年,我向报社投关于Linux的文章,曾经被打上“无法被专家理解”而被退
回来,我想现在不会再有了吧,这本身就是一种发展。
初识Linux和Internet
93年末,94年初,中国科大通过全国科学院系统的“百所大联网”计划以一根X
.25线路联上了Internet,当时,全校能上网的没有几个人,电子邮件、telnet、ftp的
概念对我来说,简直是一个很神奇的事情;当我第一次用ftp联上ftp.cdrom.com的时
候,简直一下子呆在屏幕前了,我从来没有看到过如此多的软件可以下载,这种感觉可
以说是一个从来没有见过城市的人突然站在上海的南京路一样。
就在这个时候,我老板以前的一个在加拿大多伦多大学的研究生给学
校网络中心发了一个email,这个email中指出现在有一个非常有前途的Intel平台上的
UNIX操作系统可以作为计算机系学生的实验系统。这个操作系统就是Linux,当时我们拿
到的版本是kernel0.99,slackware版本,一共35张1.44软盘。现在用redhat或者
S.u.S.e的网友们也许安装系统是很方便的,但是当时对UNIX系统几乎一窍不通的人来
说,安装slackware是非常痛苦的。UNIX有很多基本的概念,都不清楚,什么软件包干什
么的都不知道,连Swap区干什么都不知道。安装完系统后,登录系统之后,会使用的命
令好象只有几条。计算机图书市场上几乎没有UNIX的书籍,最多的也只有几本XENIX的书
籍,而Slackware Linux属于BSD系统,现在有很多翻译过的HOWTO可以学习,而当时什么
也没有。
不过有一个感觉,它是真正的32bit的多任务、多用户操作系统,比Windows 3.
1强得多,但是没有人去注意过这个操作系统真正会投入使用,因为当时网络并没有大规
模使用,流行的网络操作系统是Novell公司的netware。
网络操作系统的主力军
全校的大规模联网终于开始,开始有人发电子邮件了,有人到国外的archie服
务器去查询东西了。不过,因为科大当时特别穷,整个校园网的建设只有500万人民币,
是没有钱和有些学校那样购买超级服务器作全校的公共服务器的。结果,用sendmail的
转发功能建立全校的分布式的电子邮件系统成了关键,但是当时Sendmail 7.x是没有转
发功能的,网络中心改写了Sendmail的源码,终于形成了一个分布式的mail转发系统。
第一个联入Internet的单位是生物系,生物系的主电子邮件系统就是建立在Linux系统上
的,kernel版本是1.0.8,机器是一台兼容的486/66,8M内存,运行得非常好。以后各系
的主mail服务器都套用生物系的模式,采取Linux系统作为电子邮件服务器。
不过,真正使Linux走到普通本科生面前的还是BBS开了之后。当时cernet上面
只有水木清华一个BBS,跑的是FireBird 1.0系统,服务器是一台Sparc 20;而我们当时
整个学校都找不出一台比Sparc 10好的UNIX服务器。结果,最后,我们在一台486上面安
装了非常节约资源的PowerBBS系统,服务器的系统选用的是Linux 1.2.13,非常不好意
思的是,这台BBS的机器同时还是校园网的网关。有了BBS,有很多同学上网问计算机方
面的问题,Linux由于在科大被广泛用做mail服务器,无疑成了问题的热点。
由于Linux支持网络安装,一台台linux机器被安装起来,怎么和原有系统共存
的问题当时是最热门的问题;由于它可以方便地建立ftp server、mail server和WWW
server,从硬件上解决了科大少UNIX服务器的问题,一下子,成为发展最热门的网络操
作系统。我的第一台Linux系统是在生物系的实验室里安装的,一台486/66,8M内存,
Slackware 1.1.54,我相信绝大多数人上网用的浏览器是在win95平台下的,而我当时用
的却是Linux下的Mosaic,而且是编译的源码,后来才有支持java的netscape2.0。
在这里,我要感谢科大宽松的上机环境,还有蜂窝状的实验室体系,为Linux的
发展奠定了基础。一个学校对学生控制上网的话,学生的实际能力不会很强。
MUD和Linux
MUD对每一个上网的网友来说,都不是陌生的名字,在科大,就是因为MUD和BBS
把一个又一个学生拉到网络的世界中。也许是合肥实在是一个找不到玩的地方吧,科大
的学生一上网就特别凶,玩MUD也是如此,最后学校不得不禁止公开打MUD。
MUD既然被禁止玩,而Linux的确是MUD最好的载体,任何一台机器,内存大一点
的,都可以快速地搭一个MUD系统,供全校学生来玩。有很多现在可以称得上是高手的哥
们,当时入门的系统都是因为要建立一个MUD,不得不学习Linux。
同样,MUD出色的源码融合到BBS的源码中去,形成了第一次GCC编程的浪潮,当
时并没有考虑到GNU在跨平台使用的优越性能,也没有考虑到用CVS,RCS之类的版本控制
软件的重要性,不过,对于GDB之类工具的开始使用,以及利用yacc之类的程序自动生成
工具等UNIX大规模程序的编制,已经积累了宝贵的经验。因为,一直到现在,绝大多数
的中国程序员都是在Microsoft平台下编写程序的,这不能说是一种悲哀。
Windows95冲击Linux世界
Linux fans奋起反击
95年,IT界的大事就是Microsoft的windows 95进入了桌面,它流畅的安装过程
,对硬件设备的良好支持,得到了广大用户的青睐。学校中也是如此,仿佛一夜之间,
学校的网络上突然冒出来无数Win95的系统。Linux由于对汉字的支持不力,一下子被扔
到角落去了。
当时我记得有一次大的论战,就是关于Linux和95之争的,当然这种学院式的论
战是没有结果的,但是有一个问题被放到桌面上了:在中国,如果不重视中文化,一个
操作系统是没有出路的,因为更多的用户计算机水平非常糟糕的,是没有可能去学习
Linux的Shell命令的。这个问题现在还存在着,是困扰中国计算机用户的大问题。
因为Cernet突然要实行收费策略,出国流量费用要用户自己负担,而当时流量
显然是和IP有关的,结果,盗用IP地址而引起的地址冲突的问题突然大增。Linux fans
突然发现,Linux系统在地址冲突的对抗中大占便宜,因为Linux系统改IP地址不需要重
新启动机器,而win95在冲突之后,只能重新启动机器,直到现在也是这样。这时,在科
大网络上突然出现一个有趣的现象,就是大家都用Linux系统进行对抗,防止别人对合法
IP地址盗用的情况。不过最后就出现一个对Linux发展非常有利的局面:每个实验室申请
一个对外的IP,安装Linux系统,因为Linux上可以启动各种网络服务让实验室的其他IP
利用这个IP出国访问,而Win95是不能这样做的,刚刚出现的NT又不能在太低档的计算机
上安装。Linux又一次成为流行的实验室服务器首选操作系统。
Linux初探网络安全
96年,由于Linux的系统越来越多,在一个校园网里面,有很多没有事情做的本
科生的话,这个世界就要出事了。
科大在95年就建立了当时国内高校中第一个IP防火墙,用的系统是Slackware1.
2.13,防火墙软件是ipfw,所有的源码都是由学生写的,一直运行到现在,但是当时我
们向外界宣传Linux的防火墙功能的时候,竟然没有人理我们,真是很有意思,因为当时
没有一个人相信用一台486就可以做出防火墙来,而且所有的软件是不要钱买的。
地址盗用仍在继续,由于科大使用了IP防火墙用户认证手段,即用户通过认证
才能打开防火墙的开关。
同时,使用记录MAC-IP对应表来追查IP盗用。结果,足足有几个月,BBS上面在讨论
MAC地址的如何改变问题,最后,我们还是发现,用MAC地址来确定网卡的做法是愚蠢
的。这次讨论的结果最后的意义非同小可,因为当时各地高校的BBS已经通过News服务器
转信,在上海交大,MAC地址的改变的成果直接使交大的网络瘫痪,因为当时有个学生恶
意地不停地改变MAC地址,因为上海交大解决IP地址盗用的方法是在交换机上封杀MAC上
网,结果造成交换机死机。当时全国的高校的交换机一般使用的是BAY的系统,就是我们
公司的那种,可以全网盗用IP,现在又可以改动MAC,费用问题一下子出现了不可调和的
矛盾。所以,这些高校不得不在设备还没有用热的情况下进行第二次网络设备升级,而
我们学校使用的FDDI系统,并没有受到过多的冲击,因为盗用只能在一个以太网段内
部。
大家现在一定知道,SunOS 4.1.3系统有个著名的BUG,就是rlogin的问题。有
一次,我在无意中发现,在你的Linux系统中加一个和SunOS系统中一样的用户名,以此
用户登录Linux系统,然后rlogin远程SunOS系统,就可以不问口令进入系统。这个消息
当时传到BBS上的时候,可以用一个词来表达:血雨腥风。不知道有多少SUN的系统被干
掉了。可以这样说,当时第一次黑客的浪潮是在科大内部掀起的,在校外达到高潮,有
很多其他学校的服务器被攻击,Linux作为攻击工具又被大量使用,因为这是一个最方便
加用户的系统,而且任何人都可以是自己安装的Linux系统的超级用户。
因为这次著名的攻击,科大有人注意UNIX系统的安全问题,专门有人征订了系
统安全方面的mailingList;而系统安全被放在了网络中心的会议纪要里,tcpwrapper等
安全工具被我们首次使用。
NT再次冲击Linux阵营
Linux fans二次出击
NT 4.0的投入市场,对于校内的网络来说,是一个不小的震动,因为它方便的
使用界面,安装又比较容易,硬件的识别也比较好。而IIS 2.0的发布,使www、ftp服务
器的配置异常方便。NT有点不负责任的不反向查询地址使tcp访问速度比Linux要快得
多,而NT的简单代理功能可以代替很多原来Linux的功能,NT一下子又出现了很多很多。
另外一个争论不可避免地出现了,因为NT是Microsoft第一个在Intel平台上运
行的网络服务器操作系统,同样是PC机,和Linux系统相比,到底哪一个最优呢,NT的拥
护者从易用性和编程工具着手,而Linux的拥护者从系统的稳定性和GNU软件的可移植性
入手,展开一场全方位的较量。这场争论是目前我在全国BBS上看到的最出色的论战,双
方从各种角度出发,各抒己见,其实最后成了一个技术讨论会,不过结果实在是让人啼
笑皆非,最后是NT用户投降了,因为NT 4.0的用户无法忍受linux fans不停地用
Teardrop攻击它们的139端口,可谓“明枪易躲,暗剑难防!”直到现在,139端口还是
NT的大问题。
Linux激发了计算机网络知识的学习热潮
kernel 2.0以后,ipfw作为kernel的基本部分内置在源码中,一个简单的小型I
ntranet方案形成了,任何一个实验室,只要有一台机器装了双网卡,就可以用ipfw功能
形成一个intranet,当时因为路由器上并没有禁止RIP,所以,任何另外一块网卡的地址
可以随便配。为什么要这样做,说起来有点气短,为了省一个HUB!真的是这样,因为科
大缺少实验室经费,确实有很多实验室为了省一个1000元左右的HUB费用,用Linux做路
由器,拿细缆接一个实验室的机器。
由于配置一个ipfw系统需要了解很多网络知识,Linux在网络知识的普及上是立
了大功的,尤其是当校园网关闭了路由器的RIP之后,如何使用ipfw的静态路由是很费神
的。
由于IP地址不断紧张,不断出现了用单个IP地址上网的方案讨论,从最早的socks代
理一直到最新的NAT方案,Linux一直作为宿主系统被广泛使用。
我在这里要指出一点,由于Linux是一种自由操作系统,所以有很多在商用系统
中看不到的网络技术都可以在Linux看到,比如IPv6,NAT等。
Lesstif的出现使普通用户能够得到学习Motif编程的机会;SamBa的出现使Linu
x出现了商用价值......不过对我来说,当时看得到的商用价值就是替一些小的ISP或者
网络用户安装Mail系统、BBS等,挣点零花钱。
Linux再探网络安全
随着互联网的不停发展,学校的网络上第一次出现了Sniff,它的强大功能使我
们吃惊,在BBS上面出现了对sniff技术和网络加密程序的讨论。我们使用的第一个网络
加密程序是Stelnet,然后是SSH。
IP spoofing技术的公开,rootshell、geekgirl网站的开放使计算机系统的安
全问题突然成了一个热点。这是应该的,因为只有好奇的大学生才对进入一个陌生人的
系统有着痴迷的兴趣,更多的是为了寻找到一根能出国浏览的免费internet链路。当
时,很多科学院的系统和ChinaNET的系统被攻击,我以前也经常警告某些系统管理员要
注意网络安全但是很少有人考虑过。学校里面也是如此,经常听说某个系的服务器被黑
了之类的事情,也常有人在网络上叫要替某某报仇的事情。
由于IP spoofing的源码是来自linux系统,有更多“不怎么老实”的人学习lin
ux了,后来,出现了许多出色的黑客兼系统管理员。当时有一句话:“如果要想成网络
高手,一定要学习Linux。”
另外有一件大事就是我们参加了distribute.net的对RC5-56bit密钥的解密工作
,Linux和其他操作系统一起参与了解密,我们第一次发现一个分布式的系统是多么地强
大,因为50台P-100的计算能力比曙光1000还要快。同时,合肥高性能计算中心的PVM和
MPI系统中大量地使用Linux。
Linux再次大规模使用
Linux的再次大规模使用是Redhat Linux到我们学校并被使用之后,因为它出色
的计算机系统支持,漂亮的软件包安装程序,平稳的性能,给我们以深刻的印象,因为
那时我们已经注意到一个成型的软件没有良好的包装和支持是不行的。
同样,又一次论战开始了,这次论战却在linux内部,即Redhat还是Slackware
比较好,最后把Debian、FreeBSD等都拉了进来,显然,又是一个没有结果的争论。
可以说,当时所有我们能安装Linux系统的硬件平台,我们都劝说安装Linux,可以
说是达到了狂热的地步,我们在Sparc上安装Linux,建立了全校的完全供Linux使用的服
务器,我们在MAC上面安装Linux,为了摆脱MAC短缺软件的问题。计算机系机房专门建立
了Linux实验室,现在科大计算机系新生面对的已经不是DOS,而是Linux系统。
当然,最出名的还是音乐服务器的建立,一台Pentium Pro的机器,装上一个支
持Stream的软件,就可以使50人左右在线收听或者观看多媒体节目了,载体还是Linux。
linux的多样性被发挥到了极致,最有意思的就是代理服务器了,原来用的是NT上面的
Netscape Proxy Server,结果频频死机,最后换用了Redhat Linux,安装了Squid,就
几乎没有死机了。
Linux再次成为科大网络操作系统的首选操作系统,几乎所有的应用都跑在Linux
上,从Email、Firewall到DNS,从WWW、FTP到单个IP上网方案,都使用了Linux。
Linux上的软件同样开始流行,从最早的Perl写CGI到Tcl/Tk系统编程,从LaTex
排版到在线游戏服务器的建立,从断点续传软件到数据库系统接口开发,甚至有人拿它
作自动化控制系统......可以说,我离校之前,最热门的系统问题几乎全部出自Linux系
统。
我在科大使用过的Linux系统
No. IP Domain 配置 运行版本
1 202.38.71.10 bioser.bio.ustc.edu.cn Intel 486/66 8M RAM
Slackware 1.0.8
2 202.38.71.27 wolf.ustc.edu.cn Intel 486/66 8M RAM
Slackware 1.1.54
3 202.38.79.55 race.cs.ustc.edu.cn race.cs.ustc.edu.cn
Slackware 1.2.13
4 202.38.79.113/114 202.38.79.113/114 Pentium 100 16MB RAM
Slackware 2.0.0
5 202.38.79.31 powermac.cs.ustc.edu.cn PowerMACintosh-8500
MKlinux 2.0.28
6 202.38.64.40 linux.ustc.edu.cn Pentium 200,64M RAM
Slackware 2.0.30
7 202.38.64.4 nis.ustc.edu.cn Sparc 4 lx station
Redhat 4.2 for sparc
8 202.38.64.8 sun10.cc.ustc.edu.cn Sparc 10 station
Redhat 4.2 for sparc
9 202.38.64.150 test.nic.ustc.edu.cn PII/233,64MB
Redhat 5.0,2.1.86
10 202.38.72.12 shenliu.mech.ustc.edu.cnIntel 486/66,48M RAMRed
hat 5.1
科大Linux fans通缉名单 略。
后记
有人常问我Linux为什么会热门,为什么这样一个系统的会如此让我狂热。
这是一个很难回答全的问题,从我学习的角度上说,我是不能回答我为什么狂热
地拥护这样一个系统的。我当时感觉是我们很穷,我们只有安装这样一个系统才可
能接触UNIX,才能接触真正的操作系统的应
用,使用免费的软件,编写程序。现在的Solaris当然也很好用,但是我不认为它是
一个学习UNIX的好系统。我记得当时有很多应用程序就是在不停地改写配置文件,配着
配着,就会用了。Linux的热门所在,有一点是不能抹杀的,就是只有在高校中才有的
“应用为上”的观点,利用你能利用的所有资源,发挥一台计算机的极限,或者利用一
群低档次计算机代替昂贵的服务器?我现在在研发部搞系统安全的研究,没有Linux系统
的学习,我在高校中是没有机会学习UNIX的,因为高校中能供一个本科生使用的UNIX系
统是很少的,没有UNIX的研究,根本谈不上系统安全了。而对于任何一个系统集成工程
师来说,UNIX系统如果没有掌握好,我想不可能达到应该的境界的,这是基础中的基
础,是重中之重。Linux为大家提供了如此好的一个平台,在任何一台PC机上都可以方便
地安装Linux,而且所有的程序都有源代码,具体协议的实现都有实例,是最漂亮的实验
平台;而且,Linux的内核中一直把最新的网络技术包含在内,哪怕是还没有开发完毕
的,据我的观察,一般一种网络技术在Linux系统上运行正常一年之后,商用公司在产品
中就会出现这种技术的包装产品。
一下子写了这么多,不知道大家有没有耐心看完。
相关阅读 更多 +