免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zalem
打印 上一主题 下一主题

《The Desing and Implementation of the FreeBSD OS》的这句话怎么理解 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-11-30 09:41 |只看该作者
原帖由 Alligator27 于 2005-11-29 22:58 发表


我是想问 FreeBSD1.0.2 是否用 Virtual Memory Management.

如果是, stack清零就有点怪.



为什么怪呢,能给小弟解释一下么?

那为什么堆又要清0呢?
malloc的时候堆清0好象也没有什么用啊,因为不能保证得到的存储就是原始的存储。 如果要0,还得自己去做。

论坛徽章:
0
12 [报告]
发表于 2005-11-30 16:42 |只看该作者
原帖由 zalem 于 2005-11-29 18:19 发表
问题解决了...在FreeBSD1.0.2上运行了一次,确实被初始化为0了...看来还是描述老了


不要轻易下结论,,说说我的看法:

是否清0是对page来说的,你的例子并不能证明FreeBSD没有对堆栈所在页进行清0,
因为你的栈变量离main函数入口太“近”了。你可以在main函数中定义一个大数组,
然后把数组内容打印出来,你就可以看到,不是0的部分其实是相当小的。

之所以在main函数入口之后的堆栈中存在部分的非0内容,那是因为启动代码在调用
main函数之前还做了很多事情,比如一系列的函数调用,这些事情就会在堆栈上留下
印记,而main函数的入口已经是一系列的堆栈增减操作之后的位置了。只要这个入口
没有达到曾经达到的最远位置,在你可见的堆栈空间中就有可能会存在一段非0的内容。

[ 本帖最后由 雨丝风片 于 2005-11-30 16:43 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2005-11-30 22:41 |只看该作者
To flw2
之所以觉得怪, 是因为VMM不会只对stack清零.

我的理解是这样. (限于VMM).
Kernel 提供给用户进程的物理内存总是清零的. 但是程序看到的大都不是这样, 是因为heap上malloc返回的往往是该程序前面释放的内存, 而不一定是VMM刚提供的物理内存. stack上雨丝风片的看法已经很好解释Zalem看到的现象.

我很想试一试 4.2BSD, 按docment说, 她应当不清零. 可惜没机器.
bennie 该用户已被删除
14 [报告]
发表于 2005-11-30 22:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
15 [报告]
发表于 2005-11-30 23:17 |只看该作者
原帖由 雨丝风片 于 2005-11-30 16:42 发表


不要轻易下结论,,说说我的看法:

是否清0是对page来说的,你的例子并不能证明FreeBSD没有对堆栈所在页进行清0,
因为你的栈变量离main函数入口太“近”了。你可以在main函数中定义一个大数组,
然后 ...



呵呵,以后不再轻易下结论了,等什么时候在src里面找到了好好看看...


×××××××

现在在google找的时候发现这篇文章,准备先看看,应该不错...

http://ezine.daemonnews.org/200001/freebsd_vm.html

论坛徽章:
0
16 [报告]
发表于 2005-11-30 23:41 |只看该作者
原帖由 zalem 于 2005-11-30 23:17 发表

呵呵,以后不再轻易下结论了,等什么时候在src里面找到了好好看看...

×××××××

现在在google找的时候发现这篇文章,准备先看看,应该不错...

http://ezine.daemonnews.org/200001/fr ...



google有时候也会让人舍近求远。。。\"\"
如果对BSD感兴趣的话可以先挑拣一下这里的文章,其中就包括你找到的那篇,\"\"

[url]http://www.freebsd.org/docs/books.html

论坛徽章:
0
17 [报告]
发表于 2005-12-01 00:02 |只看该作者
...这么多...路好长...啥也不说了,闷头学了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP