TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
作業系統實踐:基於Linux的應用與內核程序設計(簡體書)
滿額折

作業系統實踐:基於Linux的應用與內核程序設計(簡體書)

商品資訊

人民幣定價:39.5 元
定價
:NT$ 237 元
優惠價
87206
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:6 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書結合多年操作系統課程理論與實踐教學經驗,基於當前流行的開源操作系統Ubuntu14.04LTS (Linux內核3.13.0)設計了一組操作系統課程實驗。全書可分為兩大部分,部分是Linux操作與應用編程,包括Linux常用命令、C語言編程工具和典型的Linux應用開發,如多進程、進程通信等,並提供一個基於開源的Qt框架和MySQL數據庫的綜合實訓案例; 第二部分是Linux內核編程,這一部分緊密結合操作系統課程的教學內容,包含進程管理、內存管理、設備驅動程序和虛擬文件系統等。實驗安排循序漸進,每個實驗都有相應的原理性內容作為鋪墊。配套電子資源提供所有實驗的源代碼及其他相關資料,可從清華大學出版社網站下載。本書特點是實驗環境新、內容結構層次分明、經典與前沿兼顧,並與理論教學內容相呼應。
本書既可作為高等院校計算機、電子信息類等專業的操作系統實驗課程教材,也可作為Linux編程相關課程的教材。另外,致力於轉向**Linux開源開發環境的讀者也可以將其作為快速入門教程。

名人/編輯推薦

(1)《操作系統實踐——基于Linux的應用與內核編程》不是系統講解Linux的書籍,而主要是通過實驗來幫助讀者更好地掌握操作系統的原理、方法和概念。(2)*部分是Linux操作和應用編程,主要是為學習過C語言、但未接觸過Linux編程的讀者提供一個快速上手的途徑;第二部分是Linux內核編程,按操作系統課程的內容結構進行編排的,目的是配合操作系統理論教學,使讀者對操作系統課程中的重要概念、理論和方法有一個直觀、具體、生動的認識。

目次

第1章Linux概述1.1Linux的發展1.1.1Linux概念1.1.2Linux和UNIX的淵源1.1.3與Linux相關的協議和標準1.2Linux的內核架構1.2.1Linux操作系統結構1.2.2Linux內核體系結構1.2.3內核版本和獲取1.3Linux的主要版本1.3.1Linux版本介紹1.3.2Ubuntu的首次使用1.4本章小結習題第2章Linux基本命令與應用2.1認識命令行2.1.1Terminal2.1.2命令用法初體驗2.1.3其他虛擬終端2.1.4相關概念2.2使用文本文件2.2.1創建文本文件2.2.2查看文本文件內容2.2.3查找及統計2.3.2文件權限2.4管理用戶和用戶組2.4.1相關配置文件2.4.2相關操作2.5其他常見命令2.5.1掛載和卸載設備2.5.2安裝和卸載軟件2.6本章小結習題練習第3章從HelloLinux程序開始3.1HelloLinux3.1.1hello_linux的誕生3.1.2Linux平臺C語言編碼風格3.1.3開發工具3.2gcc編譯3.2.1單文件的編譯3.2.2多個源文件的編譯3.2.3其他介紹3.3gdb調試3.3.1gdb介紹3.3.2使用gdb調試C語言文件3.4本章小結習題練習第4章利用Makefile管理一個工程4.1個Makefile4.1.1利用make編譯一個程序文件4.1.2利用make編譯多個程序文件4.2Makefile的基本概念與規則4.2.1Makefile的基本概念4.2.2規則4.3本章小結習題練習第5章Linux系統中的時間5.1時間表示5.1.1Linux系統時間5.1.2Linux應用程序時間函數5.2利用程序顯示系統時間5.2.1常用時間函數5.2.2高級時間函數5.3時間的測量與計時5.3.1時間測量5.3.2計時器5.4本章小結習題練習第6章多進程程序開發6.1進程概念6.2進程的創建6.3連續調用多次fork函數6.4啟動外部程序6.5本章小結習題練習第7章進程間通信7.1概述7.2管道通信7.2.1管道概述7.2.2無名管道7.2.3命名管道7.3套接字通信7.3.1用文件套接字實現本地進程通信7.3.2用網絡套接字實現網絡進程通信7.4本章小結習題練習第8章利用Qt開發GUI應用程序8.1Qt及QtCreator8.1.1Qt簡介8.1.2QtCreator8.1.3Qt的安裝和啟動8.1.4QtCreator的界面組成8.2用QtCreator完成一個GUI項目8.2.1創建QtGUI項目8.2.2程序的運行8.3信號和槽8.3.1信號和槽的概念8.3.2用信號槽機制響應GUI事件8.3.3關于信號槽的進一步說明8.4Qt設計師8.4.1簡介8.4.2Qt設計師的功能8.5本章小結習題練習第9章MySQL數據庫9.1安裝MySQL9.2MySQL的基本用法9.2.1MySQL管理9.2.2數據庫操作9.2.3數據類型9.2.4表操作9.2.5創建一個數據庫9.3使用C語言訪問MySQL數據庫9.3.1連接數據庫9.3.2執行SQL語句9.3.3處理數據9.4本章小結習題練習第10章Linux綜合應用10.1概述10.1.1系統需求10.1.2本章內容結構10.2原型設計10.2.1添加資源文件10.2.2界面設計10.2.3界面布局10.2.4添加動作10.3系統設計10.3.1系統架構10.3.2客戶端功能設計10.3.3服務器功能設計10.4系統實現10.4.1數據結構(通信協議)10.4.2客戶端實現10.4.3服務器端實現10.4.4幾點說明10.5Linux應用綜合實訓10.6本章小結第11章構建Linux內核系統11.1概述11.2內核初始化11.3內核配置11.4內核構建11.5本章小結練習第12章添加簡單的Linux內核模塊12.1用戶態與內核態12.1.1C/C 應用程序的運行機制12.1.2Linux內核模塊12.2添加簡單的Linux內核模塊12.2.1LKM代碼框架12.2.2LKM編譯12.2.3kello.c的編譯、添加和刪除12.2.4LKM與C應用程序的差異12.3printk和某些常見宏12.3.1實時顯示內核模塊運行信息12.3.2顯示位置信息12.4本章小結練習第13章基于proc的Linux進程控制塊信息讀取13.1proc偽文件系統13.1.1proc中的文件13.1.2proc中文件的內容13.1.3proc偽文件系統介紹13.2Linux中的進程控制塊13.2.1Linux進程控制塊task_struct13.2.2進程重要信息解讀13.3通過proc讀取Linux進程信息13.3.1創建proc文件13.3.2基于seq_file機制的proc文件操作13.3.3task_struct信息讀取過程13.3.4tasklist內核模塊編譯和添加13.3.5tasklist內核模塊工作流程13.4task_struct重要信息13.4.1Linux進程調度策略13.4.2進程優先級13.4.3進程控制塊中的其他信息13.5向proc文件寫入數據13.5.1用戶空間和內核空間之間傳遞數據13.5.2內核空間內存分配13.5.3proc文件的寫操作函數13.6本章小結習題練習第14章POSIX多任務及同步機制14.1fork創建進程14.1.1fork創建進程的流程14.1.2fork/exec創建進程的流程14.1.3fork進階問題14.2POSIX線程機制14.2.1POSIX概述14.2.2POSIX線程創建14.3POSIX多線程及同步機制14.3.1多個線程的資源競爭訪問14.3.2POSIX同步機制14.4條件變量與生產者消費者問題14.4.1同步與互斥14.4.2POSIX條件變量14.4.3條件變量在生產者消費者問題中的應用14.5本章小結習題練習第15章用戶態和內核態信號量15.1信號量與同步問題15.1.1信號量概述15.1.2同步問題15.2POSIX信號量15.2.1無名信號量15.2.2有名信號量15.2.3POSIX信號量用于線程同步問題15.2.4POSIX信號量用于進程間同步15.2.5Linux中的信號量技術15.3內核信號量和內核線程15.3.1Linux內核信號量15.3.2Linux內核線程15.3.3內核信號量和線程的例子15.3.4Linux內核同步技術15.4本章小結習題練習第16章基于共享內存的進程間通信16.1共享內存16.2共享內存映射文件16.2.1單個進程的內存映射文件16.2.2多個進程間的內存映射文件的同步16.3POSIX共享內存對象16.4本章小結習題練習第17章Linux內存管理17.1Linux物理內存管理機制17.1.1內存結點node17.1.2內存結點zone17.1.3物理頁框page17.2IA32的尋址機制17.2.1IA32的段機制17.2.2IA32的頁面映射機制17.2.3IA32中的控制寄存器以及PAE、PSE17.3IA32結構上的Linux地址映射機制17.3.1Linux中段地址映射機制17.3.2IA32Linux段地址映射實驗17.3.3IA32Linux頁地址映射17.3.4IA32Linux頁地址映射實驗17.4Linux進程地址空間17.4.1Linux中進程的虛擬地址空間17.4.2獲取進程虛擬地址空間信息17.4.3Linux中進程的虛擬存儲區域vma17.4.4獲取進程的虛擬內存區域信息17.4.5Linux中進程、內存和文件的關系17.5本章小結習題練習第18章Linux設備驅動程序18.1概述18.1.1設備管理基本概念18.1.2Linux字符設備管理18.2字符設備CMOS驅動程序18.2.1CMOSRTC信息18.2.2獲取CMOSRTC信息的驅動程序內核模塊18.2.3CMOSRTC驅動程序內核模塊測試18.3基于內存映射的雜項設備驅動程序18.3.1Linux中的雜項設備18.3.2設備驅動中的內存映射18.3.3基于內存映射的雜項設備驅動程序18.3.4測試18.4本章小結習題練習第19章Linux虛擬文件系統19.1概述19.1.1VFS在Linux中的作用19.1.2VFS支持的文件系統類型19.1.3VFS的基本數據結構19.2VFS對象的操作19.2.1注冊文件系統19.2.2文件系統裝載19.2.3與進程相關的文件系統數據結構19.2.4從當前進程訪問Linux內核VFS文件系統19.3proc文件系統19.3.1主要數據結構19.3.2proc文件系統的操作19.4本章小結習題練習參考文獻第2章Linux基本命令與應用實驗1:認識命令行的相關實驗23實驗2:創建文本文件26實驗3:查看文本文件28實驗4:文本文件查找及統計29實驗6:文件權限38實驗7:管理用戶和用戶組42實驗8:其他常見操作45第3章從HelloLinux程序開始實驗1:簡單程序開發52實驗2:單步編譯和多步編譯57實驗3:瀏覽gdb內置命令59實驗4:利用gdb調試程序63第4章利用Makefile管理一個工程實驗1:Makefile與命令行編譯的比較68實驗2:編寫Makefile72第5章Linux系統中的時間實驗1:編程顯示系統時間79實驗2:Linux中的時間測量79實驗3:Linux中的計時器81第6章多進程程序開發實驗1:利用fork創建進程85實驗2:連續調用多次fork函數86實驗3:啟動外部程序87第7章進程間通信實驗1:管道通信99實驗2:文件套接字通信103實驗3:網絡套接字通信106第8章利用Qt開發GUI應用程序實驗1:Qt的安裝與啟動112實驗2:創建QtGUI項目115實驗3:信號槽機制118第9章MySQL數據庫實驗1:MySQL數據庫操作124實驗2:MySQL表操作127實驗3:創建一個MySQL數據庫129實驗4:用C語言訪問MySQL數據庫136第12章添加簡單的Linux內核模塊實驗1:添加簡單的內核模塊kello162實驗2:內核模塊輸出信息顯示162第13章基于proc的Linux進程控制塊信息讀取實驗1:測試proc文件系統功能168實驗2:創建顯示系統進程信息的proc模塊179實驗3:顯示Linux進程控制塊中更多的信息182第14章POSIX多任務及同步機制實驗1:Linux進程創建193實驗2:POSIX線程創建198實驗3:POSIX線程互斥和參數傳遞202實驗4:使用POSIX條件變量實現線程同步206第15章用戶態和內核態信號量實驗1:使用POSIX信號量實現線程同步217實驗2:使用POSIX信號量實現進程同步223實驗3:創建Linux內核線程并使用內核信號量實現同步228第16章基于共享內存的進程間通信實驗1:使用內存映射文件實現進程間通信237實驗2:使用共享內存對象實現進程同步239第17章Linux內存管理實驗1:獲取IA32段寄存器中的描述符254實驗2:獲取IA32中的全局段表信息256實驗3:獲取C程序中一個邏輯地址對應的物理地址263實驗4:顯示進程的虛擬內存地址空間分布信息268實驗5:獲取一個進程的虛擬存儲區域信息272第18章Linux設備驅動程序實驗1:實現讀取CMOS實時時鐘信息的驅動程序286實驗2:實現一個基于內存映射的設備驅動程序289第19章Linux虛擬文件系統實驗1:訪問Linux內核虛擬文件系統300實驗2:加載newproc文件系統303

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 206
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區