出版時(shí)間:2011-1 出版社:機(jī)械工業(yè)出版社 作者:邱鐵,周玉,鄧瑩瑩 編著 頁數(shù):684
Tag標(biāo)簽:無
前言
進(jìn)入21世紀(jì),IT技術(shù)以前所未有的速度向前發(fā)展。Linux作為源碼開放的操作系統(tǒng),在眾多愛好者的共同努力下,不斷成長并趨于完善。由于GNU計(jì)劃所開發(fā)的各種組件和系統(tǒng)發(fā)行版所必備的軟件可以運(yùn)行于Linux內(nèi)核之上,整個(gè)Linux內(nèi)核符合通用公共許可證(General Public License,GNU),使得Linux在PC機(jī)、服務(wù)器以及嵌入式系統(tǒng)開發(fā)等領(lǐng)域得到了廣泛應(yīng)用。編者在長期的Linux內(nèi)核開發(fā)中發(fā)現(xiàn),當(dāng)前介紹內(nèi)核API方面的書籍很少。目前市面上關(guān)于Linux內(nèi)核編程開發(fā)方面的書可以分為三類:第一類,Linux內(nèi)核分析,所分析的內(nèi)核源碼版本一般相對(duì)較早,而對(duì)于最新版本的內(nèi)核源代碼則很少提及;第二類,Linux編程,主要是以用戶層面上的編程為主,一般涉及用戶API;第三類,嵌入式Linux開發(fā),相對(duì)于特定的硬件平臺(tái),只對(duì)所用到的特定內(nèi)核API作簡要說明。對(duì)于使用Linux內(nèi)核進(jìn)行編程開發(fā),需要全面了解內(nèi)核API,而目前市面上找不到一本能夠全面介紹最新的Linux內(nèi)核API的圖書,這也正是本書寫作的目的所在。
內(nèi)容概要
Linux作為源碼開放的操作系統(tǒng)已經(jīng)廣泛應(yīng)用于計(jì)算機(jī)與嵌入式設(shè)備,因此學(xué)會(huì)Linux內(nèi)核開發(fā)與編程顯得越來越重要。本書以最新的Linux內(nèi)核版本2.6.30為依據(jù),對(duì)常用的內(nèi)核API作了系統(tǒng)分析和歸納,設(shè)計(jì)了典型實(shí)例并對(duì)開發(fā)場景進(jìn)行了詳細(xì)講解。本書中分析的內(nèi)核API模塊包括:內(nèi)核模塊機(jī)制API、進(jìn)程管理內(nèi)核API、進(jìn)程調(diào)度內(nèi)核API、中斷機(jī)制內(nèi)核API、內(nèi)存管理內(nèi)核API、內(nèi)核定時(shí)機(jī)制API、內(nèi)核同步機(jī)制API、文件系統(tǒng)內(nèi)核API和設(shè)備驅(qū)動(dòng)及設(shè)備管理API。本書立足Linux內(nèi)核API分析,深入實(shí)踐,內(nèi)容翔實(shí),讀者可以從低起點(diǎn)進(jìn)行高效的內(nèi)核分析與編程實(shí)踐。本書可作為高等院校計(jì)算機(jī)、電子、信息類大學(xué)生及研究生進(jìn)行Linux操作系統(tǒng)學(xué)習(xí)和編程的教材或參考書,也可作為Linux開發(fā)人員和廣大Linux編程開發(fā)愛好者的參考用書。
書籍目錄
前言 本書使用方法 第1章 Linux內(nèi)核API分析必備知識(shí) 1 Linux內(nèi)核編程注意事項(xiàng) 1 本書中模塊編譯Makefile模板 1 內(nèi)核調(diào)試 函數(shù)printk 2 內(nèi)核編譯與定制 4 溫馨提示 10 參考文獻(xiàn) 11 第2章 Linux內(nèi)核模塊機(jī)制API 12 函數(shù):__module_address ( ) 12 函數(shù):__module_ref_addr ( ) 14 函數(shù):__module_text_address ( ) 16 函數(shù):__print_symbol ( ) 18 函數(shù):__symbol_get ( ) 20 函數(shù):__symbol_put ( ) 22 函數(shù):find_module ( ) 24 函數(shù):find_symbol ( ) 27 函數(shù):module_is_live ( ) 30 函數(shù):module_put ( ) 32 函數(shù):module_refcount ( ) 34 函數(shù):sprint_symbol ( ) 36 函數(shù):symbol_put_addr ( ) 38 函數(shù):try_module_get ( ) 40 函數(shù):use_module ( ) 42 參考文獻(xiàn) 44 第3章 Linux進(jìn)程管理內(nèi)核API 45 函數(shù):__task_pid_nr_ns( ) 45 函數(shù):find_get_pid( ) 47 函數(shù):find_pid _ns( ) 49 函數(shù):find_task_by_pid_ns( ) 51 函數(shù):find_task_by_pid_type _ns( ) 53 函數(shù):find_task_by_vpid( ) 55 函數(shù):find_vpid( ) 57 函數(shù):get_pid( ) 59 函數(shù):get_task_mm( ) 60 函數(shù):is_container_init( ) 63 函數(shù):kernel_thread( ) 65 函數(shù):mmput( ) 67 函數(shù):ns_of_pid( ) 69 函數(shù):pid_nr( ) 71 函數(shù):pid_task( ) 73 函數(shù):pid_vnr( ) 75 函數(shù):put_pid( ) 77 函數(shù):task_active_pid_ns( ) 79 函數(shù):task_tgid_nr_ns( ) 81 參考文獻(xiàn) 83 第4章 Linux進(jìn)程調(diào)度內(nèi)核API 84 第5章 Linux中斷機(jī)制內(nèi)核API 189 第6章 Linux內(nèi)存管理內(nèi)核API 258 第7章 Linux內(nèi)核定時(shí)機(jī)制API 368 第8章 Linux內(nèi)核同步機(jī)制API 457 第9章 Linux文件系統(tǒng)內(nèi)核API 539 第10章 Linux設(shè)備驅(qū)動(dòng)及設(shè)備管理API 614 部分相關(guān) 函數(shù)說明 679 參考文獻(xiàn) 679 附錄 Linux內(nèi)核API快速檢索表
章節(jié)摘錄
插圖:Linux可以運(yùn)行在兩種模式下:用戶模式和內(nèi)核模式。當(dāng)我們編寫一個(gè)普通程序時(shí),有時(shí)會(huì)包含文件,也就是說我們使用了C標(biāo)準(zhǔn)庫,這是典型的用戶模式編程,在這種情況下,用戶模式的應(yīng)用程序要鏈接標(biāo)準(zhǔn)C庫。在內(nèi)核模式下不存在1ibc庫,也就沒有這些函數(shù)供我們調(diào)用。此外,在內(nèi)核模式下編程還存在一些限制:·不能使用浮點(diǎn)運(yùn)算。因?yàn)長inux內(nèi)核在切換模式時(shí)不保存處理器的浮點(diǎn)狀態(tài)?!げ灰寖?nèi)核程序進(jìn)行長時(shí)間等待。Linux操作系統(tǒng)本身是搶占式的,但是內(nèi)核是非搶占內(nèi)核,就是說用戶空間的程序可以搶占運(yùn)行,但是內(nèi)核空間程序不可以?!けM可能保持代碼的整潔性。內(nèi)核調(diào)試不像調(diào)試應(yīng)用程序那樣方便,因此,在前期代碼編寫的過程中保持代碼的整潔易懂,將大大方便后期的調(diào)試?!ぴ趦?nèi)核模式下編程,系統(tǒng)內(nèi)的所有資源都是由內(nèi)核來統(tǒng)一調(diào)配的,并且數(shù)量有限,因此申請(qǐng)資源用完后一定要進(jìn)行釋放,避免出現(xiàn)死鎖情況。·Linux內(nèi)核API有很多配對(duì)使用,例如,文件引用計(jì)數(shù)有加操作,也會(huì)有相應(yīng)的減操作。如果在實(shí)驗(yàn)中進(jìn)行了“引用計(jì)數(shù)”加操作,函數(shù)執(zhí)行后未進(jìn)行減操作還原,那么可能會(huì)出現(xiàn)系統(tǒng)崩潰。本書中的所有內(nèi)核API驗(yàn)證實(shí)例都是在Linux內(nèi)核模式下進(jìn)行編程與驗(yàn)證的。
編輯推薦
《Linux內(nèi)核API完全參考手冊》特色:國內(nèi)外首本全面介紹Linux內(nèi)核API開發(fā)與編程的手冊;基于最新的Linux內(nèi)核版本2.6.30,設(shè)計(jì)內(nèi)核API典型實(shí)例,并對(duì)開發(fā)場景進(jìn)行詳細(xì)講解;對(duì)Linux內(nèi)核系統(tǒng)知識(shí)進(jìn)行精心策劃,以內(nèi)核模塊方式對(duì)內(nèi)核API進(jìn)行系統(tǒng)分析;基于系統(tǒng)功能模塊內(nèi)部,內(nèi)核API以函數(shù)名稱排序,方便快速檢索;立足于基礎(chǔ),高效學(xué)習(xí)理論配合內(nèi)核API經(jīng)典實(shí)例,深入Linux編程實(shí)踐;為Linux內(nèi)核開發(fā)與編程提供高效指導(dǎo)與參考?!禠inux內(nèi)核API完全參考手冊》主要內(nèi)容:Linux內(nèi)核模塊機(jī)制APILinux進(jìn)程管理內(nèi)核APILinux進(jìn)程調(diào)度內(nèi)核APILinux中斷機(jī)制內(nèi)核APILinux內(nèi)存管理內(nèi)核APILinux內(nèi)核定時(shí)機(jī)制APILinux內(nèi)核同步機(jī)制APILinux文件系統(tǒng)內(nèi)核APILinux設(shè)備驅(qū)動(dòng)與設(shè)備管理API首本Linux內(nèi)核API手冊,多重索引方式方便速查。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載