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在处理好多问题方面时(如:关于时间片),那种巧妙的解决方法和所蕴涵的哲学思想,你肯定会深深喜欢上她的。

时间: 2024-10-29 03:30:46

Linux哲学思想--基本法则的相关文章

linux哲学思想

linux哲学思想 1.一切皆为文件 linux将所有的对象几乎都抽象为文件,无论是硬件设备.还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作(read();write();delete();等等)接口,同时也可进一步提高内核控制源码的精简程度. 2.程序的功能绝对单一性 一个程序只是完成一项功能,是程序功能更好的封装,更好地能以积木方式构建健壮.稳定.可靠的复杂功能程序. 3.避免交互性 以脚本编程的方式实现功能管控的自动化.避免交互介入,影响自动化程度. 4.配置管理文本化 用文本

1.2 linux哲学思想

linux哲学思想:自由思想目的单一的小程序组成,通常一个复杂的系统是有多个下程序柔和而成,尤其是我们后来配置服务的时候,所以我们要做的就是组合小程序,完成复杂任务,需要我们手动完成一切皆文件,甚至连设备的访问入口都是文件,后面的linux目录结构的时候会讲述每个目录下方的都是什么文件,甚至这些访问入口对应的是什么文件,这些文件时如何创建的,等等尽量避免捕获用户接口,就是尽量避免和用户进行交互,一个用户发起一个进程之后,一般来说,不用客户在做别的什么操作,输入任何信息,比如输入ls时候就是直接输

Linux目录简介及哲学思想

/顶级目录自引导 /root 超级用户家目录 /sys存放系统硬件信息 /opt 第三方软件安装目录 /proc  存放进程的文件目录,是虚拟文件夹不在硬盘中存放/sbin  二进制文件目录/usr 存放二进制程序和一些系统相关的文件 /home   存放普通用户家目录/tmp 存放临时数据 /dev 存放设备文件 /mnt  临时挂载目录 /lib64   存放库文件/etc 存放一些配置文件 /bin  二进制文件目录 /boot 存放引导操作系统的文件 还有内核(kernel) /medi

【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构

从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了linux主流的发行版,说明了不同的发行版之间的区别和linux的哲学思想,列出了linux发行版的基础目录名称命名法则及功能规定: 基础命令:详细介绍一些基础的命令,并就如何在linux系统上获取命令的帮助做出了解释. 一.计算机的组成及其功能 计算机主要是由5个部分组成 控制器(Control)

LINUX初学之哲学思想和文件系统——3.4、3.5笔记

经过3.4.3.5两天学习对LINUX有初步印象. 1.程序一般包括四种文件: ①二进制文件即可执行文件:在windows中的应用程序文件如.exe和.msi在Linux中的格式是ELF格式: ②头文件/库文件:在windows中的.dll(dynamic linced library)动态链接库在Linux中so9shared object)共享库.ko(kenel object)内核库.a静态库: ③帮助文件:即使用说明书: ④配置文件 2.命令的格式 一般情况下的格式; COMMAND O

linux的哲学思想

linux的哲学思想: 1.一切皆文件(包括硬件) 2.联合多个程序进行一个复杂的任务 3.跟用户界面无关 4.以文本的形式保存配置数据 解释: 一切皆文件(包括硬件) 在linux系统中,所有的字符设备,块设备,目录等都是以文件的形式存在. 2.联合多个程序进行一个复杂的任务 可以同时同事开启多个程序看来完成一个复杂的任务 3.跟用户界面无关 这个跟windows区别很大,windows操作过程中出了问题,我们大多数是关机重启,或者是卸载重新安装,但是linux中是不需要这样做的,当打开一个图

Liunx的主流发行版及Linux的哲学思想

Liunx三大发行版:包括Redhat.slackware.Debian 1. Redhat分支: 1.1.Redhat Enterprise Liunx(企业版). 1.1.1. Centos为Redhat Enterprise Liunx的二次发行版 1.2.Fedora Core 2.slackware分支: 2.1.S.U.S.E 2.1.1.SLES(企业版) 2.1.2.openSUSE(个人版) 3.Debian分支: 3.1.ubuntu 3.1.1.mint为ubuntu的二次

C++构造函数的自动调用(调用一个父类的构造函数,有显性调用最好,否则就默认调用无参数的构造函数)——哲学思想:不调用怎么初始化父类的成员数据和VMT?

我总是记不住构造函数的特点,关键还是没有领会那个哲学思想:父类的构造函数一方面要初始化它自己的成员数据,另一方面也要建立它自己的VMT呀!心里默念一百遍:一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VM

Maven的功用所引发的哲学思想

我们知道Maven有三个仓库 本地仓库 ~/.m2/repository/ 每一个用户也可以拥有一个本地仓库 远程仓库 中央仓库:Maven默认的远程仓库 http://repo1.maven.org/maven2 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库 镜像:用来替代中央仓库,速度一般比中央仓库快 这些仓库里面装了些什么呢? 主要是一些打包的东西,.pom文件,和Maven插件. 然而Maven除了强大的继承和依赖 来控制jar包的管理以外,他还有生命周期:编译.清理.测试.打包