Unix哲学

✍ dations ◷ 2025-07-12 13:06:53 #Unix哲学

Unix哲学是一套基于Unix操作系统顶级开发者们的经验提出的软件开发的准则和哲学。

UNIX 哲学由 Doug McIlroy 在1978年的《Bell System Technical Journal 》中发表:


道格拉斯·麦克罗伊是Unix系统上管道机制的发明者,也是Unix文化的缔造者之一。他归纳的Unix哲学如下:

程序应该只关注一个目标,并尽可能把它做好。让程序能够互相协同工作。应该让程序处理文本数据流,因为这是一个通用的接口。

更加简化的版本是:做一件事,做好它。虽然只有第三条是特指Unix系统的,但Unix开发者们常常同时强调这三个信条。

罗勃·派克在他的《Notes on Programming in C (页面存档备份,存于互联网档案馆)》中提到了以下格言。虽然这些规则是关于程序设计的,但作为Unix哲学丝毫不为过:

Pike的第一、二条规则重申了高德纳的著名格言:“过早的优化是一切罪恶的根源。” Pike的第三、四条规则被肯·汤普逊改述成:“疑惑不定之时最适合穷举。”事实上,这两条规则也是KISS原则的具体表现。规则五在之前Fred Brooks的人月神话中也被提及。Jon Bentley(英语:Jon Bentley)的《Programming Pearls(英语:Programming Pearls)》中也有一章阐述了相同的设计哲学。此规则作为“如果你的数据结构很好,那么控制它的算法就无关痛痒了”的例子常常被简化成“简约地写代码,聪明地用数据”。第六条规则当然只是Pike针对蒙提·派森之小品Bruces sketch(英语:Bruces sketch)的幽默发挥而已了。

1994年,X窗口系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了,提出了9条训格之言:

此外还有十条原则则并不为所有人认同,甚至还是争论的焦点(如宏内核和微内核之争):

Richard P. Gabriel(英语:Richard P. Gabriel) 提议Unix的一个关键优势是他称作“糟糕的更好”的设计哲学。在“糟糕的更好”的设计风格下,接口和实现的简单性比系统的任何其他属性都更重要,包括准确性、一致性和完整性。Gabriel主张这种设计风格拥有关键的进化优势,尽管他也怀疑一些结果的质量。


相关

  • 卢卡斯二世约翰·哈丁·卢卡斯二世(英语:John Harding Lucas II,1953年10月31日-),美国NBA联盟前职业篮球运动员。他在1976年的NBA选秀中第1轮第1顺位被休斯顿火箭选中。
  • 拉多斯瓦夫·扎夫罗特尼亚克拉多斯瓦夫·亚历山大·扎夫罗特尼亚克(波兰语:Radosław Aleksander Zawrotniak,1981年9月2日-)生于克拉科夫,是一名波兰男子击剑运动员,主攻重剑。他曾参加2008年夏季奥林匹克运
  • 约瑟夫·什克洛夫斯基约瑟夫·萨穆伊洛维奇·什克洛夫斯基(俄语:Ио́сиф Самуи́лович Шкло́вский,拉丁转写:Iosif Samuilovich Shklovsky,1916年7月1日-1985年3月3日),苏联天
  • 约翰·哈尔沃森约翰·哈尔沃森(挪威语:Johan Halvorsen,1864年3月15日-1935年12月4日),挪威作曲家。早年曾在莱比锡格万特豪斯管弦乐团演奏,回国后先后任卑尔根爱乐乐团和国家剧院的指挥。其音乐
  • 李波 (1972年)李波(1972年7月-),重庆人,中华人民共和国政治人物,曾任中华全国归国华侨联合会副主席,现任重庆市人民政府党组成员、副市长。
  • 艾格蒙特 (贝多芬)艾格蒙特(Op.84),是德国作曲家贝多芬为歌德所著的同名戏剧所作的序曲及配乐。作品由序曲和9个独立乐章组成,为女高音和交响乐团而作。 贝多芬在1809年10月到这部作品,此作在1810
  • 教育电视台教育电视台泛指主要播放教育节目的电视台。一些教育电视台为独立机构。如中国内地的“教育电视台”主体并不归于各级广电部门,而是教育主管部门,可能提供一个或多个频道播出教
  • 卷轴结卷轴结(英语:Arbor knot)是垂钓者或渔民常常使用的一种结。它主要用于系鱼线和卷鱼线到卷线器上。卷轴结被用于系鱼线刚入卷线器上鱼线的第一圈之前。它一共有2个结。
  • 灯鳉属未命名物种“奈瓦沙”灯鳉属未命名物种“奈瓦沙”()是一种肯尼亚奈瓦沙湖特有及灭绝的一种灯鳉(英语:Aplocheilichthys),它们约在1970年代或1980年代消失。外来物种造成的竞争和捕食可能是它们灭绝的原因。
  • 黏着法构词黏着法构词(agglutination、黏着语法构词)是一种语言学上的词法学之构词程序,其中复合词是将语素串在一起而不用改变其拼写或语音。广泛使用黏着法构词特性的语言称为黏着语。黏着法构词的语言中之一语种即土耳其语,比如:黏着法构词词汇“evlerinizden”意思为“从你那些房子”这个词组成的语素是含有多个个别意思的词素,解析为〈ev-ler-iniz-den〉结构分解之意思为〈房子-(复数/那些)-你的-从〉。尽管欧洲和亚洲多数黏着语主要使用后缀,但非洲南部的班图语言以高度复杂的混合前缀、后缀和重叠