System Programming Vol I (Paperback)

Jin-Jwei Chen

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

商品描述

- This book aims at making readers a programming expert and an excellent software architect using portable standard POSIX APIs at the operating system API level. It offers a very systematic education of all required knowledge, concepts, technologies, techniques, skills and problem solutions for programming at the system level.

- This book contains the knowledge, skills and training that a computer science/engineering or software engineering student must have.

- It's a book that one must read if you are a software engineer developing system software in operating systems, database management systems, distributed systems, clustered systems, networking software, computer network security and client-server applications.

- This book is intended as a textbook for system programming course at college, either a one-year System Programming course or a one-semester System Programming followed by another semester of Network Programming. It is also a reference or self-study guide for computer software engineers already working in the industry.

- This book contains the best of author's 30+ years of experiences across many fields in the U.S. computer software industry.

- It features software design principles and programming tips for developing first-class software and author's definition of first-class software.

- Author presents elegant and very simple solutions for many common real-world problems such as update loss, cross-endian, alignment, backward and forward compatibility, socket applications, distributed applications, network security and PKI.

- Following are some of the highlights from the book. - Pthreads programming. Using pthread local storage to solve reentrant deadlock problems, using mutex and condition variables to solve producer-consumer problems. Fix dangling mutex. Thread cancellation points.

- Concurrency control using the fastest locking routines of your own, gaining performance improvements up to 80+%, ways to prevent deadlocks.

- Strength and weakness of various interprocess communication mechanisms. Real program examples for designing shared memory and concurrent updates of shared memory.

- In network socket programming, supporting IPv4 and IPv6, asynchronous connect, automatic reconnect, multicast, multithreaded server, looking up port number at run-time, fixed or dynamic ports, socket options, platform discrepancies and performance tuning.

- In distributed system programming, cross-endian, alignment issues, versioning, maintaining backward and forward compatibility, and designing in defense of Denial of Service (DOS) attacks are discussed and program examples are provided.

- On computer network security, aspects of security covered include authentication, secrecy, message integrity and non-repudiation. Symmetric and asymmetric cryptography. Client-server programs doing encryption/decryption, message digest, HMAC, digital signature, and SSL/TLS are provided. SSL handshake messages. SSL/TLS programming using OpenSSL. PKI. Creating all self-signed X.509 certificates, converting between different certificate file formats, verifying certificates signed by multiple chains of CAs, requiring client authentication in SSL/TLS.

- 200+ ready-to-use example C programs which were tested in RedHat Linux, IBM AIX, Oracle/Sun Solaris, HP HP-UX, and Apple Darwin. The networking example programs were tested in Windows as well.

- Volume I contains chapters 1-11. Volume II contains chapters 12-16.

- Read this book to become an expert in computer system programming and an excellent software architect.

- This book is recommended by Bookauthority as one of the best Network Programming books. And it has had sales in US, Canada, Germany and Japan.

商品描述(中文翻譯)

- 本書旨在通過使用可攜式標準 POSIX API 在操作系統 API 級別上,使讀者成為一名編程專家和優秀的軟件架構師。它提供了一個非常系統化的教育,涵蓋了系統級編程所需的所有知識、概念、技術、技巧、技能和問題解決方案。

- 本書包含了計算機科學/工程或軟件工程學生必須具備的知識、技能和培訓。

- 如果你是一名開發操作系統、數據庫管理系統、分佈式系統、集群系統、網絡軟件、計算機網絡安全和客戶端-服務器應用程序的軟件工程師,那麼這本書是必讀之物。

- 本書旨在作為大學系統編程課程的教材,可以是一年的系統編程課程或一個學期的系統編程課程後再學習一個學期的網絡編程。它也是一本給已在業界工作的計算機軟件工程師的參考書或自學指南。

- 本書包含了作者在美國計算機軟件行業30多年經驗的精華。

- 它介紹了開發一流軟件和作者對一流軟件的定義的軟件設計原則和編程技巧。

- 作者提供了許多常見實際問題的優雅且非常簡單的解決方案,例如更新丟失、跨字節序、對齊、向前和向後兼容性、套接字應用程序、分佈式應用程序、網絡安全和 PKI。

- 以下是本書的一些亮點:- Pthreads 編程。使用 pthread 本地存儲解決可重入死鎖問題,使用互斥鎖和條件變量解決生產者-消費者問題。修復懸空互斥鎖。線程取消點。

- 使用自己的最快鎖定例程進行並發控制,性能提升可達80+%,預防死鎖的方法。

- 各種進程間通信機制的優點和缺點。設計共享內存和共享內存的並發更新的真實程序示例。

- 在網絡套接字編程中,支持 IPv4 和 IPv6,異步連接,自動重新連接,多播,多線程服務器,運行時查找端口號,固定或動態端口,套接字選項,平台差異和性能調優。

- 在分佈式系統編程中,討論了跨字節序、對齊問題、版本控制、保持向後和向前兼容性以及設計以防禦服務拒絕(DOS)攻擊的方法,並提供了程序示例。

- 在計算機網絡安全方面,涵蓋的安全方面包括身份驗證、保密性、消息完整性和不可否認性。對稱和非對稱加密。提供了執行加密/解密、消息摘要、HMAC、數字簽名和 SSL/TLS 的客戶端-服務器程序。SSL 握手消息。使用 OpenSSL 進行 SSL/TLS 編程。PKI。創建所有自簽名的 X.509 證書,轉換不同證書文件格式,驗證由多個 CA 鏈簽署的證書,在 SSL/TLS 中要求客戶端身份驗證。

- 200 多個可直接使用的示例 C 程序,在 RedHat Linux、IBM AIX、Oracle/Sun Solaris、HP HP-UX 和 Apple Darwin 上進行了測試。網絡示例程序也在 Windows 上進行了測試。

- 第一卷包含第1-11章。第二卷包含第12-16章。

- 閱讀本書,成為計算機系統編程專家和優秀的軟件架構師。

- 本書被 Bookauthority 評為最佳網絡編程書之一。並且在美國、加拿大、德國和日本有銷售。

作者簡介

Jin-Jwei Chen

earned his MS degree in computer engineering from University of Massachusetts at Amherst. After that he worked in the computer software industry in the U.S. for over three decades. His experiences include Unix kernels, database internals, network security, clustered systems, application servers, network management and web services. He authored an U.S. patent named 'Zero and Near-zero Data Loss Database Backup and Recovery' with more than one dozen claims. He also designed and implemented Unix kernel callout to user commands in 1990s which should have been patented.

作者簡介(中文翻譯)

金瑞陳(Jin-Jwei Chen)獲得麻省大學阿默斯特分校(University of Massachusetts at Amherst)的電腦工程碩士學位。之後,他在美國的電腦軟體產業工作了三十多年。他的經驗包括Unix核心、資料庫內部、網路安全、叢集系統、應用伺服器、網路管理和網路服務。他撰寫了一項名為「零和接近零資料損失的資料庫備份和恢復」的美國專利,其中包含十多個權利要求。他還在1990年代設計並實現了Unix核心呼叫到使用者命令的功能,這應該被專利保護。