定價: | ||||
售價: | 1020元 | |||
庫存: | 已售完 | |||
LINE US! | 詢問這本書 團購優惠、書籍資訊 等 | |||
此書籍已售完,調書籍需2-5工作日。建議與有庫存書籍分開下單 | ||||
付款方式: | 超商取貨付款 |
![]() |
|
信用卡 |
![]() |
||
線上轉帳 |
![]() |
||
物流方式: | 超商取貨 | ||
宅配 | |||
門市自取 |
為您推薦
類似書籍推薦給您
【簡介】 📌 全彩印刷、圖解詳盡,快速學會關鍵知識 📌 將Go與Python程式的實驗與結果視覺化 透過實作與豐富的精緻圖解,對OS與硬體相關的工作原理是如何運作,進行淺顯易懂的解說,讓您對OS的運作,有更加具體而清晰的了解。 不論是新手還是老手,都很容易陷入「OS是個充滿神秘與困難的東西」的困境。為了要改善這個狀況,本書不會探討艱深的理論,而是以Linux為中心,在進入實作階段前就對Linux的工作原理進行解說,讀者只需要對Linux基本的命令有所瞭解便可輕鬆閱讀。 本書可以幫助你: .當OS或硬體相關故障產生時,能夠冷靜處理 .開發出有考慮到硬體特性的優良軟體 .瞭解該依據什麼樣的指標來設計系統 【目錄】 第1章 Linux概要 程式與行程 核心 系統呼叫 函式庫 第2章 行程管理-基礎篇 行程的建立 行程的父子關係 行程的狀態 行程的結束 殭屍行程(zombie processes)與孤兒行程(orphan process) 訊號 實現shell的工作管理 常駐程式 第3章 行程排程器 使用單一邏輯CPU 的情形 使用複數邏輯CPU 的情形 user+sys 比real 還要大的案例 時間片 上下文交換 關於效能 程式平行執行的重要性 第4章 記憶體管理系統 記憶體相關資訊的取得 記憶體的回收處理 虛擬記憶體 分配給行程的新記憶體區域 分頁表的階層化 第5章 行程管理-應用篇 行程建立處理的高速化 行程間通訊 互斥控制(mutual exclusion) 互斥控制的原地打轉 多行程與多執行緒 第6章 裝置存取 裝置檔 裝置驅動程式 裝置檔名是可變的 第7章 檔案系統 檔案的存取方法 記憶體對映檔案 一般檔案系統 容量制限(配額) 維持檔案系統的完整性 Btrfs 所提供的檔案系統高階功能 資料損毀的偵測/修復 其他的檔案系統 第8章 記憶階層 快取記憶體 Simultaneous Multi Threading(SMT) 分頁快取 緩衝快取 寫入的時機 direct I/O 置換(swap) 統計數據 第9章 區塊層 HDD的特徵 區塊層的基本功能 區塊裝置的效能指標與測量方法 區塊層對HDD 效能所帶來的影響 區塊層對NVMe SSD 的效能所帶來的影響 第10章 虛擬化功能 什麼是虛擬化功能 虛擬化軟體 支援虛擬化的CPU功能 主機作業系統是怎麼看待虛擬機器 虛擬化環境的行程排程 虛擬機器與記憶體管理 虛擬機器與儲存裝置 第11章 容器 與虛擬機器之間的差異 容器的種類 namespace 安全風險 第12章 cgroup cgroup可控制的資源 使用案例:CPU使用時間的控制 應用案例 終章 本書所學到的內容與今後的應用方式
類似書籍推薦給您
【簡介】 藉由實用工具與進階技術,對Linux kernel與kernel模組進行有效除錯! Linux kernel是世界公認最好的作業系統核心。但是要對kernel進行除錯,則是一件相當複雜的工作。本書是學習一切高階kernel除錯的全面性指南。深入涵蓋許多領域,例如基於工具的除錯(debug)技術(printk與動態除錯框架),並展示如何使用Kprobes。涉及記憶體的bug往往是一場惡夢,我們用兩個章節的篇幅來講解針對記憶體除錯的工具與技術。當kernel賞你一個Oops時,該如何準確地解讀才能解開最根本的問題呢?這本書提供了解答。 並行性(concurrency)往往是一個複雜的主題,本書能幫助你確切地了解何謂資料競爭(data race),包括使用KCSAN來檢測這類問題。還有一些棘手的問題,無論是在除錯還是效能方面,都需要詳細的kernel層級追蹤;你將學習到如何使用Ftrace及其前端(frontend)的強大功能,還將會知道如何在kernel內部的GDB工具(KGDB)與許多其他工具,用於處理kernel lockup、hangs與可怕的kernel panic。 讀完本書,你將能掌握各種強大的kernel debug工具與技術,以及具有在何時間點使用適當工具和技術的敏銳能力。 你將學到的內容: *探索基於工具的printk,以及功能強大的動態除錯框架(dynamic debug framework) *使用靜態與動態的Kprobes,trap kernel/module 的函式 *使用KASAN、UBSAN、SLUB debug 和kmemleak捕捉kernel 的記憶體問題 *深入解譯Oops,並精準識別程式碼的行號位置 *了解資料競爭,並使用KCSAN捕捉難以捉摸的並行性(concurrency)問題 *利用Ftrace與trace-cmd詳細追蹤kernel流程 *撰寫自訂的kernel panic handler(處理常式),並檢測kernel lockup與hangs *使用 KGDB 單步執行,以及 debug kernel/module 的原始碼 中文版勘誤資料:http://lkd.netdpi.net/errata 【目錄】 【PART 1 Kernel 除錯的簡介與方法】 chapter 1 軟體除錯概論 1.1 技術需求 1.2 軟體除錯 - 定義、起源與由來 1.3 軟體錯誤:真實案例 1.4 設定工作區 1.5 兩個 kernel 的故事 1.6 幾個簡單的 Debug 技巧提示 結論 chapter 2 Debug Kernel 的方法 2.1 技術需求 2.2 分類 bug type 2.3 Debug Kernel:方法不同的原因 2.4 概述 debug kernel 的不同方法 結論 【PART 2 Kernel 與驅動程式的除錯工具與技術】 chapter 3 透過檢測除錯:使用 printk 與其族類 3.1 技術需求 3.2 無所不在的 kernel printk 3.3 將 printk 用於除錯目的 3.4 使用 kernel 強大的動態 debug 功能 3.5 剩下的 printk 雜項字元 結論 chapter 4 透過Kprobes 儀器進行debug 4.1 了解 kprobes 基礎 4.2 使用 static kprobes - 傳統的探測方法 4.3 了解 ABI 的基本概念 4.4 使用 static kprobes - 範例 3 與範例 4 4.5 開始使用 kretprobes 4.6 Kprobes:限制性與不利因素 4.7 更簡單的方法:動態 kprobes 或基於 kprobes 的事件追蹤 4.8 透過 perf 和 eBPF 工具,對 execve() API 進行 trap 結論 chapter 5 Kernel 記憶體除錯問題初探 5.1 技術需求 5.2 記憶體到底出了什麼問題? 5.3 使用 KASAN 和 UBSAN 找到記憶體 bug 5.4 使用 Clang 編譯 kernel 和 module 5.5 捕捉 kernel 中的記憶體缺陷:比較與注意事項 (Part 1) 結論 chapter 6 再論 Kernel 記憶體除錯問題 6.1 技術需求 6.2 透過 SLUB debug 偵測 slab 記憶體損毀 6.3 使用 kmemleak 找出記憶體洩漏問題 6.4 捕捉 kernel 中的記憶體缺陷:比較與注意事項(Part 2) 結論 chapter 7 Oops!解讀 kernel 的 bug 診斷 7.1 技術需求 7.2 產生一個簡單的 kernel bug 和 Oops 7.3 介紹 Kernel Oops 以及所代表的意義 7.4 魔鬼藏在細節裡:解碼 Oops 7.5 協助判斷 Oops 位置的工具與技術 7.6 ARM Linux 系統上的 Oops 及使用 Netconsole 7.7 幾個實際的 Oops 結論 chapter 8 鎖的除錯 8.1 技術需求 8.2 上鎖與 debug 因鎖產生的 bug 8.3 上鎖:快速總結要點 8.4 使用 KCSAN 攔截 concurrency bug 8.5 一些實際案例:由於上鎖問題導致的 kernel bug 結論 【PART 3 額外的 Kernel 除錯工具與技術】 chapter 9 追蹤 Kernel 流程 9.1 技術需求 9.2 Kernel 追蹤技術:概論 9.3 使用 ftrace kernel 追蹤程式 9.4 使用 trace-cmd、KernelShark 與 perf-tools ftrace 前端工具 9.5 用 LTTng 和 Trace Compass 追蹤 kernel 的簡介 結論 chapter 10 Kernel Panic、Lockup 以及 Hang 10.1 技術需求 10.2 Panic!Kernel panic 時會發生什麼事? 10.3 撰寫自訂的 kernel panic 處理常式 10.4 偵測 kernel 中的 lockup 和 CPU 停止 10.5 採用 kernel 的掛起任務和工作佇列停止偵測器 結論 chapter 11 使用 Kernel GDB (KGDB) 11.1 技術需求 11.2 從概念上理解 KGDB 的運作 11.3 為 KGDB 建立 ARM target 系統和 kernel 11.4 使用 KGDB debug kernel 11.5 使用 KGDB debug kernel 模組 11.6 [K]GDB:一些提示和技巧 結論 chapter 12 再談談一些 kernel debug 方法 12.1 Kdump/crash 架構簡介 12.2 淺談 kernel 程式碼的靜態分析 12.3 Kernel code coverage 工具和測試框架簡介 12.4 其他:使用 journalctl、斷言 (assertions) 和警告 結論 索引