系統程式設計 (下册) System Programming Vol II

陳金追

  • 系統程式設計 (下册)-preview-1
  • 系統程式設計 (下册)-preview-2
  • 系統程式設計 (下册)-preview-3
  • 系統程式設計 (下册)-preview-4
  • 系統程式設計 (下册)-preview-5
  • 系統程式設計 (下册)-preview-6
  • 系統程式設計 (下册)-preview-7
  • 系統程式設計 (下册)-preview-8
  • 系統程式設計 (下册)-preview-9
系統程式設計 (下册)-preview-1

買這商品的人也買了...

商品描述

• 本書英文版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作業系統核心反向叫用使用者空間的命令,進行完全動態載入設備驅動程式的技術,但卻不知申請專利。

目錄大綱

第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_‎REUSE‎PORT插口選項
 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 ‎程式設計的建議