上周末,Linux 5.13内核进行了修改,使Linux x86/x86_64内核开始强制保留最初的1MB内存,以避免一些BIOS和帧缓冲器有时对系统内存的最低部分进行破坏的问题。虽然人们认为无条件地保留前1MB有点麻烦,而且也许Windows有某种方法来决定保留多少低内存区域,但事实证明,Windows多年来一直采用这种做法。
虽然Linus Torvalds确认在Linux 5.13中进行了修改,在Linux x86/x86_64系统上保留了第一个1MB的内存,但他评论说:”这似乎有点荒谬,这在Windows下是如何运作的?一定有一些我们不知道的关于BIOS影响方面的Windows方面的做法,我已经把它找出来了,看起来确实有一些奇怪的事情正在发生。”
在人们对这一变化产生兴趣之后,微软一位工程师与Windows团队进行了核实,并在社区评论说,事实上,Windows一直无条件地在英特尔和AMD系统上保留前1MB的内存,在这一点上他们已经这样做了很多年。”我向Windows团队核实过。Peter Anvin11年前的说法是真的。在英特尔和AMD处理器上,Windows无条件地保留了前一百万字节的内存,减去用于实模式启动的内存页面。这样做是为了解决BIOS带来的错误。”
因此,看起来Linux将坚持这种新的行为,在x86/x86_64系统中保留第一个1MB的内存,与Windows一同应对BIOS实现过程中的错误。
转自 https://www.cnbeta.com/articles/tech/1138603.htm