• 本書英文版System Programming獲得美國最權威的書評機構Bookauthority的推薦,並評為最佳網路程式設計書籍。
• 作者陳金追為電腦系統軟體世界級的專家!從事軟體研發三十幾年,曾為Oracle開發全新的資料庫復原系統。
• 想成為世界級的電腦軟體專家,看本書就對了!
本書有系統地介紹如何以POSIX標準所規定的作業系統程式界面,做跨平台的軟體開發,設計出一流軟體。
上册第1-11章(系統程式設計):
• 靜態與動態連結,動態載入。程序管理。軟體開發與軟體工程過程。
• 檔案輸入/輸出:循序I/O、隨機I/O、向量I/O、非同步I/O、直接I/O。
• 程序間通信方法:信號、旗誌、共有記憶、插口、有名與無名導管、信息排隊、映入記憶器檔案。
• Pthreads多程線程式設計:互斥鎖、條件變數、程線特有資料、修復吊死的互斥鎖、程線取消、生産消費問題。
• 共時控制:更新遺失問題、系統五與POSIX旗誌。以組合語言撰寫自己的上鎖與解鎖函數,比系統所提供的任何共時控制設施,都快上25~80%的速度。如何預防鎖死。
下冊第12-16章(網路程式設計):
• 網路插口程式設計:不同種類的插口、客戶伺服程式、連線與非連線式通信、同時支援IPv4與IPv6、多工式伺服程式、多播作業、非同步連線、自動重新再連線、查取端口號。
• 插口選項:SO_KEEPALIVE、SO_LINGER、SO_REUSEADDR、SO_REUSEPORT 與緩衝器大小 。
• 性能調整:如何分別在應用軟體與作業系統核心層次,調整網路插口程式的性能。
• 分散式程式設計:如何解決跨印地(endian)、對位、32與64位元混合、永遠往後且往前相容、版本術、預防癱瘓攻撃。
• 電腦網路安全:對稱式與不對稱式密碼術。撰寫從事信息紋摘、加密、解密、HMAC、數位簽字,以及SSL/TLS等作業的客戶伺服程式。PKI,如何產生並建立自簽的X.509憑証,如何做不同格式憑證的轉換,SSL/TLS 程式設計,如何在SSL/TLS作業時驗證一串的憑證,以及如何在SSL/TLS上做客戶認證等。
• 如何設計一流軟體。
• 書中200多個C範例程式,均在Linux、AIX、Solaris、HPUX、Apple Darwin上測試過。網路插口程式也在微軟Windows測試過。
作者介紹
作者簡介
陳金追(Jin-Jwei Chen)
美國麻州大學電腦碩士,博士班肄業,是電腦系統軟體世界級的專家。求學後在美國電腦軟體工業界,從事軟體研發三十幾年,曾為Oracle開發全新的資料庫復原系統。經驗橫跨作業系統核心、資料庫管理系統核心、群集系統、網路與分散系統、網路安全、網路管理、應用伺服器與網際網路服務等不同領域。
作者擁有一項美國大專利,含十六項發明的「無資料遺失之資料庫備存與復原」。他也在1990年代設計與開發由Unix作業系統核心反向叫用使用者空間的命令,進行完全動態載入設備驅動程式的技術,但卻不知申請專利。
陳金追(Jin-Jwei Chen)
美國麻州大學電腦碩士,博士班肄業,是電腦系統軟體世界級的專家。求學後在美國電腦軟體工業界,從事軟體研發三十幾年,曾為Oracle開發全新的資料庫復原系統。經驗橫跨作業系統核心、資料庫管理系統核心、群集系統、網路與分散系統、網路安全、網路管理、應用伺服器與網際網路服務等不同領域。
作者擁有一項美國大專利,含十六項發明的「無資料遺失之資料庫備存與復原」。他也在1990年代設計與開發由Unix作業系統核心反向叫用使用者空間的命令,進行完全動態載入設備驅動程式的技術,但卻不知申請專利。
目錄
第1 章 基本計算機概念
1-1 硬體與軟體,兩者缺一不可
1-2 計算機硬體簡介
1-3 計算機的基本作業
1-4 計算機軟體
1-5 作業系統
1-6 程式,程序與程線
1-7 電腦的階層
第2 章 軟體開發與軟體工程過程
2-1 軟體開發過程
2-2 原始碼控制系統
2-3 軟體釋出過程
2-4 產品建立的不同模式
2-5 產品建立的工具
2-6 退化測試組套
2-7 編譯式與解譯式程式語言
2-8 程式語言的選擇
第3 章 程式與庫存的建立
3-1 何謂庫存
3-2 存檔庫存與共用庫存
3-3 建立程式或庫存的兩個階段
3-4 靜態連結與動態連結
3-5 連結程式如何找到靜態與動態庫存
3-6 應用程式如何找到動態庫存
3-7 動態載入 — 不連結
3-8 編譯、載入與執行時段
3-9 混合式連結
3-10 建立與應用你自己的庫存
3-11 作業指令摘要
第4 章 檔案輸入/輸出
4-1 磁碟的結構
4-2 檔案的一些觀念
4-3 兩種程式界面
4-4 檔案描述與相關之核心層資料結構
4-5 打開與建立檔案
4-6 寫入檔案
4-7 撰寫健全牢固從事I/O 的軟體
4-8 讀取檔案
4-9 循序I/O
4-10 共時程序間共用檔案
4-11 隨機I/O
4-12 向量式I/O
4-13 非同步I/O
4-14 直接I/O
4-15 輸入/輸出緩衝
4-16 檔案的共時更新
第5章 檔案與檔案夾
5-1 檔案的種類與權限
5-2 開創或剔除檔案夾
5-3 建立連結
5-4 建立象徵連結
5-5 剔除或改名一個檔案或檔案夾
5-6 獲取配置參數的值
5-7 取得或改變現有工作檔案夾
5-8 讀取檔案夾元素的狀態資訊
5-9 打開與讀取檔案夾
5-10 改變權限
5-11 改變擁有者
5-12 複製檔案描述
5-13 fcntl()函數
5-14 ioctl()函數
5-15 檔案與檔案夾之權限面罩
5-16 SUID,SGID,與黏著位元
5-17 access()與faccessat()函數
5-18 更改存取與異動時間
第6章 信號
6-1 信號簡介
6-2 處置信號的行動
6-3 以kill()函數發送信號
6-4 信號面罩—被阻擋著的信號
6-5 接收被擋住,懸而未決的信號
6-6 保留給應用程式的信號
6-7 作業系統所定義的非必要信號
6-8 信號對sleep()函數的影響
6-9 信號的警訊
6-10 信號摘要
6-11 其他的信號函數
第7章 程序
7-1 程序有關的觀念與函數
7-2 以fork()產生一新程序
7-3 母程序等候子程序
7-4 產生新程序以執行不同的程式
7-5 母程序與子程序之溝通
7-6 孤兒與亡魂程序
7-7 程序終止
7-8 getenv()與sysconf()函數
7-9 system()函數
7-10 程序的資源極限
7-11 其他用戶與群組相關的函數
第8章 Pthreads程式設計
8-1 為何使用多程線程式設計
8-2 基本的Pthreads
8-3 Pthreads屬性
8-4 共時控制問題的種類
8-5 互斥鎖
8-6 條件變數
8-7 讀寫鎖
8-8 程線特有的資料
8-9 取消程線
8-10 程線的信號處理
8-11 進一步參考資料
8-12 所有的pthreads程式界面
8-13 含程線取消點的函數
第9章 共時控制與上鎖
9-1 共時控制簡介
9-2 系統五IPC資源簡介
9-3 系統五旗誌
9-4 不同類型的鎖
9-5 設計與實作自己的上鎖函數
9-6 POSIX旗誌
9-7 微軟視窗的旗誌與互斥鎖
9-8 鎖死
9-9 和旗誌有關的系統可調參數
9-10 共時控制問題與解決辦法摘要
第10章 共有記憶
10-1 共有記憶簡介
10-2 共有記憶的程式界面
10-3 共有記憶實例
第11章 再談程序間通信方式
11-1 程序間通信摘要
11-2 具名的導管(FIFOs)
11-3 信息排隊
11-4 映入記憶器檔案
1-1 硬體與軟體,兩者缺一不可
1-2 計算機硬體簡介
1-3 計算機的基本作業
1-4 計算機軟體
1-5 作業系統
1-6 程式,程序與程線
1-7 電腦的階層
第2 章 軟體開發與軟體工程過程
2-1 軟體開發過程
2-2 原始碼控制系統
2-3 軟體釋出過程
2-4 產品建立的不同模式
2-5 產品建立的工具
2-6 退化測試組套
2-7 編譯式與解譯式程式語言
2-8 程式語言的選擇
第3 章 程式與庫存的建立
3-1 何謂庫存
3-2 存檔庫存與共用庫存
3-3 建立程式或庫存的兩個階段
3-4 靜態連結與動態連結
3-5 連結程式如何找到靜態與動態庫存
3-6 應用程式如何找到動態庫存
3-7 動態載入 — 不連結
3-8 編譯、載入與執行時段
3-9 混合式連結
3-10 建立與應用你自己的庫存
3-11 作業指令摘要
第4 章 檔案輸入/輸出
4-1 磁碟的結構
4-2 檔案的一些觀念
4-3 兩種程式界面
4-4 檔案描述與相關之核心層資料結構
4-5 打開與建立檔案
4-6 寫入檔案
4-7 撰寫健全牢固從事I/O 的軟體
4-8 讀取檔案
4-9 循序I/O
4-10 共時程序間共用檔案
4-11 隨機I/O
4-12 向量式I/O
4-13 非同步I/O
4-14 直接I/O
4-15 輸入/輸出緩衝
4-16 檔案的共時更新
第5章 檔案與檔案夾
5-1 檔案的種類與權限
5-2 開創或剔除檔案夾
5-3 建立連結
5-4 建立象徵連結
5-5 剔除或改名一個檔案或檔案夾
5-6 獲取配置參數的值
5-7 取得或改變現有工作檔案夾
5-8 讀取檔案夾元素的狀態資訊
5-9 打開與讀取檔案夾
5-10 改變權限
5-11 改變擁有者
5-12 複製檔案描述
5-13 fcntl()函數
5-14 ioctl()函數
5-15 檔案與檔案夾之權限面罩
5-16 SUID,SGID,與黏著位元
5-17 access()與faccessat()函數
5-18 更改存取與異動時間
第6章 信號
6-1 信號簡介
6-2 處置信號的行動
6-3 以kill()函數發送信號
6-4 信號面罩—被阻擋著的信號
6-5 接收被擋住,懸而未決的信號
6-6 保留給應用程式的信號
6-7 作業系統所定義的非必要信號
6-8 信號對sleep()函數的影響
6-9 信號的警訊
6-10 信號摘要
6-11 其他的信號函數
第7章 程序
7-1 程序有關的觀念與函數
7-2 以fork()產生一新程序
7-3 母程序等候子程序
7-4 產生新程序以執行不同的程式
7-5 母程序與子程序之溝通
7-6 孤兒與亡魂程序
7-7 程序終止
7-8 getenv()與sysconf()函數
7-9 system()函數
7-10 程序的資源極限
7-11 其他用戶與群組相關的函數
第8章 Pthreads程式設計
8-1 為何使用多程線程式設計
8-2 基本的Pthreads
8-3 Pthreads屬性
8-4 共時控制問題的種類
8-5 互斥鎖
8-6 條件變數
8-7 讀寫鎖
8-8 程線特有的資料
8-9 取消程線
8-10 程線的信號處理
8-11 進一步參考資料
8-12 所有的pthreads程式界面
8-13 含程線取消點的函數
第9章 共時控制與上鎖
9-1 共時控制簡介
9-2 系統五IPC資源簡介
9-3 系統五旗誌
9-4 不同類型的鎖
9-5 設計與實作自己的上鎖函數
9-6 POSIX旗誌
9-7 微軟視窗的旗誌與互斥鎖
9-8 鎖死
9-9 和旗誌有關的系統可調參數
9-10 共時控制問題與解決辦法摘要
第10章 共有記憶
10-1 共有記憶簡介
10-2 共有記憶的程式界面
10-3 共有記憶實例
第11章 再談程序間通信方式
11-1 程序間通信摘要
11-2 具名的導管(FIFOs)
11-3 信息排隊
11-4 映入記憶器檔案
網路書店
類別
折扣
價格
-
新書9折$792