Spectre以及meltdown漏洞是前段时间,十分热门的两个漏洞,它们之所以广受重视,是因为它们根据的是体系结构的设计漏洞,而非针对某个系统或者某个软件,因此它几乎可以遍及大多数近代的CPU。
这里主要有三个漏洞:
Linux和Windows的内存映射方法是不同的,在linux中,虚拟空间地址有4G,03G为用户空间,34G为内核空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lwei6HgM-1681701807065)(null)]
其中内核空间都相同,准确的讲是每个进程共享同一个内核空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6IOvRqmo-1681701807017)(null)]
Linux在启动时会初始化一个进程,然后通过fork()生成子进程,Linux的fork机制会把父进程的页表和堆栈等一模一样地复制一份,然后在运行时,子进程通过缺页异常等操作来改变用户空间,如果内核空间部分也改变了,则只修改初始化进程的内核空间,其它子进程访问该页时,再通过缺页中断将这部分内容从父进程更