[沧海拾遗]读<Linux/Unix设计思想>个人所思

Linux_Unix设计思想.pdf Linux_Unix设计思想.pdf Linux_Unix设计思想.pdf Linux_Unix设计思想.pdf 立即下载

<Linux/Unix设计思想>一书主要介绍了unix系统设计中的一些原则,其中包含了九个主原则和十个原则。

九大主原则

  • SMALL
即“小即是美”。小则灵活,并易于改变去适应变化。而大则牵一发而动全身,一旦改变就会伤筋动骨。说到这个原则,就想起我们it界那个长久以来口口相传的笑话,说工程师老是被pd说改需求改需求,从而狂燥甚至发狂。笑一笑后,是不是该想一想,之所以出现这么难以改变的情况,是不是将系统设计和实现得太过大了呢?所以才会在有变化的时候如果痛苦?
  • 1THING
即“让程序只做一件事”。这类似于OOP编程思想中的SRP原则(单一职责),以前理解这个原则大约是觉得这样做的一个理由这样易于维护,或者可读性强上。但是看了这本书的介绍后发现,单一职责的优点不仅在可读性和维护性这些上面,还在性能上。因为一个方法如果小,则在调用完毕后,它使用的局部变量等就可以马上回收,降低资源的开销。
  • PROTO
即“尽快建立原型”。这里提到的一个产品的三个系统感觉相当有意思。所谓三个系统分别是:第一系统,是指在资源紧迫情况下,而开发的预研性质的系统;第二系统是在第一个系统出现后,看到第一个系统的价值后,也看到第一个系统实践的结果后而产生的,在第一系统的基础上做出大量的优化和扩展;第三系统是在第一和第二系统出现后,去芜存精,最终比较完美的一个产出。如果投身于第一个系统的开发,你要冒很大的风险,因为它极有可能失败,但是在开发第一个系统的团队中工作将是一件最有激情的事.如果投向第二个系统,前期还好,你有可能接触到最顶尖的设计,但是到后期,就没意思了,就是重复的添加功能而已。不过不经历第一系统的后期也无法进入第三系统,所以在工作中,评估产品的阶段,选择投向其中,未尝不是一个好的方法。
  • PORT
即“可移植性高于效率”。之所以推崇这个是因为作者认为计算机的性能总是越来越强,因此效率应该不是程序关心的第一优先级,但是向更高性能计算机的移植性却是程序应该关注的。这个我觉得倒是有所保留,近年来随着处理数据的海量化、什么云啊,大数据啊,就说明现在的计算机的性能增长速度还赶不上我们要处理的数量量增长速度。而且最近几年并发编程为什么这么火,因为硬件生产商已经无法保持业界的摩尔增长率了,所以只能通过软件的方式来保持性能的增长。而并发多核的编程就是在这种情况被程序员所追捧。
  • FLAT
即“使用纯文本来存储数据”。为什么呢?因为这样可以使数据具有最大的可移植性。
  • REUSE
即“充分利用软件的杠杆效应”。在编程中有一个原则尽量去重用别人已有的代码,来提高自己的工作效率。但是有时候你不得不承认,去读懂一些人写得代码,远没有自己重写来得简单。因此如果你要重用别人的代码,那么尽量重用一些优质的代码吧,并且要时刻提醒自己,别人的代码是不安全的。。。
  • SCRIPT
即“尽量使用shell脚本”。普适地来讲,就是我们在实现程序时尽量选择一些可移植性高的编程语言,比如说java。
  • NOCUI
即“避免强制性用户界面”。这个不是太好理解,也没遇到过这种场景,以后再说。。。
  • FILTER
即“将程序用途过滤器”。就是使程序拥有输入、输出和异常处理,这样就可以将一个大型程序分解成若干个过程,并相互约定沟通方式,这不就是我们多人并发完成某项功能所需要做的事情吗?

十大次原则

  • custom
即“让用户定制系统”。这个对于选择linux的人来说很有感受,什么东西都想控制在自己手中。但是说到底还是要了解你的产品所面向的群体对这个产品的定位,有些人就是想傻瓜一点,那就傻瓜一点吧。
  • kernel
即“使内核最小化”。这也符合了小即是美的原则,如果将系统内核设计得小而轻量,然后其他人可以自由的在此基础上扩展,这就是一个完美的方案了。成为其他人的平台,进而构建一个生态圈,是由小变大,立于不败的不二法则。
  • lcase
即“统一小写”。这个属于个人风格了。
  • trees
即“不要将数据固化到纸上,节约树林”。
  • silence
即“沉默是金”。指有些场景不需要向用户反馈信息时,就不要反馈。
  • parallel
即“并行思考”。多核计算机总要发挥它的作用吧。
  • sum
即“部分之和大于整体”。这个取决于一个好的设计,如果将各部分组合成整体的成本太大,则有可能部分之和小于整体了。
  • 90percent
即“寻找90%的解决方案”。这个大家估计深要体会,有时候为了解决那10%甚至1%才会出现的问题,往往要投入巨大的精力,这个时候舍弃那1%的杞人忧天也许未尝不是一个好的抉择。不过如果你要冲向巅顶的话,你势必要面临这1%的挑战,这也是程序员乐此不疲的事情。
  • worse
即“更坏就是更好”。不过理解起来似乎是与其做不好,还不如选择一个已有较差的方案。
  • hier
即 “层次化思考”。对系统、软件分层,有利于维护开发。
Linux-Unix设计思想 将Linux的开发方式与Unix的原理有效地结合起来,总结出Linux与Unix软件开发中的设计原则。《Linux\Unix设计思想/图灵程序设计丛书》前8章分别介绍了Linux与Unix中9条基本的哲学准则和10条次要准则。第9章和第10章将Unix系统的设计思想与其他系统的设计思想进行了对比。最后介绍了Unix哲学准则在其他领域中的应用。 立即下载

相关推荐

在centos7部署k8s搭建kubernetes集群

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找

山东梅长苏 1万+

Linux/Unix 设计思想概述

Unix设计哲学

诸葛浪 2308

SageMath下载与安装

SageMath的下载与安装

旺旺的碎冰冰~的博客 7490

现代AI编码助手与终端复用技术融合:从Claude Code到OpenCode的全景实践

AI编程助手与终端复用器融合实践 本文探讨了AI编程助手(如Claude Code和OpenCode)与终端复用技术(tmux/iTerm2等)的融合实践。通过终端复用器,开发者可以实现AI会话的并行执行、持久监控和自动化交互。文章系统梳理了三类核心工具(会话编排器、终端增强插件、监控与UI工具)的工作原理,并详细介绍了Claude Code生态(Maniple、claude-tmux)和OpenCode生态(@runecraft/spawn、opencode-pty等)的具体配置与使用方式。

vortex5的博客 1638

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

AI Agent + 大数据 + RAG:电商用户行为分析的低成本落地

本文探讨了AIAgent与大数据技术在电商用户行为分析中的应用。通过构建"数据采集-实时分析-智能决策"的全自治链路,解决了传统大数据分析的三大痛点:人工建模周期长、实时性不足和决策闭环断裂。系统采用Flink+Spark处理实时数据,结合基于DeepSeek-V3.1的AIAgent实现智能分析,并通过飞书RAG模块动态获取业务知识。落地效果显示,分析响应时间从2-3天缩短至30秒,推荐转化率提升134%,验证了该方案在提升电商数据决策效率方面的显著价值。

想~ai抽 1617

《Linux/Unix设计思想》随笔

Unix 哲学的几条准则看似简单。事实上,它们简单到会容易使人们忽略其 重要性。这就是它们颇具欺骗性的地方。其实,简单的外表下掩盖着一个事实: 如果人们能够始终如一地贯彻它们,这些准则可是非常行之有效的。 以下这份清单会让你对 Unix 哲学的准则有初步的认识。本书其余部分则会 帮助你理解它们的重要性。 (1) 小即是美。相对于同类庞然大物,小巧的事物有着无可比拟的巨大优势。 其中一点就是它...

花神的博客 1019

从PWM到正弦波:RC低通滤波器的魔法转换之旅

本文详细介绍了如何利用RC低通滤波器将STM32F103生成的PWM信号转换为高质量正弦波的技术原理与实践方法。通过分析滤波器设计、参数计算、硬件实现及Proteus仿真验证,为嵌入式开发者提供了一套完整的PWM转正弦波解决方案,适用于电机控制、音频信号生成等多种应用场景。

jupi8的博客 380

Linux/Unix设计思想

Mike Gancarz 1.Unix开发基于Multics分时操作系统 2.NIH(Not invented here,非我发明) 3.GPL:GUN公共授权协议,适用于软件的法律协议。开源 4.Unix哲学: 1)小即是美:易理解、维护、低消耗系统资源、易于其他工具结合 2)让每一个程序制作好一件事 3)尽快建立原型(prototyping):”第三个系统”概念 4)舍高效而取可移植性 5)使用纯文本文件来存储数据:二进制严格禁止 6)充分利用软件的杠杆效应:借用代码模块...

weixin_58088629的博客 394

【06】C#入门到精通——C# 多个 .cs文件项目 同一项目下添加多个 .cs文件

本文介绍了如何将C#游戏开发中的代码从单个.cs文件拆分到多个.cs文件中,以提升代码的可维护性和可读性。文章演示了在Visual Studio中创建Hero类和ShowInfo类的具体步骤:通过右键项目名添加新建类,将原有代码分别剪切到对应的类文件中,并自动生成命名空间。拆分后需要在Program.cs中通过"using"指令引用这些类,最后通过运行测试验证功能正常。这种模块化代码组织方式能有效解决单一文件代码过长、结构混乱的问题。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1135

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

《LINUX UNIX设计思想》

1. UNIX哲学,集思广益的智慧;一个人加上一百万人的智慧 ;Unix演化过程:汇编-B语言-C语言。 2. Unix哲学概述:小即是美;让每一个程序只做好一件事情;代码重用;     着眼于小处,只做好一件事!!!! 3. 永远都没有做完的软件,只有发布的软件。    尽快建立原型。我们根本就没有时间来浪费! 4. 使用最频繁地计算机才最强大!     不要花太多的时间去优化程序。

混沌的博客 1613

C#实现鼠标点击任意绝对位置(附完整源码)

C#实现鼠标点击任意绝对位置(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 476

经典文摘:Linux/Unix设计思想

Mike Gancarz是一位技术布道者。他是Linux/Unix最主要的倡导者之一,也是最早开发X Window System的先驱。他把一些在Unix/Linux社区里口口相传的哲学思想总结提炼,写成了《Linux and the UNIX Philosophy》这样一本完整的Unix/Linux哲学理论书籍。他在书中提出了九条训格之言:      一、小即是美      二、让每一个程序只做...

我心依旧,明月长歌 1501

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《Linux/Unix设计思想》读书笔记与感想

英文名:Linux and the Unix Philosophy 作者:Mike Gancarz    翻译:漆渀(ben) NIH - Not Invented Here 准则1:小既是美                                                        SMALL 易于理解、维护消耗的系统资源较少易于

fengjie87的专栏 680

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于Linux/Unix系统的设计思想:没有消息就是最好的消息

在使用Unix系统时 假如该目录为空 那么输入ls命令,它只会返回命令提示符 [hacker4444@localhost /]$ ls [hacker4444@localhost /]$ 很多人不明白,空目录为什么不能这样显示呢? [hacker4444@localhost /]$ ls [hacker4444@localhost /]$ DIRECTORY : NO ...

aaaa8470852的博客 1362

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《Linux/Unix设计思想:软件的杠杆效应》读后感

《Linux/Unix设计思想:软件的杠杆效应》读后感优快云送一本书给我,本来我是选择Python相关的书,可惜没有货了,优快云的美女给我一个目录列表,我选择了这本《Linux/Unix设计思想》,当我读到下面这个故事时,深深地打动了我,让我不断反思,久久不能入睡,下面将这个故事分享如下: 我的姑姑却在一年时间内,卖出了价值将近一百万美元的特百惠产品。当我听说这件事情时,我首先想到的就是:“这

大坡3D软件开发 2998

“Linux/Unix设计思想”手记

说明:本笔记来自于"Linux/Unix设计思想" unix哲学准则 小即是美 让每一个程序只做好一件事情 尽快建立原型 舍高效而取可移植性 适用纯文本来存储数据 充分利用软件的杠杆效应 使用shell脚本来提高杠杆效用和可移植性 避免强制性的用户界面 让每一个程序都成为过滤器 unix 哲学10条次...

lzc721的博客 283

linux 设计思想

small 小即是美 1thing 让每一个程序只做好一件事 proto 尽快建立原型 port 舍高效而取可移植性 flat 使用纯文本文件来使用数据 resue 充分利用软件的杆杠效应 script 使用shell脚本来提高杆杠效应和可移植性 nocui 避免那些强制的用户界面 filter 让每一个程序都成为过滤器 custom...

dingxingmei的专栏 1593

linux/unix设计思想

看了《linux/unix设计思想》这本书,觉得书的大部分内容都闲扯的太远了,以下简单的总结下本书的核心,帮助大家节省时间和金钱。 linux/unix设计思想: 1) 程序应该小而专一,程序应该尽量的小,且只专注于一件事上,不要开发那些看起来有用但是90%的情况都用不到的特性;  2) 程序不只要考虑性能, 程序的可移植性更重要,shell和perl,python等脚本相比c有更好的移植性; 3...

weixin_34397291的博客 229

linux编程思想

量变产生质变。          无论我现在是什么ii

u011367978的专栏 1393

Linux/Unix设计思想(Linux and the Unix Philosophy)

小即是美 尽快建立原型 采用短周期迭代式反馈的开发模式 优先考虑程序和数据的可移植性(采用文本方式存储数据的原因) 应保存一些自己编写的常用的工具集,里面包括一些程序和脚本。在一台机器到另一台机器,一个项目到另一个项目,一份工作到另一份工作的时候始终如影随形。 充分利用软件的杠杆效应 避免NIH综合征,充分利用他人已有的成果 尽量利用工具实现自动化 程序不创建数据,只处理数据,因此

Android系统开发-VR OS-系统安全隐私 636

《Linux/unix设计思想》—读后总结

这本书并没有在操作系统实现上下功夫去讲,而是讲了操作系统的道,颇有中国道家一般思想。至于对我如何去总结呢?我想主要是记录一下对自己感触最深的几点就行。因为整本书都是总结,经验之谈。有很多东西,它很难讲清楚,更没法用精确的数据分析得出结论,至此,经验变得越发的重要。     首先,系统设计思想给我们讲了一些计算机世界的一些思维。系统是个大程序。大程序的思维和处理,给了我们很多的启发。”程序思维”,

u010717334的专栏 1334
上一篇: [举重若轻]gnome3远程桌面nx安装
下一篇: [沧海拾遗]java并发之CountDownLatch、Semaphore和CyclicBarrier
yanhandle
博客等级 码龄15年 19粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值