>第 20 章 链接详解>虚拟内存管理

Daming daminggege@gmail.com
2009-03-05 16:39:22

您好,非常感谢您的书。
不知道可否加入实模式保护模式的细节内容,以及内核中进程切换的介绍。


宋劲杉 songjinshan@akaedu.org
2009-03-05 16:49:55

谢谢你的建议。不过实模式、保护模式与本书的主旨无关,是不会加入的。本书希望尽可能少地依赖于平台,只有在不得不讲的时候才讲平台相关的内容。哪位仁兄有兴趣也可以把我的书针对别的平台改编,只要严格遵守GFDL就行。进程切换我会尽量再多讲一点的,但也不会具体到内核实现。


冯海云 906702745@qq.com
2009-05-08 22:55:31

图 20.4. 进程地址空间
图中的“共享库和内存映射区”是啥意思?
是不是“共享库的内存映射区”。




宋劲杉 songjinshan@akaedu.org
2009-05-10 21:15:01

我是想说共享库的映射区和mmap内存映射区,其实共享库也是mmap映射的一种


陈健 fox144215@126.com
2009-05-15 15:09:06

有一个错误,纠正下:
用户空间是从0xbfffffff开始的,依次是命令行参数、环境变量。可以用下面的例子验证:
#include <stdio.h>

int main(int argc, char** argv)
{
	int i;
	for(i=0; argv[i]!=NULL; i++)
		printf("%s\n", argv[i]);
		
	for(i=argc + 1; argv[i]!=NULL; i++)
		printf("%s\n", argv[i]);
	return 0;
}
与图20-4不一致。
另外,这本书写的很好,这本书使我获益良多,谢谢作者。


宋劲杉 songjinshan@akaedu.org
2009-05-21 11:18:52

你的程序恰恰证明了我的图是对的。命令行参数在低地址,环境变量在高地址。注意数组是从低地址往高地址排的。


陈健 fox144215@126.com
2009-06-09 12:17:04

你说的是正确的,是我忽略了


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!