您的位置:首页 > 运维架构 > Linux

Unix哲学

2016-06-28 10:49 441 查看
摘自《LINUX/UNIX编程思想》

(1) 小即是美。相对于同类庞然大物,小巧的事物有着无可比拟的巨大优势。其中一点就是它们能够以独特有效的方式结合其他小事物,而且这种方式往往是最初的设计者没能预见到的。

(2) 让每一个程序只做好一件事情。通过集中精力应对单一任务,程序可以减少很多冗余代码,从而避免过高的资源开销、不必要的复杂性和缺乏灵活性。

(4) 舍高效率而取可移植性。当Unix作为第一个可移植系统而开创先河时,它曾经掀起过轩然大波。今天,可移植性早被视作现代软件设计中一个理所当然的特性,这更加充分说明这条Unix准则早就在Unix之外的系统中获得了广泛认可。

(6) 充分利用软件的杠杆效应。很多程序员对可重用代码模块的重要性只有一些肤浅的认识。代码重用能帮助人们充分利用软件的杠杆效应。一些Unix的开发人员正是遵循这个强大的理念,在相对较短的时间内编写出了大量应用程序。

(8) 避免强制性的用户界面。Unix开发人员非常了解,有一些命令用户界面为什么会被称为是“强制性的”(captive)用户界面。这些命令在运行的时候会阻止用户去运行其他命令,这样用户就会成为这些系统的囚徒。在图形用户界面中,这样的界面被称为“模态”(modal)。

(9) 让每一个程序都成为过滤器。所有软件程序共有的最基本特性就是,它们只修改而从不创造数据。因此,基于软件的过滤器本质,人们就应该把它们编写成执行过滤器任务的程序。 以上列出了Unix开发人员所奉行的信条。在其他一些Unix书籍中你也会找到类似清单,因为这些都是大家公认的Unix基本理念。如果你也采用这些准则,那么人们就会认为你是一个“Unix人”。

下面还列出了10条次要准则,这些准则正在渐渐发展成Unix世界信仰体系的一个组成部分 。并非每个与Unix打交道的人都会将它们奉为信条,而且在严格意义上其中一些并不能算作是Unix的特性。不过,它们看起来依然是Unix文化(当然也包括Linux文化)不可或缺的一部分。

(1) 允许用户定制环境。Unix用户喜欢掌控系统环境,并且是整个环境。很多Unix应用程序绝对不会一刀切地使用交互风格,而是将选择的权利留给用户。它的基本思想就是,程序应该只提供解决问题的机制,而不是为解决问题的方法限定标准。让用户去探索属于自己的通往计算机的佳境之路吧。

(3) 使用小写字母,并尽量保持简短。使用小写字母是Unix环境中的传统,尽管这么做的理由已不复存在,但人们还是保留了这个传统。今天,许多Unix用户之所以要使用小写的命令和神秘的名字,不再是因为有其限制条件,而是他们就喜欢这么做。

(5) 沉默是金。在需要提供出错信息的时候,Unix命令是出了名地喜欢保持沉默。虽然很多经验丰富的Unix用户认为这是可取的做法,可其他操作系统的用户却并不认同此观点。

(7) 各部分之和大于整体。小程序集合而成的大型应用程序比单个的大程序更灵活,也更为实用,本条准则正是源于此想法。两种解决方案可能具备同样的功能,可集合小程序的方法更具有前瞻性。

(9) 更坏就是更好。Unix爱好者认为具有“最小公分母”的系统是最容易存活的系统。比起高品质而昂贵的系统,那些便宜但有效的系统更容易得到普及。于是,PC兼容机的世界从Unix世界借鉴了此想法,并取得巨大成功。这其中的关键字是包容。如果某一事物的包容性强到足以涵盖几乎所有事物,那它就比那些“独家”系统要好很多。

(10) 层次化思考。Unix用户和开发人员都喜欢分层次来组织事物。例如,Unix目录结构是最早将树结构应用于文件系统的架构之一。Unix的层次思考已扩展到其他领域,如网络服务命名器、窗口管理、面向对象开发。 看完这份准则清单,你可能会觉得所有内容都有点儿小题大做。“小即是美”不是什么大不了的道理。“只做好一件事”本身听起来也相当狭隘。“舍高效率而取可移植性”也并不是那种能够改变世界的真知灼见。 这就是Unix所蕴含的道理吗?Linux难道也只是给目光短浅的人准备的小型操作系统? 也许我们应该提及,大众汽车公司曾经围绕着“小即是美”的概念开展了一次成功的汽车营销活动,并借此销售了数以百万计的汽车;或者想一想主流Unix供应商Sun公司的事例,它的商业战略基于“集中所有资源推出最好的拳头产品”这一思想,或者换句话说,也就是“只做好一件事”的理念。那么,人们对于掌上电脑、无线网络访问和手持视频的兴趣是否与可移植性有关呢? 让我们现在就开始这个精彩的旅程吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unix 编程 unix哲学 Linux