Windows同樣無條件保留了前1MB的內存Linux只是晚了一步
上週末,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實現過程中的錯誤。