內容簡介
系統程式設計 (下册)
內容簡介
• 本書英文版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測試過。"
內容簡介
• 本書英文版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測試過。"
內容目錄
目錄
第12章 網路插口程式設計
12-1 基本網路概念
12-2 何謂插口
12-3 計算機網路通信的類型
12-4 使用資料郵包插口的非連線式通信
12-5 通配伺服位址與印地
12-6 使用連播插口的連線式通信
12-7 插口選項
12-8 支援多個平台
12-9 以主機名查取其IP位址
12-10 同時支援IPv4與IPv6
12-11 取得對手的位址與端口號
12-12 IP不分的程式
12-13 常見的插口函數錯誤與解決之道
12-14 同一計算機內的通信—Unix領域插口
12-15 非同步的插口作業
12-16 發覺對手死掉並自動重新連線
12-17 多播
12-18 多工的伺服器
12-19 端口號—保留或不保留呢
12-20 摘要
第13章 插口選項與性能調整
13-1 性能調整
13-2 如何調整各作業系統之核心層參數
13-3 調整插口之緩衝器大小
13-4 SO_KEEPALIVE插口選項
13-5 SO_LINGER插口選項
13-6 SO_REUSEADDR與SO_REUSEPORT插口選項
13-7 SO_RCVTIMEO與SO_SNDTIMEO插口選項
13-8 SO_RCVLOWAT與SO_SNDLOWAT插口選項
第14章 分散式軟體的設計
14-1 印地
14-2 分散式軟體的設計
第15章 計算機網路安全
15-1 OpenSSL
15-2 計算機網路安全的方面
15-3 信息完整性
15-4 信息保密一加密與解密
15-5 信息確認
15-6 發送者確認—數位簽字
15-7 公開暗碼環境結構(PKI)
15-8 X.509憑證
15-9 產生X.509憑證
15-10 SSL與TLS
15-11 SSL/TLS程式設計
15-12 OpenSSL的錯誤處理
15-13 庫存函數的原始碼
第16章 軟體設計原理與程式設計建議
16-1 程式設計的科學,工程及藝術
16-2 設計與開發一流的軟體
16-3 軟體設計原理—設計層次的要點
16-4 程式設計的建議
第12章 網路插口程式設計
12-1 基本網路概念
12-2 何謂插口
12-3 計算機網路通信的類型
12-4 使用資料郵包插口的非連線式通信
12-5 通配伺服位址與印地
12-6 使用連播插口的連線式通信
12-7 插口選項
12-8 支援多個平台
12-9 以主機名查取其IP位址
12-10 同時支援IPv4與IPv6
12-11 取得對手的位址與端口號
12-12 IP不分的程式
12-13 常見的插口函數錯誤與解決之道
12-14 同一計算機內的通信—Unix領域插口
12-15 非同步的插口作業
12-16 發覺對手死掉並自動重新連線
12-17 多播
12-18 多工的伺服器
12-19 端口號—保留或不保留呢
12-20 摘要
第13章 插口選項與性能調整
13-1 性能調整
13-2 如何調整各作業系統之核心層參數
13-3 調整插口之緩衝器大小
13-4 SO_KEEPALIVE插口選項
13-5 SO_LINGER插口選項
13-6 SO_REUSEADDR與SO_REUSEPORT插口選項
13-7 SO_RCVTIMEO與SO_SNDTIMEO插口選項
13-8 SO_RCVLOWAT與SO_SNDLOWAT插口選項
第14章 分散式軟體的設計
14-1 印地
14-2 分散式軟體的設計
第15章 計算機網路安全
15-1 OpenSSL
15-2 計算機網路安全的方面
15-3 信息完整性
15-4 信息保密一加密與解密
15-5 信息確認
15-6 發送者確認—數位簽字
15-7 公開暗碼環境結構(PKI)
15-8 X.509憑證
15-9 產生X.509憑證
15-10 SSL與TLS
15-11 SSL/TLS程式設計
15-12 OpenSSL的錯誤處理
15-13 庫存函數的原始碼
第16章 軟體設計原理與程式設計建議
16-1 程式設計的科學,工程及藝術
16-2 設計與開發一流的軟體
16-3 軟體設計原理—設計層次的要點
16-4 程式設計的建議
ISBN: 9786263241114