|
发表于 2006-3-6 21:52:58
|
显示全部楼层
MMU可是非常重要的概念,有和没有MMU对整个系统影响实在是太大了。比如对于C库来说,有些函数(比如gethostbyname、atexit)在有MMU的情况下是安全(相对于进程而言)的,而其在没有MMU的系统上甚至不是进程安全的,如果不考虑这一点,直接将C库移植在没有MMU的系统上,也许编译可以通过,当在运行的时候,就会出现致命错误。
在没有MMU的系统中,最让人头痛的莫过于errno,大家考虑如何在没有MMU的系统下实现它,要让它是进程安全的。
另外,在没有MMU的系统中,因为不存在独立的进程空间,所有进程共享一个空间(物理空间),所以在创建进程时有非常重要的限制。比如在没有MMU的系统下,只能使用vfork来创建进程,创建进程后,子进程将开始运行,而父进程则阻塞,直到子进程调用exit退出或者execve替换进程映象。
上述区别对于用户空间程序员来说是何其重要! |
|