UNIX/LINUX哲学

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Longyu_wlz/article/details/56665249

做事之前最好想好该怎么做,最好有个核心的思想指导。我暂且将这本篇文章中所要描述的思想称为(UNIX/LINUX的哲学),不管怎样说,我认为它是至关重要的,你至少要以这种哲学来作为你使用UNIX/LINUX的座右铭。

                               UNIX------1970

一:UNIX是简单的,拥有简单的美

UNIX是由一个失败的OS项目(Multics)发展出来的。UNIX与Multics占据着两个极端——复杂与简单,而这两个极端造成的结果是——Multics夭折,UNIX从天而降。简单与复杂真是值得探讨呀!为什么简单的UNIX取得了成功?而功能强大、结构复杂的Multics却最终失败?究其原因,还是思想在作怪。你要明白的是:每一个行业,当你的技术水平达到巅峰时,你会发现其实真正的技术并不是依赖于能力,它更多的是依赖创造力,而创造力主要依赖人的思想。因此你可以发现,思想决定高度。所以在你决定享受UNIX的乐趣之前,你必须抛弃自己沉重的思想,你必须慢慢去体会简单之美。简单就是UNIX魅力四射的一面,也正因为简单, UNIX才取得了成功!

二:UNIX是在最恶劣的环境下产生的强者

不同的时代有不同的特征,不同的时代也有不同的局限性。江山代有才人出,各领风骚数百年。Unix最早是在PDP-7上展露风采的。下面是历史介绍,我只翻译重要的!
原文来自于
       http://www.linfo.org/pdp-7.html

The PDP-7 and the Birth of UNIX(PDP-7与UNIX的诞生)

第一版的UNIX是托马斯在贝尔实验室用汇编语言写的,此版UNIX在PDP-7上跑。星际旅行游戏的鼓励使得托马斯自信在PDP-7上跑个UNIX第一版是可以实现的,托马斯自信的想着——我的UNIX是简单的!既然都能跑游戏,那跑个简单的UNIX应该不在话下吧!结局竟然真的出人意料,到底是PDP-7给力还是UNIX给力?反正真的能够跑起来,好了UNIX就这样简单的诞生了。UNIX团队紧追硬件潮流,花重金买了当年(1970)刚刚发布的PDP-11(土豪金),还别说这个土豪金真的成了唯一。在这里我顺便提一下UNIX上计算时间的一个很重要的概念:

Unix时间戳(Unix Epoch、Unix time、POSIX time 、Unix timestamp)
Unix Epoch是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
UNIX时间戳的0按照ISO 8601规范为:1970-01-01T00:00:00Z.
一个小时表示为UNIX时间戳格式为:3600秒
一天表示为UNIX时间戳为86400秒,闰秒不计算。

好了,概念简单介绍完毕。

In 1969 Ken Thompson wrote the first version of UNIX in assembly language using an otherwise little-used PDP-7 at Bell Labs, the research arm of AT&T, the former U.S. telecommunications monopoly. One of the factors that made this possible was the proficiency that he had gained with that system while writing an early computer game called Space Travel. This game, incidentally, became one of the first programs to run on UNIX. However, the PDP-7 was already obsolete when it was used for creating the first version of UNIX, and thus in 1970 the UNIX group proposed purchasing a PDP-11 for $65,000. The PDP-11, which had just been launched that year, incorporated some important advances (including greater ease of programming), and it became a highly successful and influential model. It was DEC’s first and only 16-bit system.

1971年UNIX团队用他们的土豪金PDP-11重写了UNIX系统,这次的代码是用高级语言——C语言码出来的,因为是高级语言,避免了与硬件的直接冲突,所以可移植性大大增强。那么就有人问了——C语言是怎么来的?简单的说C语言是UNIX团队在简单的A、B、C、D?(会不会有?)的改进中创造出来的虐狗神器。不过神器终归是神器,能经住考验,阴魂不散的虐惨了我们一代代的码农!

In 1971, the group used their new PDP-11 to rewrite UNIX in a
high-level language, instead of its original assembly language, so that it could more easily be ported to (i.e., transferred to) other
types of computers. They briefly tried using Fortran before creating
their own language based on BCPL (Basic Combined Programming
Language), which they called B. They then extended B to produce the
C language, which is still in widespread use today, after which they rewrote the UNIX source code in C. This made it easier to port UNIX to
run on new hardware, as all that was needed was a C compiler to
convert its C source code into the machine code for the specific type
of computer.

PDP这有限的硬件水平确实把Thompson 和 Ritchie狂虐了千百遍,但是他们两个真的太大神,他们的创造力很到位,他们突破了硬件的局限性,通过不同的聪明的策略来让UNIX更简单。少写点代码吧!偷个懒吧!多写点小工具吧!UNIX要更简单啊!UNIX要走基层路线啊! 好吧,Thompson 和 Ritchie就在这种强大的逼迫下进行了简单的思考——由大化小,由小化更小,由特殊到一般,由复杂到简单。争取少写点代码——存储空间有限啊!争取复用——能省则省!争取抽象——所有的设备都是文件。好了,UNIX的强大就是这样被被逼出来的,你以为是怎么来的?下面的历史就不讲了,没多大意思。

The severe limitations of the PDP series and other computers of the
day forced Thompson and Ritchie to be ruthlessly efficient in their
designs for UNIX and C, as was the case with the other operating
systems and languages of that era (although those other systems and
languages have long since faded from use). Despite the fact that
memory sizes, processor speeds, data access times, storage capacities
and display capabilities have grown vastly greater than could have
even been imagined at that time, this extreme efficiency has continued
to serve Unix-like operating systems (i.e., the descendants and
clones of the original UNIX) well and is widely acknowledged to be an
important factor in the enduring and growing success of such systems.
The PDP-15, which was shipped in 1970, was DEC’s final 18-bit
computer, and it was the only one that was implemented with integrated
circuits rather than discrete components. It was the largest selling
of all the PDP models, with more than 400 units ordered in just the
first eight months of production.

结束对历史的介绍,历史总是很烦,但要掌握有些概念还必须了解历史不可!

乱世出英雄!UNIX在硬件资源匮乏的年代借以卓越的思想,超前的解决了硬件局限性的问题,那么,既然能吃苦,肯定能享福了,因此UNIX的寿命会更长。从这里我们可以看出逼迫的重要性,可以看出UNIX这种操作系统必须走简单之道,而事实是简单之道其实最容易获得成功。UNIX就是一个很简单的例子。

三:小工具的组合!依赖决定强大!

在那个资源匮乏的年代,我们只有一起扛起枪,共同为着生活而牺牲。UNIX的强大之处在于其拥有数量巨大的高效的小工具,UNIX通过组合这些小工具来完成大任务。通配符、正则表达式,这些高效的技术极大的简化了UNIX对任务的处理。在UNIX上完成任务,更多的是构思小工具的组合,构思建立一条具有怎样的依赖性的命令,构思怎样简化对问题的处理,这点造就了UNIX的强大!

四:UNIX要解决的是不同种类的问题,而不是具体的某个

UNIX的举一反三能力是极强的。UNIX执着于解决大部分人会遇到的问题,执着于解决一般性的问题。因此,你会发现UNIX的命令通用性非常强。这也就启示你在解决问题时尽量想着去解决与眼前问题相关的一类问题,不仅要解决自己的问题,还要想到去帮助别人解决问题。这是UNIX的胸怀,这也应该是你向UNIX学习的地方。

五:manual--man info

UNIX提供了丰富的帮助文档,以助你更方便的学习。哪里不会,man哪里,哪里不会,info哪里,你说方便不方便呢?从这点来看,UNIX是希望所有使用它的用户都能成为大神,都能拥有足够的能力确保自己执行的命令的正确性。关于这个正确性,不得不提的是“永远得到提示 与 永远不提示的论战”。到底哪个好呢?你可以去思考思考。

六:标准与规范——一统天下!

用有限创造无限。规范并非是束缚,规范只为更好的成长。
说了这么多UNIX,我自己都有些烦了,关于标准还是留给LINUX吧!

                          LINUX--1991

追溯历史真的是件很好玩的事,一不小心就写了这么多,不过下面还有,不要遗漏。

LINUX最早可以追溯到MINIX时代,而MINIX是怎样产生的呢?MINIX是受UNIX闭源所迫,老教授被逼无奈,好了,你不让我用我就自己写一个。就这样写出了MINIX,用MINIX来代替UNIX,继续传授操作系统知识。MINIX也在不断的传播,当林纳斯-托瓦兹使用了MINIX之后,他很难接受这样的系统,他于是抱着玩玩的心态自己写内核,结果一玩还真的玩的太好了,玩出了LINUX。由此可见人生确实要多玩玩,多逼逼自己,说不定就成功了呢!

插入一则历史消息:

1983年,AT&T发布了Unix最新版system
V,这是一个商业化版本,付费才能使用,并且不得传播源码。这个决定对BSD构成了限制,为了减少纠纷,伯克利分校规定,BSD本身依然保持免费,但是只能提供给持有AT&T源码许可的公司。不过,与此同时,伯克利的师生也开始着手另一项工作:将AT&T的专有代码从BSD中逐渐去除。

历史消息到此结束。

关于BSD我就不多说了。你只要知道FreeBSD是LINUX发行版之一就行。
其实1983年发生了好几件大事,不过最大的事还是AT&T收回UNIX版权。当这件大事发生后,真是群情激愤啊!其中最著名的就是Richard Stallman在1983年9月27日公开发起GNU计划这件事,可谓是开天辟地,开开源先河!GUN计划的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称Copyleft)概念。

其实这件事很明显就是理查德-斯托曼在向UNIX挑战。挑战的历史成果如下:

  到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs。GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU开发的编程语言编译器。以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)。

  因此说林纳斯-托瓦兹是站在巨人的肩膀上,站在开源的肩膀上,LINUX的起点就是这么高。
  可以说,LINUX的成功之处在于开源的力量,在于社区的强大,在于虚拟团队的强大。
  其实LINUX的哲学是与UNIX相同的,在这里也就不赘述了。
好了!对于UNIX/LINUX哲学的介绍就到此为止!以此文作为指导思想,立文为据!
                   
                 龙瑜

猜你喜欢

转载自blog.csdn.net/Longyu_wlz/article/details/56665249
今日推荐