對我來說, Linux 快速開機是 簡單 也 困難 的技術.
簡單 – google 搜尋 Linux fast boot 就能找到許多有用而且詳細的資訊以及相關技術, 其中不乏包括 ELC or ELCE 的影片及相關投影片.
困難 – Fast boot 主要的核心組成其實是 “系統調校“, 所以說一樣的調校方法在不同平台上, 就會有不同結果.
Fast boot 要調校的好, 個人淺見為需具備下列知識:
-
熟稔平台上所使用的 CPU
- CPU 是單核 or 多核
- CPU 是什麼架構
- 若多核能做什麼運用
-
平台相關週邊
- 預設使用哪些週邊, 選用哪些週邊
- 週邊中的主動元件是否能協助加速開機流程
-
Linux Kernel
- 哪些選項不需要開啟
- 哪些選項適合優化平台 CPU 以及週邊元件
- 哪些選項 built-in 哪些當driver module
-
Root filesystem
- 需瞭解並優化該 root filesystem (不同 distribution 都會有預設行為, 但不一定會用到)
- 優化 Init system (看是用 sysvinit, upstart or systemd)
-
User space programming
- 開機即執行的程式需小心撰寫
- 數量越少越好, 儘量用 bottom half 的手法
- 儘量避免用 shell or 直譯式相關的程式語言 (bash, awk, sed, etc…)
- 不要有太多的 dependence
- 開機即執行的程式需小心撰寫
相關心得可參考下列投影片