linux0.11中关于内核空间没有写时复制这是什么意思呢??

guaiwei 2005-03-24 04:29:57
在看Linux0.11完全注释的时候有这样一段话
* 我们需要下面这些内嵌语句 - 从内核空间创建进程(forking)将导致没有写时复制(COPY ON WRITE)!!!
* 直到一个执行execve 调用。这对堆栈可能带来问题。处理的方法是在fork()调用之后不让main()使用
* 任何堆栈。因此就不能有函数调用 - 这意味着fork 也要使用内嵌的代码,否则我们在从fork()退出
* 时就要使用堆栈了。
* 实际上只有pause 和fork 需要使用内嵌方式,以保证从main()中不会弄乱堆栈,但是我们同时还
* 定义了其它一些函数。

请教各位大侠这里说的内核空间没有写时复制是什么意思阿??
小弟先谢谢了
...全文
118 点赞 收藏 5
写回复
5 条回复
wfwater 2005年03月25日
学习
回复 点赞
lxb685 2005年03月24日
不知道
回复 点赞
guaiwei 2005年03月24日
谢谢 ,但是为什么在内核空间空间就不能写时复制了呢?
回复 点赞
loveisbug 2005年03月24日
google : copy on write
回复 点赞
slone 2005年03月24日
在用户空间当克隆的子进程试图写共享虚存时才进行复制,fork 其实只是克隆了父进程的PCB块而已,所以代码段,数据段都是共享的,当子进程需要更改数据段时,可能就会破坏父进程数据,此时需要为子进程单独(开辟)复制父进程的数据段。内核空间创建进程(forking)将导致没有写时复制(COPY ON WRITE),意思大概就是子进程写时也共享父进程数据段。
回复 点赞
发动态
发帖子
Linux_Kernel
创建于2007-08-27

3149

社区成员

1.7w+

社区内容

Linux/Unix社区 内核源代码研究区
社区公告
暂无公告