出版時間:2010-3 出版社:清華大學出版社 作者:瓊斯 頁數(shù):530 譯者:張元章
Tag標簽:無
前言
GNU/Linux是操作系統(tǒng)中的“瑞士車刀”。從最小的設備(如蘋果的iPod)到最大的設備(如;IBM的“藍色基因”巨型機)中部可以看到它的蹤影。你會發(fā)現(xiàn)GNU/Linux運行在很多不同的架構中,從老式的x86處理器到PlayStation3使用的cell處理器,不一而舉。本書提供GNU/Linux操作系統(tǒng)上的應用程序開發(fā)的基礎知識。無論你是為iPod還是BlueGene開發(fā)應用程序,所需要的編程概念與API均可以在本節(jié)中找到。 本書內容 本書全面介紹GNU/Linux環(huán)境下應用程序丌發(fā)的所有知識。全書五部分,包含GNU工具、應用程序開發(fā)、shell與腳本、調試與硬化及——些介紹性的主題,如虛擬化基礎。 具體包含以下主題。 GNU/Linux架構與虛擬機制。 GNU工具,如GCC、make、automake/autoconf、源代碼擰制系統(tǒng)、GNU Debugger以及GNUplot。 應用程序開發(fā)基礎,如庫(靜態(tài)的和動態(tài)的)、文件管理、管道、套接字、編程等。 GNU/Linux進程模型(包括線程)和POSIX IPC機制(消息序列、旗語及共享內存)。 shell與腳本基礎,從相應的GNU/Linux命令到Bash、Ruby以及Python。sed和awk文本管理,flex和bison語法分析器生成。 本書還覆蓋調試和硬化技術,包括軟件測試工具、覆蓋測試和利用GCov和GProf的剖析及內存調試工具(如valgrind等)。 本書配套資源 本書面向的讀者 如果你想學習如何開發(fā)運行與GNU/Linux操作系統(tǒng)有關的應用程序,或者想擴充知識以進入更高深的開發(fā)領域,那么本書就是為你而寫的,本節(jié)適合GNU/Linux初級和中級程序開發(fā)人員閱讀與參考。書中覆蓋相關的工具、API及開發(fā)技術,并通過大量實例來闡明如何使用GNU/Linux的API。
內容概要
GNU/Linux也稱Linux,被譽為操作系統(tǒng)中的“瑞士軍刀”。從iPod之類的小型設備到IBM的Blue Gene之類的超級計算機,都可以看到它的”芳蹤”。GNU/LinuX可以運行于大眾化體系結構之上,從老式的x86處理器到最新的Play Station 3游戲機采用的cell處理器,不一而舉。 本書詳細介紹如何開發(fā)可以運行于GNU/Linux操作系統(tǒng)的應用程序,經(jīng)過全面修訂的第2版涵括所有必要的工具和編程技術,提供豐富的例子來說明GNU/Linux API的使用。 GNU/Linux架構與虛擬化技術 GNU工具,如GCC,make、automake/autoconf,源代碼控制系統(tǒng),GNU Debugger和Gnuplot 應用程序開發(fā)基礎主題,包括庫(動態(tài)的和靜態(tài)的)、文件處理、管道、套接字和編程基礎等 GNU/Linux過程模型(包括線程)和POSIXIPC機制(如消息隊列、旗語和共享內存) shell和腳本編程基礎,從常用的GNU/Linux命令到Bash、Ruby和Python sed和AWK文本處理,flex和bison解析器 調試和代碼硬化技術,包括軟件測試工具、覆蓋測試和GCov和GPro概要和內存調試工具等 本書針對Linux程序員,本書詳細介紹如何開發(fā)高性能、高安全性的應用程序。經(jīng)過全面修訂的第2版涵括所有必要的工具和編程技術,提供豐富示例來說明GNU/Linux APl的用法。全書共5部分34章,主題涉及GNU工具,應用程序開發(fā),shell與腳本編程,調試和提高安全性,虛擬化技術。凡此種種,吸引著近萬名程序員選擇本書宋學習GNU/Linux編程技術?! ”緯鴾\顯易懂,從全局介紹Linux編程基礎,重點強調Linux編程利器的使用,對Linux程序員具有重要的參考和指導作用。
作者簡介
M.Tim Jones是一名嵌入式軟件架構師,也是多部暢銷書的作者,代表作有AI Application Programming,BSD Sockets Proqramming from a Multilanguage Perspective,Artificial Intelligence:A Systems Approach,還發(fā)表過大量技術文章。他的工程背景很豐富,曾經(jīng)為太空船開發(fā)過內核,也開發(fā)過嵌入式系統(tǒng)架構和聯(lián)網(wǎng)協(xié)議。Tim目前在科羅拉多Longmont的Emulex公司擔任顧問工程師。
書籍目錄
第Ⅰ部分 導論 第1章 GNU/Linux的歷史 第2章 GNU/Linux系統(tǒng)架構 第3章 自由軟件開發(fā) 第4章 Linux虛擬化與仿真 第Ⅱ部分 GNU工具 第5章 GNU編譯工具鏈 第6章 應用GNU make構建軟件 第7章 庫的構建與使用 第8章 用automake/affcoconf打包 第9章 GNU/Linux的源碼控制 第10章 應用Gnuplot進行數(shù)據(jù)可視化 第Ⅲ部分 應用程序開發(fā)主題 第11章 GNU/Linux的文件操作 第12章 管道編程 第13章 套接字編程簡介 第14章 GNU/Linux進程模型 第15章 POSIX線程(P線程)編程 第16章 消息隊列IPC 第17章 旗語同步 第18章 共享內存編程 第19章 高級文件操作 第20章 其他應用程序開發(fā)主題 第Ⅳ部分 GNU/Linux的shell與腳本 第21章 GNU/Linux標準命令 第22章 Bourne-Again shell(Bash) 第23章 使用sed進行編輯 第24章 使用awk進行文本處理 第25章 使用flex和bison 第26章 Ruby腳本編程 第27章 Python腳本編程 第28章 GNU/Linux管理基石出 第Ⅴ部分 調試與測試 第29章 軟件單元測試框架 第30章 用GDB進行調試 第31章 代碼硬化 第32章 用GNU gcoy進行覆蓋測試 第33章 用GNU gprof進行 第34章 高級調試主題 附錄 縮寫與部分 縮寫詞
章節(jié)摘錄
插圖:完全虛擬化完全虛擬化方法為客戶操作系統(tǒng)創(chuàng)建一個虛擬機實例,使客戶操作系統(tǒng)可以不加修改地運行。虛擬機模擬底層硬件的某些部分,捕捉需要由管理程序(虛擬機監(jiān)視器)進行仲裁的調用。這種虛擬化模式如圖4.1所示。完全虛擬化要求所有的操作系統(tǒng)都是針對同一處理器架構開發(fā)的,這是一個很普通的要求,實驗性的或開發(fā)中的系統(tǒng)可能不能滿足這一點。運行中各個操作系統(tǒng)都不加改動并且不知道它是在一個虛擬平臺上執(zhí)行。此外,完全虛擬化可以在支持虛擬化的硬件上運行。虛擬化當中最大的問題是如何處理特殊的特權模式指令。這些指令必須被正確捕捉并且由管理程序處理。所以在一個未加修改的操作系統(tǒng)中(沒有虛擬化硬件),必須找出這些調用并轉換為管理程序調用。這個過程稱為代碼掃描,其結果是向原始代碼中找到的特權捕獲指令處插入管理程序調用代碼。準虛擬化最近的公告修改了“準虛擬化”的定義。早期的準虛擬化方法要求對修改客戶操作系統(tǒng),使得操作系統(tǒng)知道它實際上已經(jīng)被虛擬化了。這意味著更高的性能(因為不必進行代碼掃描),但也限制了能被虛擬化的操作系統(tǒng)(見圖4.5)。但是現(xiàn)在,準虛擬化的定義已經(jīng)變化了。擁有了支持虛擬化的硬件,操作系統(tǒng)的修改不再必要。這意味著所有的操作系統(tǒng)都可以被虛擬化,因為虛擬化對各個客戶操作系統(tǒng)都是透明的(見圖4.6)。
編輯推薦
《GNU/LINUX環(huán)境編程(第2版)》:淺顯易懂,容易理解的Linux編程基礎聚焦Linux編程利器——GNU工具和庫全面覆蓋各種有用的API配套資源包含《GNU/LINUX環(huán)境編程(第2版)》代碼和所有API
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載