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在处理好多问题方面时(如:关于时间片),那种巧妙的解决方法和所蕴涵的哲学思想,你肯定会深深喜欢上她的。
Linux哲学思想--基本法则的更多相关文章
- linux哲学思想
linux哲学思想 1.一切皆为文件 linux将所有的对象几乎都抽象为文件,无论是硬件设备.还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作(read();write();delete() ...
- 【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构(FHS)
从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了 ...
- Linux的哲学思想
1.一切皆文件:2.单一目的的小程序:3.组合小程序完成复杂任务:4.文本文件保存配置信息:5.尽量避免捕获用户接口:6.提供机制,而非策略. 说到底Linux的哲学思想在于方便和更好的管理后台,不同 ...
- CentOS7.6操作系统安装实例以及Linux版本、哲学思想介绍
Linux起源1991年的10月5日,Torvalds在comp.os.minix新闻组上发布消息,正式向外宣布他自行编写的完全自由免费的内核诞生(Freeminix-like kernel sour ...
- (9)Linux的哲学思想及文件概念
一.Linux的哲学思想 1. 一切皆文件 把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义: 对文件的操作有:open,read,write,close,delet ...
- Linux发行版--发行版之间的关系--哲学思想--目录的命名规则及用途
作业2 点此链接查看centos7安装 点此链接查看Ubuntu安装 点此链接查看作业3.5 点此链接查看作业7.8.9 作业1.4.6 Linux发行版--发行版之间的关系 1.Linux是什么 L ...
- 说一下自己对于 Linux 哲学的理解
查阅了一些资料,官方的哲学思想貌似是: 一切皆文件 由众多单一目的的小程序,一个程序只实现一个功能,多个程序组合完成复杂任务 文本文件保存配置信息 尽量避免与用户交互 什么,你问我的理解?哲学思想?E ...
- Maven的功用所引发的哲学思想
我们知道Maven有三个仓库 本地仓库 ~/.m2/repository/ 每一个用户也可以拥有一个本地仓库 远程仓库 中央仓库:Maven默认的远程仓库 http://repo1.maven.org ...
- C++构造函数的自动调用(调用一个父类的构造函数,有显性调用最好,否则就默认调用无参数的构造函数)——哲学思想:不调用怎么初始化父类的成员数据和VMT?
我总是记不住构造函数的特点,关键还是没有领会那个哲学思想:父类的构造函数一方面要初始化它自己的成员数据,另一方面也要建立它自己的VMT呀!心里默念一百遍:一定调用父类构造函数,一定调用父类构造函数,一 ...
随机推荐
- WebService 概念和工作原理(一)
今天我们一起来学习WebService.它到底是干啥用的? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集) ...
- 可空类型(Nullable<T>)及其引出的关于explicit、implicit的使用
问题一:Nullable<T>可赋值为null 先看两行C#代码 int? i1 = null; int? i2 = new int?(); int? 即Nullable<int&g ...
- UIBezierPath-完善曲线
override func draw(_ rect: CGRect) { let path = UIBezierPath() // 起点 path.move(to: CGPoint(x: , y: ) ...
- android 自定义控件——(二)圆形按钮,圆形View
----------------------------------↓↓圆形按钮,圆形View(源代码下有属性解释)↓↓---------------------------------------- ...
- 转载文章——Hadoop学习
转载地址:http://www.iteye.com/blogs/subjects/zy19982004?page=2 一.Hadoop社区版和发行版 社区版:我们把Apache社区一直开发的Hadoo ...
- c#下volatile关键字
volatile多用于多线程的环境,当一个变量定义为volatile时,读取这个变量的值时候每次都是从momery里面读取而不是从cache读.这样做是为了保证读取该变量的信息都是最新的,而无论其 ...
- css之定位
定位有三种,分别是相对定位 position:relative; .绝对定位 position:absolute; .固定定位 position:fixed; 相对定位 相对定位,就是微调元素位置的, ...
- Unsupported major.minor version 51.0错误
错误原因:用jdk7编译的class文件放到基于jdk6运行在tomcat之中,就会报这个错 解决方法:项目------>右键------>属性------>Java Compile ...
- 关于sql中in 和 exists 的效率问题,in真的效率低吗
原文: http://www.cnblogs.com/AdamLee/p/5054674.html 在网上看到很多关于sql中使用in效率低的问题,于是自己做了测试来验证是否是众人说的那样. 群众: ...
- MySQL 之 Metadata Locking 研究
MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schem ...