我对UNIX的理解
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1994年,X Window系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了《The UNIX Philosophy》
千家信息网最后更新 2026年11月02日我对UNIX的理解
一:应该允许用户定制操作环境。 二:让操作系统核心小而轻。 三:使用小写字母并尽量简短。 四:节约纸张,保护树林。 五:沉默是金。 六:并行地思考。 七:部分加部分大于整体。 八:寻找问题的帕雷托法则。 九:程序随需求而增长(Worse is better)。 十:层级地思考。
1994年,X Window系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了《The UNIX Philosophy》,提出了9条训格之言:
一:小即是美。 二:让程序只做好一件事。 三:尽可能早地建立原型。 四:可移植性比效率更重要。 五:数据应该保存为文本文件。 六:尽可能地榨取软件的全部价值。 七:使用shell脚本来提高效率和可移植性。 八:避免使用可定制性低下的用户界面。 九:所有程序都是数据的过滤器。 此外还有十条原则则并不为所有人认同,甚至还是争论的焦点(如宏内核和微内核之争):一:应该允许用户定制操作环境。 二:让操作系统核心小而轻。 三:使用小写字母并尽量简短。 四:节约纸张,保护树林。 五:沉默是金。 六:并行地思考。 七:部分加部分大于整体。 八:寻找问题的帕雷托法则。 九:程序随需求而增长(Worse is better)。 十:层级地思考。
罗勃·派克在他的《Notes on Programming in C》中提到了以下格言。虽然这些规则是关于程序设计的,但作为Unix哲学丝毫不为过:
- 规则一:你永远不会知道你的程序会在什么地方耗费时间。程序的瓶颈常常出现在意想不到的地方,因此在你确信找到瓶颈后再动手优化代码吧。
- 规则二:测试代码。只有在你详细测试了代码,并且发现一部分代码耗费了绝大部分的运行时间时再对程序作速度优化。
- 规则三:功能全面的算法(fancy algorithm)在处理小规模问题时效率很低,这是因为算法时间效率中的常量很大,而问题往往规模很小。除非你知道你遇到的常常是复杂的情况,否则就让代码丑陋但是简单而高效吧。(即使问题规模确实很大,也首先尝试第二条规则。)
- 规则四:功能全面的算法比简单的算法更容易产生Bug,更难实现。尽量使用简单的算法和数据结构。
- 规则五:数据决定一切。如果选择的数据结构能很好的管理数据,算法部分往往不言自明。记住,数据结构,而非算法,才是编程的关键。
- 规则六:没有第六条规则。
规则
程序
数据
算法
代码
系统
部分
问题
效率
数据结构
时间
结构
很大
内核
功能
地方
尽可能
瓶颈
用户
移植性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
互联网科技股
互联网巨头反垄断金融科技
北京互联网科技公司
以房互联网科技
安徽鑫晟辉互联网科技
远拓互联网科技
上海致骋互联网科技
广州凡科互联网科技
深圳天众互联网科技公司
四川狮子座互联网科技
现代科技和互联网有关系吗
重庆威客帮互联网科技
互联网金融科技公司干啥的
互联网科技有哪些公司
亳州好赞互联网科技有限公司
内蒙古九一互联网科技
互联网科技大赛获奖感言
互联网时代的科技公司
承德科技产业互联网平台
圆梦互联网科技
互联网女皇 腾讯科技
火传媒上海互联网科技
随着互联网科技发展
千方科技属于互联网企业吗
烟台灵鸽互联网科技有限公司
科技互联网海报
浙南科技城互联网大厦招聘
上海创道互联网络科技有限公司
科技互联网专业务虚会材料