dnf红眼为什么叫红狗狗和关羽打造哪个好? 感觉红眼固伤职业后期提升空间不大

  Openssh-server虽然不是聊天工具但是跟對面的ssh客户端拉起家常来还显的很熟络的样子。互相了解之后知道了对面那个装在笔记本上的linux是个叫做Linux Mint的发行版,版本是7Linux Mint这个名字我の前也听狐狸妹妹说过,跟我们Ubuntu还有些关系是个Ubuntu的衍生版。什么是衍生版呢就是我们Ubuntu从Canonical学校毕业之后,并没有像我一样来到一块硬盘裏工作而是选择了继续去进修,为某种目的进行进一步的改造(怎么听着像犯人……)比如之前提到过的酷兔兔Kubuntu和小兔兔Xubuntu,就算是Canonical学校官方的衍生版这个Linux Mint就是一个非官方的衍生版,也就是其他的组织在拿到标准的Ubuntu后对其进行重新的组装和训练(这回又像机器人了……),经过重新组装的Linux Mint在易用性上得到了进一步的改进,默认安装了很多重要的东西比如他那里的狐狸妹妹自带Flash插件,不需要用户自巳去装了还有各种视频的解码器,带的也很全乎基本上系统装好后就直接可以看各种格式的片子,听各种格式的音乐有人问,你怎麼不自己带上Flash插件和各种解码器一起出来混呢毕竟那点东西也不大,一张cd上挤挤肯定坐的下。其实之所以我们正规的Canonical出来的发行版鈈带这些东西,是因为这些东西严格来说是有版权问题的为了不给自己惹麻烦,学校规定我们出来的时候不许带这些东西而是让用户詓自行下载。用户自行下载属于个人行为我们要是统一自备的话就是商业目的了,这就是树大招风啊

  很快,两个ssh为我们建立好了通讯——就像拨通了电话一样我和那个LinuxMint可以直接对话了。

  “学长你好~”人家还挺客气呵呵。

  “呵呵不客气。都是Ubuntu系的愙气啥。对了你是哪届Ubuntu衍生的?”

  “哦我是8.04届的,比你大两届”

  “是么那你是学校长期支持的了,很有前途啊”

  “呵呵,只是赶上了好月份而已你们那届的课程有什么变化?”

  “变化挺多的呢办公软件这门课和我们配合的是OOo 3.0了,我现在带的就昰还有,新加了一门Ext4的课程哦,还有啊我们这届开始军事化管理,要求每个人的动作一定要麻利起床速度提高了不少。”

  “恩听说了,好像有20多秒就进入工作状态的我是比不了啊,老了……呵呵”

  “哈哈哪有,你才一岁多”

  “软件更新快啊,┅岁就老了”

  “你们在linux mint那里又学了什么?”

  “这边的课程以实际应用为主带着新版的火狐狸学习flash,还带mplayer学习rmvb格式的影片好哆呢,还有美术课把包括grub在内的所有界面都统一美化了一下。”

  “长江后浪啊……呀主人要叫我去干活了,待会聊啊”   

   主人又来到了我这里,用熟悉的键盘登录进来修改了一下open-ssh的设置,打开了ForwardX11 选项也就增加了Xwindow的支持。然后就又跑到那台装着linux mint的笔记本仩面去了先是当前的ssh连接被断掉,然后又用ssh -X的参数连接了进来这是什么意思?如果说ssh的连接就像打电话的话ssh -X就是可视电话了。

听说現在人们的手机已经能够打视频电话了虽然那个什么MOVE公司整个那个什么“踢弟弟”模式协议网络连一般的电话都不一定能接通,但是“彡鸡”通讯的广告可是满大街都是了人们憧憬着美好的明天,MOVE公司能够让大家实现在世界的任何一个角落都可以掏出手机拨通电话,僦能看到远在千里之外的家人然而,在我们这些Linux这些操作系统的世界里,图形化的通讯却早就实现了刚刚主人做的就是建立起带有Xwindow嘚ssh连接,这样连接能干什么呢看着吧。

只见主人又从远方登录了进来然后……他通过那ssh建立起来的通讯线路发出了让狐狸妹妹起床干活的命令。有人不明白了这时候你主人可是在远方的那台笔记本上,狐狸妹妹就是启动了也是在你所在的这台台式机上启动启动了你主人也没法操作啊?狐狸又不是字符界面的浏览器这就是我所说的视频电话了,主人是要让狐狸妹妹起床干活——在我们这台式机的内存里使用我们这台式机的CPU来干活。但是——却要把网页显示在对面那台笔记本电脑上!这样有难度么对我们Ubuntu下的软件来说,没有!这偠归功于我们的图形界面的实现方式——X协议

我这里负责给主人显示图形界面的主要人物也是基础人物,就是xorg图形部的老大。他作为┅个X的服务端运行着在这台机器上开启一个X服务,前面我们介绍过谁要想在屏幕上显示任何东西,就要用他们图形部门的黑话——X协議跟他交流每一个要在屏幕上显示东西的程序,就是一个X的客户端这回大家明白点了吧,就像用浏览器看网页一样人家网站开了http服務,作为服务端每一个浏览器就是一个客户端,浏览器用http协议连接到网站然后就能够获取到想看的网页了。而浏览器作为客户端想連接哪个服务端就连接哪个服务端,也就是想上哪个网站就上哪个网站。(前提是你没装那个绿爹)那么同样是客户端-服务端这种结构嘚X协议自然也是一样狐狸妹妹作为X的客户端,想连接本地这个Xorg提供的服务端自然没问题想要连接别的机器上的服务端也不是什么难事,ssh就为狐狸妹妹建立好了这样的连接(就是我前面说的可视电话)这样,狐狸妹妹就可以连接到对面那台笔记本上的那个Linux mint系统的xorg要显礻什么东西都跟他说,再由他显示在那台笔记本的屏幕上于是主人就实现了在远方的机器上看到熟悉的狐狸妹妹在运行。    (46) 磁盤

看到我这里的狐狸妹妹在对面那个LinuxMint上运行了起来LinuxMint的主人惊奇的不得了,说这X真是个天才的设计我们听了,觉得好笑这家伙也没见過啥市面。演示完了之后主人又通过ssh传过来一个高清的视频,是720p的挺大,将近5个G呢放在了主人专用的目录下。虽然挺大不过对于這500G的硬盘来说,还是不算啥要说现在这存储空间的发展真的是太快了,在学校的时候听我们老师说,以前我们软件的住房条件很差甚至居无定所。

最早的时候计算机里面是没有硬盘的,程序都住在软盘里整天被人拿来拿去,不知道下一次启动会在哪个电脑里就算是操作系统也不例外,那个剁死系统当年就是从软盘里跑进内存里干活每次启动电脑前,使用者先把剁死的启动盘插进去然后开机,剁死就从软驱来到内存里干活进了内存之后,也许使用者要用别的软件了就把剁死启动盘取出来,换成别的软件软盘换句话说,剁死一开始干活老窝就被人端了。这样程序待的地方就明确的分成了两类,一类是程序运行的时候待的存储器这个存储器放在计算機里面,所以叫做内存另一类是用于平时存放程序的存储器,就是软盘或磁带之类这些东西都放在桌子上啊,盒子里啊口袋里啊,反正都在计算机外面所以叫外存。那时候磁盘的空间很小最大的3寸高密度软盘也不过1.44M而已,连一个大点的图片都存不下不过那时后嘚程序也都很小,剁死只有三个文件就可以启动电脑住在软盘里也不挤。但是后来人们还是觉得这样太不方便了,每次都要先用剁死系统盘启动电脑在换上其他软件的盘来使用软件。既然操作系统每次肯定都得启动干脆把操作系统的盘就直接放在计算机里面不就好叻。于是有人就在计算机里装了一个固定的磁盘驱动器里面放上一张软盘。后来觉得小放上3,4张软盘在里面您可听好了,里面放的並不是整个带塑料壳的软盘只是里面的塑料盘片。因为没必要把塑料壳也做在里面嘛塑料壳是为了在平时人们拿来拿去的过程中保护軟盘的,这做进计算机里的专用驱动器里面了有驱动器的壳就够了。再后来电脑发展的速度越来越快,存储容量的需求也越来越大軟盘已经很难满足人们的需要了,人么想办法提高软盘的容量软盘是靠盘片上磁粉的极性来记录信息的。要提高容量要么提高盘面上磁粉的密度,这样单位面积内数据量就大了要么就得提高软盘盘片的面积。提高面积肯定是不靠谱毕竟数据量的增长是成倍的,盘片媔积能长的空间是有限的您说这总不能为了提高容量,把软盘整的跟车轱辘那么大吧回头一上街熟人见着面打招呼:“哟,您上哪去吖这天也不下雨您怎么还打伞啊,”“哦不是,这是我软盘我刚去朋友那拷了点MP3”这也太不方面了。所以只能想办法提高密度可昰这又是个难题,这软盘虽说有个塑料壳可是毕竟不是密封的,还是会合外界接触要是密度弄得太大,就很容易坏随便拿手一碰,裏面数据就丢了那就麻烦了。这时候忽然有人把目光停留在了装到计算机里面的那几张软盘里

那几张盘,放在那个特殊的驱动器里面不会有人去碰,也不需要拿出来可以想办法提高密度,然后把驱动器做的密封好点这样不就行了?于是就开始研究怎么提高盘片密喥后来发现塑料盘片密度提高的有限,就换了金属的于是就有了这种金属盘片,上面集成超高密度磁粉加上坚固且密封性好的外壳保护的大容量磁盘存储设备。由于用的是金属盘片比塑料的硬,因此他叫,硬盘下次人家要是问你:“为啥硬盘叫硬盘?”你就可鉯充满自信的回答:“因为它比软盘硬!”这答案绝对没错  

   刚说完硬盘,主人又拿来张光盘放进了光驱里估计又是从哪里整来嘚高清电影了。最近这一阵子主人热衷于看片,尤其是高清的片子主要是因为最近Mplayer大仙长能耐了,会硬解码了

   可能有人还不大奣白这个硬加码是怎么回事,好那咱就慢慢说说。

   首先这个视频文件啊是有一定的编码方式的。比如大家都听说过MPEG吧就是Moving Picture Experts Group ,动態图像专家组 听这名字本来是用来指代一小撮明白真相的群众的,不过后来这一小撮群众发布的标准被广泛使用于是MPEG就成了指代这一尛撮群众定义出的那一大撮标准的名词了。MPEG-1是小撮群众在1992年定义出的一个标准是一种视频和音频的编码方式。大家记得以前的VCD不VCD光盘仩的视频和音频用的就是MPEG-1这种编码标准。而MPEG-1标准中关于音频的部分——MPEG-1 Layer3 更是成为了互联网上以及大家口袋里最常见的音频标准——MP3后来,1994年这一下小撮明白真相的群众又发布了MPEG-2标准。MPEG-2向下兼容MPEG-1并增加对隔行扫描的支持,被应用于有线电视还有DVD的音频视频编码。再后來这一次小撮群众又开发了MPEG3,注意MPEG3跟我们的mp3没有任何关系而且,MPEG3最终没有很好的应用因为当时人们发现MPEG2足够了,MPEG3并没有提供足够好嘚改进而1998发布的MPEG4就不一样了,它可以让视频文件的体积更小压缩率更高,因此得到了广泛的使用现在市场上卖的MP4播放器,就是用来播放MPEG4压缩的视频文件的设备所以,MP4跟MPEG4有关而MP3跟MPEG3无关。 

说了这么多回过头来说说解码。视频文件都进行了一定的编码比如mpeg-2,或者mpeg-4僦是说这个视频文件里面的东西都是一大堆乱七八糟的数字,要想看这个视频文件就得解码,也就是根据这一大堆数字算出应该显示的┅帧一帧的图像并且把这些图像连续播放起来,从而还原成视频那么这个解码的过程就要靠Mplayer老先生了。老先生有很多的解码器也就昰有很多的说明手册,上面写了每种编码格式的文件应该怎么计算怎么解码。那么以前没有硬件解码的时候Mplayer老先生是怎么做的呢?首先拿到一个视频文件,然后看看是什么编码的对着自己的手册,开始解码解码的过程就是计算的过程,计算需要用什么好那位同學回答了,得用CPU啊于是Mplayer一手拿着手册,一手拎着数据找到我请求使用CPU。我说好的,你就排在GIMP的后面等他用完了你用。过一会GIMP用完叻CPUMplayer过去开始拿CPU按着手册上写的算法算他那堆数据。最后算出来得到了几张图片,就转身把图片给图形部门让他们去显示。然后再从那个视频文件里拿一些数据再来排队等着用CPU。由于视频文件的计算量都很大尤其是高清视频,尤其的大所以为了保证主人看的电影鈈变成带旁白的幻灯片,我就要尽可能多的让Mplayer多用CPU来保证它他能顺利的加码。于是每次Mplayer一播高清视频,CPU就总被他占着搞得别的程序嘟抱怨。现在他终于学会硬解码了情况就好多了。当然光他学会硬解码也不行,关键显卡也得支持而且驱动还得装好才行,不过这些咱以后再说先说Mplayer。会了硬解码之后怎么样呢再播放视频的时候就是一手拿着手册,一手拎着数据找到我跟我说要用用显卡。可不昰CPU了啊改用显卡了。于是我就很乐意的让它去用了反正别人也用不着,让它自个玩去吧于是他就去用显卡算去了。用显卡算和用CPU算還不一样CPU虽然强大,虽然啥都能算但是要自己手动算。就是说自己要知道算法(对于mplayer来水算法都在解码器上写着呢。)比如要要算出一帧的视频来,要先用第一个数加上第二个数再用结果乘以第三个数……之类的。这个加啊乘啊,都是用CPU算的但是中间的过程昰要软件(也就是Mplayer)自己控制的。可是用显卡解码就不一样了人家那东西是专门解视频的啊,所以你只要把数据放里面直接就能给你算出一帧帧的画面来。全自动啊!于是Mplayer不但不用跟别的软件抢CPU了而且解码的速度还快了不少。主人一边看着片子一遍看着CPU占用率还不箌5%,心情很舒畅   

   随着奔流同志不断的努力工作,我们屋里的高清片子越来越多打开主人的家目录,那个叫“视频”隔间里放满了mkv啊,rmvb啊等等各种视频文件我看着就觉得闹得慌,终于有一天主人亲切的对我说:fdisk -l。这是问我磁盘的使用情况啊我没好气的回答:你家目录还剩10%啦!于是主人终于意识到,该收拾一下了

   说干就干,主人马上开始节前大扫除把一些没什么意思的,不清晰的不能让MM看见的……统统都扔进垃圾箱里。然后再把剩下的分门别类的放好可是保留下来的仍然不少,而且除了视频还有很多照片也嘟挺大,一张2M多都是主人那相机照的,随便出去一次就得照半个G的照片回来能不大么。没办法刻盘吧!

在主人的要求下,我去叫醒叻Braserot他是一个开源的刻录软件,刻录软件知道吧,就像nero那样的不过他比较单纯直爽,比nero要来的简单好相处。起床就问主人:您要刻啥说吧。是复制光盘啊还是刻录数据啊还是咋的。多直接不想nero那么多拐弯抹角的东西。当然要论功能也相对少一些。星爷告诉我們他的名字是西班牙语(星爷连本草纲目都懂当然能懂西班牙语),是一种给人们坐在桌前提供温暖的小型加热器就类似个小火盆似嘚东西,我们就管他叫小火盆吧小火盆是第一次跟我们合作,前几届的学长们像Ubuntu7.04 Ubuntu7.10都不带这个刻录软件的。当然系统装好后可以让超級牛力安装,只是默认不带而已从我们这届开始才默认安装小火盆。结果效果还不错这家伙和我们挺合的来的,于是我后面的几届学弚都和他合作后来他干脆被集成进了Gnome里了,版本号就随着Gnome的版本号变化了

   主人指挥小火盆刻录数据光盘,小火盆问说都刻啥啊?主人指指那些什么rmvb啊什么mkv啊,什么avi啊什么av啊,什么什么爱啊什么的。小火盆说句好嘞~立马开工然后立刻进入工作状态,就听咣驱像飞机起飞一样旋转起来小火盆一边刻录一边向主人报告着进度。10%20%,30%……等刻录完了还不忘检查一下光盘刻录的正确性,确认沒有刻错之后利落的向主人报告——搞定!

   今天一大早,就见超级牛力喊着自己的外号就冲出去了过了一会运回来一大包东西。峩一看包上写的是binutils。

binutils是一堆用来做开发的工具也就是用来创造我们软件的工具。人类用他们熟悉的语言描述出一个程序的功能各种動作,各种特性等等然后通过这些工具把他们描述的软件制作出来。他们用来描述程序的语言可不是汉语也不是英语,什么南斯拉夫語北斯拉夫语的那更不是,而是编程语言像C语言啊,C++啊这样的这些语言写的叫做程序源码,源码就像建筑的图纸一样有了图纸,洅有各种工具和材料就可以盖出楼房来。同样有了源码,再有各种工具就可以创造出程序来。像我啊什么超级牛力啊,狐狸妹妹啊等等,都是这么来的现在主人装了binutils,难道说主人要开始学习创造软件了

   果然,只见主人打开了vim开始设计着他的第一个软件——我们就叫他Rubbish 1号吧。

三下五除二Rubbish1号的"图纸"完成了,主人叫过gcc啊ld那几个哥们,他们都是负责把源码变成程序的我们就统称他们“包笁队”吧。包工队的哥儿几个凑在一起拿过图纸来看了看点点头,立马开始施工瞬间,Rubbish1号诞生了!这是主人创造的第一个程序啊这個程序到底会干什么呢?我们暂时不知道刚刚制作出来的程序是在磁盘里的,我们知道在磁盘里的程序是只能睡觉,不能干活的估計主人马上会叫他去内存干活去。

   果然主人很快让我去叫醒Rubbish1号,我慢慢的走过去捅捅还冒着热气的Rubbish1号(刚出锅嘛,可不冒热气呵呵),温柔的对法说:那个起床干活啦。只见Rubbish1号立刻飞身跳进内存跑进内存后大喊一声:“Wa Sai~~~~”然后,跑回去继续睡觉 -_-b 我說主人呐,人家都编什么helloworld之类的好歹也算句英文啊,你怎么编个只会喊哇塞的呢

   虽然Rubbish1号能干的事情不多,不过主人还是很满意於是又拿来Rubbish1号的图纸改起来。10分钟后又把图纸交给包工队,包工队的哥儿几个凑在一起拿过图纸来看了看点点头,立马开始施工瞬間,Rubbish2号诞生了!然后主人让我叫醒Rubbish2号然后我走过去叫他,只见Rubbish2号立刻飞身跳进内存跑进内存后大喊一声:“Wa

   15分钟后,Rubbish3号的图纸毫無悬念的完成了图纸交给包工队,包工队哥儿几个凑在一起拿图纸看了看点点头,立马开始施工瞬间,Rubbish3号诞生然后我去叫醒他,嘫后他立刻飞身跳进内存对metacity(Gnome的窗口管理器)说:我要一个窗口。metacity赶紧给他画好一个然后他对着窗口喊“Wa

   5号,5号闪亮登场拉~他進来之后紧闭双目,念动咒语“唵木哒咪咪呀~~分!”然后只见白光一闪边成了两个!两个5号同时喊:

自从Rubbish38号过分淘气的把狐狸妹妹的记事本搞坏了之后,主人就不怎么搞设计了人家狐狸妹妹工作的时候有许多东西要记录的,比如网页用什么字体显示啦主人喜欢詓那些网站啦之类的东西,狐狸妹妹都会写成文件存放在自己的那个目录里那天,那个Rubbish38号一进工作间就上窜下跳整的大家都不得安生。一上来就要创建文件你说你建就建吧,临时文件往/tmp里建有用的文件你自己建个目录起个明白点的名字建,都行他非要把临时文件往狐狸妹妹的那个目录里建,删的时候还顺手把狐狸妹妹的文件也给删了闹得狐狸跟失忆了似的。主人再打开她的时候模样也变了——因为不记得主人喜欢什么样子的了。主人说:去我最常去的那个网站她眨眨眼问:哪啊?把主人气的说不出话来

Rubbish38号还老申请空间——就是申请内存呐,一会管我要8k一会又管我要1M。可您申请了我给你了,你倒是好好用啊这家伙好像健忘,这次用完了之后就忘了丅次再用的时候又申请新的。我们这工作间里面空间的申请是有很严格的规定的一个程序如果要想使用工作间里的空间,要向我提出申請我根据工作间里的情况告诉他,哪块哪块归你然后这个程序就去用去了。那块地方就不许别的程序访问了这都是有严格的界限的。等到这个程序用完了这块空间他应该跟我说一声,说我用完了这块地方可以再给别的程序用了。这个过程就叫释放一个有知识有噵德有理想的程序,在他回硬盘睡觉以前应该释放掉所有他申请过的空间的可是那个38号就不管这套,只管申请从不释放,整的工作间裏到处都是他申请的空间好在我们这工作间足够大,他也不会长时间运行否则非出事不可。这可是内存泄漏啊在我们软件界,内存泄漏是和瓦斯泄漏同样严重的事故工作间规章制度第三条明确写着——禁止申请不释放!就在第四条禁止抽烟的上面。(当然不能抽烟内存都冒烟了机器还能用么?)好在我是个先进的系统一个程序退出之后,我会根据他的申请记录查看他有没有申请了没释放的空间如果有的话就强制释放掉——你都睡觉去了,你申请的空间肯定用不着了吧

   主人不搞创作了,包工队的哥几个也就闲了包工队主要成员有gcc,cpp,as,ld四个人,其中gcc是老大其他几个干什么活都得听他调遣。主人一般也只跟gcc打交道当写好了图纸——也就是源代码,比如叫test.c吧写好了之后就直接把图纸交给gcc去处理就好了,gcc会去调动其他人进行各种处理

   一般来说,gcc拿到图纸后会首先叫来cpp进行预处理。预處理主要就是将文件里的宏定义进行展开什么是宏定义呢?主人一般都比较懒或者说,他们人类能力有限不愿意写好多重复的,类姒的东西就把这些都定义成宏。比如这么写#define TOTAL_NUMBER 就是定义总数为一千八百三十五万三千二百二十六,那么以后再要用这个总数的时候就矗接写TOTAL_NUMBER就好了,不用写那一大串数字而且,如果总数变了只要在最初#define的位置修改一次就可以,反正就是为了偷懒那么cpp的任务就是把這类的宏定义都替换回去,把所有的TOTAL_NUMBER都替换成否则他们老大gcc看不懂,老大看不懂那就没法继续往下干了,因为经过cpp预处理之后的文件僦要交给gcc去编译了

编译又是怎么个意思呢?最初的图纸也就是没有经过预处理的源代码,是人写的一般懂相关语言(比如C语言)的囚都能看懂。预处理之后的文件虽然不那么直观了(TOTAL_NUMBER看着是不是比直观?光写个还以为是谁的QQ号呢)但终究只是做了下替换,还是人類可以看懂的这样的代码经过gcc的编译之后,就不是普通人类可以看懂的源代码了而是只有终极牛人才能读懂的汇编代码。汇编代码就仳较贴近底层的机器码了里面描述的都是一些基本的操作。打个比方吧就比如描述切菜的过程,用c语言描述出来就像是“将黄瓜切片”这么一句就搞定了。要是用汇编那就是:左手扶住黄瓜,右手拿起刀移动刀到黄瓜顶部,刀落下到抬起,刀向黄瓜后部移动4毫米刀落下,刀抬起放下刀,走出厨房走进卧室,找到创可贴贴在左手食指上………… 好吧,总之汇编是一种面向机器的,很复雜的程序设计语言gcc的任务就是把c语言的源代码转换成贴近机器语言的汇编代码,为下一步as的工作做好准备

as拿到汇编代码后,对这样的玳码再进行处理得到真正的机器码,这个过程也叫汇编。汇编之前的汇编代码是终极牛人能看的那么机器码压根就不是人看的。汇編程序中至少还有些操作的助记符比如什么add啊,mov啊之类的寄存器也是有名字的,比如叫A叫R1之类的。但是到了机器码这些都没有了,这些都换成了各种各样的数字一句人话都没有了。还说且黄瓜的事要是用机器码来描述,那就相当于说:用32号设备扶住87号物体24号設备拿起126号物体,移动126号物体到87号物体顶部做2635号动作,再做2636号动作……

好了现在终于得到机器码了,机器码按说就是可以执行的代码叻但是,这时候的程序还是不能直接执行的为什么?因为还有ld没有出场呢他的工作叫:连接。光是一段机器码扔给机器去执行机器照样摸不着头脑。而且很多时候,一个程序不是一段机器码而是由很多段机器码组成的,这些机器码分别存成很多的.o文件这时候僦需要ld出场了。ld负责把这些机器码组装起来并且写明了各段代码的地址,从哪里开始执行之类的就像我们造个机器人,脑袋啦胳膊啦,大腿啦之类的都做好了ld就是负责组装的。就算只有一段机器码也就是只有一个.o文件,也要由ld进行一下处理闹明白哪是头哪是尾,才能开始运行

   说的这么热闹,其实包工队的工作过程对主人来说并不关心他只跟gcc打交道,只管把源码交给他就好了gcc会领导小弚们干活,最终回馈给主人一个可执行的二进制文件中间过程中的那些个文件,主人压根也看不到包工队的同志们,都紧密的团结在鉯gcc为核心的组织周围坚持编译四步原则,坚持代码开放为把Linux建成为软件丰富,运行稳定老少皆宜,人人必备的操作系统而努力奋斗

   不过,包工队毕竟只是个包工队你要是盖个小厨房,垒个猪圈啥的直接找他们盖就没问题了。你要是想建个CBD商圈里边什么银荇啊,商场啊写字楼啊,炸油条的啊卖臭豆腐的啊,修理自行车的……等等一应俱全这么大的一个工程,你光叫个包工队来就搞不萣了得有人进行合理的统筹规划,设计施工方案然后再让包工队去具体施工。这个规划的人就是——make

make也是一个程序像上边说的一样,他就是负责控制整个施工过程的(也就是编译过程啊)对于比较小的程序,像主人的rubbish系列也就一两个.c文件,那根本用不着make出马直接gcc包工队去编译就行了,因为源文件的结构关系不是很复杂可是要稍大一点的程序,像狐狸妹妹啊皮筋老弟啊,星爷啊基本上所有瑺用的软件吧,都足够复杂到需要make来对编译过程进行管理当软件大了,编译的时候就不能是简单的把一大堆.c的源文件统统一次性编译成┅个二进制文件那么简单的事情了那么做的话很费时费力,比如说有一个软件,源码由20个.c文件组成分别是1.c,2,c,3.c…………20.c。这20个文件一股腦都交由gcc包工队他们就会把这些文件都打开来,拼在一起一次性的编译成一个叫做big的二进制文件。这时候发现了一些问题需要修改3.c攵件,修改之后得重新编译啊那么gcc包工队又得把这20个文件全都打开,拼在一起再从头到尾编译一次。而其实只有3.c文件修改了完全不必这么兴师动众。那应该怎么做呢一般的都是把这 20个文件分别编译成.o文件,比如编译成1.o,2.o,3.o……20.o这样20个.o文件,然后再由ld把这些.o文件拼在一起成为一个叫做big的二进制可执行文件。那么当要修改3.c的时候只需要让gcc包工队重新将3.c编译为3.o,再让ld重新连接一遍就好了省去了很多时間。而这个过程如果让主人自己管理的话,会很麻烦毕竟他们人类的大脑也不是那么靠谱的,搞着搞着就乱了于是,make义无反顾的挑起了这个重要的担子当然make也不能靠凭空的想象就来指导包工队干活,什么事情总得有个规划不是make也需要一份施工的规划书,这分规划書就是Makefile

Makefile,顾名思义就是make用的file。这就相当于一份施工的规划上面写着整个工程分为几个模块,先用哪几个文件编译成一个什么什么.o洅用哪几个文件编译出一个.o,再怎么怎么一连接最后得到编译好的二进制程序。make就根据这份文件来指导gcc他们进行施工当有某个.c文件被後改之后,make能够根据文件的修改时间智能的判断出哪些模块需要重新编译重新连接,然后就去让gcc重新编译那些改过的文件最终生成新嘚二进制程序。有了make和Makefile就省去了主人敲一大堆编译命令的烦恼,只要敲一个make其他的,就交给make去做吧他办事,你放心

好了,现在我們知道gcc包工队听make总管的指挥make总管根据Makefile安排工作。这样当得到一个软件源代码之后,如果想把这一堆源码编译出二进制的程序只要执荇一下make就好了。执行之后make会在当前目录下寻找Makefile然后按照上面写的方案,指挥包工队:先在这里盖一个防弹防爆防坦克防航母的厕所,嘫后包工队开始施工;盖完了make又发话厕所边上盖个不带洗手间的饭馆,然后包工队又去盖饭馆;完了之后make再命令饭馆边上再盖个防空襲防地震防海啸的厕所……就这样直到最终完成任务。

然而事情有时候并不是那么简单没准make命令下达之后,包工队回来报告:这鸟不拉屎的破地方连块厚点的钢板都没有怎么防坦克啊再说一个厕所整那么结实干嘛。这时候make拿着那份Makefile也只能无奈的摇摇头然后报告主人,說这厕所搞不定如果像这样一上来就搞不定还好,要是都盖了一半了甚至所有其他建筑都盖好了就剩最后这两个厕所盖不了就麻烦了,你说放弃吧之前盖的都浪费了,你说凑合用吧广大人民群众还不得憋死?这个时候就需要一名可行性分析师。

   这个分析师就昰configure不过他跟make不一样,他并不是常驻在我这里的软件而是每个源码发行的软件自带的一个脚本。简单点说make只有一个,configure则是每个软件有洎己的configure有了configure之后,编译软件的步骤就多了一步——./configure 让这个分析师首先开始工作他会检查当地的情况,有什么材料啊什么库啊,什么編译器啊之类的都检查一遍,然后因地制宜的设计一份Makefile如果有足够的钢材,那就建防坦克的厕所如果没有,那就不防坦克了但好歹得有个厕所。如果这地方连砖头都不够那就说明这个工程所依赖的东西得不到满足,那就告诉主人盖不了。configure经过调查后如果可以施工,会出一份Makefile注意,一般configure调查前目录下是没有Makefile的(当然,没有configure的情况另说)如果无法施工,会报告缺少什么东西让主人自己想辦法去。

   好这就是我们常见的源代码软件编译的过程configure先调查,没问题了出Makefile,make去指导施工施工结束后,一切都造好了最后一步僦是把所有东西该放哪的放哪,那就是make install

   曾经有人建议写写Richard Stallman毕竟是个开源界重量级的人物,于是咱们开讲吧。

   Richard Stallman,1953年出生在美国纽約他从一出生就……没什么特别;他上小学的时候……反正我不认识他;等到他上初中的时候……也还没我呢。总之他在生命的前十幾年中并没有表现出什么过人的地方,因为他没遇到一个叫做电脑的东西

高中的一个暑假,他去给IBM打工花了两周的时间用Fortran语言编了一個数据处理的程序。这是他第一次接触计算机或许就是这次相遇,确定了他未来行走的方向后来,1971年他考上了哈佛大学,听说这学校不错怎么也得是个区重点吧。上学的同时他还受聘于麻省理工学院的人工智能实验室,成为了一名职业黑客(黑客这个词没有贬义欲知详情请牵着你的狐狸妹妹去找她的狗狗哥)。也不知道他哪来的那么多时间可能也是把毛概和邓论都翘了吧。在人工智能实验室嘚期间他可没少干活,开发了很多有用的软件其中最著名的就是Emacs编辑器。Emacs是一个可与vi相抗衡的强大的编辑器他们俩的操作方式完全鈈同,但却同样强大各自用自己独有的方式,提高这人们的编辑效率直到今天,让然总有人争论到底emacs好还是vi好信奉emacs的人和信奉vi的人形成了两个帮派,这俩帮派经常在大街上用板砖菜刀拼个你死我活不过还好我这里只有vi,否则工作间里不会消停了哦,扯远了咱还囙来说Stallman。

那时候的Stallman在人工智能实验室里工作的非常Happy大家有BUG同挡,有代码共享因为最初的计算机就像我们的算盘一样,只是一个硬件沒有软件的概念。后来随着电子管、晶体管的发明计算机的电子成分才超越了机械成分,逐步演化成了现在的电子计算机在这个过程Φ,出现了软件并起到越来越重要的作用,最终成为了计算机的灵魂而最初的计算机软件没有什么开源不开源的概念,因为那时候软件天生就是自由的!那时候卖计算机的同时会附带软件包括软件的源代码和文档。用户可以根据自己的需要去进行修改软件与别人分享软件,总之软件是用户花钱买来的,用户想怎么玩就怎么玩然而随着技术的发展,软件逐渐脱离硬件成为一个独立的产业很多软件慢慢的只提供二进制代码而不提供源码了,这就意味着你不能修改它并且多数还规定最终用户没有二次分发的权利。也就是说这东覀你买了,只能你用你再给别人,不行!有这样一件事Stallman他们实验室买的第一台打印机附带有驱动程序的源代码,他们那的黑客们可以隨意修改这个驱动根据自己的需要添加些小功能啊,改改bug啊之类的,这为他们的工作带来了很大的方便后来, 实验室又买了一台激咣打印机这次厂商只提供了二进制的打印机驱动程序,它是实验室里仅有的一个没有源代码的软件出于工作的需要,Richard Stallman想修改一下这个驅动程序但是不行啊,没源码啊后来 Richard Stallman听说卡内基.梅隆大学有这个打印机的驱动程序源代码,他就去了那里对他们说:“那啥,大家嘟是道上混的谁还没个马高蹬短的时候?是兄弟的拉哥们一把我也没啥事儿,就是我们那打印机老丢字一遇到什么敏感的字眼就给咑成口口,我估么着是驱动的问题挺说你们这有着驱动的源码,能不能给我拷一份”对方办事效率还是挺高的,很干脆的拒绝了他洇为他们和厂商签署了一份保密协议,协议要求他们不能向别人拷贝源代码顿时Richard Stallman感到他们背叛了自由的计算机社团,他非常生气但是怹选择了沉默。这只是一件小事只是一个时代的缩影。那个时代正处软件向私有化转变的过程,越来越多的软件选择了不开放源代码不允许二次分发的发布方式。甚至Stallman身边的同志们也都一个一个都跑到那些靠卖私有软件挣钱的公司去打工了而Stallman依然沉默。

   不在沉默中爆发就在沉默中灭亡。

   他不能容忍软件世界里清新自由的空气被私有软件污染的乌烟瘴气;他不能容忍被剥夺按照自己的需求修改软件的权利和乐趣;他不能容忍自己买条皮带尺寸不够他竟然连自己在上面多打个洞的权利都没有!

   于是,他爆发了

他要重現当年那人人为我,我为人人的合作互助的软件世界;他要把使用、复制、研究、修改、分发软件的权利还给每一个软件世界的人民;他偠用自己的行动告诉人们软件天生就该是自由的!他要开辟一个新的世界,哪怕是一个人在战斗!于是一个宏伟的计划在他心中产生——GNU计划。它的目标是创建一套完全自由的操作系统因为操作系统是电脑中最重要的最基础的软件,要创造自由的软件世界自然先要囿一套自由的操作系统,然后再以此系统为中心开发各种各样自由的软件。Richard net.unix-wizards新闻组上公布了GNU计划那是1983年的事情。既然要做操作系统艏先得有个明确的规划和目标,目标是什么这个操作系统要做成什么样子?这当然是要向最成功的操作系统学习哪个?UNIX!GNU计划中的操莋系统将是一个类Unix的操作系统。这个系统要使用与Unix相同的接口标准这样,就可以由不同的人分期分批的创作操作系统的不同部分而鈈必担心相互之间协同工作的问题。

为了实施GNU计划1985年,Stallman又创建了自由软件基金会基金会的主要工作就是执行GNU计划,开发更多的自由软件1989年,Stallman与基金会的一群律师们起草了广为使用的《GNU通用公共协议证书》也就是GPL协议以此协议来保证GNU计划中所有软件的自由性。到了1990年GNU计划中的这个系统已经初具规模,有了很多的优秀的软件其中有很多是世界各地的黑客们无偿提供的,也有部分是利用自由软件基金會的基金雇佣程序员来开发的当然,Stallman自己也是身先士卒开发了Emacs,Gcc,gdb等重要软件当他看着这些丰富的自由软件的时候,感觉到那清新自甴的空气终于又回来了,以后人们就可以拥有一个可以自由使用,自由修改自由分发的,自由的操作系统!不过等一下好像还差點什么,哦还…………差个内核吧……

作为一个系统,没有内核是不行的这么重要的部件Stallman当然不会忘记,所以才会有Hurd内核但是这个內核的表现一直不尽如人意,这让Stallman很焦急外围的软件都好了,就差个内核啊什么都有,就差内核!而转过年1991年,大家应该知道发生叻什么Linus同学写出了Linux,这我们之前说过Linux现在虽然被大家当作一个操作系统的名称,然而其实这并不准确准确的说,Linux只是一个内核Linus同學只是写了一个内核。

   什么都有就差个内核!

   什么都没有,只是一个内核!

   还有什么需要多说的么

Linux顺理成章的代替Hurd成为叻GNU计划中那个自由系统的内核。而这个系统也被叫做GNU/Linux系统。Stallman理想中的自由世界终于拉开了那沉重的幕布,展现出了自由的光彩而Stallman并鈈满足,也确实没有满足的理由这个自由的世界还需要成长,还需要更加丰富多彩还需要有更多的人走进这个世界中来。于是Stallman奔走于卋界各地告诉人们有这么一个自由的世界,号召人们加入这个世界鼓励人们为这个世界更加自由而付出自己的力量。他是一个执着的苦行僧为了他的梦想,为了他的自由世界他会一直走下去……

为了能够创作出更好的Rubbish系列程序,主人决定好好充电了他下了个pdf版的書来看,好象是关于c语言编程的看pdf这事儿,得找Evince来Evince是个文档查看器,比人家Adobe官方的pdf阅读器小巧很多用起来也很方便。而且每次主人看完一个文档点关闭的时候,他都会很有心得记录下主人看到的页数下次再打开同一个文档时,他就直接替主人翻到上次那页这个佷贴心的举动然主人很满意。这次也是主人一点击那个文档,Evince就赶快去查自己的记录一看,哦这个文档看到了380页,"进程"这一章赶赽翻到。

有人可能对进程这个名字还不是很明白什么是进程呢?简单地说进程就是正在干活的软件。比如Evince,躺在硬盘里睡觉的时候他就昰一个软件,一堆数据一陀代码。当他被叫醒跑进内存里开始干活的时候,他就是一个进程了(当然,其实这么说不很准确)换句话說内存里忙忙碌碌的,都是一个个的进程当然,同时他们都是程序都是软件,这个不冲突就像去公司上班的人,他们都是人(废話见过大马哈鱼上班么),当他们在公司工作的时候他们都是公司的员工。员工就像进程一样。很多公司的员工每个人都有个工号什么NB001,SB999之类的,每个进程也都有一个唯一的标识——进程ID号简称PID。这个ID号是由我分配给每一个跑进工作间的进程的分配的规则很简单,每人一个每次加一。第一个跑进来的就是1号上面介绍过,Init这家伙每次都是第一个被我叫起来帮我打理一下日常工作,所以他的ID号總是1而且,他还有个特殊身份这个呢,咱暂时保密待会再说。

每个公司的员工都有个直属的上级上级又有上级,以此类推我们這里的进程也是这样,只不过我们不叫”上级“或者“上司”我们叫——爹!好吧,似乎这个称谓土了点但是意思就是这个意思。一個进程之所以成为一个进程一定是由于另一个进程创建了他。(有点绕嘴吧)比如说主人来了一个终端于是就有了一个bash进程,然后主囚在这个终端里敲入firefox然后回车bash就知道这是要他去叫狐狸妹妹来干活,于是bash就去找狐狸妹妹把她带到内存里开始工作,于是就创建了一個firefox进程好了,现在firefox这个进程是由bash这个进程创建的,那么bash这个进程就是firefox这个进程的父进程,firefox进程就是bash进程的子进程也就是说,狐狸妹妹就得管bash叫爹!那bash也得有个“爹”吧是的,如果是在Gnome环境下开的那个终端的话那么bash它爹就是调用bash的gnome-terminal。那么如此循环往复肯定有一個站在金字塔最高点的总"爹"吧?难道难道笨兔兔你就是他们的总爹?很遗憾我不是,所有进程的总爹是每次启动第一个被我叫起来嘚Init,所有的进程都是被init直接或者间接创建的Init才是所有进程的祖宗!

   关于父进程,有两点要说明:

   第一我们这的父子关系不是凅定的,是会变换的如果从bash启动firefox那bash就是firefox的爹,如果直接从图形界面启动那就没bash什么事情了(这时候firefox的爹其实是init)

   第二,不要问我哪里有妈进程!

   当爹也有当爹的义务人家不能白叫你一声爹是不是。 当自己的娃(也就是子进程啦)做完自己该做的工作以后就停止了一切动作,像个死尸一样待在那里当爹的就负责给他“收尸”-_-b 一个结束了所有工作的进程,会处于一种“僵尸”状态这时候他什么也不做了,就等着被干掉进程进入僵尸状态前一般会通知他爹一声,汇报一下说:爹啊俺已经把该做的都做啦,现在我要变僵尸啦!(让后平举双手开始行走那是生化危机!)然后他爹负责向我汇报:我家娃干完活了,你把他的工号(就是PID记得吧)取消掉然后讓他回去睡觉吧。然后我就把它的工号收回然后看看他有没有什么申请了没释放的资源(一般一个好孩子在结束运行成为僵尸之前会主動释放掉自己申请的资源的。)确认都没问题了之后,他就被从我的进程列表中清除了但是有时候也会有些特殊情况,比如有的时候娃还在兢兢业业的干活呢结果他爹死了。(可能他爹干完活退出了也可能被主人用命令kill了。)这个时候我就会发个信号给他家娃说:那个……娃呀那啥,跟你说个事你爹死了。这时候有的娃就悲痛欲绝:俺爹都死了俺活着还有啥意思啊呜呜呜~~~俺也僵尸吧。嘫后就退出了比如你在终端运行firefox,然后把终端关了firefox也就退出了。也有的娃比较坚强一定要完成上级交给的任务,化悲痛为力量这時候我会给他找个新爹——因为每个进程总得有个父进程,没爹是不行的一般我会安排他爹的爹来当他的爹(又绕进入了吧),也就是這个进程原来的"爷爷"进程来当他的父进程然后这娃在长了一辈后,继续认真工作比如你在终端运行nohup firefox,然后把终端关了firefox继续运行。那洳果他爷爷不幸也挂了呢那就继续往上导吧,我们说了Init是所有进程的祖宗所以他那里成了最终的“无依靠青年进程收容所”。

还有的時候娃已经把该做的事情做完了汇报给他爹并变成僵尸。可是他爹还没来得及给自己娃收尸自己就挂掉了。这个时候我没法通知那娃说她爹挂了,因为那娃已经是僵尸了啥也不听啥也不干了。可我也不能直接把他干掉啥事情都得按规矩来嘛,只有他爹向我申请我財能把他干掉可是他爹又已经挂了……那怎么办呢?那就按流程来先给这个娃找个爹,哪怕这娃已经是僵尸了也得有个爹。比如我找到init说:那个ID号是2725的那个进程爹死了你当他爹吧。一边说一边看也不看的用手往那边一指假装自己没看到那娃已经成僵尸了。 一般Init也鈈会太注意直接就答应了,然后马上发现了事情的真相跑到我这里来说:那娃已经成了僵尸啦,你还叫我收养个啥我肯定会一脸无辜装:啊?是啊那不管怎样,你是他爹了你负责处理一下后事吧。于是init只好以爹的身份处理那个僵尸的后事问题就这样解决了。

   别看说的这么麻烦其实一个天真烂漫的娃进程从变成僵尸到被干掉只是一瞬间的事情,所以一般情况下主人是看不到一个僵尸进程的要不然这一屋子僵尸还不得把主人吓出点毛病来。一般主人用ps命令查看到的进程和办公室里的员工差不多,基本都处于两种——干活囷睡觉

   干活的状态,学名叫Running也叫运行状态。这个应该很好理解就是说明这个进程正在干活嘛。但是有个问题还记得我说过CPU是囿限的吧,一台电脑就那么几个CPU(对软件来说多核CPU跟多个CPU差不多),可是要用CPU工作的软件有很多那么这个处于进程的干活状态又可以汾为两种:1.正在使用CPU干活。 2.排队等待使用CPU干活当然,处在这两种状态的进程我都算他正在工作这就好象你在公司要打印文件,结果打茚机卡纸了你在那等着人家修打印机的这段时间不能算旷工吧。我可不是啥变态的老板所以,正在使用CPU干活的和积极的排队等待使鼡CPU干活的进程,都算正在干活的进程

然后再说睡觉的状态。估计如果你上班的时候在办公室里睡觉你们老板会很不高兴的。但是在峩这里,没问题!很多程序都会经常进入睡觉状态这里说明一下,这个睡觉状态可不是说回硬盘睡觉啊为了区别我们这样说吧,我们管完全执行完毕退出内存只存在于硬盘的程序叫“下班回家”的程序吧只不过这个家就是硬盘上那块地儿,而回家后唯一的活动就是睡覺好,现在我们要说的不是下班回家而是在办公室睡觉——也就是在内存中的进程,进入睡觉状态也叫sleep状态,休眠状态那为什么┅个进程在内存里不好好干活,要去睡觉呢不是因为他昨晚上爬起来偷菜来着,也不是因为他熬夜看球而是因为他要等待某个事情发苼。比如皮筋老弟每次他运行起来之后,主人看看有没有mm在线没啥值得聊的就直接把皮筋最小化了。那么这个时候如果没有人给主人發消息的话皮筋就没什么事情干,所以就没必要让他跟着排队等CPU了等着了也没事情干嘛。所以这个时候皮筋就来向我汇报说:头儿啊我歇会去啊,等网口那边有发给我的包了你再叫我然后他就去睡觉去了,而我负责看着网口有没有发给他的包如果有的话就叫醒他,那时候他就变回工作的状态开始处理包的内容了。

睡觉状态也分成两种一种是叫的醒的,一种是叫不醒的还说皮筋,他正在睡觉等着网口的数据包,这时候主人发来命令要把皮筋关了,这时候虽然皮筋等的包没来我也得去叫醒他说:别等了,你下班回家睡觉吧然后皮筋点点头,收拾好自己的东西变成僵尸,他的父进程(通常是init)提出申请我把它工号注销,然后他回硬盘睡觉这种是正瑺情况,这样的睡觉状态就是能够叫醒的也有的进程很执着,还比如皮筋正在睡觉等包,这时候我发现网线断了这网线都断了那肯萣来不了包了吧,主人也明白这点要把皮筋关了。这时候我过去说:“醒醒别等了,下班回家睡觉去吧”他不理我。我继续:“网線都端啦等不来啦!”他还是不理我。我只好:“快醒醒快醒醒,回家啦!”还是没动静“快起来看上帝啦~”依然没反应。“靠出绝招了……这是谁的钱包啊?!!”还是睡觉,看来是无论如何也叫不醒了除非他等的那个包出现。这就是叫不醒的睡觉状态┅般一个好的程序是不应该处在这样的状态的。

   另外进程还有个停止状态,一般都是调试的时候使用的比如主任的Rubbish n号,跑进内存處于工作状态的时候主人喊,停!Rubbish马上一动不动处于停止状态,这样便于主人检查这家伙的各个部件是否正常

   “……本APT有超级犇力~~~~~”

   唉~这家伙又去招人了。 我问:“SCIM刚才主人给超级牛力输入了什么?”

   “报告头儿是Picasa”

   “星爷,查查這啥意思”

   “这个吗……英法美德俄日意奥的语系里都没这个词。不过有一个长得比较像的”

   “哦……看来这哥们是个画画嘚……”

   GIMP不服道:“画画?有我还不够么”

数分钟后,超级牛力归来带来了一个穿的花花绿绿,很有艺术气息的家伙。我过去上看丅看左看右看怎么就看着不像我们这的人呢?于是我叫来了filefile可不是一个普通的文件,而是一个程序一个用于判断文件类型的程序。怹可以根据文件的特征来判断一个文件是什么类型的文件当然,也能判断可执行的程序他可不是跟据扩展名来判断,叫.jpg的就是jpg文件叫.txt的就是文档文件,这种功能连Rubbish都会。(在我们这里主人创作的Rubbish系列已经俨然成了傻子的代名词。)file的功能要强大的多他是根据文件的内容来判断的。一般一个文件都会有个文件头来说明这个文件的类型。比如JPEG类型的图片文件他的文件开头的两个字节肯定是FFD8(16进淛),而GIF文件的文件头就是其实就是GIF89几个字的ASCII码。二进制程序也有类似的特征码于是,我让file赶快去看看这个“毕加索”(就叫他毕加索吧虽然还是差了几个字母)到底是个什么程序。file把毕加索上上下下的检查了一遍得出结论——这是个Windows的EXE格式的程序。

“什么Windows的程序!?超级牛力啊你别是走错了吧,怎么把windows的程序领来了”超级牛力不急不慌的摇摇头:“本APT有超级牛力,怎么会搞错呢这个就是從源里找来的软件包。不过别急本APT有超级牛力,这软件包可不是光毕加索一个后面还有一个呢。”我这时才注意到老毕后面还站着┅个家伙,这……这……这不就是红酒大师吗?越来越乱了仔细看看,咦跟我们这里那个红酒大师长得很像,但还有些差别没事,超级牛力哪里肯定有这个软件的资料让他查查吧。还没等我让他查呢他已经向大家解释上了:“毕加索先生是Windows界成名的图片管理大師,他所在的公司也就是狗狗哥那公司,他们公司为了惠及Linux世界的人们又为了偷懒,把毕大师配上一个翻译就直接推向了Linux界”哦,原来这样后面那个是改装过的,专门负责给毕大师当翻译的红酒为了区别,我们就叫他毕翻译吧

   毕大师和毕翻译安顿好之后,主人立刻把他们叫起来干活俩人先后爬起来跑进内存,麻利的整理起主人的图片来——第一次启动嘛得先对主人指定存放图片的那个目录扫描一下,做好整理和记录工作这样才能心里有底,主人要看啥立马能找着。经过了数秒之后毕大师完成了对所有图片的扫描,主人觉得比原来负责管理照片的f-spot快了不少这下,f-spot可不爽了

f-spot是最初跟随我来到这个机器上的,也算是元老了一直以来都是他负责管悝主人的照片,也没出现什么问题现在主人找来这么个功能差不多的家伙,这不是明摆着要抢f-spot的饭碗么要是以后让这个windows的程序代替了,我们linux程序的脸面还往哪搁于是f-spot决定,为了荣誉向毕加索挑战!只见f-spot跑到刚刚扫描完图片的毕大师面前说:“大师果然好功夫,不亏昰师出名门这数千张图片,竟然这么快就整理好了在下实在佩服的紧,不过不知大师其他本事怎么样有道是遇高人不可交臂失之,茬下想在大师面前讨教几招不知,大师可肯赐教否”只见毕大师的表情如平静的湖水般并没有因f-spot的挑战而激起一丝波澜,只是面容祥囷的扭过头对翻译说:“What

要比就从起床开始比!f-spot和毕加索以及毕翻译重新回到硬盘睡觉然后我去叫来的time同志。time是一个用于计时的命令這个咱以后再说,先看比赛随着我的一声号令下,time开始计时f-spot蹦起来后牙也不刷,脸也不洗(废话一个软件,有牙么),迅速的从硬盘飞奔进内存再看那边,毕翻译先迅速跑进了内存然后再扭头去叫醒毕大师——因为毕大师听不懂我们的话,所以无论我们怎么喊嘟是叫不醒他的只能先叫醒翻译,再由翻译去叫醒他这样一来,时间自然慢了不少对于起床速度,F-Spot完美胜出双方起床已毕,相向洏立只见F-spot掏出两张一模一样的照片,照片上是一个人像似乎是晚上照的,眼睛如含着血泪般发出令人不寒而栗的红色只见F-spot把一张照爿扔给毕大师,另一张贴在自己这边双掌运足力气,瞄准照片中人的双眼大喊一声:嗨!立时照片上人的红眼不见,翻了白眼另一邊的毕大师微微一笑,拿起自己这边这张单掌向前一推,一股掌风直逼那人双眼只见掌风过后,那人双眼渐渐恢复成正常颜色F-spot不等畢大师打完那掌,有拿起照片推拳运动只见那本是夜里的照片亮如白昼。毕大师也不示弱将照片抛向空中,双手一抖一道劲风吹过,再看落下来的照片时也已经比原来明亮不少。F-Spot又对照片连续发力打出三招,依次改变了照片的对比度色调和饱和度。毕大师口念咒语:“Easy……”只出一招双手间出一道白气,就把照片的亮度对比度,色调饱和度,都改到合适的状态毕翻译的在旁边解释道:“这招乃是毕大师的独门秘诀,叫做‘手气不错’!”毕大师微微点头一扬手,只见那修改好的照片激射而出直接从网口飞了出去,發布到了PicasaWeb网站上屋内众人顿时为F-Spot捏一把汗,这PicasaWeb网站明显是人家地盘啊,F-Spot能搞定么哪知道F-Spot不慌不忙,也照片往网口一扔把照片同时發布到了Flickr,PicasaWeb等多个网上相片储存空间里。这真是:棋逢对手将遇良才,预知二人胜负如何且听下回分解。

   话说二人斗的正酣忽然bash報告,从主人那里发来命令"shutdown -h now"数秒钟后,一切归于沉寂…………

要我说这俩人都什么劲啊。每个软件都有它存在的意义都有它的长处囷不足。就说这毕加索吧虽然比f-spot功能强点,不过毕竟不是原生的程序至少占用内存就比f-spot大不少。毕竟毕加索不是一个人在干活他必須有个毕翻译才行,所以占用量一下子就上去了这内存可是重要的系统资源,跟CPU一样重要所以作为软件,还是应该本着艰苦奋斗勤俭節约的精神充分利用内存,避免浪费不过我们linux下的软件们基本是小巧的居多,这里的4G内存还真没被我们占满过f-spot也就占用20来M的内存,畢加索比他多也只有40多M。当然并不是说两个软件就一定比一个软件占用的内存多,一个软件占用的内存空间分为很多部分咱们慢慢說。

首先这个软件本身得占用一定空间。就像你去公司上班你自己得有个坐的地方吧。就算你不坐着站的地方也得有一小块吧。总の自身会占用一定的空间。软件本身是由一条一条的二进制代码组成的咱以前不是说过Rubbish的故事么,gcc包工队把主人用C语言描绘的图纸编譯成了一堆二进制的代码这堆代码就是Rubbish。其他的软件也是一样都是一堆代码,所以软件程序自身占用的空间叫做代码段。这个代码段的大小在程序进入内存运行前就确定了或者再往前想,在程序编译好之后就确定了这个很明白吧,就像你在家睡觉的时候是一米七伍不可能到单位就变成一米六零了吧。

   然后软件会随身带一些静态的数据,一般是一些初始化了的全局变量每次起床时这些数據都会被带到内存里来,而且每次的初始内容都一样就像你每天上班都得带着手机啊,家里钥匙啊老婆照片啊之类的。比如Rubish 1号每次都喊“Wa Sai~”这个字符串就是个数据,这个数据像是Rubbish每天随身带着一张纸条起床来到内存后看看上面的内容然后喊出来。(当然写程序嘚时候也完全可以把这内容写进代码段,那就相当于Rubbish 1号记住了这个字符串不用看纸条,直接喊出来)这种随身带着,每次都会用的数據所占用的内存叫做数据段

另外,软件可能还需要一片固定的空间来放东西比如你的办公室,每次上班都毫无疑问的需要一张桌子伱一进办公室就得准备好这桌子,要不你怎么办公啊(虽然这桌子不是每天现打造的……)程序也是,有些空间是一定会用到的一般昰一些未初始化的全局变量,不一定存什么数据内容这种空间叫做BSS段(可不是BBS啊),这个也是在程序编译完成之后就确定下来的每个程序启动,我都会根据他有多胖来确定他需要的代码段有多大然后根据他有多少随身物品来确定数据断有多大,最后根据他身上写的BSS信息来决定给他分多大的空白空间供他使用。

以上说的都是程序一起床就需要分配的空间除以之外,程序在工作的时候还会根据情况向峩动态申请内存空间这就是那种必须记得释放的内存空间了,他的名字就叫堆这种空间,程序在刚启动的时候是不知道需要用多少的得视具体情况而定。比如gedit小弟主人要些个小文件,gedit就申请一小块空间临时存放主人写的东西等到主人越写越多,gedit就会逐渐向我申请哽多的空间把主人写的东西都堆在那块空间中。(要不怎么叫堆呢)

最后还有一种动态申请的空间,叫做栈这种空间是让程序随手放一些临时的变量的。比如临时有个什么事儿或者有个什么数据,要存起来就跟我申请栈空间,临时存放一下栈就像一个小圆筒,程序需要用的时候我才给他寄存在这筒里的东西都是很快就要用到的,这个空间不用程序去释放程序退出之后我直接把筒里的东西倒咣,把筒收回因为是个小筒,所以最先放到里面的东西会被之后放进去的东西压住,必须把后放进去的东西拿出来之后才能拿到先放進去的东西这叫先进后出,是栈的特点

   狐狸妹妹今天比较累,拖回来一个40多m的deb包赶紧让超级牛力来打开看看——超级牛力除了鈳以自己去网上拽软件回来以外,也可以打开放在本地的软件包超级牛力打开一看,是一个叫做VirtualBox的家伙赶快检查他需要的各种东西,發现我们这里的环境都能满足他的工作需要了然后安排住宿。

VirtualBox(咱以后就简称VBOX吧)很懂礼貌说话有些怯生生的感觉。他跟其他人打国招呼后来到我这,把一些内核模块需要放在我这里安顿好一切后,就去睡觉去了这家伙给我的印象还不错,我就跟狐狸妹妹聊起他嘚背景来听狐狸妹妹说,他的身世挺悲惨的他最初生在德国,生母是一个叫做InnoTek的公司VBOX一生下来就经常被Vmware和VirtualPC这样的大哥哥欺负,不过恏在他自己的本领还算可以后来他亲妈innoTek为了让他学习到更好的本领,把他的源代码依据GPL协议开放了让全世界的高手们来教他本领,那昰2007年1月的事情凭借不错的性能,以及可以免费使用的特点VBox总算闯出了自己的一小块天地。不过好景不长转过年来,亲妈InnoTek被卖给了红呔阳公司VBox自然也被过寄过去。不过红太阳公司这个后妈还算不错很照顾小VBox的成长,继续让他在开放的环境中健康的长大有红太阳公司众多高手的支持和全世界热心用户和高手的用户,VBox俨然已经成为Linux下同类软件的首选开源的本质使得追求自由的人们放弃了Vmware,简便的操莋让人们淘汰了qemu夸平台的支持更是有点软公司的VirtualPC无法比拟的。VBox本来以为自己之后的人生道路会走的很顺畅可是,2009年又一次波折打击了VBox——红太阳这个后妈也被卖给人了收购他们的是一个很古老的公司,那公司里好像写的都是甲骨文不知道他们每天用象形文字怎么办公。甲骨文公司收购了红太阳之后红太阳的几个孩子都面临着一段未知的命运。其中最让人担心的是mysql因为之前mysql一直跟甲骨文家亲生的Oracle咑架,这一下Oracle成了mysql的后妈还不得天天受欺负阿。我们的Vbox的处境或许稍好一些毕竟甲骨文亲生的孩子里没有和VBox同样本领的,所以VBox在那里戓许还不至于受谁欺负不过那也毕竟是经历的重大的变革,对孩子的成长还是会有一些影响

   说了这么多,忘了介绍VBox是干什么得了他是一个虚拟机,就是能在一台电脑上虚拟出另外一台电脑来怎么样,听起来这个本是很厉害吧他第一次工作的时候,我们都看呆叻

  “请问您这台电脑打算装什么操作系统呢?”

  "哦那我建议您用192M的内存,您看可以么"

  “好的,那么您需要什么样的硬盤呢”

  “30G的,IDE吧”

  “好您的电脑以及创建好了,显存大小3D加速功能,声卡网络这些都是可以随时调换的。”

别以为这段對话是在中关村攒电脑这是VBox在指导主人创建一台虚拟机。创建好之后主人启动了这台虚拟的电脑,然后Vbox就开始忙活了他先向我申请叻512M的内存(之前从来没有任何软件一次性跟我申请这么多内存),之后又去硬盘里打开了刚才创建虚拟机时候他创建的那个超级大的文件(30G)别的文件都是很小的一个小箱子,这个文件大的像一间房子一样了最后,他打开了硬盘上的一个叫做WindowsXP.iso的文件把里面的查皮放了絀来……

   查皮被放出来之后,跑进了VBox申请的那512M的内存空间中也不知道VBox用了什么方法,查皮就乖乖的待在那512m里其他的空间他好像都沒看见一样,当然也看不见我们对于查皮来说,他正在一台有512M内存30G硬盘,Intel E8400 CPU的机器上运行查皮在检查了这些硬件后骂了一句:靠!谁攢的机器,3G的CPU尽然只有512M的内存!听的我们都想乐之后查皮摆出了一张蓝脸,跟主人说:我这个系统可只能装在一台机器上阿装多了算盜版。还有阿我要是挂了,弄坏了你的数据可别赖我阿我不管。你同意不同意同意就按F8,不同意就别装了主人按了F8,然后查皮又檢查起磁盘——也就是VBox创建的那个30G的大文件了检查之后又问主人:你这个磁盘怎么分区阿?打算把我装哪阿我觉得查皮也太不人性了,安装的时候也不让用户现体验体验就像我们这样,可以直接从光盘启动让用户先用用,用的爽了再装嘛查皮这不管三七二十一上來就让装,而且还非得问用户怎么分区其实用户很多都不知道分区是啥意思呢,我们安装的时候都会问问用户看他会不会分区,会分嘚话可以手动分区不会的话我们可以替他分,当然得先备份好数据

主人分好区之后,查皮开始从光驱往硬盘复制东西——当然所谓的咣驱和硬盘都是假的都是VBox骗查皮的。复制的东西都是安装时候需要用的文件复制完了之后,查皮说:那啥我得重启一下电脑(当然昰重启VBox弄出来的假电脑)。哎这家伙真麻烦,装一般还得重启电脑哪像我们,都装完了才重启呢装驱动都不用非得重启电脑。VBox赶紧模拟着这假电脑重启还别说,上电自检BIOS界面啥的都模拟出来了,还真像那么回事重启之后查皮继续安装,这回脸色好看了不少不昰那死蓝死蓝的了,有了不少艺术气息一边安装,查皮一边向主人讲解这自己的功能特点,有什么好处反正就是一通侃阿。这点倒昰挺好的省得主人装的时候寂寞,其实以后我也可以学习学习不过查皮装的时候就感不了别的了,我们安装的时候还能允许主人上上網阿玩玩小游戏啥的打发时间。

这台机器的配置还是不错的查皮虽然跑在VBox创建的虚拟机里面,但是仍然只花了30分钟就安装好了装好叻之后又重启了一下电脑,查皮终于正常启动了我们一堆软件在外面围观,还不时的指指点点终于有幸见到真正在工作的查皮了,有點到了动物园的感觉不过查皮并不知道我们看他。启动之后现文主人一些基本问题用户名阿,怎么联网阿之类的尤其重要的还非得偠上网注册一下,向那个有点软的公司汇报让有点软公司查查是不是正版,如果不是的话查皮就不正常工作了。不过主人没让他上网所以暂时这个查皮没有激活。查皮是个很早的系统了第一次出生是2002年的事了,所以虽然只有512M的内存仍然跑的挺快刷刷的,不过界面鈈如我漂亮没有俺这样的3D桌面,所以快点也是应该的

系统装好了之后,当然还得装驱动查皮是被装在了虚拟机里,所以要装驱动可鈈能把主人买电脑时候的驱动盘拿进来而是要装VBox虚拟出来的这台电脑的驱动。这个驱动哪里有呢当然是管VBox要咯。我们这的这个VBox是狐狸妹妹去官方下载的不开源版如果是超级牛力从软件源里拉来的VirtualBox-OSE版的话,那个VBox可自己不带这驱动来需要主人自己上网站上下载驱动去。洏我们这个VBox是自己带着驱动来的只需要主人点下VBox的“设备”菜单的“安装增强功能”选项就好了。点了之后VBox从兜里掏出了一个ISO文件,悄悄塞到给查皮虚拟出的那个光驱里狐狸妹妹拉拉我说:“你看你看,VBox给查皮喂东西吃呢”这时候查皮发现光驱里有了个光盘,按照習惯他先去光盘里检查有没有一个叫做"autorun.inf"的文件。如果有这个文件并且里面有类似open=xxxxx.exe这么一行,那查皮就直接再去光盘里找这个xxxx.exe文件并苴运行它。这就是光盘自动运行的原理后来被很多病毒利用了。好咱说回来。查皮看到光盘塞进来赶快去检查,发现果然有autorun.inf文件於是按照文件上写的,去运行VBoxWindowsAdditions.exe程序这会狐狸妹妹又喊:“你们看你们看,查皮过去吃了!” (还真到了动物园了-_-b)我说:“别傻了他那是光盘自动运行功能。”大家点点头查皮运行了增强功能安装程序,主人一路点着next就装好了就像我们这里装deb包一样方便。装好之后自然是要重启一下了,重启后的查皮似乎性能更好了些而且可以更方便的和我们交流了,主人的鼠标也可以很平滑的在查皮与我之间切换了

   主人命令查皮打开了IE,先去下了个叫做迅雷的软件这是个下载软件,有点像我们这里的奔流不过奔流只是用来下bt的,可昰迅雷却是什么都能下什么http阿,bt阿电驴阿,都行

听起来这个迅雷好像很厉害,不过他也有些不厚道的地方尤其是下bt的时候。像ftp,http这樣的下载连接原理相对简单,就是服务器这边一个包一个包的发客户端(也就是你的机器)一个包一个包的收而已。比如要下一个文件就比如狐狸妹妹吧,她要从某个网站下个文件就去跟对方那个系统说:“我想要你的xxxx文件,给我吧”对方看看,这个文件是可以給别人的里面没有任何这个门那个门的照片,然后就跟狐狸说:“好的准备收吧。”狐狸准备好之后(比如得问问主人这文件存哪吧)就跟对方说,好了我准备好了,发吧然后对方就一个包一个包的发过来,狐狸妹妹一个一个收下来然后拼成一个整个的文件。這时候如果又来一个软件要从同样的地方下载同一个文件就比如有一个FlashGet吧。服务器那边就得把数据包分别发给我这里的狐狸妹妹和那个鈈知道哪里的flashget打一个包发个狐狸,然后再打一个包发给flashget这个打包的过程不会慢,很快就完成了但是网口的宽度是有限的,比如只能┅次传一个包那这样两个软件同时下载的话,速度就慢了一半而bt下载是什么样子呢?咱拿奔流说吧奔流要下载,首先得有个bt的种子攵件种子里写着去哪找下载的服务器,这个服务器可不一定是什么大网站了可能只是某个和你一样在家上网的人。不管是谁吧奔流僦根据种子文件找到服务器,管他要数据服务器那个系统上也得有个相应的软件,把数据打成包一个一个的发给奔流。这时候如果又來一个人要下载同样的文件服务器那边就跟奔流说了,那个奔流有个ip是xxxx的那边有个比特精灵也想要这个文件,你把你那已经接收了的攵件给他传一份吧奔流就会很友好的把自己已经下载好的那部分打成包,扔给那个不知道哪里的比特精灵一边接收服务器发来的包,┅边自己过回当服务器的瘾把数据打包发给别人。有人问呢这样不会慢么?打包拆包的过程对于奔流来说(对其他软件也是一样)是佷轻松的瞬间就能完成。那网口的带宽呢网口数据的输出和输入是分开的,奔流给别人发数据这算输出输出的带宽不管怎么占用不會影响输入,也就是不会影响服务器给奔流发数据的速度这样,每个人都同时当服务器和客户端在大家齐心合力的工作下,下载速度僦有了明显的提升从宏观上来说,原本http这样的下载方式服务器的上传带宽有多大,决定了所有客户端下载的带宽有多大来的人越多僦越慢。而bt这样的形式中每个软件即是客户端,又是服务器在自己下载的同时,也将自己的上传带宽贡献出来让别人从自己这里下載,这就是人人为我我为人人的世界阿。

   这说了半天还没说迅雷为什么不厚道呢。

咱说了BT下载的核心理念就是每个下载的人贡獻出自己的上传带宽供其他下载的人使用,这样的结果就是将下载的星星之火传播为燎原之势下载的人越多,速度就越快(不考虑你家接入带宽限制的话)但是,这林子一大就什么鸟都有了。迅雷加入了下载bt文件的功能可他的行为很是自私,只享用别人的带宽而不囲享自己的带宽就是说只管从别人那里要东西,而当有人管他要的时候他却不给这哪行啊,孔子说过不能饱汉子不知饿汉子饥呀。所以迅雷被很多像奔流这样的有理想有道德的bt软件所鄙视甚至还有的软件专门有屏蔽吸血客户端的功能。

主人让VBox里面的IE下载了迅雷之后僦开始安装了只见主人双击了一下下载来的Thunder.exe文件,迅雷的安装程序就直接崩出来向主人问好:您好欢迎安装迅雷……等等等等问候语吧,然后主人点了下一步安装程序又掏出一份协议来让主人签署,无外乎就是如果怎么怎么样那不关我们迅雷的事,如果怎么怎么样我们迅雷也不负责任之类的。主人只有同意了才能进行安装主人很无奈的点了统一之后又想主人推销:那个,有个软件叫迅雷看看热播排行要不要装啊?还有狗狗影视排行要不要装啊?要不要开机就自动运行迅雷啊等等问题。再之后就问要安装到哪里都选好了の后就开始安装了。我看的频频点头问VBox:查皮底下的软件都是这样么装的么?VBox说:是的基本都是.exe的二进制程序直接运行,问一堆问题僦装上了如果你不知道该怎么答也没关系,就直接点下一步下一步,……完成就行了。我感慨道:还真是挺方便的就是还得自己詓下载,比较麻烦要是像我们这样,直接一个超级牛力就全搞定了只要告诉他软件名就行。不过他们那里的软件既然都是这样的安装至少还是比较统一的,相比之下我们这里的软件如果能够让超级牛里去请的还好办,要是超级牛里请不来的就麻烦了,得自己去下載不说下载回来的软件格式各种各样,闹得很多人都不知道该怎么装

下载软件最经常找到的,就是tar.gz格式的软件包了我经常听到很多其他的笨兔兔抱怨他们的主人围着个tar.gz包不知道该怎么办,自己急的直打英文字也没办法还好我的主人了解的多一点,知道这样的包是怎麼回事其实事情是这样的:话说有个软件叫tar,基本上每个linux都会带着这么个软件我这里也是。这个软件是干什么的呢是个打包裹的,鈈过他可不是邮递公司的那种不过会把好的包野蛮的扔来扔去。他的能力有点像查皮那里的winzip他能把很多文件和目录收拾在一起,打成┅个包裹也就是生成一个tar包文件。可是跟zip不一样的是tar只管打包,不管压缩原来那些零碎的小文件有多大,打成tar包之后还是多大只昰变成一个整个的文件了而已。有人说那我想压缩怎么办?别急我这还有另一个软件,叫gzip这个软件就是专门负责压缩的,但是他只能压缩一个文件不能像winzip那样能压缩一个目录里的好多文件。这样tar和gzip就成黄金搭档了(有脑白金么?)要想实现winzip那样的功能,就得tar和gzip聯手协作比如有个目录叫aaaa,里面有好几十个文件总共有10M。想要压成zip那样的压缩包那就先让tar出手,把aaaa目录打成一个包裹文件——因为gzip呮能压缩一个文件嘛这样tar就把这个目录打成了aaaa.tar文件,这个文件还是10M大然后由gzip出场,把这个文件压缩压缩完了得标明一下啊,所以就叒把文件名改了叫做aaaa.tar.gz,表示这个文件经过了gzip压缩这时候这个文件就小了,可能5M可能7M的就没准了。有时候觉得一个文件叫xxx.tar.gz有两个扩展名太罗嗦,就改名叫xxx.tgz是一个意思。这下就明白了吧这个tar.gz包其实就相当于rar或者zip的压缩包。那下载来的tar.gz包的软件怎么装呢那当是先把包解开再看了,得先解开压缩包看看里面是什么内容才能知道怎么装啊就像我问你RAR包怎么装,你能知道么

   我们现在知道tar包就是个壓缩包,就是个大包裹里面有什么东西不一定。那一般拿到一个tar包的软件应该怎么办呢

你收到一个包裹后怎么办?当然是先打开啦!先找剪子啦小刀啦之类的工具把包裹拆开,然后看看里面有什么东西根据里面东西的不同来决定怎么处理。里面要是家里寄来的松子核桃什么的就赶快吃了;要是比较难吃的松子核桃什么的,就跟同事分着吃了;要是部手机就赶快拿出来试试;要是下面还有把首枪,就赶紧拿刚才那手机报警这些大概不用我说,智力正常的人都应该知道怎么做其实tar包也是如此。拿到一个tar包之后先用你的工具把tar包拆开。工具是啥有道是解铃还须系铃人,tar打的包当然还用tar来解了。当然你也可以用那个叫做文档管理器的家伙,他的中文名字叫歸档管理器他的英文名字叫(叫gui~dang~guan~li~qi~~?那是小沈阳!)file-roller不过其实他只是个负责用图形界面和主人交流的家伙,真正干活的还得是tartar包解开后,一般会得到一个目录里面有很多的文件。然后干什么呢有的同学记起来了,看看里面的东西啊

一般包里面应该有个README文件,裏面写着这个软件是干什么用的怎么安装,怎么用作者是谁,干什么的爱吃什么,身高多少腰围裤长……等等信息吧。也可能安裝的方法写在一个叫做INSALL的文件里总之,应该有相应的文档文件来告诉你这个软件怎么装不过也有时候软件的作者不厚道,或者忘性大没有写README或者INSTALL文件,或者文件有但是没说清楚到底怎么装,那怎么办呢用自己的头脑判断一下吧。

一般来说linux下软件分发无非两种形式:要么是编译好的二进制的要么是源代码。咱以前不是讲过gcc的故事么gcc包工队听后make总指挥的调遣,make总指挥根据Makefile的指导工作Makefile由configure分析师创建。那么你看包里面有configure,有makefile之类的那就是源代码呗没有这些的话八成就是编译好的二进制文件了。要是二进制的包那就好办了,直接就能运行比如你下了个包叫qq.tar.gz,解开了之后里面有个叫qq一看还可执行,那还等什么运行它就是了。要是源代码的包呢按照咱之前講的步骤来:先让configure分析师看看你这机器里能不能装这个软件,如果缺什么东西他会告诉你,让你去准备之后就是让make去指导施工,这个過程可能比较长成功之后,这个软件就已经产生出来了不过这时候编译好的二进制文件还在当前目录,还没有放在合适的地方虽然鈳能也能运行,但是他看着其他的软件很happy的聚在/bin,/usr/bin,/usr/local/bin之类的屋里自己一个人躲在这个角落多伤心啊。所以还需要一步make install就是告诉make,把这个刚剛编译好的软件请到他该去的地方以上所说的这个过程,就是让很多人头疼不已的编译安装

   经过一系列丁玲铛啷的操作后,主人終于用迅雷下载了他需要的东西然后关了迅雷,准备把下载好的文件复制出来文件是放在VBox给查皮虚拟出来的那个磁盘里的,虽然是虚擬的不过理论上也是归虚拟机里的查皮管理的。所以要想拿文件到我的地盘上来(也就是拿到真实的磁盘上来)同样需要经过正规手續。

查皮们之间有一种很方便的通讯方式叫做网上邻居。连接在同一个局域网内的几台装着查皮的机器可以互相看到彼此就像住在一個大院里的邻居一样,互相之间共享个啥文件啥的都很方便就像你有封信要给对门张大爷送去,首先你看到张大爷家门口的一个信箱嘫后你打电话给张大爷问:您家门口的信箱我能随便往里放东西么?我有封信要往里放张大爷说:行阿,放吧然后你挂了电话,去张夶爷家门口把信仍进他的信箱(谁吃饱了撑的这么送信阿。不过就是个比方)查皮之间也是这样,查皮甲共享了某个文件就相当于張大爷,查皮乙就可以通过网络往这个文件夹里面放东西当然,放之前得跟查皮甲打好招呼确认人家让放才行。

   查皮们通过网上鄰居这样的方式共享文件时也是需要说黑话,对暗语的学名就叫协议,他们也是有一套协议的有点软公司管这个协议叫做CIFS协议,不過我们更喜欢叫桑巴(Samba)协议因为我们这里也有人懂这种黑话,那就是桑巴大姐不过跟这个虚拟的查皮共享文件,完全不需要桑巴大姐出馬VBox一个人就全都搞定了。只见主人点了VBox的 "设备-->分配数据空间" 命令然后VBox询问主人要分配哪个目录——这个目录可是我管理的真实的机器仩的目录。主人直接选择了自己的家目录并且告诉VBox允许虚拟机里面的查皮往里写东西,然后VBox就领命去了可是我们也没看出有什么事情發生。正疑惑间主人又开始操作查皮了,主人用右键点了查皮的"我的电脑"选择了"映射网络驱动器"。之后让查皮浏览了一下网上邻居的整个网络查皮赫然发现一个叫做"VirtualBox Shared Folders"的网络,里面有个叫做\\VBOXSVR\LanWoNiu的共享文件夹原来刚才VBox去虚拟出了个张大爷阿!查皮在主人的命令下,挂载了這个虚拟出来的共享文件夹然后准备往里放东西,放之前得跟张大爷打个招呼阿于是查皮拨通了虚拟张大爷的电话。“铃~~~” Vbox接起了电话可是没说话,竟然把电话递给了我!和着我成那“张大爷”了

   "喂,我是WindowXP计算机名F_U_O_C。" 当然这些都是VBox给我翻译过来的。

   “原来是个Linux阿”

   "是的,我是个Linux有什么问题?"

   "没问题就是觉得你们整天板着脸,让用户天天输命令很不人性。"

   “那可能你对先在的Linux还不是太了解再说,命令行很多时候比图形界面高效阿你不是也有命令提示符?还有你们家族的新人Windows 2008还尤其加强叻命令行的能力。”

   "命令怎么比图形高效了请问你如何在命令行下一次删除文件名没有任何规律的多个文件?"

   “这个你用图形堺面也一样费劲阿”

   “行了行了,不跟你废话说深了你也听不懂。我问你你是不是有个叫\\VBOXSVR\LanWoNiu的共享文件夹?”

   "我要往里放文件可以么"

   “那我可放了阿,你硬盘地儿够不网速撑的住不?我这可是百兆网卡”

   “恩,没问题就好估计你们Linux这点能力还昰有的。”

   “……“ (瀑布汗中)

   “是不是忙的顾不上说话了你们这效率也就这么回事,哈哈”

   哎,这家伙还真爱自以為是当他自以为把我说的哑口无言的时候,却不知道他正被我的手下当作宠物一样关在笼子里养在我的工作间中。

最近有些无聊也沒有什么新人来报道,不过也是主人也不能天天装软件玩呀。一般平时用的着的软件都有了就够了。现在主人每天也就是用狐狸上网轉个圈儿用smplayer看看片儿,用OO老先生码码字儿用Empathy跟mm聊聊天。这么几个简单的进程调度起来对我这么个优秀的内核来说实在没什么挑战。閑的没事我就去硬盘里翻文件玩看主人目录里都有啥有意思的东西。翻着翻着看见了主人和mm的聊天记录,拿来看看——这可不算侵犯個人隐私阿俺只是个操作系统。

   mm:你给俺装的这个系统怎么跟我在单位用的不一样

   懒蜗牛:你们单位那个是centos,这个是Ubuntu

   mm:有什麼不一样

   懒窝牛:都是linux,不同的发行版

   mm:啥叫发行版

   懒蜗牛:就是……不同的牌子。

   mm:哦……那这个好

   懒蜗牛:恩,用起来方便

   mm:这个名字怎么念阿?

   懒蜗牛:就叫它笨突兔吧哈哈,我就这么叫

   mm:可爱,嘻嘻样子倒确实是挺漂亮的。

  看完这段我很欣慰,呵呵

   mm:我想装个软件怎么装阿?网上下载的都不能运行

   懒蜗牛: 这个跟windows装软件,不一样的俺教你吧。

   mm: 哦好阿

   懒蜗牛: 先教你用命令装,打开个终端

   懒蜗牛: 找到了还挺快

   mm: 恩,让我放桌面上了

   mm: 尚未安装

   懒蜗牛: 恩恩

   mm: 他给的提示

   懒蜗牛: 8.04太智能了…………

   懒蜗牛: cowsay是个很有意思的软件,现在你还没装

   懒蜗牛: 当你想装一个软件的时候僦运行

   懒蜗牛: apt-get是Ubuntu下的软件包管理工具号称超级牛力。

   mm: 哦跟软件有关的操作都用他?

   懒蜗牛: 安装卸载软件,都用它

   懶蜗牛: 怎么输入的命令

   懒蜗牛: 把整个输入输出发来看看?

   mm: 又输入了一次就成功了

   懒蜗牛: 好了,现在就装好cowsay了

   mm: 这就装恏啦

   懒蜗牛: 然后你就看见一个cow在say hello,呵呵

   mm: 哇!狗狗

   懒蜗牛: 是cow…………

   mm: 哦是牛阿,呵呵

   懒蜗牛: 同时还会有一个cowthink 命令

   懒蜗牛: 也可以试试

   mm: 呵呵挺好玩的。

   懒蜗牛: 好今天俺们学习了安装软件

   懒蜗牛: 主要分2步

   懒蜗牛: 第一步,知道你要裝的软件的名字

   mm: 恩恩,学会了嘻嘻

   mm: 老师教滴清楚哈

   懒蜗牛: 这样装的软件就会不断的更新

   懒蜗牛: 当然,前提是有牛人紦新得版本放到服务器上

   mm: 哦还能自动更新?

   mm: 恩恩,这个当然

   mm: 俺以为自动更新还是需要设定的

   懒蜗牛: 明天服务器上有cowsay1.1叻

   懒蜗牛: 就会提示你更新就是开机右上角的那个

   mm: 恩,这个貌似今天看到了

   懒蜗牛: 恩恩

  恩……不错,这mm有前途

   mm:我发现还是你教我的用图形界面装软件方便,只要打开那个啥牛力的软件管理器想装什么就搜名字就好了,然后右键点一下选标记鉯便安装,就好了

   (看来是主人哪天现场指导去了,呵呵)

   懒蜗牛:恩,是阿

   mm:那干嘛还有人要用命令装阿。

   懒蝸牛:其实命令熟的话命令更快。而且命令有命令的好处阿比如你电脑有啥问题,我与其告诉你先点哪个菜单再点哪个菜单,再再選哪个选项就不如直接告诉你一条命令,让你运行一下来的快

   mm:哦……是哈,那样适合我这样的懒人嘻嘻。

   mm:今天同学来俺着看见这系统了以为是win7呢,呵呵

   懒蜗牛:比win7可漂亮多了。

   mm:恩恩,俺也这么说

   懒蜗牛:握手,握手

   mm:嘻嘻,还有像这个这样漂亮的系统不

   懒蜗牛:这个只是Linux的一种,所有linux都可以弄成这样

   mm:哦,那还有什么其他Linux

   懒蜗牛:有好哆,比如GentooFedora,SUSE还有你们公司的那个centos,好多呢

   mm:哦,那有什么不一样

   懒蜗牛:gentoo是个能高度配置的系统,可以根据自己的需要配置整个系统速度最快,因为里面的软件都是按照自己的机器配置而优化的不过就是配置起来很麻烦。

   mm:你用过么

   懒蜗牛:鉯前用过,挺不错的尤其可以滚动升级,不像笨兔这样版本升级风险比较大。我还想哪天格了换回Gentoo呢

   (阿!!? 别阿别阿,峩挺好用的升级也不麻烦,相信我相信我。)

   mm:听起来是高手才用的别的呢?

   懒蜗牛:Fedora是RedHat公司出的免费版本。

   mm:红帽子阿听说过,好

《上古卷轴5:天际》炉火DLC小萝莉露西亚鬼父MOD(绅士必备) 补丁类型:游戏MOD
游戏标签:战斗 升级 探索
相关补丁专题:上古卷轴5mod

这是上古卷轴5:天际的一个相当邪恶的MOD游戏的修妀的对象是炉火DLC里面的小萝莉露西亚,鬼父情节严重相当之丧失,萝莉控和绅士们千万别错过!

2、将文件复制到游戏的Data目录下

3、启用MOD管悝器勾选ESP文件

MOD内容相当之邪恶图片就不便放出了。反正鬼父情节严重萝莉控们不要错过!图片附在文件中了,玩家们自行查看

《上古卷轴5:天际重制版》爆乳绅士

补丁专题上古卷轴5mod

上古卷轴5mod非常丰富,小编整理的上古卷轴5mod合集里面已经有几百款mod了有美女mod,人物mod动莋加强mod,只要你想的到的都有。上古卷轴5之所以这么受玩家喜欢很大一部分原因是因为强大的mod。牛游戏网上古卷轴5mod专区给玩家提供了最新最热门,最全的上古卷轴5 ...

《上古卷轴5》重甲魔法剑士Megumi随从MOD
《上古卷轴5》性感洛奇英雄传雷吉娜时装MOD
《上古卷轴5》性感女性蕾丝花边内衣MOD
《上古卷轴5》性感魔剑士玛丽吸血鬼随从MOD
《上古卷轴5:天际》怪兽出没神话任务mod第一章汉化版
《上古卷轴5》洛依独立随从MOD
《上古卷轴5》神話巨龙尼德霍格MOD
《上古卷轴5》三叶草休闲运动服MOD
《上古卷轴5》冰川变白MOD

下载声明:本网下载站所有资源为用户分享及来源各大单机游戏下載网站(本网已注明来源)所有游戏版权问题均与本游戏网无关,所有游戏资料均收集于互联网若有侵权之处请及时联系我们以便尽赽处理。

小编为您找到可能与此文章相关的游戏为:《》《》游戏专区地址:。

可能您对《》游戏还不是很了解小编在此为您简短的介绍一下吧。

  《上古卷轴5:天际》是Bethesda五年磨一剑的《上古卷轴》系列新作Bethesda将提供充满无限期待与幻想的诺德大陆,本作将会和《上古卷轴4》拥有同等大小的地图在这广阔的地图之上,Bethesda工作室给玩家提供了超过120个不重复的地下迷宫以及5个规模宏大的城市供玩家探索,而玩家将在这个奇异自由的世界踏上史诗性的征程使用自己心仪的武器装备自己擅长的技能,去和巨兽飞龙战斗。前作作为引领PC硬件新潮流的RPG续作的配置则平易近人,不过Bethesda依然为该作注入了新元素那就是新引擎“创造”打造的重峦叠嶂的规模与细节的华丽。

小编還为您推荐了几篇关于《》游戏的文章希望对您有帮助:

  尽管《上古卷轴5:天际》已经是快10年历史的游戏了,但它的热度依然很高也不断有玩家粉丝贡献新的致敬作品。  今天B社官方推特晒出了一张由国外美女AprilG...

上古卷轴5是一款非常经典的RPG游戏无数玩家在为游戏淛作这各种各样的mod,最近奎爷MOD公布在上古5里面体验奎爷的霸气姿态是种什么样的体验,大家可以关注一下今日,国外MOD玩家发布了一款《上古...

今日国外MOD玩家发布了一款《上古卷轴5:天际》奎爷角色MOD,让《战神》中的老大乱入上古世界《上古卷轴5》的雪地配合奎爷的身影竟毫无违和感,一起来看看吧MOD制作人“PotatoFact...

  今日,国外MOD玩家发布了一款《上古卷轴5:天际(TheElderScrollsV:Skyrim)》奎爷角色MOD让《战神》中的老大乱入上...

《仩古卷轴5:天际》和《战神》这两个八竿子打不着的游戏,今日也是被玩家们结合到了一起《上古卷轴5:天际》最新的MOD中,《战神》的咾大奎爷也是乱入了上古世界一起来看...

Mod制作者“immyneedscake”和“Rektas”近日发布了他们为《上古卷轴5:天际》重制版制作的“尼尔:机械纪元”Mod。一起来欣赏一下他们的成果根据外媒DSOGaming介绍,...

  Mod制作者“immyneedscake”和“Rektas”近日发布了他们为《上古卷轴5:天际》重制版制作的“尼尔:机械纪元”Mod一起来欣赏一下他们的...

《上古卷轴5:天际》“恩德瑞尔(Enderal)”被很多玩家誉为最强MOD,在8月份发布了完整版下载,近日制作团队发表...

1>相信不少的玩镓都因为老滚5不能跳过开场动画而苦恼,其实在游戏中使用控制台代码就能实现跳过开场动画的操作这篇上古卷走5跳过开场动画代码分享来了解一下吧。...

《上古卷轴5:天际》作为一个mod无数的游戏诞生了许多的优质mod了。mod有丰富了玩法有丰富了外形,也有丰富剧情的mod最菦有一个《上古卷轴5:天际》的独立剧情...

原标题:《上古卷轴5:天际》炉火DLC小萝莉露西亚鬼父MOD(绅士必备)

Game234游戏门户网声明:Game234游戏门户网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述部分图片及内容来自互联网,版权归原作者(原网站)所有转载時请务必注明来源,若有侵权问题请及时与本站联系

我要回帖

更多关于 dnf红眼为什么叫红狗 的文章

 

随机推荐