1.几乎所有的语言,如果它有地址的概念,这个地址一定不是物理地址,是虚拟地址(线性地址)。
2.诸如网卡,硬盘和显卡等外设内部也具有寄存器。
3.在makefile中,gcc -o 文件A 文件1 文件2(…)可以写成 :gcc -o $@ $^
4.地址空间是操作系统中的一种数据结构,通过页表映射物理内存。地址空间和页表(用户级),每一个进程都私有一份的。每一个进程的页表映射的是物理内存的不同区域,所以进程之间不会互相干扰,保证了进程的独立性。
5.程序在编译的时候,编译器就已经给程序进行了编址,并且采用和Linux内核一样的编址方式。
6.页表类似于键值对(map),加上权限。
7.地址空间和页表保护了物理内存的数据。
8.使用地址空间,内存管理模块和进程管理模块分开,这样就完成了解耦合。
9.使用new,malloc的时候,实际上是在地址空间上申请的,物理内存可能并没有开辟空间,当真正的对物理地址空间访问的时候,操作系统才会自动完成申请空间。
10.程序可以分批加载进内存,也可以分批换出内存, 当被换出的时候就叫做挂起。