linux的诞生就注定其成为经典的命运,面对这一经典我们或多或少的要了解一点其中蕴含的哲学思想。
1. 分享(share)
在这个日益注重知识产权的时代,源代码只掌握在少数人手中,只有他们参与研 发和测试,这在很大程度上限制了人们探究源代码的步伐。linux的开放源代码让我们看到了全球协作的力量。无论你身在何处,只要你的pc端可以连接internet,就可以随时在linux社区提出自己的疑问以及对linux修改的意见和建议。Linux是自由软件,但它不是无限自由的,之所以它使用GNU的General Public License作为限制,是为了让更多的人享受到这种修改和其他权利,是为了更好的实现最大自由化。Linux kernel在经过不断的发展过程中,从最初的很小容量的操作方式成为了炙手可热的操作系统,不得不承认,内核源代码的共享和互联网上的协作开发是其走向 成功的重要途径。在英文单词中,“share”是一个很重要的词语,分享技术,分享每个人对内核的认识和修改,这是Microsoft所不能达到的高度。
2. 提供机制而非策略
在Linux 中有一经典“只提供机制而非策略”。从笼统意义上讲,所谓机制就是“提供什么功能”;策略就是“实现什么功能”。这种独特的设计思想为设计者提供了更大的 空间使其更好的实现它。在中国百科全书中这样一段关于军事的文字,“将能而君不御者胜”(将有才同时君王不统御的话,战争必胜)。其实,机制就好比不盲目 指挥的“君主”,他只发出他要达到怎样的目的诏令,却不给出任何具体行为,任凭将军们自行决定。
3.NO舍NO得
在Linux 内核中有一个概念,它是这样描述的“每个线程都在等待其他线程持有的锁,但是绝没有一个线程会释放它们一开始就持有的锁,所以没有任何锁会释放后被其 他线程使用。这种类型的死锁叫做致命拥抱(deadly embrace)。例如:有甲乙两人,一开始甲有一个苹果,乙有一个橘子(姑且这样比喻),这时甲非常想要一个橘子,而乙非常想要一个苹果(将这种“非常想 要”夸张的理解为如果得不到各自所需要的水果,两人可能会die),但同时两人又都不想放弃其已拥有的水果,结果两人只能同时终结自己的“完美人生”。我一直相信,世界是处在一种守恒的状态,得到的和失去的是成正比的。可能你正在经历失败,但是你得到了教训和经验;可能你正处于人生的失落的状态,但是你却得到前所未有的机会去认真审慎自 己;可能你的人生是非常不幸的人,但是你却成为了最有故事的人。我从不相信有什么好运,因为幸运只能是一时的,而非一世。
4.让每一个程序只做好一件事情
linux中有很多单一目的的小程序,通过集中精力应对单一任务,程序可以减少冗余代码,从而避免过高的开销、不必要的复杂性和缺乏灵活性。
5.更坏就是更好
Unix爱好者认为具有”最小公分母“的系统是最容易存活的系统。比起高品质而昂贵的系统,那些便宜但有效的系统更容易得到普及。于是,PC兼容机的世界从Unix世界借鉴了此想法,并取得了巨大成功。这其中的关键字就是包容。如果某一事物的包容性强到足以涵盖几乎所有事物,那它就比那些”独家”系统要好得多。