输出虚拟地址对应物理地址的程序

这是一个可以在程序内输出本进程中虚拟地址实际对应的物理地址,可以用来探究linux内存管理系统。
注意:由于一些原因,此程序未能找到在lab machine上成功运行的方法,因此需要在虚拟机上运行。

文件结构

1
2
3
4
vm.h vm.c	- 实现了由虚拟地址计算物理地址的函数,请勿修改
cow.c - 测试copy on write的程序
global.c - 测试.bss段映射匿名文件的程序
mmap.c - 测试mmap函数有关操作的程序

其中,vm.hvm.c核心代码来源于网络,为了方便调用,此处做了适当的微调与封装。

使用方法

函数接口

vm.hvm.c中,封装了一个函数,其可以根据传入的虚拟地址输出物理地址:

1
void show_pa(void* va, const char* info);
阅读更多

递归定理——输出自身源代码的程序

递归定理的一个重要推论,便是对于任意一个程序(图灵机),其都可以在内部获得自身的表述。用程序设计的语言:任意一个程序,都能够在程序内部的某个部分获得自身的源代码。

递归定理的定理内容:咕着

阅读更多