非常小地址的内存内容
Contents of Memory at very small Addresses
谁能告诉我在非常小的地址 (0-100) 内存有什么内容,例如在基于 Linux 的操作系统(例如 CentOS)和 Windows ?
低虚拟地址
对于大多数操作系统,至少虚拟地址的下半部分space取决于它所属的进程(上半部分为"kernel space")。通常,为了捕获狡猾的指针(包括“int pointer = NULL; foo = pointer[1234];
”和“struct myStructure *pointer = NULL; foo = pointer->myField;
”之类的东西;其中访问的地址不是指针指向的地址)最低的虚拟地址被保留给几乎什么都没有;因此,如果任何软件试图访问它,CPU 会生成页面错误以通知内核软件试图做一些非常错误的事情。
低物理地址
低物理地址的内容取决于它是哪种类型的计算机(80x86、ARM、MIP 等)以及固件是什么(例如 BIOS、UEFI)和其他因素(芯片组的配置方式) ).没有这些信息就不可能有具体的答案(唯一可能的答案是 "nobody can know")。
谁能告诉我在非常小的地址 (0-100) 内存有什么内容,例如在基于 Linux 的操作系统(例如 CentOS)和 Windows ?
低虚拟地址
对于大多数操作系统,至少虚拟地址的下半部分space取决于它所属的进程(上半部分为"kernel space")。通常,为了捕获狡猾的指针(包括“int pointer = NULL; foo = pointer[1234];
”和“struct myStructure *pointer = NULL; foo = pointer->myField;
”之类的东西;其中访问的地址不是指针指向的地址)最低的虚拟地址被保留给几乎什么都没有;因此,如果任何软件试图访问它,CPU 会生成页面错误以通知内核软件试图做一些非常错误的事情。
低物理地址
低物理地址的内容取决于它是哪种类型的计算机(80x86、ARM、MIP 等)以及固件是什么(例如 BIOS、UEFI)和其他因素(芯片组的配置方式) ).没有这些信息就不可能有具体的答案(唯一可能的答案是 "nobody can know")。