源码中这段话是什么意思?
时间:2011-11-24
来源:互联网
- 00011 /*
- 00012 * we need this inline - forking from kernel space will result
- 00013 * in NO COPY ON WRITE (!!!), until an execve is executed. This
- 00014 * is no problem, but for the stack. This is handled by not letting
- 00015 * main() use the stack at all after fork(). Thus, no function
- 00016 * calls - which means inline code for fork too, as otherwise we
- 00017 * would use the stack upon exit from 'fork()'.
- 00018 *
- 00019 * Actually only pause and fork are needed inline, so that there
- 00020 * won't be any messing with the stack from main(), but we define
- 00021 * some others too.
- 00022 */
我们需要“inline"--从内核空间fork会导致非写时复制(!!!),一直到一个可执行程序被执行。
如果不是栈,这没有问题。它的处理是通过在fork()后,根本不让main()使用栈。因此,没有函数调用
--也就意味着fork的inline代码,否则我们将在退出出fork()时使用栈。
实际上,只有pause和fork需要inline,所以从main()中不会再有任何关于栈的信息,但是我们
却为其他的定义了栈。
这段话我自己翻译后,不是很明白。什么意思呀?究竟是要解释什么呀?

作者: HS_217^_^ 发布时间: 2011-11-24
帮顶下
作者: bzbj 发布时间: 2011-11-25
inline是内联的意思(c++里的东东)。 fork是创建进程的系统调用。
好象是说 在这里的代码要以inline的方式(在一个main函数里面),即不是调用子函数。目的是不想使用栈。这样,就不会出现NO COPY ON WRITE(新技术"写时才复制"用不上,效率差)。
最后说,调用子函数和创建子进程都要使用inline的方式。
哈哈 开始研究源代码了呀 了不起啊。。。
好象是说 在这里的代码要以inline的方式(在一个main函数里面),即不是调用子函数。目的是不想使用栈。这样,就不会出现NO COPY ON WRITE(新技术"写时才复制"用不上,效率差)。
最后说,调用子函数和创建子进程都要使用inline的方式。
哈哈 开始研究源代码了呀 了不起啊。。。
作者: chengshiding 发布时间: 2011-11-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28