![Linux核心是如何知道電腦體系結構的?](https://rvso.com/image/192241/Linux%E6%A0%B8%E5%BF%83%E6%98%AF%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E9%9B%BB%E8%85%A6%E9%AB%94%E7%B3%BB%E7%B5%90%E6%A7%8B%E7%9A%84%EF%BC%9F.png)
在 中start_kernel()
,核心所做的第一件事就是運行setup_arch()
。setup_arch()
是為每個受支援的體系結構定義的,因此它會傳遞一個指向適當命令行的指標。
這個指標是如何初始化的,核心如何以及何時獲得電腦的體系結構?
答案1
給定的核心是為單一體系結構建構的,因此它具有單一的setup_arch
.通用的start_kernel
呼叫它,但它不會將初始化的指針傳遞給命令行,而是傳遞一個指向命令列指針的指針,並且setup_arch
初始化該指針是 的工作的一部分。
例如,x86有一個全域command_line
變數,及其setup_arch
將其位址儲存在由提供的指標中start_kernel
。
因此,核心在建構電腦時有效地獲取了電腦的體系結構。