时间总是过得那么快,如流水一般哗啦啦地就淌走了一大堆!周遭事事沧桑变迁,喧哗或耳语中流传的故事已渐模糊,转眼间2014就来了。泰坦尼克号撞冰山都100+年了,同名的电影也改成3D的了,只是你想看的全都给剪没啦。如果你是未来的考古学家,我可以自豪地告诉你,我们这个年代电脑早就飞进了平常百姓家。 千万不要以为我在闲扯,Linux与泰坦尼克号这个倒霉蛋是有着千丝万缕的联系的。具体有什么联系,咱们按下不表,在后面的章节中还会有十分精彩的描述。 很多人会认为Linux是一个年轻的操作系统,至少我本人在很长一段时间内都是这么认为的。因为它总能紧跟时代潮流,别人有什么它有什么,USB、WiFi、SSD…… 突然发现,原来岁月是最大的小偷,在我不经意间,将我的很多东西都已经悄悄地偷走,青春、激情、自信……我使用Linux已经超过了十五年,而且到本书截稿时,Linux已经整整22周岁了。 对于计算机产业这个新技术日新月异的行当来说,拥有22年历史且在操作上没有什么变化的系统不能不算老旧。可是Linux并不是原创,亦或我们说Linux“抄袭”了别人也不算过分。而正是因为它“抄袭”的对象——Unix更是足够Niubility的,所以Linux也被称之为类Unix系统。 Unix自1969年诞生至今,已经40多年的历史了。然而,其基本的操作方式和一些理论基础并没有太大改变,而且最终形成一个强大的Unix文化(本书后面的章节将做详细介绍)。Linux将这股文化深深地融入到了自己的内心深处,也使得它的很多行为表现与那个40年前所诞生的系统没有太大差别。 是的,融于心而表于行,这也正是本章的主题。Linux的用法实际上已经超越了其自身的生命周期,几乎可以说是演绎在现代科技世界中的一部穿越大戏。跟我回到你出生之前吧!先说明,接下来的所有内容都是基于文本命令行的,图形界面下如何操作是显而易见的,我们再啰嗦就低估了大家的智商。 2.1 多用户多任务分时操作系统 世界上第一台电脑是没有操作系统的,主要是因为太慢而运行不了。由于晶体管的发明和微程序概念的应用,使得电脑从机械装置变成了真正的电子产品。这样,系统管理工具和简化硬件操作流程的程序很快就出现了,这成为操作系统的滥觞。随着电脑速度的提升,充分利用计算资源这种“节能减排”的需求呼之欲出,很快就有了批处理操作系统。但是批处理问题很多,提交的任务不再受到控制,这显然会让很多人十分恼火。如何能够让人与电脑直接互动又可以“节能减排”,成为了那个年代的热门话题,那大约是在20世纪60年代初。 很快就有新证据证明人类是这个星球上最聪明的生物,因为有人(具体是谁搞不清了)提出了分时系统的概念:将大型电脑珍贵的时间资源适当分配在所有使用者的身上,让所有使用者都有独占整部机器的感觉。依据这个想法,通用电气、麻省理工学院和贝尔实验室合伙搞起了Multics项目,这是在当时看来最靠谱的分时系统概念。但是由于太“靠谱”了(真正的多用户多任务分时操作系统),在当时的技术条件下去完成它实在是吃力,所以最终的命运很悲惨。但是有两个游戏爱好者,Multics项目的成员Ken Thompson和Dennis Ritchie为了能够有电脑玩游戏,决定自己给一台闲置的电脑写个操作系统,于是,Unix——一个实用的多用户多任务分时操作系统——就诞生了(就因为这个故事,我始终保持着经常打游戏的好习惯)。 我们熟知的Windows XP、Linux、Mac OS X等都是多用户多任务分时操作系统,可见这个概念一直延续到了今天。它们最显著的特点就是可以让多个人使用同一台电脑而且不能互相窥探对方的秘密。当你使用电脑的时候可以边听音乐边看新闻,同时还能跟朋友聊天。只要你觉得你的大脑还能处理得过来,你还能让这台电脑同时干更多的事情。其实这类操作系统我们完全可以只用“分时”二字简要概述下来。因为“分时”就像它最初的定义那样:将电脑的时间资源适当分配给所有使用者身上,让所有使用者有独占机器的感觉。但是如果把“使用者”进行抽象,就不仅可以代表人,还可以将任务也理解为电脑时间资源的使用者,那么“分时”就是多用户和多任务的基础和前提。所以,既然是“分时”的,一般都会支持多用户和多任务。 需要注意,我只是说一般都会支持多用户和多任务。为什么呢?因为对于一个分时系统,支持多任务是其与生俱来的本质,但是如果要支持多用户,则还需要很多附加的条件,最大的一个问题就是用户的身份问题。要确定哪些用户能够执行何种操作,这样才能保证系统运行稳定和可靠。只有有效地管理好用户的身份,才能被称为是多用户的。Linux在这方面的能力是毋庸质疑的,从其诞生的那一天起就是多用户的,所以它拥有非常良好的用户身份确认机制。Windows其实也具备这样的能力,某些版本甚至做得比Linux还要好,只是大多数用户都没注意到这个问题。所以系统读过本书的人如果还需要继续使用Windows,那么请重新考虑你的Windows用户问题。 一个多用户操作系统,有些时候提供单用户模式是非常必要的。这个主要是在系统发生故障时,进行故障修复时使用的。所谓单用户模式,就是操作系统不去确认用户的身份,可以直接让用户进行各种操作。但是有的人可能会担心安全问题,这就像得病后需要吃药一样,都知道是药三分毒,可是病了还得吃,只能是两害相权取其轻。能够有办法找回数据在大多数时候与冒点安全风险相比要重要得多。