UNIX系統(tǒng)編程

出版時(shí)間:2005-5  出版社:機(jī)械工業(yè)出版社  作者:羅賓斯  頁數(shù):656  譯者:陳涓  
Tag標(biāo)簽:無  

內(nèi)容概要

本書是UNIX系統(tǒng)編程的經(jīng)典教材,并基于最新的UNIX標(biāo)準(zhǔn)進(jìn)行了更新,其內(nèi)容完全覆蓋文件、信號(hào)、POSIX線程、UDP、Web和客戶機(jī)-服務(wù)器等相關(guān)內(nèi)容,并對(duì)通信、并發(fā)和多線程問題進(jìn)行了透徹的研究,對(duì)復(fù)雜的概念進(jìn)行了全面、完善以及明晰的解釋,并以此而聞名。本書不僅提供了大量實(shí)例和練習(xí),還專門設(shè)計(jì)了有針對(duì)性的項(xiàng)目,并給出了參考答案,幫助讀者理解相關(guān)的概念,增強(qiáng)應(yīng)用能力。本書適合作為高等院校計(jì)算機(jī)專業(yè)教材,也可供軟件開發(fā)人員參考。

作者簡(jiǎn)介

Kay A.Robbins和Steven Robbins從麻省理工學(xué)院獲得博士學(xué)位。他們現(xiàn)任教于得克薩斯大學(xué)圣安東尼奧分校的計(jì)算機(jī)科學(xué)系。

書籍目錄

第一部分  基礎(chǔ)知識(shí)  第1章  技術(shù)對(duì)程序的沖擊            1.1  變化中的術(shù)語           1.2  時(shí)間和速度            1.3  多道程序設(shè)計(jì)和分時(shí)            1.4  應(yīng)用層的并發(fā)          1.5  安全和容錯(cuò)            1.6  侵入帶來的緩沖區(qū)溢出            1.7  UNIX標(biāo)準(zhǔn)            1.8  擴(kuò)展閱讀          第2章  程序、進(jìn)程和線程            2.1  程序怎樣轉(zhuǎn)換成進(jìn)程            2.2  線程和執(zhí)行線程            2.3  程序映像的布局            2.4  庫函數(shù)調(diào)用            2.5  函數(shù)返回值和錯(cuò)誤            2.6  參數(shù)數(shù)組            2.7  線程安全的函數(shù)            2.8  靜態(tài)變量的使用            2.9  靜態(tài)對(duì)象的結(jié)構(gòu)            2.10  進(jìn)程環(huán)境            2.11  進(jìn)程終止            2.12  練習(xí):一個(gè)env工具            2.13  練習(xí):消息日志            2.14  擴(kuò)展閱讀          第3章  UNIX系統(tǒng)中的進(jìn)程        ……  第4章  UNIX I/O          第5章  文件和目錄          第6章  UNIX特殊文件          第7章  項(xiàng)目:令牌環(huán)        第二部分  異步事件  第8章  信號(hào)          第9章  時(shí)間和定時(shí)器          第10章  項(xiàng)目:虛擬定時(shí)器          第11章  項(xiàng)目:破解命令解釋程序        第三部分  并發(fā)  第12章  POSIX線程          第13章  線程同步          第14章  臨界區(qū)和信號(hào)量          第15章  POSIX IPC          第16章  項(xiàng)目:生產(chǎn)者消費(fèi)者同步          第17章  項(xiàng)目:非完全并行虛擬機(jī)        第四部分  通信  第18章  面向連接的通信          第19章  項(xiàng)目:WWW重定向          第20章  無連接通信和多播          第21章  項(xiàng)目:因特網(wǎng)音頻廣播          第22章  項(xiàng)目:服務(wù)器性能        附錄A  UNIX 基礎(chǔ)        附錄B  重啟庫        附錄C  UICI的實(shí)現(xiàn)        附錄D  日志函數(shù)        附錄E  POSIX擴(kuò)展        參考文獻(xiàn)        程序索引        索引

媒體關(guān)注與評(píng)論

  前言: 本書是1995年P(guān)rentice Hall 出版的《Practical UNIX Programming: A Guide to Communication, Concurrency and Multithreading》的第2版。為了更好地反映本書的內(nèi)容,我們修改了書名(英文版)。同上一版相比,除了書名,我們還對(duì)許多地方進(jìn)行了修改。 因特網(wǎng)已經(jīng)成為計(jì)算和社會(huì)領(lǐng)域中的一個(gè)主導(dǎo)因素。我們的個(gè)人信息聯(lián)網(wǎng)了,我們的軟件經(jīng)常會(huì)受到攻擊。因此,編寫正確的代碼顯得更加重要。在新的版本中,我們盡量去生成能夠正確地處理錯(cuò)誤和特殊情況的代碼。我們知道,只是聲稱“處理了所有的錯(cuò)誤”,卻在給出的代碼示例中省略掉錯(cuò)誤處理,是沒有什么說服力的。但是,錯(cuò)誤處理使代碼變得更加復(fù)雜,我們想盡力使代碼清晰一些。 本書對(duì)前一版的另一個(gè)重大改進(jìn)就是采用了單一UNIX規(guī)范,在本書中我們稱之為POSIX。我們?cè)僖膊挥脼檫x用哪個(gè)廠商的庫函數(shù)而發(fā)愁了—現(xiàn)在已有正式的版本了。在編寫本書的過程中,我們盡了最大的努力來遵循這個(gè)標(biāo)準(zhǔn)。 本書與眾不同之處是含有練習(xí)和項(xiàng)目章。實(shí)際上,本書就是從一個(gè)項(xiàng)目手冊(cè)發(fā)展而來的,這個(gè)項(xiàng)目手冊(cè)是美國(guó)國(guó)家科學(xué)基金課題(National Science Foundation Grant)的一部分。在完成這個(gè)項(xiàng)目的初期開發(fā)之后,我們逐漸認(rèn)識(shí)到:完成這個(gè)項(xiàng)目所需的資料分散在很多地方—通??梢栽谀切┨峁┝舜罅考?xì)節(jié)但很少進(jìn)行概念描述的參考書中找到這些資料。這樣,這本書就逐步演變成一本基于最新UNIX標(biāo)準(zhǔn)的完備的參考書了。 本書分為四個(gè)部分,每個(gè)部分中都包括一些主題章和項(xiàng)目章。主題章以循序漸進(jìn)的方式涵蓋了特定的資料,其中有很多例子和小練習(xí)。本書還針對(duì)進(jìn)程管理、并發(fā)和通信過程中的很多基本概念提供了編程練習(xí)(即項(xiàng)目章)。這些編程練習(xí)和傳統(tǒng)科學(xué)課程中的實(shí)驗(yàn)作用相當(dāng)。只有通過實(shí)踐,才能真正理解書中的概念。這些練習(xí)的難度由淺入深,很多練習(xí)都只要不到100行的代碼就可以實(shí)現(xiàn)。 下表對(duì)本書的結(jié)構(gòu)進(jìn)行了總結(jié)。有14個(gè)主題章,這些主題章與8個(gè)項(xiàng)目章相互獨(dú)立。第一次通讀本書時(shí)可以略過項(xiàng)目章。 項(xiàng)目章通過開發(fā)一個(gè)擴(kuò)展的應(yīng)用將幾個(gè)主題章中的資料整合起來。這些項(xiàng)目包含兩個(gè)層面:除了說明編程思想之外,還引導(dǎo)讀者去理解與應(yīng)用相關(guān)的更高級(jí)的主題。這些項(xiàng)目都是分階段設(shè)計(jì)的,大多數(shù)完整的實(shí)現(xiàn)都只需要幾百行代碼。由于不需要編寫大量的代碼,因此讀者可以將注意力集中在對(duì)概念的理解而不是代碼的調(diào)試上。為了簡(jiǎn)化編程,我們提供了網(wǎng)絡(luò)通信和日志輸出的庫。對(duì)專業(yè)的程序員來說,主題章結(jié)尾處的練習(xí)提供了基本的練習(xí)內(nèi)容。通常,使用本書的教師可以在一個(gè)學(xué)期的課程中挑選幾個(gè)練習(xí)和一個(gè)項(xiàng)目章讓學(xué)生們實(shí)現(xiàn)。每個(gè)項(xiàng)目都有很多變化,因此這些項(xiàng)目可以在多個(gè)學(xué)期中反復(fù)使用。 讀者可以選擇不同的方式來讀這本書。第一部分中的主題章是學(xué)習(xí)本書其他部分的基礎(chǔ)。讀完第一部分的主題章之后,讀者就可以按任意的順序來學(xué)習(xí)第二部分到第四部分了。但后繼各章結(jié)尾處有關(guān)交互(例如,線程是怎樣與信號(hào)交互的)的討論除外。 我們假定讀者是一名很好的C程序員,盡管不一定是UNIX C的程序員。讀者應(yīng)該熟悉C語言編程和基本的數(shù)據(jù)結(jié)構(gòu)。如果你剛剛接觸UNIX,附錄A中給出了程序開發(fā)的一些必備知識(shí)。 本書中包括標(biāo)準(zhǔn)函數(shù)的概要,在“概要”的右下角列出了用來說明函數(shù)的相關(guān)標(biāo)準(zhǔn)。 知識(shí)的更新如此之快,然而書的內(nèi)容卻是有限的。我們歡迎讀者給我們提出意見和建議。讀者可以給我們發(fā)電子郵件authors@usp.cs.utsa.edu。我們盡了最大的努力來編寫一本無差錯(cuò)的書。但是,如果你是第一個(gè)向我們指出某個(gè)錯(cuò)誤的人,我們會(huì)在本書的網(wǎng)站上向你表示誠(chéng)摯的謝意。我們?cè)赪eb站http://usp.cs.utsa.edu/usp上提供了與本書相關(guān)的信息。本書包含的所有代碼都可以從這個(gè)Web站點(diǎn)上下載。 譯者序: 本書是一本介紹UNIX系統(tǒng)的工作原理以及學(xué)習(xí)UNIX系統(tǒng)程序編寫方法的經(jīng)典教材。對(duì)于程序員來說,本書同樣是一本不可多得的案頭必備參考書。讀者在掌握了操作系統(tǒng)、C語言以及計(jì)算機(jī)網(wǎng)絡(luò)的基本知識(shí)后學(xué)習(xí)本書,會(huì)發(fā)現(xiàn)本書將使讀者對(duì)UNIX系統(tǒng)的理解登上一個(gè)新的高度,并將讀者編寫多線程和網(wǎng)絡(luò)通信程序的能力提高到一個(gè)新的境界。 本書有以下幾個(gè)突出特點(diǎn):其一,在講述基本概念時(shí),本書圍繞主題設(shè)計(jì)了大量實(shí)例程序和練習(xí)來加深讀者對(duì)概念的理解;其二,在各部分的最后,作者精心設(shè)計(jì)了生動(dòng)有趣的項(xiàng)目來總結(jié)各部分的主要內(nèi)容。這些項(xiàng)目,例如破解命令解釋程序、WWW重定向、因特網(wǎng)音頻廣播、服務(wù)器性能等的取材都有很強(qiáng)的實(shí)際應(yīng)用背景,稍加完善就是一個(gè)可用的程序;其三,本書采用了最新的UNIX標(biāo)準(zhǔn):Single UNIX Specification,并在書中加入了大量的最新信息,如火星探路者中的優(yōu)先級(jí)反轉(zhuǎn)缺陷等。另外,本書各章末尾處的擴(kuò)展閱讀也給讀者指出了相關(guān)領(lǐng)域經(jīng)典的或最新的參考資料并進(jìn)行了細(xì)致的評(píng)價(jià),對(duì)讀者進(jìn)一步研究提供了很好的指導(dǎo)。 如果您希望了解并掌握操作系統(tǒng)接口及其工作原理,我們相信本書將是一本合適的教材及參考書;如果您已經(jīng)具備了初步的UNIX程序編寫能力,本書將會(huì)引領(lǐng)您進(jìn)入系統(tǒng)程序編寫者的行列;如果您已經(jīng)是一個(gè)熟練的系統(tǒng)程序員了,本書豐富的內(nèi)容實(shí)例、充實(shí)的知識(shí)架構(gòu)也一定會(huì)讓您對(duì)計(jì)算機(jī)系統(tǒng)的理解有新的升華。 本書的第20、21、22章由趙振平翻譯,其他部分由陳涓翻譯。郭傳雄和趙振平校閱了全書。 致謝 我們非常感謝Mike Speciner和Bob Lynch,他們通讀了全部手稿,并提出了很多有益的建議。我們尤其要對(duì)Mary Lou Nohr細(xì)心睿智的編輯工作表示感謝。我們還要對(duì)Neal Wagner和Radia Perlman給予的鼓勵(lì)和建議表示感謝。 從1988年至今(2003年),我們?yōu)榇髮W(xué)本科生和研究生開設(shè)了操作系統(tǒng)課程,本書中很多資料都曾作為這些教學(xué)課程的一部分使用。學(xué)習(xí)此課程的學(xué)生們都經(jīng)歷了書稿發(fā)展的不同階段,并對(duì)不斷出現(xiàn)的項(xiàng)目進(jìn)行了實(shí)際的測(cè)試。他們提供的程序故障、注釋、抱怨和建議都使本書更加出色,并且使我們對(duì)這些主題之間的相互聯(lián)系有了更深刻的認(rèn)識(shí)。在早期書稿中發(fā)現(xiàn)錯(cuò)誤的學(xué)生有Joseph Bell、Carlos Cardenas、Igor Grinshpan、Jason Jendrusch和James Manion。我們要感謝美國(guó)國(guó)家科學(xué)基金會(huì)通過NSF-ILI授權(quán)的USE-0950497對(duì)我們組建實(shí)驗(yàn)室提供的支持,這樣我們才有機(jī)會(huì)去開展最初的課程,而這些課程正是本書的基礎(chǔ)。NSF(DUE-975093、DUE-9752165和DUE-0088769)還為開發(fā)那些用來探索和分析操作系統(tǒng)概念的工具提供了支持。 我們要感謝Prentice Hall的編輯Greg Doench在整個(gè)過程中為我們提供的指導(dǎo),還要感謝我們的出版編輯William Mara使此書得以出版。我們用對(duì)本書進(jìn)行了排版,的制作者提供了可以免費(fèi)使用的軟件,我們還要向他們表達(dá)我們的謝意。 我們特別要感謝我們的家人,他們給了我們無限的愛和支持,尤其要感謝我們的孩子Nicole和Thomas,他們對(duì)這項(xiàng)艱巨的任務(wù)表示了熱情和理解。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    UNIX系統(tǒng)編程 PDF格式下載


用戶評(píng)論 (總計(jì)15條)

 
 

  •   絕對(duì)的UNIX系統(tǒng)編程經(jīng)典,很好的介紹了UNIX下的各種概念,書中的代碼可以幾乎不經(jīng)任何修改的嵌入到自己的系統(tǒng)中。
  •   這本書先從基礎(chǔ)講起,然后慢慢地由淺入深,特別講解原理。這本書代碼實(shí)例特別多,而且都是一些很實(shí)用的例子,非常好,對(duì)代碼的講解也是非常的精彩。嚴(yán)謹(jǐn)也是本書的一大特色,例題中的代碼有極高的健壯性,非常正規(guī)。這點(diǎn)非常值得我們學(xué)習(xí)。問答式也是本書的一大特色,書中提的問題有很多正是讀者的疑惑點(diǎn),更甚有些問題讀者并沒有想到,但卻很重要。問題的后面都為讀者一一解答,更令讀者歡喜的是,有時(shí)針對(duì)一個(gè)知識(shí)點(diǎn)所提出的問題層層深入,解答得非常精彩。里面還會(huì)提供專題項(xiàng)目,包括項(xiàng)目的介紹,分析,解答。項(xiàng)目代碼可以在網(wǎng)上下載,代碼非常正規(guī),有時(shí)可以直接運(yùn)用于實(shí)際項(xiàng)目中。本書還一大特色就是附有圖表解釋,一目了然!每章節(jié)的最后還為讀者推薦一些額外的資料。當(dāng)然還有很多亮點(diǎn)了,我就不一一說了,總之,買這本書覺對(duì)讓你有“物超所值”的感覺!
  •   學(xué)習(xí)unix的寶典
  •   目前我還沒有認(rèn)真看這本書因?yàn)槭诸^的事情還沒有做完大概暑假為會(huì)系統(tǒng)看書!不過聽很多用過的朋友介紹說這是很好大一本經(jīng)典書籍,學(xué)習(xí)linux編程是很好大書
  •   很好,如果你想將你的C和系統(tǒng)知識(shí)系統(tǒng)學(xué)習(xí)的話
  •   我以前在學(xué)校時(shí)在圖書館里看過這本書,但由于時(shí)間的原因未能細(xì)看。我覺得挺好的就買了一本仔細(xì)看看。
  •   重量級(jí)的書,很好。
  •   比較詳細(xì)的講解POSIX接口,及多線程,并行等東西,另一本高級(jí)環(huán)境編程也不錯(cuò)
  •   很好,配合APUE一起看
  •   這是一本學(xué)習(xí)Linux知識(shí)不可多得的好書!
  •   工作之余以及在枯燥的旅途中,抱著這本大厚書看。很酷的樣子,點(diǎn)點(diǎn)滴滴就把UNIX系統(tǒng)下的C語言編程給消化了,呵呵
  •   確實(shí)有點(diǎn)難啊
  •     都是關(guān)于系統(tǒng)編程的各個(gè)方面的具體的講解。先介紹函數(shù),然后給出的代碼實(shí)例。每隔一段就給出用前面所學(xué)可以做到的一個(gè)實(shí)用小項(xiàng)目(這是有點(diǎn)難度的,覺得沒難度的大概有過一些編程經(jīng)驗(yàn)了)。
      我覺得最好讀者有一些關(guān)于操作系統(tǒng)的基礎(chǔ)知識(shí),比如看過操作系統(tǒng)原理之類的書籍,還有相應(yīng)的C語言基礎(chǔ)
      本人看過之后覺得獲益良多
  •     This book stands from the view of Practical Programming. There are lots of program examples to illustrate the system call. You can reuse the program directly whenever you need it.
  •   你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼你牛逼
 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7