UNIX/LINUX 哲学

6 篇文章 0 订阅

UNIX/LINUX 哲学

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

你要明白的每一个行业,当你的技术水平达到巅峰时,你会发现其实真正的技术并不是依赖
于能力,它更多的是依赖创造力,而创造力则主要依赖人的思想。因此你可以发现,思想决
定高度。所以在你决定享受 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 应该不在话下吧!
确实如他所想,UNIX 在 PDP-7 上能够跑起来。UNIX 就这样简单的诞生了!UNIX 团队紧
追硬件潮流,花重金买了当年 (1970) 刚刚发布的 PDP-11( 土豪金 ),还别说这个土豪金真
的成了唯一!

在这里我顺便提一下 UNIX 上计算时间的一个很重要的概念——Epoch 时间。

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 秒,闰秒不计算。

1971 年 UNIX 团队用他们的土豪金 PDP-11 重写了 UNIX 系统。这次的代码是用高级语言——C
语言码出来的。因为是高级语言,屏蔽了汇编层不同指令的差异,所以可移植性大大增强。

可能有人会问——C 语言是怎么来的?

简单的说 C 语言是 UNIX 团队在简单的 A 、B、C、D(会不会有?)的改进中创造出来的
虐狗神器。不过神器终归是神器,能经住考验,阴魂不散的虐惨了一代代的码农!

实际上 PDP 有限的硬件水平确实把 Thompson 和 Ritchie 狂虐了千百遍,但是他们两个真的太
大神。他们通过采用各种的聪明的策略来让 UNIX 更简单。少写点代码吧!偷个懒吧!多写点小
工具吧!UNIX 要更简单啊! 好吧,Thompson 和 Ritchie 就在这种有限的硬件条件下下进行了
深刻的思考——由大化小,由小化更小,由特殊到一般,由复杂到简单。争取少写点代码——存
储空间有限啊!争取复用——能省则省!争取抽象——所有的设备都是文件。好了,UNIX 的强
大就是这样被被逼出来的,你以为是怎么来的?

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

从上文的描述中我们可以了解到 UNIX 在硬件资源匮乏的年代借以卓越的思想,超前的解决了硬
件局限性的问题。从这里我们可以看出逼迫的重要性,可以看出 UNIX 这种操作系统所走的简单
之道。而事实是简单之道其实最容易获得成功。UNIX 就是一个很具体的例子。

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

UNIX 的强大之处在于其拥有数量巨大且高效的小工具,每种工具有自己独立的功能。在 使用
UNIX 时,用户主要通过组合这些小工具来完成大任务。通配符、正则表达式,这些高效的技
术也极大的简化了 UNIX 对任务的处理。

在 UNIX上完成任务,更多的是构思小工具的组合,构思建立一条依赖多个工具一起执行的命
令,构思怎样简化对问题的处理,这点造就了 UNIX 的强大!

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

UNIX 的举一反三能力是极强的。UNIX 执着于解决大部分人会遇到的问题,执着于解决一般
性的问题。因此,你会发现 UNIX 的命令通用性非常强。这也就启示你在解决问题时尽量想
着去解决与眼前问题相关的一类问题。不仅要解决自己的问题,还要想到这个问题可能放大
为一类问题,尽可能的编写解决一类问题的程序,这样既方便了自己,也能够帮助到他人。

manual--man info

UNIX 提供了丰富的帮助文档,以助你更方便的学习。

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

说了这么多 UNIX, 我自己都有些烦了,关于标准还是留给 LINUX 吧!

LINUX 的起源

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 我就不多说了。其实 1983 年发生了好几件大事,最大的事要属 AT&T 收回 UNIX
版权。当这件大事发生后,真是群情激愤啊!其中最著名的就是 Richard Stallman 在 1983
年 9 月 27 日公开发起 GNU 计划这件事。可谓是开天辟地,开开源先河!

GNU 计划的目标是创建一套完全自由的操作系统。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 系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核。

LINUX 的快速发展离不开 GUN 计划。可以说,LINUX 的成功之处在于开源的力量,在于社
区的强大,在于虚拟团队的强大。

好了!对于 UNIX/LINUX 哲学的介绍就到此为止!以此文作为指导思想,立文为据!
                   
                 龙瑜

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值