|
原文2001-02-25发于tencent论坛【也许并不应该发在这个论坛上,另外就是从2001以来我在这方面又有很多很有意义的经历,有时间再补上吧】
首先,Linux下是应有尽有,其思维也是很自由,要学得东西有很多,底层的、高层的,都有很多,有很多值得我们去学习。
我用Linux也快三年了,其中也经过了痛苦与欢乐,感觉学到了很多,但是也有很多东西需要我去学!这里我只是采用一种客观的态度描述一下我学Linux的经历,而不加任何评价。
1998.4、第一次买来一张Slackware Linux版本的盘来装(当时我的机器配置是6x86 pro 166MHz,16M RAM,S3显卡),一开始并不关注它的版本,只是想装。现在想来应该是2.9的版本吧,为了节约硬盘空间,我是一个个包去选择的,尽可能装得最小而又满足我的需要,因此当时我几乎对Slackware版本中每一个软件包都了如指掌。但是当时对我来说有一个关键的问题:显卡不支持(是文本方式安装的,硬盘要自己划分,X-Windows要自己配置)!就是这块该死的显卡,装了我一个暑假,在暑假中我也知道了有一个Qt的东西,包括一个KDE的项目!当时KDE应该还是刚出1.0 beta3版本吧,但是没用过!
1998.9、换了一个RedHat 5.1。显卡问题没有了,轻松装上了X-Window。但是我仍然保持着我自己定制选择软件包的习惯。声卡仍然安装不了!同时这个时候我也开始上网了,经常去网上转悠,把KDE 1.0 正式版本当了下来,装上了,但是:慢!这时候我也开始经常到水木清华BBS Linux版(telnet smth.org)去逛逛,在这里我获得了很大的收获。几个月以后,开始用上了Mandrake 5.2,由于对KDE 的感冒性,而Mandrake 对KDE是直接放在光盘中的,所以很为喜欢!
1998年底,开始使用ZhXwin中文平台(几乎是很早很早的软件了,但是那时对刚刚使用的Linux却没有几个中文环境可以用)。但是这个中文平台存在着很多问题,对于KDE系统,输入基本是输入不进去的。之后的几个月,我尝试着重写一个中文平台。最开始是看ZhXwin的源代码,了解其中中文的原理,LD_PRELOAD机制,中文输入法协议等等的。
1999.5、我修改后的中文平台的第一个可用版本出来了,但是只能显示中文,不能输入中文。两个月后,推出了新的版本,中文显示进一步的友好,但是在输入法上采用了xcin 2.3。这个中文平台的名字也就叫做Free Chinese。在当时,这个中文环境已经能够在KDE下很好的使用了,几乎可以在大多数的KDE软件中输入,而XTeam Linux才推出1.0,Turbo Linux已经推出3.02(or 3.2,不是太记得了!),8月份的时候推出4.0 但这些仍然不能在KDE下正确的输入中文(Turbo Linux 4好象是可以的,但是3.x的不行!当时影响比较深从没有正版软件的我第一次得到了一套TurboLinux 4的原版软件)。
1999.8以后,由于有些事情太忙,基本这个中文环境没有再开发。这段时间也没怎么用Linux。
2000.2开始进军Linux的网络编程,同时也曾打算再把Free Chinese 开发下去,但是受到台湾小虫的影响,也确实感觉LD_PRELOAD的机制技术上比较落后,所以中文环境就停止开发了(其时,这其中是有一个输入法的版本的,但是由于以后对XIM 懒得去弄,也就没有在继续下去了,直到最近和台湾的linuxer做input under qpe,才又拿出来弄了弄,但是苦于Qt embbed一直都起不来!)。这时候主要是集中精力于Linux的网络开发。
2000.4开始玩弄ACE平台库,并看了看它的C++源代码,并为之震惊!(可以这么来形容,它把C++的技术发挥到炉火纯青的地步了!)同时ACE更有另一层的库:TAO,也就是一个CORBA的实现。(当时我把ACE+TAO一起来编译,本来源代码打包只有10M左右的,编译完以后,所有的文件居然到了2.2G了,当然这个时候已不在是我的那台老爷机了!)
2000.7开始Free Term的项目,但是过了不久,又和以前一样的原因,连续四个月我都没有碰一下计算机!导致Free Term项目和MiniTerm项目的合并!
2001.2继续做Free Term的项目,但是这个时候Free Term的方向则向终端仿真的方向发展,而不是向miniTerm 一样去做BBS的客户端(应该这么说:以前在学校的时候,优势绝对在BBS上,有了BBS就有了一切:聊天、发信息、发信、论坛!)。
我本身的感想:
最失败的地方是在1998年的那段时间,为了配置显卡、Modem、声卡而发了很多的时间!
最平淡的地方是在做Free Chinese的时候,最终归于沉寂!
最成功的地方是在2000年接触ACE的源代码,从而进入一个C++面向对象设计的精彩世界!
最遗憾的地方是:没有太多的时间去阅读内核的源代码!
2001初,这段时间,思想有所改变,不再是抱着linux不放了,开始把眼光放到更广阔的OpenSource世界,开始关注其他的OpenSource操作系统,这其中就包括了AtheOS(www.atheos.cx)。
2001.5月,Ftk项目启动。
2001.6月,终于不能忍受运行于VMware虚拟机中的AtheOS不能使用网络。一气之下花了一个星期的时间从Linux的内核中移植出一个AMD pcnet32网卡的Driver来。当时可是没有任何linux内核的经验,也没有那本经典的《Linux 设备驱动程序》的那本书,就一个人瞎摸,没想到一个星期居然摸出来了。当然了这个星期也学到了很多的知识,受益非浅,也对linux内核中的驱动部分、网络底层等等的有一个很好的了解。
2001.6月,FreeTerm项目停止运作。大约觉得意义已经不大,至少已经没有多少兴趣了,KDE 2中konsole都已经有了,没什么好开发的了。
2001,Ftk项目继续运作,7月,基本的tools库已经实现,包含有QT2 tool collection部分80%的实现。当然了,由于许可证的关系(Ftk是采用LGPL发行的),此时没看过QT中任何一丝的代码(当时可是抱着不敢看得心思:),当然QT的程序也没开发了。8月,XML parser部分实现,Application FrameWorks基本框架实现,同时支持多线程。9月,Ftk内置脚本语言的方案提上议程,面向对象的Fava语言的想法初步形成。
2001.10月,对Fava进行调研,并制订初步的BNF范式,同时实现初步的词法分析,递归向下的语法分析。
2001.11月,Ftk停滞开发,Fava停滞开发
2002.1月,复出,同时Bear的Dooloo操作系统推出雏形。
2002.2月,由于Dooloo的需要,推出面向结构化编程的FinC脚本语言(实现也是采用C来实现的)。
2002.4月,推出一个比较稳定的FinC 0.2版本。5月,推出采用手工编写的递归自顶向下的语法分析的FinC 0.3测试版本。
2002.6月,在百般无聊&郁闷的情况下,推出EditMinus,并连续推出了3个版本。
关于各个项目的情况&简介,请看我的主页介绍:http://fayfay.gnuchina.org |
|