手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

笨兔兔的故事——带你了解Ubuntu,了解Linux

空间

[日期:2010-12-23] 来源:Ubuntu社区  作者: 懒蜗牛Gentoo [字体: ]
(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就会逐渐向我申请更多的空间,把主人写的东西都堆在那块空间中。(要不怎么叫堆呢)
   最后,还有一种动态申请的空间,叫做栈。这种空间是让程序随手放一些临时的变量的。比如临时有个什么事儿,或者有个什么数据,要存起来,就跟我申请栈空间,临时存放一下。栈就像一个小圆筒,程序需要用的时候我才给他,寄存在这筒里的东西都是很快就要用到的,这个空间不用程序去释放,程序退出之后我直接把筒里的东西倒光,把筒收回。因为是个小筒,所以,最先放到里面的东西会被之后放进去的东西压住,必须把后放进去的东西拿出来之后才能拿到先放进去的东西,这叫先进后出,是栈的特点。linux
【内容导航】
第1页:开端 第2页:醒来
第3页:工作 第4页:历史
第5页:也是历史 第6页:还是历史
第7页:串门 第8页:碎片
第9页:邻居 第10页:人才
第11页:来头 第12页:本事
第13页:开源 第14页:故事
第15页:minix 第16页:(16) linux
第17页:Friends 第18页:杀毒
第19页:免疫 第20页:权利
第21页:内存 第22页:内存
第23页:信封 第24页:
第25页:酒 too 第26页: 酒Again
第27页:Year 第28页:人物志
第29页:日志 第30页:XFS
第31页:分区 第32页:挂载
第33页:GIMP 第34页:QQ
第35页:运算 第36页:
第37页:协作 第38页: 加速
第39页:OpenGL 第40页:Power On
第41页:init 第42页:EXT4
第43页:有朋远来 第44页:他乡故知
第45页:可视电话 第46页:磁盘
第47页:硬解 第48页:刻录
第49页: Rubbish 第50页:Bug
第51页:施工 第52页:规划
第53页:因地制宜 第54页:Richard
第55页:Stallman 第56页:进程
第57页:僵尸 第58页:State
第59页:毕加索 第60页: 对决
第61页:空间 第62页:VBox
第63页: 动物园 第64页:BT
第65页: tar包 第66页:编译安装
第67页:对话 第68页:聊天记录
第69页:LOSE 第70页:宏&微
第71页:无线网卡 第72页: 驱动
第73页:显卡驱动 第74页:SLax
第75页:备份 第76页:浮云
第77页:文件类型 第78页:fedora
第79页:RPM 第80页:(80) 爱丽恩
第81页:用户认证 第82页:不知道起啥名字了……
第83页: 第84页:权限
第85页:多用户 第86页:比武
第87页:间歇 第88页:(88) 舌战
第89页:了断 第90页:shell
第91页:乱七八糟 第92页:文泉驿
第93页:dropbox 第94页:
第95页:地址 第96页:绕路
第97页:邮局 第98页:端口
第99页:云山雾罩 第100页:记忆
第101页:浏览器的战争 第102页:狐狸出世
第103页:群雄并起 第104页:门派
第105页:任天堂 第106页:敲敲打打本正理,补补全全是便捷
第107页:往事如烟千般忆,一令似关万物分 第108页:片片云烟过眼 页页细审在目
第109页:众里寻他千百度 第110页:山高无路阻佳音,途中逢友传鸿雁
第111页:笔走龙蛇书妙体,顿开金锁走蛟龙 第112页:小熊猫下小熊猫,游戏者装游戏者
第113页:忠勇智计三千人,三千宠爱在一身 第114页:一寸光阴一寸金 寸金难买寸光阴
第115页: 集腋成裘,拼小为大 第116页:容量速度和安全,阵列级别零一五
第117页:喜得广厦千万间,挂载之后方欢颜 第118页:硬盘扩建无忧虑 文件共享有三八
第119页:通讯靠吼 第120页:认证张口
第121页:SMB初具规模 NFS虎视眈眈 第122页:某年某月某日 某时某分某秒
第123页: 长江后浪推前浪,一代新兔胜旧兔 第124页:伤情最是晚凉天,升级坎坷不堪言
第125页: 惨淡天空,又见光明 第126页:三个和尚没水喝,两个内核没图形
第127页:为体验换装KDE,要易用开发新界面 第128页:我不知道叫什么题目好了
第129页:人生自古谁无死 留洒芳香满内存
相关资讯       Ubuntu Linux 
本文评论   查看全部评论 (12)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 12 楼
* 匿名 发表于 2018/2/19 0:02:32
嗨,真想做个笨兔兔,陪在懒蜗牛身边,.😇
第 11 楼
* 匿名 发表于 2017/4/16 13:43:37
和俱
第 10 楼
* Aaron_Peng会员 发表于 2015/1/28 12:09:59
很不错,推荐给小白看看
回复 支持 (24) 反对 (26)
第 9 楼
* 匿名 发表于 2013/1/23 18:03:37
花了4天去看完,前面有些历史知识,还有些软件的原理,值得去看一下。后面十几章,我就粗略的带过了。显得有些臃肿,啰嗦,价值没有前面几章大。
回复 支持 (29) 反对 (32)
第 8 楼
* Jarod 发表于 2012/8/1 9:42:19
实在太精彩了!我留了份,哈哈
回复 支持 (38) 反对 (37)