快捷搜索:

Windows同样保留了前1MB的内存 Linux只是晚了一步

  上周末,对Linux5.13内核进行了修改,强制Linuxx 86/x86_64内核保留原来的1MB内存,以避免某些BIOS和帧缓冲区有时会破坏系统内存的最低部分。尽管无条件保留1MB前的内存被认为很麻烦,也许Windows有某种方法来确定要保留多少低内存区域,但Windows多年来一直采用这种方法。

  虽然LinusTorvalds证实了Linux5.13中已经做了一些更改,以保留Linux86/x86_64系统上第一个1MB的内存,但他评论说:"这似乎很荒谬。在Windows下这是如何工作的呢?关于BIOS影响的Windows方面,肯定有一些我们不知道的东西,而且我已经找到了,而且确实发生了一些奇怪的事情。
  在对这一改变感兴趣之后,一位微软工程师向Windows团队进行了核实,并在社区中评论说,事实上,Windows一直无条件地保留英特尔(Intel)和AMD系统上的1MB内存,这是他们多年来一直在做的。"我与Windows团队进行了核对。彼得安文11几年前说过的话是正确的。在英特尔和AMD处理器上,Windows无条件地保留了前100万字节的内存,减去用于真正模式启动的内存页。这样做是为了解决BIOS所犯的错误。
  因此,Linux似乎将坚持这种新的行为,在x86/x86_64系统中保留前1MB的内存,并与Windows一起处理BIOS实现中的错误。