LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 987|回复: 3

问一个关于mips的问题

[复制链接]
发表于 2004-11-15 12:58:33 | 显示全部楼层 |阅读模式
在看mips architeture时看到,mips cpu的内存布局中,useg和kuseg同时占用0x0000 0000 到0x7fff ffff,i386中每个独立的4G地址空间,user占用3G,然后内核占用1G,这里很不理解mips cpu中是如何用useg和kuseg的,里面说user mode时,useg即user空间是0x0000 0000 到0x7fff ffff,而0x8000 0000到0xffff ffff的空间是address error,在kernel mode时,kuseg即user空间也是0x0000 0000 到0x7fff ffff,我想知道这两者的区别是什么?难道是当有系统调用时,user空间相应的提升为kernel user空间,为什么要共享0x0000 0000 到0x7fff ffff呢?
  希望高手能否给解释一下
 楼主| 发表于 2004-11-16 08:32:15 | 显示全部楼层
没人回答吗?
发表于 2004-11-17 16:23:44 | 显示全部楼层
兄弟,咱俩理解的好象不一样。我理解的是KUSEG是用户空间,KSEG0是内核空间(有MMU),KSEG1是重启时工作的空间。你再看看吧。
 楼主| 发表于 2004-11-17 18:35:18 | 显示全部楼层
对啊,kuseg也是用户空间,但是kuseg和useg之间是什么关系呢?
而linux forum上有人说
看mips linux的thread_info.h中 的thread_info结构定义:

struct thread_info {
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
unsigned long flags; /* low level flags */
__u32 cpu; /* current CPU */
__s32 preempt_count; /* 0 => preemptable, <0 => BUG */

mm_segment_t addr_limit; /* thread address space:
0-0xBFFFFFFF for user-thead
0-0xFFFFFFFF for kernel-thread
*/
struct restart_block restart_block;
};

糊涂了:(
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表