簡體   English   中英

操作系統可以在多個處理器上運行嗎?

[英]Operating Systems can run on multiple processors?

ASM因一個處理器而異,因此,您為處理器體系結構編寫的代碼不適用於另一種。 但是,為什么操作系統可以做到這一點,並且它們包含一些KLOC的asm行代碼?

諸如Linux之類的現代(或至少不是太老)的操作系統大多是用C編寫的,並且僅包含幾行特定於平台的匯編代碼。 要移植到另一種體系結構,必須重新編寫這樣的匯編代碼,這就是完成的工作。 但是C代碼可以重新編譯,而無需重寫。 盡管平台的組裝方言不同,但是它們是基於相同的概念構建的(例如,通過MMU進行基於頁面的內存管理)。 某些操作必須在匯編中完成,因為可移植的C不提供任何方式來進行操作(例如,任務切換或中斷處理的初始步驟),但是OS的大部分工作都是純算法,可以在C中完成(例如,所有網絡代碼都在C語言中;僅通過以太網接口發送數據包的最底層部分最多需要十幾行匯編。

因為操作系統為每種受支持的體系結構重新實現了ASM部分,所以在構建時選擇正確的體系結構?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM