当前位置: 技术问答>linux和unix
LINUX-0.11 fork()问题??
来源: 互联网 发布时间:2017-03-04
本文导语: 本帖最后由 wzw88486969 于 2012-07-06 17:14:40 编辑 小弟在学习0.11 看到了 fork.c 有个问题想不明白 fork.c-->int copy_process(.....)函数中 p = (struct task_struct *) get_free_page (); ........................... p->tss.esp0 = PAGE_SIZE + (long)...
fork.c-->int copy_process(.....)函数中
p = (struct task_struct *) get_free_page ();
...........................
p->tss.esp0 = PAGE_SIZE + (long) p; // 堆栈指针(由于是给任务结构p 分配了1 页
// 新内存,所以此时esp0 正好指向该页顶端)。
p->tss.ss0 = 0x10; // 堆栈段选择符(内核数据段)[??]。
那第二句为什么要指向系统的数据段呢 想不明白 他自己有空间(分了一页) 为什么不指向自己的空间呢?
我看了网上的一个注解 也不太明白
我也把这个图片放到我空间相册里了(200.JPG),因为这里总看不到图
谢谢你的回复!!!
|
1、赵博不是有个论坛吗?0.11和0.12的 好像叫oldLinux论坛
2、看看 Linux内核设计与实现,这本书入门简单点
2、看看 Linux内核设计与实现,这本书入门简单点