这一两年,开源在国内势头猛烈,虽然还是雷声大雨点小,但关注总好过不关注。剔除一些不太热门的部分,开源在大多数人的心目中就是指linux及其平台下孕育出的相关软件。那就从这里开始我的一些废话。
开始接触linux是在96年,那时internet还属于新鲜概念,能用telnet上个bbs就能让人激动半天,更不要说ftp、bt、emule之类的玩艺,唯一能得到新软件的途径就是校门口卖盗版的。从某种意义上说,盗版在普及和深化计算机教育上还是有所贡献的。那时从门口买了一套rh的光盘,就开始在机器上开始折腾,但由于没有任何的帮助和获得帮助的途径,所以只是获得了对linux一些初步的认识。也正是因为rh,开始对操作系统感兴趣,也研究了一阵子minix,可惜没有坚持下去。
再次接触linux是在2003年,当时是进入一家台湾企业开发linux平台下的监控软件。由于当时要做一个基于x86的小型系统,os+ application要全部运行在64M的存储设备上,所以要对操作系统进行大幅度的修正和裁减。正好负责此事的相关人员跳了槽,需要人员来接手,我自告奋勇承担下来。交接3天,仅有的一些资料都转移到我名下,接下来的2个月时间内,每天的工作就是和kernel折腾,bootloader原理、 kernel引导、任务分配、内存管理、驱动加载,包括shell的运行原理、x-window裁减、中文系统加载,实实在在的在linux的世界里沉浸下去。现在想想,那实在是一段美好的时光。
最后的成果就是一个64M的完整系统,包括lilo、kernel、busybox、x- window、中文系统、nvidia驱动、qt库,以及小组开发的监控系统。而我也对linux的运行机制和原理有了基本的了解和认识。此时由于采集卡的驱动一直处于无人接手的状况,我又开始整理原有的代码,并基于这个版本开始做一些修正和升级,从而对kernel的运行和机理有了真正的认识。
那段时间里,由于整天要编译kernel,所以工作都要在linux下完成,半强迫的抛弃了windows的束缚。开发、上网、ftp、email、 irc、编写文档,都要在大多人使用很不习惯的linux下完成。过了几个月,我忽然发现没有了游戏、聊天的诱惑,工作效率得到了很大的提高,而且生活变得轻松愉快起来,不再感觉每天有很多的事情完不成,而且不再为追赶不断出现的新技术和新概念而疲于奔命。这也算是linux带来的一个好处吧。而且我感觉用linux处理工作更具有愉悦感,甚至偶然使用一下windows会觉得很别扭和不习惯。习惯是可以改变的,不是linux难用,是windows的大面积使用造成了使用上的惯性。
在linux的世界里,技术永远是为了完成工作,而不是为了技术而技术,很多东西都是赤裸裸的给你看,不管你喜欢还是不喜欢,他的确是完成了工作,而且还完成的很好。当初一个技术主管的口头禅就是:源代码都给你了,你还要什么?的确,看一百本讲kernel的书,不如老老实实的看一天源代码。帮助永远是基于实现的,源代码说明一切,帮助只是一个辅助手段。所以后来看到有人说开源软件的一大硬伤就是帮助太简陋甚至是没有,让我实在感觉哭笑不得。用闭源软件的习惯来套开源软件,就好比买房子和造房子之间的区别。开源的世界里,用户的初始对象就是技术人员,用户群扩展到一定程度的时候自然就会有人出来做基础的文档工作,开源的目的不是取悦用户。从没有谁说开源就是为了卖钱,何况只要基于oss的协议,源代码必须公开,因此大多数开源软件不大可能从软件销售上获得多少利益,从而也就不存在利益上的动力,也就造成了文档上的后知后觉,没有太大的必要,是不会有人在帮助上下功夫的,源代码都给你了,你还要什么?
当然,有人会不同意,觉得开源是在孤芳自赏,不贴近用户,造成市场的丧失。单从linux的发展历史上看,linux原本就是从一群技术人员中孕育出来的,单纯为了解决问题而生,linus就是因为买不起dos而开发的linux。开源的目的很简单,解决问题和寻找技术上的快乐。市场本来就不是也不会是开源的发展动力,开源就是技术人员的自我欣赏的外在表现。不客气的讲,如果不是同类人,请走开,谁也没请你来。市场和利益是商人们的事情,和技术无关,和开源无关。
当然在缺乏基本的生活保障和社会福利的中国,谈开源是很难不和利益挂钩的,这是无奈的,但是请投身开源的人们不要忘记开源的初衷和动力,这样才能在开源的世界里活的更好。
2006-03-11 15:54
原文在:http://www.heybrain.com/cyantree/article/12.html
作者:cyantree