作者: cjdao 时间: 2012-03-30 08:40 你为什么喜欢Unix?
好吧,我承认在接触linux之前并不知道什么是unix,我也承认开始接触linux只是觉得能在终端下输几个别人看不懂的命令是件很酷的事。参加工作后,开始接触嵌入式,linux虽然并不是强实时操作系统,却在嵌入式领域应用如此之广泛。而linux开源共享的精神,简洁的系统调用接口,超强的可移植性和可伸缩性,也就是让我不由自主的拜倒在她的石榴裙之下了。"linux is not unix",但是她们血脉相承,她们对于优秀的定义是一致的!所以当我们喜欢上了linux就没有理由不喜欢unix,而喜欢上了unix也就没有理由不喜欢linux。
你会身体力行unix/linux哲学中的哪些?为什么?
这个话题,可以从我新近在公司做过的项目说起,在设计之初,我们整个项目组在会议室捧着《UNIX编程艺术》,一条条的讨论书中的哲学信条,力图将其理解,然后尽己所能在编码规范与代码审核规范上体现其中的要义。也许开始理解过于浅薄,但当经过了几次痛苦的教训后,便发现书中所说的字字珠玑。
"简洁为王"这个几乎是unix哲学的一个概括,unix从不同的角度诠释了"简介为王"的这一观点。当然也在linux里体现得淋漓尽致。在看linux内核编码规范时,有一条规范,令人印象深刻:"Tabs are 8 characters, and thus indentations are also 8 characters...if you need
more than 3 levels of indentation, you're screwed anyway, and should fix
your program."(http://kerneltrap.org/files/Jeremy/CodingStyle.txt)。由此编码规范便可窥见linux对于"简洁为王"的追求。
对于UNIX来说,很经典的一句话"power cloaked in simplicity" 已经流传了好多年,而且我们欣赏UNIX的哲学,大多读过那本经典的<UNIX编程艺术>。我也不多置喙,UNIX能够保持到如今仍然长盛不衰,很大程度上就是他简单的设计哲学所导致的。现在仍然活跃的商业UNIX如IBM-AIX,HP-UX,Solaris ~在大量企业级应用中的良好表现,我们必须承认。
至于Linux,或者说GNU/Linux,从名字上来讲"GNU's Not Unix", "Linux is not unix", 都纷纷撇清自己和UNIX的关系,而我们却常常自作多情地把UNIX/Linux或者说 类*NIX系统放一起来讲,实在是有点强人所难。
我的理解上,Linux倒不是一个完全新的系统,他借鉴于Minix(意思是"Mini Unix"),而Minux也是一个类UNIX的系统。
Linux真正和UNIX的分歧,在于开发方式,当Linux接受了GPL分发协议时候,社区开发者纷至沓来。而此时庞大的UNIX做的事,大概就是我们一直听到故事里龟兔赛跑的"兔子"做的角色。似乎很自然又无可奈何地培养出来Windows和Linux两大对手。
《大教堂與市集》(The Cathedral and the Bazaar)
这本书应该被提到(而且就在这本书中也确实提到了~~) 。我觉得这本书讲到的便是关于UNIX和LINUX的重要论争,我们究竟应该往什么地方走,我们到底需要什么样的程序员,以什么样方式来工作,做出来什么样的操作系统?
显然为了顾及颜面,还有考虑读者需要,作者没有放大UNIX和LINUX两大阵营的区别,而含糊地表达了"UNIX/LINUX"设计思想。 我认为是有失偏颇的,尽管Linux社区很大程度上是以UNIX的原则方向来开发,并且对UNIX的原则表示了尊重。 但区别不止是"GNU/Linux"名字上对于UNIX的"出言不逊",更明显的,Linux代码属于GPL协议,而UNIX阵营除了商业UNIX外,其他多选择了BSD协议,这也是一个相当大的区别。