专栏首页技术博文Linux哲学思想--基本法则

Linux哲学思想--基本法则

1、一切皆文件;

2、单一目的的小程序;

3、组合小程序完成复杂任务;

4、文本文件保存配置信息;

5、尽量避免捕获用户接口;

6、提供机制,而非策略。

自从Linux一诞生就注定了其成为经典的命运。 在 这个日异强调知识产权的年代,源代码仅仅只掌握在很少一部分人,只有他们参与其研发过程,这对于商 品化一种软件产品无疑是一件好事情。但是它却限制了大 多数想一探源码究竟的爱好者求索的步伐。开放源代码 给众多爱好者带来了福音,它让我们看到了一个全球协作的力量。不论你身在何处,只要你的PC可以连接上 Internet,那么你就可以随时随地的在Linux社区中提出自己的任何困惑以及对源码进行修改的想法或改进其存在的bug。开源让我们得到了意外的惊喜,它已经在当今社会越来越重要了。Linux是自由软件,当然它不是无限自由的,之所以它使用GNU的General Public License作为限制,是为了让更多的人享受这种修改和其他权利,是为了更好的实现最大自由化。Linux kernel在经过不断的发展过程中,从最初的很小容量的操作方式成为了炙手可热的操作系统,不得不承认,内核源代码的共享和互联网上的协作开发是其走向 成功的重要途径。在英文单词中,“share”是一个很重要的词语,分享技术,分享每个人对内核的认识和修改,这是Microsoft所不能达到的高度。 在这个世界上,自由是我们要追求的,当然,software也不例外。 在Linux 中有一经典“只提供机制而非策略”。从笼统意义上讲,所谓机制就是“提供什么功能”;策略就是“实现什么功能”。这种独特的设计思想为设计者提供了更大的 空间使其更好的实现它。在中国百科全书中这样一段关于军事的文字,“将能而君不御者胜”(将有才同时君王不统御的话,战争必胜)。其实,机制就好比不盲目 指挥的“君主”,他只发出他要达到怎样的目的诏令,却不给出任何具体行为,任凭将军们自行决定。 在Linux 内核中有这样一个概念,它是这样描述的“每个线程都在等待其他线程持有的锁,但是绝没有一个线程会释放它们一开始就持有的锁,所以没有任何锁会释放后被其 他线程使用。这种类型的死锁叫做致命拥抱(deadly embrace)。”其实这段描述语言的例子在我们现实中 是经常存在的。例如:有甲乙两人,一开始甲有一个苹果,乙有一个橘子(姑且这样比喻),这时甲非常想要一个橘子,而乙非常想要一个苹果(将这种“非常想 要”夸张的理解为如果得不到各自所需要的水果,两人可能会die),但同时两人又都不想放弃其已拥有的水果 , 结果两人只能同时终结自己的“完美人生”。人 何尝不是如此呢?握着手中已有的东西,又想得到新的东西,却又不肯放弃自己已得的东西,最后的结果只能是“一无所有”。我一直相信,世界是处在一种守恒的 状态,得到的和失去的是成正比的。可能你正在经历失败,但是你得到了教训和经验;可能你正处于人生的失落的状态,但是你却得到前所未有的机会去认真审慎自 己;可能你的人生是非常不幸的人,但是你却成为了最有故事的人。我从不相信有什么好运,因为幸运只能是一时的,而非一世。 如果有一天你有机会去看看Linux在处理好多问题方面时(如:关于时间片),那种巧妙的解决方法和所蕴涵的哲学思想,你肯定会深深喜欢上她的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 开启phpMyAdmin高级功能的设置方法

    开启phpMyAdmin高级功能的设置方法 注:本文基于phpMyAdmin5.5 登录到phpMyAdmin以后,在主界面的底部,我们发现两条提示信息: 一...

    joshua317
  • php面向对象中static静态属性和静态方法的调用

    这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例...

    joshua317
  • 浅谈开启magic_quotes_gpc后的sql注入攻与防

    通过启用php.ini配置文件中的相关选项,就可以将大部分想利用SQL注入漏洞的骇客拒绝于门外。        开启magic_quotes_gpc=on之后,...

    joshua317
  • spring boot2.0实现对quartz的集成

    星痕
  • 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇)

    OPML 全称是 Outline Processor Markup Language ,即 大纲处理标记语言。目前流行于收集博客的 RSS 源,便于用户转移自己...

    walterlv
  • 18.路由的嵌套

    玩蛇的胖纸
  • 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)

       前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib。在这个组件介绍系列中,只为简单的介绍...

    彭泽0902
  • Vue 08.webpack中使用.vue组件

    注意:不能使用npm下载,需要从 github 上下载现成的包并解压,然后拷贝到项目中使用

    LittlePanger
  • electron桌面应用开发(二)

    今天接着上一篇electron的文章往下写。操作仍然是在win10下的powershell下进行的。主要记录element-ui的安装与使用。

    efonfighting
  • Spring Boot 整合 Shiro ,两种方式全总结!

    在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。

    用户4143945

扫码关注云+社区

领取腾讯云代金券