代码段
数据段
重定位表
符号表
同一个程序,在两种系统下不能同时执行
Windows的可执行文件是PE的文件格式
Linux下的装载器只可以解析ELF的格式而不能解析PE格式
Linux 下著名的开源项目 Wine,就是通过兼容 PE 格式的装载器,使得我们能直接在 Linux 下运行 Windows 程序的。而现在微软的 Windows 里面也提供了 WSL,也就是 Windows Subsystem for Linux,可以解析和加载 ELF 格式的文件。
程序装载:
重载:函数/方法名一样但是参数不一样,根据不同的参数去调用不同的方法。
DOS操作系统:Disk Operating System,磁盘操作系统,
指令用到的内存:虚拟内存地址
内存硬件的空间地址:物理内存地址
分段:找出一段连续的物理内存和虚拟内存地址进行映射的方法
段:系统分配出来的连续的内存空间
内存碎片:
内存交换:(解决内存碎片问题)
将程序占用的内存读取到硬盘中,然后再从硬盘中读取到内存中,但是读取到内存的时候将位置改变到紧跟着已被占用的内存后面,这样就有连续的内存空间了。(注意:如果交换的内存很大则机器会很卡)
内存分页:分页就是把整个物理内存空间切成一段段固定的尺寸的大小。
页:连续并且尺寸固定的内存空间
缺页错误:当读取特定的页,却发现并没有加载到物理内存里面的时候,就会触发一个来自CPU的缺页错误。当系统捕捉到这个错误的时候,就会将对应的页,从存放在硬盘上的虚拟内存里读取出来,加载到物理内存里。