iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
自我挑戰組

System Software Introduction系列 第 15

The Build of System Software - Build Environment​

  • 分享至 

  • xImage
  •  

System software可能在不同的build environemnt上面build,但為了讓不同的build environment可以build出相同的system software讓不同developer做開發與debug,需要先確定build environment是一致的。

The Consistency of Build Environment

Build environment泛指: software build flow當中會用到的工具compiler toolchain、system library等等

要維持build environment一致性的原因: software developer會希望software不論是在哪一台電腦上被build出來都有相同的行為,這樣software developer才能夠在軟體出問題時快速復現問題,而不是先尋找build environment造成的差異。

Software的build flow會使用system utilities,而system utilities需要依賴於system library運作。

System library通常會隨著kernel有一份預設的版本,所以要維持system library一致性最簡單的方法就是採用擁有相同版本system library的kernel。

The Consistency of Compiler Toolchain

維持build environment一致性最重要的關鍵是要確保compiler toolchain的一致性,我們會使用到三套compiler toolchain (可參考範例圖)

Compiler toolchain (A)-n: 每一台電腦系統上,使用中的compiler toolchain,n代表一種compiler toolchain組合

Compiler toolchain (B): 用來build出符合一致性compiler toolchain的compiler toolchain,在不同電腦上需要使用相同版本的source code

Compiler toolchain (C): 被用在具一致性build environment中的compiler toolchain,system software developer修改的對象,但在不同電腦上需要使用相同版本的source code

https://ithelp.ithome.com.tw/upload/images/20220927/20152298zS24QfemqC.jpg

準備流程:

在每一台電腦的現有環境中先使用compiler toolchain (A)-n將compiler toolchain (B)的source code編譯成執行檔

因為compiler toolchain (B)的版本已經可以在每一台電腦上面一致,接下來就可以將compiler toolchain (C)的source code編譯成執行檔

這時候在每一台電腦上都有一致的compiler toolchain (C)可以使用

Distribution and Benefits

Distribution: 指一組事先build好的software components,可以在每台電腦上得到一致的狀態,可以減輕建立environment一致性負擔。
以我們今天在前面準備build environment環境的過程為例,我們可以使用distribution來簡化整體的準備流程

  1. 相同的kernel和system library版本
  2. 相同的compiler toolchain (A)
    在這樣的環境下,system software developer就不需要再多build一套compiler toolchain (B),而是可以使用compiler toolchain (A)直接build compiler toolchain (C)

我們今天認識了如何建立一套一致的build environment在各台電腦上build system software。接下來我們會介紹讓system software運作的hardware platform。


上一篇
The Build of System Software - Compiler Toolchain Development​
下一篇
The Hardware Platform of System Software – Simulator/Emulator
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言