LINUX系統(tǒng)編程

出版時(shí)間:2009-7  出版社:東南大學(xué)出版社  作者:Robert Love  頁(yè)數(shù):382  譯者:O'Reilly Taiwan公司  
Tag標(biāo)簽:無  

前言

內(nèi)核開發(fā)者之所以會(huì)這么說,目的是于任何用戶空間程序代碼執(zhí)行失敗的時(shí)候撇清所有責(zé)任。當(dāng)所發(fā)生的問題絕對(duì)不是內(nèi)核的過錯(cuò)時(shí),他們所關(guān)心的是用戶空間開發(fā)者應(yīng)該去修正他們自己的程序代碼。為了證明這通常不是內(nèi)核的過錯(cuò),3年多前,一位具領(lǐng)導(dǎo)地位的Linux內(nèi)核開發(fā)者曾在擠滿人的會(huì)議室里,以“why user Space Sucks”(為何用戶空間程序很糟糕)為題發(fā)表演講,他舉出實(shí)例說明我們每個(gè)人每天使用了哪些可怕的用戶空間程序代碼。其他內(nèi)核開發(fā)者則以自己創(chuàng)建的工具來展示差勁的用戶空間程序如何濫用硬件,并耗盡無預(yù)警的筆記本電腦電池的電量。盡管用戶空間程序?qū)Τ靶λ膬?nèi)核開發(fā)者而言可能只是一個(gè)“試驗(yàn)負(fù)載”,不過這些內(nèi)核開發(fā)者也是每天都得依靠這些用戶空間程序。如果沒有用戶空間程序可用,所有的內(nèi)核充其量就只能在屏幕上交替輸出ABABAB樣式的信息。而今,Linux已經(jīng)成為有史以來最靈活、最強(qiáng)大的操作系統(tǒng),隨處都可以看到它的蹤跡,不僅最小型的手機(jī)和嵌入式裝置運(yùn)行它,全世界前500臺(tái)速度最快的超級(jí)計(jì)算機(jī)中也有70%以上的在運(yùn)行它。其他操作系統(tǒng)從未曾有過這么好的規(guī)模,也不會(huì)遭受各種硬件和環(huán)境的挑戰(zhàn)。如同內(nèi)核一樣,在Linux的用戶空間上運(yùn)行的程序也得運(yùn)作在各種平臺(tái)上,以人們所依賴的應(yīng)用程序和公用程序提供給全世界使用。

內(nèi)容概要

  在某些時(shí)刻,幾乎所有的程序員都要與其程序所處操作系統(tǒng)中的系統(tǒng)調(diào)用和程序庫(kù)打交道?!禠INUX系統(tǒng)編程》主要討論如何編寫Linux系統(tǒng)軟件——代碼位于底層,并且直接跟內(nèi)核及核心系統(tǒng)程序庫(kù)對(duì)話?!禠inux系統(tǒng)編程》描述了使用標(biāo)準(zhǔn)接口包括使用Linux獨(dú)有的高級(jí)接口時(shí),在功能和性能之間如何進(jìn)行權(quán)衡取舍的策略?! ≡摃瑯右彩且槐緝?nèi)行人士編寫靈活高效代碼的學(xué)習(xí)指南。作為內(nèi)核黑客和《LINUX系統(tǒng)編程》的作者,Robert Love不僅闡釋了系統(tǒng)接口應(yīng)該如何工作,還介紹了它們實(shí)際上是如何工作的,以及怎樣安全有效地使用它們?!禠inux系統(tǒng)編程》包含了幫助你在任何層面編寫更佳代碼的實(shí)用技巧?!  禠INUX系統(tǒng)編程》主題包括:  讀寫文件以及其他文件I/O操作,包括Linux內(nèi)核如何實(shí)現(xiàn)和管理文件I/O,內(nèi)存映射與優(yōu)化  技術(shù)進(jìn)程管理的系統(tǒng)調(diào)用,包括實(shí)時(shí)進(jìn)程  文件與目錄——?jiǎng)?chuàng)建、移動(dòng)、復(fù)制、刪除和管理  內(nèi)存管理——內(nèi)存分配接口,管理內(nèi)存,以及優(yōu)化內(nèi)存訪問  信號(hào)及其在Unix系統(tǒng)中的角色,以及基本和高級(jí)信號(hào)接口  時(shí)間、休眠和時(shí)鐘管理,從基礎(chǔ)開始講述,并且涵蓋POSIX時(shí)鐘和高精度計(jì)時(shí)器擁有《Linux系統(tǒng)編程》,你將從理論和應(yīng)用的角度深入了解Linux,可以最大限度地利用系統(tǒng)的潛能。

作者簡(jiǎn)介

作者:(美國(guó))Robert Love 譯者:O'Reilly Taiwan公司

書籍目錄

序前言第一章 介紹與基本概念系統(tǒng)編程API與ABI標(biāo)準(zhǔn)Linux編程的概念向系統(tǒng)編程邁進(jìn)第二章 文件I/O打開文件以read()進(jìn)行讀取操作以write()進(jìn)行寫入操作同步化I/O關(guān)閉文件使用lseek()查找文件位置針對(duì)特定位置的讀取與寫入截短文件多任務(wù)式I/O內(nèi)核內(nèi)部結(jié)束語(yǔ)第三章 緩沖式I/O用戶緩沖式I/O標(biāo)準(zhǔn)I/O打開文件經(jīng)文件描述符打開流關(guān)閉流從流中讀取使用緩沖式I/O的簡(jiǎn)單程序查找一個(gè)流刷新一個(gè)流錯(cuò)誤與EOF取得相應(yīng)的文件描述符控制與緩沖機(jī)制線程安全標(biāo)準(zhǔn)I/O的缺陷結(jié)束語(yǔ)第四章 高級(jí)文件I/O分散一聚集I/O事件輪詢接口將文件映射至內(nèi)存對(duì)一般文件I/0的用法提供建議同步化、同步及異步操作I/O調(diào)度程序與I/O性能結(jié)束語(yǔ)第五章 進(jìn)程管理進(jìn)程ID運(yùn)行一個(gè)新進(jìn)程終止一個(gè)進(jìn)程等待已終止的子進(jìn)程用戶與組會(huì)話與進(jìn)程組守護(hù)進(jìn)程結(jié)束語(yǔ)第六章 高級(jí)進(jìn)程管理進(jìn)程的調(diào)度讓出處理器進(jìn)程優(yōu)先級(jí)實(shí)時(shí)系統(tǒng)資源限制第七章 文件和目錄管理文件與其元數(shù)據(jù)目錄鏈接文件的復(fù)制以及移動(dòng)設(shè)備節(jié)點(diǎn)帶外通信第八章 內(nèi)存管理進(jìn)程地址空間分配動(dòng)態(tài)內(nèi)存管理數(shù)據(jù)段匿名內(nèi)存映射高級(jí)內(nèi)存分配調(diào)試內(nèi)存分配基于堆棧的分配選擇內(nèi)存分配機(jī)制操作內(nèi)存鎖定內(nèi)存投機(jī)取巧的分配策略第九章 信號(hào)信號(hào)的概念基本的信號(hào)管理發(fā)送一個(gè)信號(hào)可重人性信號(hào)集阻擋信號(hào)高級(jí)信號(hào)管理以payload送出信號(hào)結(jié)束語(yǔ)第十章 時(shí)間時(shí)間的數(shù)據(jù)結(jié)構(gòu)POSIX時(shí)鐘取得當(dāng)前時(shí)間設(shè)定當(dāng)前時(shí)間操作時(shí)間調(diào)整系統(tǒng)時(shí)鐘休眠與等待定時(shí)器附錄GCC對(duì)C語(yǔ)言的擴(kuò)展參考書目

章節(jié)摘錄

插圖:Linux編程的概念本節(jié)將對(duì)Linux系統(tǒng)所提供的服務(wù)做一個(gè)簡(jiǎn)明的概述。所有的unix系統(tǒng),包括Linux,會(huì)提供一組共同的抽象概念以及接口。的確,這種通用性定義了unix。文件和進(jìn)程、用于管理pipe和socket的接口等抽象概念就是unix的基礎(chǔ)組件。本節(jié)假設(shè)你已經(jīng)熟悉LlnUX的操作環(huán)境:你可以在shell中游走、使用基本的命令以及編譯簡(jiǎn)單的c程序。本節(jié)的內(nèi)容并非Linux或其編程環(huán)境的概述,而是Linux系統(tǒng)編程的基本知識(shí)。文件以及文件系統(tǒng)文件是Linux中最基本且最重要的抽象概念。Linux遵循了“一切皆文件”的哲學(xué)(盡管做得不如其他系統(tǒng),例如Plan9(注2)。因此,許多操作是通過對(duì)文件的讀寫進(jìn)行的,即使所操作的對(duì)象并非你平日所使用的文件。文件必須先被打開才可以被訪問。文件可以被打開以備讀取、寫入或是讀寫。你可以通過一個(gè)獨(dú)一無二的描述符(descriptor)來引用一個(gè)已打開的文件,此描述符讓我們可以從與已打開文件相關(guān)的元數(shù)據(jù)映射回相應(yīng)文件。在Linux內(nèi)核內(nèi)部,此描述符的操作是通過一個(gè)稱為文件描述符的整數(shù)(這是c的int數(shù)據(jù)類型)來進(jìn)行。由用戶空間程序所共享,而用戶空間程序可以直接使用來訪問文件。Linux系統(tǒng)編程多半就是以來進(jìn)行文件的打開、操縱、關(guān)閉以及其他工作。常規(guī)文件一般人所謂的文件就是Linux所稱的常規(guī)文件。常規(guī)文件內(nèi)含數(shù)據(jù)的字節(jié),而且被組織成一個(gè)稱為字節(jié)流(bytestream)的線性數(shù)組(Lineararray)。在Linux中,不會(huì)再為文件指定任何格式。這些字節(jié)可以具有任何值,而且可以通過任何方式被組織在一起。從系統(tǒng)層來看,除了字節(jié)流之外,Linux不會(huì)再對(duì)文件套上任何結(jié)構(gòu)。有些操作系統(tǒng),例如VMs,會(huì)提供高度結(jié)構(gòu)化的文件來支持像記錄(record)這樣的概念。Linux則不會(huì)這么做。

編輯推薦

《LINUX系統(tǒng)編程》是由東南大學(xué)出版社出版的。

圖書封面

圖書標(biāo)簽Tags

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


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


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

 
 

  •   書的確是好書
  •   我是讀了哈工大計(jì)算機(jī)學(xué)院IBM俱樂部的翻譯版本-網(wǎng)上有電子版,才買的這本書,看了第一章,就覺的翻譯的沒有哈工大的那個(gè)好,有點(diǎn)失望。
  •   例如glibc的用戶態(tài)內(nèi)存管理或者系統(tǒng)調(diào)用這些話題個(gè)人感覺講解的不過深入...
  •   簡(jiǎn)短且全面,對(duì)于系統(tǒng)編程很有用,入門必備
  •   很喜歡這本書, 雖然感覺沒法跟UUNP相比。總之,喜歡就對(duì)了。有點(diǎn)不滿意,有幾十頁(yè)嚴(yán)重?cái)D壓,反正收了。
  •   這序列的書還是很經(jīng)典的,可以做工具書配著
  •   書的外皮挺好,里面紙張質(zhì)量比較差,挺薄.印刷的字跡墨少,顏色潛.給我的感覺像盜版.
  •   東南大學(xué)出版社NB
  •   相當(dāng)不錯(cuò)。很好的書。內(nèi)容比較新。
  •   具體不要問我
  •   包裝得不錯(cuò),還沒打開來看
 

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

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