易截截图软件、单文件、免安装、纯绿色、仅160KB

请问linux中的堆栈

请问linux中的堆栈是怎么样的?为什么我在书上看到这个?
kernel/fork.c,92行:

    p->tss.esp0 = PAGE_SIZE + (long)p;

    p->tss.ss0 = 0x10;

其中,p是新任务的任务数据结构指针,tss是任务状态段结构

为什么esp在 高地址,而ss=0x10=00010 0 00
我没找到 gdt的0x10,不过我在别的书上看到gdt 0x10 是kernel——cs
即开始于0位置?如果这样,那堆栈不是 成了向上延伸的了?
小弟初学,希望各位大哥不吝赐教

内核对进程有自己的内核模式栈,tss.esp0会在用户模式切换到内核模式时得到内核栈的位置。
对ss0,我的理解是内核基本不用段的概念,所以内核CS和DS段的起止位置是一样的。所以其实ss0的含义是DS段。
你看的代码是2.4的?2.6后期的内核DS和CS似乎是从0x0开始的

这个代码应该是linux0.11的吧?内核栈和进程struct还在一页以内呢,2.4以后的都是占用两页了
p->tss.esp0 = PAGE_SIZE + (long)p; 设置内核的堆栈在这一页的末端,然后向下生长


相关问答:

Linux 目录问题

Linux新手,请大哥大姐不要见笑。

我用root用户登录到Linux系统。在根目录下面建了目录dir1,后用命令cd /dir1进入到dir1目录下,然后再用mkdir dir2建立了目录dir2 ,再后来用命令cd /dir2是,提示为:-bush ......

linux 和 windows 相比 安全性何在

  有人认为,linux 安全性高,只是因为用的人少,所以那些黑客不愿意去攻击,所以病毒之类的就少,是不是这样?而且linux是开源的,攻击起来 比较容易所以 懒的去攻击
这种说法对么
linux 怎么就安全高 ......

Linux Socket HTTP请求的问题,高手进!

小弟最近需要一个用socket获取html文档的代码,但是老是不能获取完整的html源码。原因不明,望高手指点!
C/C++ code:

char *Http_GET(char *host,int port,char *data) //发送GET请求
{
char response[2 ......

关于Linux gcc编译器的问题

原先的GCC版本为4.1.2,我重新编译安装了GCC4.3.2,但是编译完程序运行程序时会出现version `GLIBCXX_3.4.9' not found 这个问题.在网上面查了一下是软连接的问题。但是本人对Linux不太熟悉,“应该制作RPM包然后 ......

windows文件系统 比 linux文件系统慢在哪儿?

一直用svn来做资源的管理,
现在发现windows下取svn 要10个小时左右(资源大约有20G,全是小文件)
linux下取仅用40分钟,

请问linux的文件系统在哪儿比windows文件系统强力?

svn 可够慢的。

在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号