您好,非常感谢您的书。 不知道可否加入实模式保护模式的细节内容,以及内核中进程切换的介绍。
谢谢你的建议。不过实模式、保护模式与本书的主旨无关,是不会加入的。本书希望尽可能少地依赖于平台,只有在不得不讲的时候才讲平台相关的内容。哪位仁兄有兴趣也可以把我的书针对别的平台改编,只要严格遵守GFDL就行。进程切换我会尽量再多讲一点的,但也不会具体到内核实现。
图 20.4. 进程地址空间 图中的“共享库和内存映射区”是啥意思? 是不是“共享库的内存映射区”。
我是想说共享库的映射区和mmap内存映射区,其实共享库也是mmap映射的一种
有一个错误,纠正下:
用户空间是从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不一致。
另外,这本书写的很好,这本书使我获益良多,谢谢作者。你的程序恰恰证明了我的图是对的。命令行参数在低地址,环境变量在高地址。注意数组是从低地址往高地址排的。
你说的是正确的,是我忽略了
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!