日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux深入Linux設(shè)備驅(qū)動(dòng)程序內(nèi)核機(jī)制

深入Linux設(shè)備驅(qū)動(dòng)程序內(nèi)核機(jī)制

深入Linux設(shè)備驅(qū)動(dòng)程序內(nèi)核機(jī)制

定 價(jià):¥98.00

作 者: 陳學(xué)松 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: LINUX

ISBN: 9787121150524 出版時(shí)間: 2012-01-08 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 540 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  內(nèi) 容 簡(jiǎn) 介這是一本系統(tǒng)闡述Linux設(shè)備驅(qū)動(dòng)程序技術(shù)內(nèi)幕的專(zhuān)業(yè)書(shū)籍,它的側(cè)重點(diǎn)不是討論如何在Linux系統(tǒng)下編寫(xiě)設(shè)備驅(qū)動(dòng)程序,而是要告訴讀者隱藏在這些設(shè)備驅(qū)動(dòng)程序背后的那些內(nèi)核機(jī)制及原理。作者通過(guò)對(duì)Linux內(nèi)核源碼抽絲剝繭般的解讀,再輔之以精心設(shè)計(jì)的大量圖片,使讀者在閱讀完本書(shū)后對(duì)驅(qū)動(dòng)程序前臺(tái)所展現(xiàn)出來(lái)的那些行為特點(diǎn)變得豁然開(kāi)朗。本書(shū)涵蓋了編寫(xiě)設(shè)備驅(qū)動(dòng)程序所需要的幾乎所有的內(nèi)核設(shè)施,比如內(nèi)核模塊、中斷處理、互斥與同步、內(nèi)存分配、延遲操作、時(shí)間管理,以及新設(shè)備驅(qū)動(dòng)模型等內(nèi)容。為了避免讀者迷失在某一技術(shù)細(xì)節(jié)的討論當(dāng)中,本書(shū)在一個(gè)比較高的層面上進(jìn)行展開(kāi),以一種先框架再細(xì)節(jié)的結(jié)構(gòu)安排極大地簡(jiǎn)化了讀者的閱讀與學(xué)習(xí)。本書(shū)不僅適合那些在Linux系統(tǒng)下從事設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)的專(zhuān)業(yè)技術(shù)人員閱讀,也同樣適合有志于從事Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)或?qū)inux設(shè)備驅(qū)動(dòng)程序及Linux內(nèi)核感興趣的在校學(xué)生等閱讀。對(duì)于沒(méi)有任何Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)經(jīng)驗(yàn)的初學(xué)者,建議先閱讀那些討論“如何”在Linux系統(tǒng)下編寫(xiě)設(shè)備驅(qū)動(dòng)程序的入門(mén)書(shū)籍,然后再閱讀本書(shū)來(lái)理解“為什么”要以這樣或者那樣的方式來(lái)編寫(xiě)設(shè)備驅(qū)動(dòng)程序。

作者簡(jiǎn)介

  陳學(xué)松,曾任職于Intel,Marvell等半導(dǎo)體公司,9年以上Linux內(nèi)核、設(shè)備驅(qū)動(dòng)程序、嵌入式LinuxBSP等領(lǐng)域的開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)注于Linux系統(tǒng)內(nèi)核、BIOS、文件系統(tǒng)及軟件虛擬化等技術(shù),曾模仿Linux內(nèi)核編寫(xiě)過(guò)微型操作系統(tǒng)。工作之余喜歡以文章的形式將自己的學(xué)習(xí)心得進(jìn)行總結(jié),善于運(yùn)用圖形等元素將復(fù)雜概念具體化,梳理脈絡(luò)而不拘于細(xì)節(jié)。05年在IBMLinux開(kāi)發(fā)者論壇所發(fā)表的《解析Linux中的VFS文件系統(tǒng)機(jī)制》則堪稱(chēng)作者這一寫(xiě)作特色的代表之作,該文發(fā)表后曾被多家技術(shù)網(wǎng)站、論壇及個(gè)人博客所轉(zhuǎn)載。喜歡游泳,四肢發(fā)達(dá),胸?zé)o城府。古文功底頗深,少時(shí)涉獵甚廣,現(xiàn)在則主要閱讀一些歷史題材類(lèi)的書(shū)籍,熟讀《三國(guó)志》。目前任職于AMD上海研發(fā)中心,主要從事Linux顯卡驅(qū)動(dòng)等領(lǐng)域的研發(fā)工作。

圖書(shū)目錄

目  錄第1章  內(nèi)核模塊      11.1  內(nèi)核模塊的文件格式   21.2  EXPORT_SYMBOL的內(nèi)核實(shí)現(xiàn) 51.3  模塊的加載過(guò)程   81.3.1  sys_init_module(第一部分) 91.3.2  structmodule     91.3.3 load_module     131.3.4  sys_init_module(第二部分) 491.3.5  模塊的卸載      541.4  本章小結(jié)      55第2章  字符設(shè)備驅(qū)動(dòng)程序      572.1  應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序互動(dòng)實(shí)例   582.2  structfile_operations    622.3  字符設(shè)備的內(nèi)核抽象   632.4  設(shè)備號(hào)的構(gòu)成與分配   652.4.1  設(shè)備號(hào)的構(gòu)成   652.4.2  設(shè)備號(hào)的分配與管理      662.5  字符設(shè)備的注冊(cè)   712.6  設(shè)備文件節(jié)點(diǎn)的生成   742.7  字符設(shè)備文件的打開(kāi)操作   772.8  本章小結(jié)      85第3章  分配內(nèi)存      873.1  物理內(nèi)存的管理   873.1.1  內(nèi)存節(jié)點(diǎn)node   873.1.2  內(nèi)存區(qū)域zone   883.1.3  內(nèi)存頁(yè)      893.2  頁(yè)面分配器(pageallocator)    903.2.1 gfp_mask    913.2.2  alloc_pages 953.2.3 __get_free_pages      963.2.4  get_zeroed_page 973.2.5 __get_dma_pages     973.3  slab分配器(slaballocator)      983.3.1  管理slab的數(shù)據(jù)結(jié)構(gòu)      993.3.2  kmalloc與kzalloc     1053.3.3 kmem_cache_create與kmem_cache_alloc     1083.4  內(nèi)存池(mempool)   1103.5  虛擬內(nèi)存的管理   1113.5.1  內(nèi)核虛擬地址空間構(gòu)成   1113.5.2  vmalloc與vfree 1123.5.3 ioremap      1153.6  per-CPU變量      1153.6.1  靜態(tài)per-CPU變量的聲明與定義   1163.6.2  靜態(tài)per-CPU變量的鏈接腳本      1173.6.3 setup_per_cpu_areas函數(shù) 1183.6.4  使用per-CPU變量   1213.7  本章小結(jié)      125第4章  互斥與同步    1274.1  并發(fā)的來(lái)源   1274.2  local_irq_enable與local_irq_disable   1284.3  自旋鎖   1294.3.1 spin_lock    1304.3.2  spin_lock的變體      1334.3.3  單處理器上的spin_lock函數(shù) 1364.3.4  讀取者與寫(xiě)入者自旋鎖rwlock      1374.4  信號(hào)量(semaphore) 1414.4.1  信號(hào)量的定義與初始化   1414.4.2  DOWN操作      1424.4.3  UP操作     1454.4.4  讀取者與寫(xiě)入者信號(hào)量rwsem      1464.5  互斥鎖mutex      1484.5.1  互斥鎖的定義與初始化   1484.5.2  互斥鎖的DOWN操作     1494.5.3  互斥鎖的UP操作   1504.6  順序鎖seqlock     1524.7 RCU      1554.7.1  讀取者的RCU臨界區(qū)     1564.7.2  寫(xiě)入者的RCU操作 1564.7.3  RCU使用的特點(diǎn)      1574.8  原子變量與位操作      1594.9  等待隊(duì)列      1624.9.1  等待隊(duì)列頭wait_queue_head_t      1624.9.2  等待隊(duì)列的節(jié)點(diǎn)      1634.9.3  等待隊(duì)列的應(yīng)用      1644.10  完成接口completion  1644.11  本章小結(jié)     168第5章  中斷處理      1695.1  中斷的硬件框架   1695.2  PIC與軟件中斷號(hào)      1705.3  通用的中斷處理函數(shù)   1715.4  do_IRQ函數(shù) 1725.5  structirq_chip      1785.6  structirqaction      1795.7 irq_set_handler     1805.8 handle_irq_event   1845.9 request_irq    1865.10  中斷處理的irq_thread機(jī)制      1905.11 free_irq      1915.12 SOFTIRQ    1925.13  irq的自動(dòng)探測(cè)   1965.14  中斷處理例程    2005.15  中斷共享    2015.16  本章小結(jié)    202第6章  延遲操作      2036.1 tasklet    2036.1.1  tasklet機(jī)制初始化    2046.1.2  提交一個(gè)tasklet2056.1.3 tasklet_action     2096.1.4  tasklet的其他操作    2126.2  工作隊(duì)列workqueue   2146.2.1  數(shù)據(jù)結(jié)構(gòu)   2146.2.2 create_singlethread_workqueue和create_workqueue     2166.2.3  工人線程worker_thread   2196.2.4 destroy_workqueue    2216.2.5  提交工作節(jié)點(diǎn)queue_work     2246.2.6  內(nèi)核創(chuàng)建的工作隊(duì)列      2296.3  本章小結(jié)      230第7章  設(shè)備文件的高級(jí)操作    2317.1  ioctl文件操作      2317.1.1  ioctl的系統(tǒng)調(diào)用      2317.1.2  ioctl的命令編碼      2357.1.3  copy_from_user和copy_to_user     2387.2  字符設(shè)備的I/O模型   2437.3  同步阻塞型I/O    2447.3.1 wait_event_interruptible   2447.3.2 wake_up_interruptible      2467.4  同步非阻塞型I/O2507.5  異步阻塞型I/O    2517.6  異步非阻塞型I/O2587.7  驅(qū)動(dòng)程序的fsync例程2597.8  fasync例程   2607.9  llseek例程    2697.10  訪問(wèn)權(quán)能    2727.11  本章小結(jié)     273第8章  時(shí)間管理      2748.1 jiffies     2748.1.1  時(shí)間比較   2778.1.2  時(shí)間轉(zhuǎn)換   2788.2  延時(shí)操作      2798.2.1  長(zhǎng)延時(shí)      2808.2.2  短延時(shí)      2858.3  內(nèi)核定時(shí)器   2868.3.1 init_timer   2898.3.2  add_timer  2898.3.3  del_timer和del_timer_sync    2938.4  本章小結(jié)      293第9章 Linux設(shè)備驅(qū)動(dòng)模型     2959.1  sysfs文件系統(tǒng)      2959.2  kobject和kset     2989.2.1 kobject      2989.2.2  kobject的類(lèi)型屬性   3059.2.3 kset     3089.2.4  熱插拔中的uevent和call_usermodehelper    3119.2.5  實(shí)例源碼   3209.3  總線、設(shè)備與驅(qū)動(dòng)      3289.3.1  總線及其注冊(cè)   3289.3.2  總線的屬性      3359.3.3  設(shè)備與驅(qū)動(dòng)的綁定   3389.3.4  設(shè)備   3399.3.5  驅(qū)動(dòng)   3489.4 class      3519.5  本章小結(jié)      355第10章  內(nèi)存映射與DMA      35610.1  設(shè)備緩存與設(shè)備內(nèi)存 35610.2  mmap  35610.2.1  structvm_area_struct     35710.2.2  用戶(hù)空間虛擬地址布局  35810.2.3  mmap系統(tǒng)調(diào)用過(guò)程      36210.2.4  驅(qū)動(dòng)程序中mmap方法的實(shí)現(xiàn)     36810.2.5  mmap使用范例      37310.2.6  munmap  38310.3  DMA  38410.3.1  內(nèi)核中的DMA層  38410.3.2  物理地址與總線地址     38610.3.3  dma_set_mask 38710.3.4  DMA映射      38810.3.5  回彈緩沖區(qū)(bouncebuffer)      40110.3.6  DMA池   40110.4  本章小結(jié)    405第11章  塊設(shè)備驅(qū)動(dòng)程序  40711.1  塊子系統(tǒng)初始化 40811.2  ramdisk源碼實(shí)例      41011.2.1  make_request版本的RAMDISK源碼  41111.2.2  request版本的RAMDISK源碼    41611.2.3  ramdisk的使用      42011.3  塊設(shè)備號(hào)的注冊(cè)與管理     42211.4 block_device      42411.5  structgendisk      42511.6  structhd_struct    42811.7  用alloc_disk分配gendisk對(duì)象42811.8  向系統(tǒng)添加一個(gè)塊設(shè)備add_disk    43011.9 block_device_operations    43911.10  塊設(shè)備文件的打開(kāi)   44011.11 blk_init_queue   44811.12 blk_queue_make_request  45911.13  向隊(duì)列提交請(qǐng)求      46011.14  塊設(shè)備的請(qǐng)求處理函數(shù)   46611.15  bio結(jié)構(gòu)     46711.16  本章小結(jié)   472第12章  網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序      47312.1  net_device  47512.2  網(wǎng)絡(luò)設(shè)備的注冊(cè) 48812.3  設(shè)備方法    49212.3.1  設(shè)備初始化     49412.3.2  設(shè)備接口的打開(kāi)與停止  49512.3.3  數(shù)據(jù)包的發(fā)送  49512.3.4  網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送過(guò)程中的流控機(jī)制     50012.3.5  傳輸超時(shí)(watchdogtimeout)    50312.3.6  數(shù)據(jù)包的接收  50612.4  套接字緩沖區(qū)    51012.5  中斷處理    51812.6  NAPI  52012.7  本章小結(jié)    522

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)