系統編程是對電腦系統軟體進行編程的活動。 與應用程式程式設計相比,系統程式設計的主要區別特徵是應用程式程式設計旨在生產直接向使用者提供服務的軟體(例如文字處理器),而係統程式設計旨在生產為其他軟體提供服務的軟體和軟體平台,性能受到限制,或兩者兼而有之(例如操作系統、計算科學應用程式、遊戲引擎、工業自動化和軟體即服務應用程式)。

系統編程需要很強的硬體意識。 其目標是實現對可用資源的有效利用,因為軟體本身對效能至關重要,或者因為即使是很小的效率改進也會直接轉化為大量的時間或金錢節省。

以下屬性表徵了系統程式設計:

程式設計師可以對程式運行所在系統的硬體和其他屬性做出假設,並且經常利用這些屬性,例如透過使用已知在與特定硬體一起使用時有效的演算法。
通常使用低階程式語言或程式語言方言,以便:

  • 程式可以在資源受限的環境中運行
  • 程式可以在運行時開銷很小的情況下保持高效,可能有一個小的運行時庫或根本沒有
  • 程式可以對記憶體存取和控制流使用直接和“原始”控制
  • 程式設計師可以直接用組合語言寫部分程式
  • 通常系統程式無法在調試器中運行。 有時可以使用在模擬環境中執行程式來減少此問題。

系統編程旅會在明年三月正式開始,有別於一般課程,這是一個連續五年之旅,我們盡可能保持每週上課一小時