2009年6月5日星期五

[连载]笨兔兔的故事——带你了解Ubuntu,了解Linux(1-10)

小文原载于Ubuntu中文论坛和天涯论坛,作者:懒蜗牛Gentoo.
  (1)开端
  
我叫Ubuntu,主人喜欢叫我"笨兔",但是我绝对不笨,与某种耳朵长尾巴短的哺乳动物也没有什么联系,我是一个操作系统,我是一个linux,我是Ubuntu。 
  
在2008年的4月,我来到了这个世界,并由出生日期得到了自己的代号——8.04。当然,和我同一天出生的兄弟们还有很多,我只是其中之一。我们出生之后,每个人坐上一张被人们叫做"光盘"的碟子,奔赴世界各地,寻找自己的归宿。我们只有找到住处,才可以发挥我们的能力,而我们并不像人们一样,住在钢筋水泥的格子里面,我们住的地方,是一块叫做硬盘的空间。
  
住房的质量严重影响着我工作的效率,不过还好,我住的这个地方还不错,房子很宽敞,有500G大。不过不是我一个系统住,房子被隔成两个大屋子,每边250G,我住在右边的一间,隔壁住的是一个WindowsXP,听说这家伙很厉害,不过我来的时候他正睡觉,于是也没有打招呼。(后来我知道,我们两个是不可能同时醒着的……)250G的屋子,对我来说实在是太宽敞了,我很欣慰,除了硬盘大之外,我发现这里其他的设施也是不错的。
  
硬盘只是我们操作系统休息和存放个人物品的地方,真正工作的时候,是不能在硬盘里的,那时候,我就需要从住的硬盘里,来到工作的地方,我们的工作间——内存。我的这个工作间也比较宽敞,有4G大,不过也不是我一个人用,也是要和隔壁的WdinowsXP共用的。鉴于他名字太长,我就管他叫"查皮"吧,不管他愿不愿意了,反正他也不知道,呵呵。不过内存的共用方式与硬盘不一样,不是一人一半,而是谁醒着谁就用,去睡觉前,一定要记得把内存里的东西,有用的,都搬回自己的那间硬盘里,以备下次使用。这道不光是为了另外一个系统着想,主要是因为内存里很不保险,东西放在里面去睡觉的话,等你在醒来,准没,不管你隔壁有没有住着一个查皮。
  (2)醒来
  
自从安顿到这个地方,对周围的硬件环境熟悉了不少。我们在Canonical学校的时候就进行了充分的学习,所以这里的东西我基本上都会用的比较顺手。像Realtek的网卡,Intel的北桥,南桥,声卡以及E8400
双核CPU,更是应用自如。Intel和我们的关系还是不错的,为我们提供了很多的教科书,说明书,基本都是讲如何使用他们的设备的,所以对于Intel的设备,我们都使用的比较好。这里唯一不能完全用起来的可能就是
GeForce 8800
Gt的显卡了。不过基本的显示功能还是没有问题的,只是我不知道怎么使用它的3D加速功能。这个需要专门的手册,要去nVidia那里去要。对周围的一些熟悉以后,就等着我的第一次启动了。
  
平时,我和隔壁的查皮都是在睡觉。当主人有事情的时候,会让传达室的GRUB大叔来叫我们。G大叔就住在传达室,传达室很小,只有512Byte,门上贴着牌子——MBR,可能G大叔想说自己是个"明白人"吧。由于传达室地方实在太小,所以他会把一些有用的东西放在我的硬盘空间里,必要的时候来看看。他总是面无表情,每次主人来的时候,他就板着个脸说:给你10秒钟,快说要叫哪个!然后就倒数,如果主人没来得及说,他就会直接来叫我——因为我们熟,他是我带来的。如果是叫查皮,那我就不知道了,因为那时我肯定在睡觉,上次说过,我们两个是不可能同时醒着的。而这一次,他径直来到我这里,拍拍我说:嘿,小子,开工啦!
  (3)工作
  
一听说开工,我很麻利的蹦起来,以迅雷不及掩耳盗铃之势,嗖的一下就越进工作室——内存里,用最快的速度进入工作状态。主人对此很满意,夸我说比那查皮麻利不少。然后,他下达了第一个命令:先去上网看看,找个快一点的软件源。于是我赶快叫醒还在硬盘里睡觉的Firefox——是的,看网页这个事我做不来,就得去找Firefox,我喜欢叫她狐狸妹妹。
  
狐狸妹妹轻移玉步,走进工作间——速度有点慢,不过还可以接受。然后开始工作,一下子找到某菜鸟入门新手指导帖之类的,找到一些著名的软件源的列表,如cn99之流。然后,主人决定记录下这些地址,于是,我又叫醒的gedit小弟。gedit个头很小,身体轻盈,一下子蹦进来,开始干活。然后,我又在主人的命令下去叫Rhythmbox,去叫pidgin,去叫………………等等,有人问为什么你总是叫别人干活,自己不干?我正在干,我要干的就是——叫人。
  
是的,我号称叫做操作系统,听起来好大的一个软件阿,好像操作系统就应该是啥都能干。不过,其实我们作为操作系统,并不能直接完成任何你需要的任务。我需要很多帮手,他们各自帮我完成各种不同的任务。可以说,我们在一起,才算的上一个系统,而我,是核心,是领导。没有我,他们当然不知道该做什么,而没有他们,我也不知道该怎么做。我们操作系统的最基本的职责就是管理,管理各种程序的执行,管理硬件资源的使用。比如CPU,就是我们程序要用的重要设备,每个程序都要用,可是CPU很贵,不能发给每个程序一个(否则主人会破产)。狐狸妹妹来了,我会把cpu给她用,gedit小弟也来了,他也要用,那么我就水告诉他俩,一人用一会儿。但是这可不是没人1/2这么简单,狐狸妹妹要做的事情比较复杂,那么就让她多用一会,gedit的工作很简单,就让他少用一会。主人关心的程序,就得多用cpu,主人不是很关心的,就可以少用一点cpu。有的程序脾气不好,把着cpu就不放,我必须处理,有的程序确实工作量大,需要使用cpu相当长的时间,可是我也不能就真把cpu全都给他用,还是得让其他的每个程序隔一阵子都能用上一会,不至于一直闲着。而有的程序平时基本不需要做什么工作,可是有不能把他请回硬盘,那么我就要允许他在工作间睡觉,只是在必要的时候叫醒他,并且把cpu给他用……怎么样?是不是有点乱?当个操作系统是很不容易的。当个好的操作系统,就更不容易了。
    (4)历史
    
住了一段时间,慢慢的开始对隔壁的邻居感兴趣起来。借主人上网的时间,顺便让狐狸妹妹帮我找找相关的资料。狐狸妹妹虽然起床慢点,干活还是挺快的,特别是装备了fasterfox插件以后。
    
查皮是个挺有名的操作系统,也算得上是名门之后。早在1985年,稍微有点软的公司就造出了查皮的老祖宗——Windows1.0
名字比较土,不如查皮显得青春活力。而实际,这位老人家的表现也确实不咋样,大家都没怎么拿正眼看他。
  两年后,1987年12月9日,第二代Windows上市了,那时候的人都懒得起名字,于是就叫Windows2.0。还是那个有点软的公司,还是那张脸,跟他爹长的还真一样。
  
并且,不单脸长得一样,遭遇跟他爹也差不多,基本上被打入冷宫,并不被大家看好。而Windows1.0和windows2.0最大的不一样的地方在于——2.0有个好儿子,1.0没有。
  Windows3.0终于让那个有点软的公司硬起腰板来了。相信很多老鸟也都是从Windows3.0的一个重要分支版本Windows3.2开始认识Windows的吧。1990年5月22日,Windows3.0正是发布,而第二年,1991年发布了Windows3.0的多国语言版本。
而同年,1991年,一件更重大的事情发生了。
  
在1991年,芬兰,赫尔辛基大学的一名大学生的电脑上,我们的老祖先,linux的雏形正在一点一点的完善起来……代码一行一行的流入他的身体,那时候,Windows3.0已经广为人知,已经进入图形界面的时代,已经能够支持多种语言,而我们的老祖先还仅仅能够对世界说一句Helloworld!可十几年后之后,就是另一番景象了。
  再回来说windows他们家吧。1992年Windows3.1出生,算是3.0的改进版,他增加了基本的多媒体支持和TrueType字体。TrueType区别于点阵字体,可以放大缩小,看起来更好看。1994年又发布了Windows3.2,相信他的样子大家都见过,再加上我贴了半天也没贴上,所以就不贴了。^_^
  (5)也是历史
  
到了1995年,Windows家的祖坟上终于冒青烟了,windows95一下子把人们从DOS时代领进了窗口时代。出色的多媒体性能,人性化的操作,美观的界面(跟dos,win3.2比)加上有点软公司强大的宣传攻势,那时的windows95简直是家喻户晓,妇孺皆知,老少皆宜,人人必备,真乃居家旅行月黑风高杀人放火之必备良品。除了明显的,看得见的不同之处外,windows95与他的前辈们的一个重要区别是,他是一个16位/32位混合的操作系统。之前的那些都是16位的,也就是说,windows95标志着个人电脑32位软件时代的开始。(顺便说一下,我们现在基本上还生活在32位软件的时代,隔壁的查皮就是32位的,而我嘛……是64位的^_^)总之,无论从哪方面说,windows95都是成功的,那个"开始"按钮,留在了那个时代的历史中,并一直流传到了现在。  
  
成功的东西要发扬广大,3年后,windows98问世了。这个系统是基于windows95编写的,他修正了windows95的近3000多个bug(英语老师:你这里怎么不加s!),添加了桌面主题等新的视觉特性,更重要的——他捆绑了IE。有点软的公司终于意识到互联网的重要性,把IE作为基本的软件随系统一起安装。(其实windows95里面也有ie,只是放在一个不起眼的阴暗角落里,生怕人知道似的)第二年,1999年6月,windows
98 se发布,也就是98第二版,他提供了Internet Explorer 5、Windows Netmeeting
3、Internet Connection
Sharing、对DVD-ROM和对USB的支持等,可以说,从windows95到windows98se这一脉,到这里达到了顶峰,也走到了尽头……  
   顺便说一下,windows95一脉还有一个家伙——window
me。出生在2000年,不过,基本上可以忽略他的存在,他的一些激进性改动没能获得广大用户的认同。重要的修改是系统去除了实模式DOS,而由系统还原代替了。在概念上,这是一个大的改进:用户不再需要有神秘的DOS
行命令的知识就可以维护和修复系统。但实际上,去除了实模式DOS功能对维护来说是一个障碍(现在的查皮都还有命令提示符,命令行才是王道阿),而系统还原功能也带来一些麻烦:性能显著的降低、硬盘空间的大量消
耗,并且对一些通常的错误还原并不一定有效。随意,基本上可以把他算作windows98的一个不成功改版。
  
或许你会问,windows98se之后,不是还有windows2000,还有你隔壁那个查皮么,怎么能说走到尽头呢?听我慢慢道来……
  (6)还是历史  
  
回到1993年,windows3.1获得成功后,有点软公司不满足于个人用户的市场,开始进军服务器。于是,基于OS/2
Nt的基础编制的windows nt 3.1问世了,windows nt
3.1是个32位的系统,比桌面系统提前进入32位时代,由于是面向服务器领域,windows
nt
3.1的稳定性要比桌面系统高很多(当然,跟linux比……就算了)。不过这个版本似乎不如下一个版本名字更广为人知——Windows
NT 4.0  
   1996年8月,Windows NT
4.0发布,增加了许多对应管理方面的特性,稳定性也相当不错,这个版本的windows至今仍被不少公司使用着。windows的nt内核家族从此登上历史舞台,与以windows95代表的一脉并行发展。到千禧年的钟声敲响后,nt家族的又一个精英——windows
nt 5.0问世了,为纪念千禧年,他还有另外一个名字——windows 2000
   windows 2000是主要面向商业的操作系统,他有4个版本:
   Windows 2000 Professional,用于工作站及笔记本电脑,可以叫工作站版。
   Windows 2000 Server 即服务器版,面向小型企业的服务器领域。
   Windows 2000 Advanced Server
即高级服务器版,面向大中型企业的服务器领域。
   Windows 2000 Datacenter Server
即数据中心服务器版,面向最高级别的可伸缩性,可用性与可靠性的大型企业或国家机构的服务器领域。外号:最牛版  
  
好了,该我的好邻居出场了,我们就把时间定格在2002年。从98问世到2002年,桌面市场的windows
4年没有什么变化了(windows
me是垃圾,windows98se不过是98的升级版),而随着时代的发展,widnows95一脉的内核越来越不能适应现代软硬件需求的发展,于是,有点软的公司一咬牙一狠心一跺脚——扔了!然后,拿过来一直表现良好的windows
nt系列的内核,开发出了新一代桌面版windows——Windows
XP,也就是住我隔壁这位。WindowsXP有两个版本,home edition和
Professional。Home edition面向家庭用户,相当于windows 98。
Professional面向工作站,相当于windows 2000
Professional。而对应windows2000其他用于服务器版本的系统,是2003年的windows
2003,也是一个很优秀的版本。好了,历史课就讲到这里,同学们,洗洗睡吧。
  (7)串门
  
今天接到了一个任务,挺起还还听轻松,一般胡同里大妈大婶的,经常做这项工作,并且乐此不疲,这就是——串门。
  事情是这样的,在我来之前,主人有许多照片存在了查皮那屋里,而现在可能他觉得这么珍贵的回忆全都堆在查皮那杂乱无章(在我看来)的屋里很不保险,所以,要我去复制一份,放在我这里。于是,我终于有机会去查皮那屋里看看他和他的同志们都长啥样。(前面说过,操作系统啥也干不了,他肯定也有一堆帮忙的应用软件,就像我的狐狸妹妹)不过,我串门可不像胡同大妈串门那么简单,认识门就行。我要想去查皮那屋,就得认识查皮在屋里规划的格式,或者说,认识查皮屋里的地里形势,或者说,认识查皮所用的文件系统。 
  
基本上,查皮只会两种文件系统——换句话说,只会用两种方式规划整个屋子的空间,那就是Fat32和NTFS。fat32是一种很老旧的格式了,连4G以上的文件都不支持,性能也不好,还不支持多用户的权限,所以基本不怎么用了。这个查皮也是,没有用fat32,而是用了另一个比较高级的格式——NTFS。那么,我就必须能够读懂NTFS格式的磁盘,我才能去查皮那里串门,有人问了,那你能不能读懂呢?谁问的?站起来,好,这个问题,恩,基本上,我可以负责任的告诉你,自从Canonical学校为我们增加了一本ntfs-3g教材以后,ntfs就不在话下了。虽然能够读懂,但是我自己是不会用这个文件系统的,我会用很多其他的文件格式,比如ext2,ext3,xfs,jfs,reiserfs,ufs,zfs等等,各有优势,我现在的屋里使用的是非常强大的xfs格式,至于怎么强大,以后慢慢细聊,现在,我要走了,去串门。
  
来到查皮的屋里才发现,我串门跟大妈串门的感觉实在不一样。大妈去串门得在人家醒着的情况下去。我来到这里,只能在他们睡着的时候。感觉我不像串门来的,反倒像小偷-_-b。要说这查皮还是真是不会收拾屋子阿,一地的磁盘碎片,多影响性能阿,我说他起床怎么那么慢呢。有人问:"啥碎片呀?我家有时候也有碎片,都是老婆和我吵架时候摔的……"对此,我可以用正宗的C语对你说
:printf("......-_-b\n");
   好吧,先不串门了,科普。
  (8)碎片
  笨兔兔老师第一讲:什么是磁盘碎片
  
同学们都坐好啦,都把手机铃声关了,小灵通调成震动,BP机直接扔了——台都没了你还留着它干嘛。好,上课了,首先说说什么叫磁盘碎片。磁盘,是我们程序居住的空间,我们用不同的方式对整个磁盘的空间进行管理。上次说过了,包括各种方式,什么ext3,xfs,查皮的ntfs等等。而磁盘里放的东西,就是一个一个的文件,同学们可以把磁盘想象成你家的屋子,文件就像一个一个,大小小的箱子。每个箱子上面写着字,就是文件名。查皮喜欢把每个箱子都紧挨着放,一个挨一个,上下左右前前后后都紧贴着,这样,看上去很规整。可以让剩余的空闲空间比较完整。有同学说了,我家也这么收拾,这样很利索呀。不过,对于操作系统,这样做虽然也有好处,但是会有一些问题。  
  
比如,一开始存了一个文件,也就是搬来了一个箱子,比如叫"日记"。查皮把它放在最靠墙的位置,然后又存了很多其他的文件,在"日记"文件的前前后后,左左右右,上上下下都放满了。忽然这一天,日记文件被修改了,加了点内容,就相当于往"日记"那个箱子里加了东西。可是箱子已经满了,再往里加,箱子就要增大,或者理解为再拿个箱子也写上"日记"放在原来的箱子边上,可是不管怎样,箱子周围堆满了其他的箱子,没地方了,怎么办呢?可以把边上的箱子挪开一点,原来的箱子就可以扩大了。可是边上的箱子要是少还好办,要是很多,还都装的铅块铸铁大理石阿什么的,那可就累死了。那怎么办的,只好把新的内容放在另一个小点的箱子里,放在别处。然后还得在原来的"日记"箱子上标注上:"日记(第一部分,第二部分在东墙根)"。然后在新的箱子上写:"日记(第二部分,结束)"。如果日子长了第二个箱子也被n多箱子挤在中间后,又要编辑日记文件,这个文件又变大了,就又要如发炮制出第三个箱子,乃至第四个,第五个……
等到有一天,要读取这个日记文件的时候,查皮就开忙了——首先,到西墙角找到日记第一部分,翻腾出里面的内容,然后往箱子上一看"第二部分见东墙根",然后查皮在跑到东墙根找第二个箱子,翻腾出里面的内容,然后再一看箱子"第三部分见大衣柜上头",然后查皮搬梯子,上大衣柜一看"第四部分见厕所水箱后边",在折腾到厕所"第五部分见屋子正中间从南墙数第两百四十八个箱子"………………等到查皮把整个日记文件读完了,也累得半死了。这种情况,就是会影响性能的磁盘碎片。好,本节课到此结束,同学们自由活动吧,那位同学,快去捡你BP机去吧,说不定还能找着。
  (9)邻居
   科普也科普完了,该干正事了。开始搬照片吧。
  
先拿出这屋的文件列表来看看——我当然知道文件列表在哪,因为我学过NTFS格式。好,上面写着,照片在窗台底下,好,我来到窗台底下,没看见照片,却发现了一个熟悉的面孔……
  
他带着个圆圆的眼镜,文质彬彬的样子,看上去像个学究,两道浓眉如同飞翔的海鸥。衣着并不华丽,倒也搭配的很是顺眼。人们喜欢叫他OO,可能是因为他的眼镜吧,而他的全名,叫做OpenOffice.org——相信我,这确实是个软件的名字,当然,同时还是个网站的名字。之所以我认识这家伙,是因为在我屋里也躺着一个。
  
这并不奇怪,很多Linux下的软件都有相应的Windows版本,OO老先生也是这样。基本上这个OO可以算是我屋里那个的兄弟吧,他们是相同的版本,相同的外表,相同的功能,只是一个跟着查皮混,另一个跟着我干。我绕过这位OO老先生,没有吵醒他的美梦(事实上我也叫不醒他)。终于自他身后的窗台下面发现了要复制的照片,不过别急仔细看一下,果然,上面写着"照片,第一部分,第二部分见里间屋写字台底下"哎~~我恨碎片………………
  来到里间屋,还没找到照片,先看见了床上躺着的查皮,这是我第一次看到这位可爱的邻居。他穿着红黄蓝绿四色的衣服,很是鲜艳。可是,不知道为什么,脸被涂黑了,上面还写着"使用正版,跟风黑屏"。看来主人是不希望自己的电脑里有盗版软件,所以才会在Windows下也用OpenOffice.估计这个查皮是买电脑时候一起来的正版查皮。一边想着,一边来到写字台底下,找到了照片第二部分,往盒子上一看:"第三部分见……"
Oh,God!
  (10)人才
  
终于把照片都拷贝到了我的屋子里,把它们放在了专门放主人文件的分区下。有人忽然想问,查皮那里那么多碎片影响性能,那你怎么放这些文件呢?其实很简单,我更倾向于把文件分散的放着,中间有足够的空间可用于扩展。这样就不至于在找东西的时候满屋子乱跑了。  
   刚刚休息了一下,主人又让我去叫醒一个家伙,他叫作apt-get。
  
这个家伙就像个公司里的人事部经理,来个软件走个软件的,都是他管。当别人夸奖他的时候,他总是自信的拍拍自己的胸脯说:"本APT有着超级牛力"。而他也确实很厉害,很敬业,也很专业,对于人才(对我来说也就是软件)的各种情况了如指掌。要招一个人来的时候,他会做好所有准备工作,这个人需要用什么样的库,或者需要什么其他的人才能一起协同工作,他都会事先做好准备。比如,主人想用vim来编辑文件,就叫apt去招vim来。apt就会报告,说vim要来的话,首先需要准备好libncurses这个库,和python这种脚本语言的执行环境。征得同以后,他就会去网上找这些东西,并且运回家,把库放在该放的地方,相关的软件安排好住宿,然后再去找vim同志,请他过来帮忙干活,并且说明,环境都已经布置好了。每次新人来了之后都很感谢apt同志为自己做的这些准备工作,该有的东西,该来的助手都在,于是干活就事半功倍了。但把人才请来之后,apt同志的工作还没有结束,他还要把现在的人事情况记录下来,以便主人哪天问起来的时候好如实汇报。哪天主人文一句:"我说超级牛力阿,咱这现在都有多少软件阿,都是谁阿?"apt也能从容的回答。可以说,apt这家伙对于我来说实在是非常重要的,没有他,笨兔就不是笨兔了。不过,他并不是只为我打工的。
  
以前,apt是Debian公司的人事部经理,人家Debian可是历史悠久的大公司,1993年就成立了。apt在这么大的公司里一直工作到现在,有大量的工作经验。当我们公司成立的时候,成功的请来他管理人事资源(当然,这并不影响他继续给debian打工),对他来说自然是轻车熟路,得心应手。21世纪什么最宝贵?人才阿!

没有评论: