千家信息网

我对UNIX的理解

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1994年,X Window系统开发组的成员Mike Gancarz根据他自己的Unix系统经验以及和其他领域使用Unix系统的资深程序员们的讨论结果,写成了《The UNIX Philosophy》
千家信息网最后更新 2025年12月02日我对UNIX的理解

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安全错误 数据库的锁怎样保障安全 社区网络安全宣传条幅 oracle 服务器启动 苏州阿里云数据库运行 管控数据库和生产数据库同步 北邮的网络安全空间研究生考哪些 皇族网络技术的群号 嵌入式软件开发流程百度文库 免费服务器面板 修改数据库实例用户的主目录 C证服务器异常 2016移动网络安全发展 保密技术防范系统连接不到服务器 国内服务器哪个好 南和软件开发有限公司在线咨询 双色球软件开发犯法吗 服务器系统无法进入安全模式 国家教学基本状态数据库 金山区发展网络技术咨询产品 国外网络技术限制 分子数据库常见记录格式包括哪些 手机网络服务器忙是怎么回事 服务器安全狗1433 白兔商标查询软件开发商 北京联想服务器虚拟化设计 长春软件开发公司推荐 数据库的测试重点 浪潮服务器云南代理商 南京百信服务器订购 服务器sas盘吞吐量 网络安全宣传周主题活动启动
0