
10
|
第一章
本書與這些標準
本書刻意避免對任何標準提供任何口惠而實不至的服務。一般的 Unix 系統程式設計書
籍,必定會停下來詳細說明某個介面在各標準中的行為有何差異,某個系統呼叫在各標
準中是否有實現,並以類似的頁面填充膨脹的內容。然而,本書只會針對現代的 Linux
系統—包括最新版的 Linux 核心(3.9)、
gcc
(4.8)以及 C 程式庫(2.17)—探討系統
程式設計
因為系統介面通常會固定下來—例如,Linux 系統開發人員會大費周章地避免破壞這些
系統呼叫介面—而且會提供某種程度的原始碼和二元碼相容性,此做法讓我們得以深入
Linux 之系統介面的細節,而不用去關心它與各種其他 Unix 系統和標準的相容性。這
種把焦點擺在 Linux 的做法,讓本書得以深入探討 Linux 特有的先進介面,也使得讀者
可以和未來接軌。本書利用 Linux 最內部的知識,以及
gcc
與核心之類元件的實作和行
為,提供知情人士的看法,而且隨處可見老手的最佳做法以及優化訣竅。
Linux 程式設計的概念
本節將對 Linux 系統所提供的服務做一次簡明的概述。所有的 Unix 系統,包括 Linux,
會提供一組共同的抽象概念以及介面。的確,這種共同性
定義
了 Unix。檔案和行程、
管理 pipe 和 socket 的介面…等等的抽象概念,就是 Unix 系統的基礎元件。
本節假設你已經熟悉 Linux 的作業環境:你可以在 shell 中遊走、使用基本的命令,以
及編譯簡單的 C 程式。本節的內容
並非
Linux ...