Products 和 Boards 是 GN 包含項目,可搭配使用為 Fuchsia 建構提供基準設定。
GN 建構設定應包含單一電路板 GNI 檔案和單一產品 GNI 檔案。在 fx 中,這個組合是 fx set
指令的主要引數。
在 Fuchsia GN 建構設定中,系統一律會優先納入板子。板會開始定義三個依附元件清單,然後由匯入的產品 (以及之後的選用 GN 納入項目) 加強。這些清單分別是 Base、Cache 和 Universe,定義如下:
登機時間
一個 這項設定會影響所納入的驅動程式,也可能影響裝置專屬的核心參數。
您可以使用 fx list-boards
列出可用的看板。
產品
產品會定義建構作業產生的軟體設定。最重要的是,產品通常會定義提供的使用者體驗類型,例如使用者可能會看到哪種圖形殼層、是否包含多媒體支援等等。
您可以使用 fx list-products
列出可用的產品。
依附元件集
看板會定義,而產品會擴充三個依附元件清單:Base、Cache 和 Universe。這些依附元件是 GN 標籤,最終會將套件提供給各種系統構件,例如磁碟映像檔和已簽署的套件中繼資料,以及各種開發構件,例如主機工具和測試。
Base
base
依附元件清單會將套件提供給磁碟映像檔、系統更新和套件存放區。base
依附元件組合所包含的套件,優先於 cache
依附元件組合中的重複成員資格。系統設定中的基礎套件屬於系統和安全性的重要組件。這些項目會以原子單位進行更新,無論資源壓力為何,都不會在執行階段淘汰。
快取
cache
依附元件清單會提供在建構作業的磁碟映像檔構件中預先快取的套件,也會在套件存放區中提供這些套件。這些套件不會新增至系統更新,而是會以暫時性的方式更新。您也可以將快取的套件從執行中的系統中移除,以便根據執行階段資源需求釋放資源。
宇宙
universe
依附元件清單只會將套件提供至套件存放區。這些套件可用於執行階段快取和更新,但不會出現在系統更新映像檔中,也不會在任何磁碟映像檔中預先快取。base
和 cache
的所有成員本質上也是 universe
的成員。
主要產品設定
產品定義比下方列出的項目多得多,但下列四項產品的設定特別重要,請務必熟悉:
啟動
bringup
產品是開發人員最小可行目標。由於缺少大部分的網路功能,bringup
產品無法使用需要網路連線的 fx
指令,例如 fx serve
和 fx shell
。
詳情請參閱「產品定義開發」一文
Core
core
是可安裝其他軟體 (例如新增至「universe」依附元件集的項目) 的最小功能集。這是所有較高層級產品設定的起點。它具有一般網路功能,且可透過無線方式更新系統。
極簡
如 RFC-0220 所述,Minimal 的用意是「可呼叫 Fuchsia 的最小項目」。根據定義,這套系統可執行以下操作:
- 啟動至使用者空間。
- 執行元件管理工具和元件。
- 使用 Fuchsia 的無線更新系統進行更新。(這表示儲存空間和網路功能運作正常,且驅動程式由主機板提供)。
Workbench
Workbench 是本機開發的產品設定,可執行無法或不應密封包裝的大型測試,並使用比最小支援範圍更廣泛的 Fuchsia 平台。這項工具的設計目的是類似於實際工作台,可支援開發工具,並讓開發人員探索系統並進行變更。這並非提供給使用者的產品,也不是這些產品的基礎。