
[连载]笨兔兔的故事
- wangdu2002
- 帖子: 13284
- 注册时间: 2008-12-13 19:39
- 来自: 物华天宝人杰地灵
- Arcadia
- 帖子: 46
- 注册时间: 2009-10-28 15:13
Re: [连载]笨兔兔的故事
有没有更新啊?
-
- 帖子: 499
- 注册时间: 2008-05-09 17:02
- 系统: Ubuntu 13.04
- 联系:
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: [连载]笨兔兔的故事
父进程应该是bash,gnome-panel,gnome-do之类的吧懒蜗牛Gentoo 写了:(58) State
别看说的这么麻烦,其实一个天真烂漫的娃进程从变成僵尸到被干掉只是一瞬间的事情,所以一般情况下主人是看不到一个僵尸进程的,要不然这一屋子僵尸还不得把主人吓出点毛病来。一般主人用ps命令查看到的进程,和办公室里的员工差不多,基本都处于两种——干活和睡觉。
干活的状态,学名叫Running,也叫运行状态。这个应该很好理解,就是说明这个进程正在干活嘛。但是有个问题,还记得我说过CPU是有限的吧,一台电脑就那么几个CPU(对软件来说,多核CPU跟多个CPU差不多),可是要用CPU工作的软件有很多。那么这个处于进程的干活状态又可以分为两种:1.正在使用CPU干活。 2.排队等待使用CPU干活。当然,处在这两种状态的进程我都算他正在工作。这就好象你在公司要打印文件,结果打印机卡纸了。你在那等着人家修打印机的这段时间不能算旷工吧。我可不是啥囗囗的老板,所以,正在使用CPU干活的,和积极的排队等待使用CPU干活的进程,都算正在干活的进程。
然后再说睡觉的状态。估计如果你上班的时候在办公室里睡觉,你们老板会很不高兴的。但是,在我这里,没问题!很多程序都会经常进入睡觉状态。这里说明一下,这个睡觉状态可不是说回硬盘睡觉啊,为了区别我们这样说吧,我们管完全执行完毕退出内存只存在于硬盘的程序叫“下班回家”的程序吧。只不过这个家就是硬盘上那块地儿,而回家后唯一的活动就是睡觉。好,现在我们要说的不是下班回家,而是在办公室睡觉——也就是在内存中的进程,进入睡觉状态,也叫sleep状态,休眠状态。那为什么一个进程在内存里不好好干活,要去睡觉呢?不是因为他昨晚上爬起来偷菜来着,也不是因为他熬夜看球,而是因为他要等待某个事情发生。比如皮筋老弟,每次他运行起来之后,主人看看有没有mm在线,没啥值得聊的就直接把皮筋最小化了。那么这个时候如果没有人给主人发消息的话,皮筋就没什么事情干,所以就没必要让他跟着排队等CPU了,等着了也没事情干嘛。所以这个时候皮筋就来向我汇报说:头儿啊,我歇会去啊,等网口那边有发给我的包了你再叫我。然后他就去睡觉去了,而我负责看着网口有没有发给他的包,如果有的话就叫醒他,那时候他就变回工作的状态,开始处理包的内容了。
睡觉状态也分成两种,一种是叫的醒的,一种是叫不醒的。还说皮筋,他正在睡觉,等着网口的数据包,这时候主人发来命令,要把皮筋关了,这时候虽然皮筋等的包没来,我也得去叫醒他说:别等了,你下班回家睡觉吧。然后皮筋点点头,收拾好自己的东西,变成僵尸,他的父进程(通常是init)提出申请,我把它工号注销,然后他回硬盘睡觉。这种是正常情况,这样的睡觉状态就是能够叫醒的。也有的进程很执着,还比如皮筋,正在睡觉等包,这时候我发现网线断了。这网线都断了那肯定来不了包了吧,主人也明白这点,要把皮筋关了。这时候我过去说:“醒醒,别等了,下班回家睡觉去吧。”他不理我。我继续:“网线都端啦,等不来啦!”他还是不理我。我只好:“快醒醒,快醒醒,回家啦!”还是没动静。“快起来看上帝啦~”依然没反应。“靠,出绝招了……这是谁的钱包啊??!!”还是睡觉,看来是无论如何也叫不醒了,除非他等的那个包出现。这就是叫不醒的睡觉状态。一般一个好的程序是不应该处在这样的状态的。
另外,进程还有个停止状态,一般都是调试的时候使用的。比如主任的Rubbish n号,跑进内存处于工作状态的时候,主人喊,停!Rubbish马上一动不动,处于停止状态,这样便于主人检查这家伙的各个部件是否正常。
代码: 全选
] ls -ld //
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: [连载]笨兔兔的故事
我试过,从默认的菜单里运行,或者从gnome-do里面运行的东西,他的ppid都是1,你可以试一下。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: [连载]笨兔兔的故事
(60) 对决
毕大师和毕翻译安顿好之后,主人立刻把他们叫起来干活。俩人先后爬起来跑进内存,麻利的整理起主人的图片来——第一次启动嘛,得先对主人指定存放图片的那个目录扫描一下,做好整理和记录工作,这样才能心里有底,主人要看啥,立马能找着。经过了数秒之后,毕大师完成了对所有图片的扫描,主人觉得比原来负责管理照片的f-spot快了不少。这下,f-spot可不爽了。
f-spot是最初跟随我来到这个机器上的,也算是元老了。一直以来都是他负责管理主人的照片,也没出现什么问题。现在主人找来这么个功能差不多的家伙,这不是明摆着要抢f-spot的饭碗么。要是以后让这个windows的程序代替了,我们linux程序的脸面还往哪搁?于是f-spot决定,为了荣誉,向毕加索挑战!只见f-spot跑到刚刚扫描完图片的毕大师面前说:“大师果然好功夫,不亏是师出名门。这数千张图片,竟然这么快就整理好了。在下实在佩服的紧,不过不知大师其他本事怎么样,有道是遇高人不可交臂失之,在下想在大师面前讨教几招,不知,大师可肯赐教否?”只见毕大师的表情如平静的湖水般并没有因f-spot的挑战而激起一丝波澜,只是面容祥和的扭过头对翻译说:“What did he say?” 靠……
F-Spot VS Picasa
要比就从起床开始比!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等多个网上相片储存空间里。这真是:棋逢对手,将遇良才,欲知二人胜负如何,且听下回分解。
毕大师和毕翻译安顿好之后,主人立刻把他们叫起来干活。俩人先后爬起来跑进内存,麻利的整理起主人的图片来——第一次启动嘛,得先对主人指定存放图片的那个目录扫描一下,做好整理和记录工作,这样才能心里有底,主人要看啥,立马能找着。经过了数秒之后,毕大师完成了对所有图片的扫描,主人觉得比原来负责管理照片的f-spot快了不少。这下,f-spot可不爽了。
f-spot是最初跟随我来到这个机器上的,也算是元老了。一直以来都是他负责管理主人的照片,也没出现什么问题。现在主人找来这么个功能差不多的家伙,这不是明摆着要抢f-spot的饭碗么。要是以后让这个windows的程序代替了,我们linux程序的脸面还往哪搁?于是f-spot决定,为了荣誉,向毕加索挑战!只见f-spot跑到刚刚扫描完图片的毕大师面前说:“大师果然好功夫,不亏是师出名门。这数千张图片,竟然这么快就整理好了。在下实在佩服的紧,不过不知大师其他本事怎么样,有道是遇高人不可交臂失之,在下想在大师面前讨教几招,不知,大师可肯赐教否?”只见毕大师的表情如平静的湖水般并没有因f-spot的挑战而激起一丝波澜,只是面容祥和的扭过头对翻译说:“What did he say?” 靠……
F-Spot VS Picasa
要比就从起床开始比!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等多个网上相片储存空间里。这真是:棋逢对手,将遇良才,欲知二人胜负如何,且听下回分解。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
- kaoxuchen
- 帖子: 28
- 注册时间: 2009-03-08 16:07
Re: [连载]笨兔兔的故事
又来顶啦 奇怪怎么没人给小兔兔做个logo?
-
- 帖子: 118
- 注册时间: 2009-01-24 14:30
Re: [连载]笨兔兔的故事
额,本人倒是能手绘个可爱点滴logo,,,,,kaoxuchen 写了:又来顶啦 奇怪怎么没人给小兔兔做个logo?
就是本人不会PS之类的东西,怎么放在电脑上捏
- jiening1017
- 帖子: 164
- 注册时间: 2007-05-29 21:58
- 来自: 大连
Re: [连载]笨兔兔的故事
看了好几天了,今天才留个贴,支持
ps:lz太有才了

ps:lz太有才了
- kaoxuchen
- 帖子: 28
- 注册时间: 2009-03-08 16:07
Re: [连载]笨兔兔的故事
我昨天还试着画呢 但是画的好难看 尾巴还忘画啦byd123 写了:额,本人倒是能手绘个可爱点滴logo,,,,,kaoxuchen 写了:又来顶啦 奇怪怎么没人给小兔兔做个logo?
就是本人不会PS之类的东西,怎么放在电脑上捏
- 附件
-
- tutu.png (11.2 KiB) 查看 1083 次
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: [连载]笨兔兔的故事
这个兔子很震撼…………
我一直想画来着,无奈美术功底不好
我一直想画来着,无奈美术功底不好

虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
-
- 帖子: 118
- 注册时间: 2009-01-24 14:30
Re: [连载]笨兔兔的故事
我觉得画的还不错呀,,,就是logo太大了,要个兔子头就好了懒蜗牛Gentoo 写了:这个兔子很震撼…………
我一直想画来着,无奈美术功底不好
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: [连载]笨兔兔的故事
(61) 空间
话说二人斗的正酣,忽然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就会逐渐向我申请更多的空间,把主人写的东西都堆在那块空间中。(要不怎么叫堆呢)
最后,还有一种动态申请的空间,叫做栈。这种空间是让程序随手放一些临时的变量的。比如临时有个什么事儿,或者有个什么数据,要存起来,就跟我申请栈空间,临时存放一下。栈就像一个小圆筒,程序需要用的时候我才给他,寄存在这筒里的东西都是很快就要用到的,这个空间不用程序去释放,程序退出之后我直接把筒里的东西倒光,把筒收回。因为是个小筒,所以,最先放到里面的东西会被之后放进去的东西压住,必须把后放进去的东西拿出来之后才能拿到先放进去的东西,这叫先进后出,是栈的特点。
话说二人斗的正酣,忽然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就会逐渐向我申请更多的空间,把主人写的东西都堆在那块空间中。(要不怎么叫堆呢)
最后,还有一种动态申请的空间,叫做栈。这种空间是让程序随手放一些临时的变量的。比如临时有个什么事儿,或者有个什么数据,要存起来,就跟我申请栈空间,临时存放一下。栈就像一个小圆筒,程序需要用的时候我才给他,寄存在这筒里的东西都是很快就要用到的,这个空间不用程序去释放,程序退出之后我直接把筒里的东西倒光,把筒收回。因为是个小筒,所以,最先放到里面的东西会被之后放进去的东西压住,必须把后放进去的东西拿出来之后才能拿到先放进去的东西,这叫先进后出,是栈的特点。
上次由 懒蜗牛Gentoo 在 2009-11-11 20:13,总共编辑 1 次。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
- kaoxuchen
- 帖子: 28
- 注册时间: 2009-03-08 16:07
Re: [连载]笨兔兔的故事
胡乱修改下..byd123 写了:我觉得画的还不错呀,,,就是logo太大了,要个兔子头就好了懒蜗牛Gentoo 写了:这个兔子很震撼…………
我一直想画来着,无奈美术功底不好
- 附件
-
- ubuntu-logo2.png (87.17 KiB) 查看 1059 次