
第一章
介紹與基本概念
本書所探討的是
系統程式設計
(
system programming
);也就是,如何進行實際的
系統
軟體
(
system software
)撰寫。系統軟體位於低階層,
1
直接跟核心(kernel)及基礎系統
程式庫(core system library)互動。你所使用的命令殼層(shell)、文字編輯器、編譯
器及除錯器、基礎公用程式(core utility)及系統伺服程式(system daemon)都是系統
軟體。此外,網路伺服器、網頁伺服器及資料庫也屬於這個範疇。這些元件全都是系統
軟體,若不是只跟核心及 C 程式庫互動,就是以此為主。其他的軟體(例如高階的 GUI
應用程式)大多位於高階層,只有偶而會進入低階層。有些程式員會把每天的時間全部
投入系統軟體的撰寫;有些程式員則只花部分的時間在此工作上。然而,不論是哪一種
程式員,都可以從對系統程式設計有所瞭解而獲得好處。不管系統程式設計是否為程式
員的生活目標,或者僅是高階概念的基礎,都是我們所撰寫之任何軟體的中心所在。
特別是,本書所討論的是
Linux
上的系統程式設計。Linux 是一個現代的 Unix-like(類
Unix)系統,由 Linus Torvalds 以及世界各地組織鬆散的程式員社群,從無到有撰寫而
成。儘管 Linux 的目標和理念如同 Unix,但 Linux 並非 Unix。Linux 的設計完全是按照
自己的想法,它的理想與 Unix 分道揚鑣,與 Unix 一致的只有使用方式。Linux 系統程
式設計的基礎部分( ...