幫助中心 | 我的帳號 | 關於我們

趣話電腦底層技術

  • 作者:軒轅之風|責編:張月萍
  • 出版社:電子工業
  • ISBN:9787121455292
  • 出版日期:2023/06/01
  • 裝幀:平裝
  • 頁數:276
人民幣:RMB 118 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書用一系列有趣的小故事講述電腦底層相關的技術知識。
    第1章:聚焦電腦中最核心的CPU,從最基礎的門電路開始,到基本的指令執行過程,最後到CPU的一些高級技術。內容涵蓋緩存、原子操作、指令流水線、分支預測、亂序執行、超線程、SIMD、內存管理、TLB等。
    第2章:主要講述電腦中的存儲設施,包括CPU中的緩存,內存、機械硬碟三者數據存儲的原理,以及硬碟上的數據管理組織的軟體——文件系統基本模型。
    第3章:主要講述電腦中的I/O和數據傳輸。內容涵蓋匯流排系統、中斷機制、DMA技術、零拷貝技術。重點關注網卡相關的數據傳輸,包括網卡的基本工作機制,網卡接收數據包后的處理,最後介紹一種時下流行的數據包處理技術——DPDK。
    第4章:前面三章主要是在硬體層面,這一章開始介紹軟體。本章聚焦電腦中最重要的軟體——操作系統。本書默認以Linux為參考,內容涵蓋操作系統的一些基礎知識,包括進程、線程、系統調用、異常處理、信號、鎖、許可權管理,最後介紹一個時下流行的容器技術Docker的原理。
    第5章:主要涉及系統編程中和操作系統緊密相關的一些技術點。包括進程的創建過程、線程棧、進程間通信、I/O多路復用、內存映射文件、協程,最後簡單介紹調試器GDB和可執行文件ELF。    第6章:本章的主題是安全。網路安全涉及方方面面,本章挑選了和電腦系統底層相關的一些安全技術,通過故事去感受電腦攻擊的原理,包含棧溢出攻擊、整數溢出攻擊、DDoS攻擊、TCP會話劫持、HTTPS原理,還有前幾年大火的CPU漏洞——熔斷與幽靈攻擊原理等。

作者介紹
軒轅之風|責編:張月萍
    軒轅之風(@編程技術宇宙),前百度、360、奇安信高級安全研發工程師,專註網路安全、流量分析、大數據處理領域的軟體研發。

目錄
第1章  電腦的大腦:中央處理器CPU
  1.1  CPU的細胞:門電路
    1.1.1  邏輯門
    1.1.2  加法器
    1.1.3  算術邏輯單元ALU
  1.2  程序的本質:指令
    1.2.1  指令集
    1.2.2  寄存器
    1.2.3  彙編語言
    1.2.4  高級語言
    1.2.5  指令執行過程
  1.3  像流水線一樣執行指令
    1.3.1  指令流水線
    1.3.2  流水線的級數
    1.3.3  流水線里的冒險
  1.4  CPU里的存儲設施:緩存
    1.4.1  緩存
    1.4.2  緩存行
    1.4.3  指令緩存與數據緩存
  1.5  多核緩存不一致引發的問題
    1.5.1  原子操作
    1.5.2  緩存引發的問題
    1.5.3  緩存一致性協議MESI
  1.6  指令還能亂序執行
    1.6.1  數據冒險與流水線停頓
    1.6.2  亂序執行
  1.7  跳還是不跳,這是一個問題
    1.7.1  靜態預測
    1.7.2  動態預測
  1.8  一條指令同時處理多個數據
    1.8.1  一個簡單的循環
    1.8.2  並行計算
    1.8.3  一條指令處理多個數據
  1.9  一個核同時執行兩個線程
    1.9.1  資源閑置
    1.9.2  超線程技術
  1.10  CPU是如何管理內存的
    1.10.2  32位時代
    1.10.3  虛擬內存
    1.10.4  分頁交換
  1.11  CPU地址翻譯的備忘錄
    1.11.1  虛擬地址翻譯
    1.11.2  地址翻譯緩存
    1.11.3  翻譯後備緩衝區
  1.12  GPU和CPU有什麼區別
    1.12.1  龐大的核心數量
    1.12.2  GPU的SIMT與「超線程」
第2章  電腦中的存儲設施
  2.1  緩存為什麼比內存還快
  2.2  內存條是如何存儲數據的

    2.2.1  數據存儲
    2.2.2  內存編址
  2.3  多個CPU如何共同訪問內存
    2.3.1  NUMA架構
    2.3.2  操作系統支持
    2.3.3  內存分配問題
  2.4  機械硬碟存儲數據的原理
  2.5  硬碟那麼大,電腦如何管理
    2.5.1  扇區和塊
    2.5.2  塊點陣圖
    2.5.3  inode
    2.5.4  目錄
    2.5.5  塊組、組描述符、超級塊
    2.5.6  引導塊、分區DBR和MBR
第3章  數據的輸入與輸出
  3.1  電腦中的高速公路
    3.1.1  早期的匯流排系統
    3.1.2  南橋與北橋
    3.1.3  消失的北橋
  3.2  其他設備如何與CPU通信
    3.2.1  8259A可編程中斷控制器
    3.2.2  APIC高級可編程中斷控制器
    3.2.3  中斷親和性
  3.3  電腦啟動的過程
    3.3.1  開始執行
    3.3.2  MBR
    3.3.3  操作系統
  3.4  CPU把數據搬運的工作「外包」出去
    3.4.1  PIO模式
    3.4.2  DMA技術
    3.4.3  DMA全面開花
  3.5  神奇的零拷貝技術
    3.5.1  數據的四次拷貝
    3.5.2  零拷貝技術
  3.6  網卡是如何工作的
    3.6.1  集線器時代
    3.6.2  數據收發過程
    3.6.3  交換機時代
  3.7  網卡收到數據包后發生什麼
    3.7.1  數據幀校驗
    3.7.2  DMA數據傳輸
    3.7.3  軟中斷
    3.7.4  輪詢收包
    3.7.5  協議棧
  3.8  繞過操作系統,直接收發數據包
    3.8.1  萬兆流量需求
    3.8.2  中斷問題
    3.8.3  超快的抓包技術:DPDK
    3.8.4  空轉問題
第4章  電腦的大管家:操作系統

  4.1  一個控製程序的進化
    4.1.1  多道程序處理
    4.1.2  時間分片
    4.1.3  狀態
    4.1.4  優先順序
    4.1.5  多核時代
  4.2  程序運行的實體:進程
    4.2.1  進程地址空間
    4.2.2  進程調度
    4.2.3  進程與線程
  4.3  CPU的執行流:線程
  4.4  內核地址空間歷險記:系統調用
    4.4.1  神秘的長者
    4.4.2  系統調用
    4.4.3  內核堆棧
  4.5  當除數為0時,CPU發生了什麼
    4.5.1  中斷和異常
    4.5.2  信號投遞
    4.5.3  異常返回
  4.6  發給進程的信號,到底去哪兒了
    4.6.1  可靠信號與不可靠信號
    4.6.2  信號的處理
    4.6.3  多線程的信號處理
  4.7  困住線程的鎖,到底是什麼
    4.7.1  原子操作
    4.7.2  自旋鎖
    4.7.3  互斥鎖
    4.7.4  條件變數
    4.7.5  信號量
  4.8  Linux的許可權管理
    4.8.1  打開文件的過程
    4.8.2  許可權檢查
    4.8.3  UGO與ACL檢查
    4.8.4  Cgroup與SELinux的檢查
  4.9  電腦中「楚門的世界」
    4.9.1  隱藏文件系統:chroot與pivot_root
    4.9.2  進程的隔離:命名空間
    4.9.3  行為的限制:Cgroup
第5章  系統編程那些事兒
  5.1  進程是如何誕生的
    5.1.1  奇怪的fork
    5.1.2  寫時拷貝
    5.1.3  消失的線程們
  5.2  線程的棧里都裝了什麼
    5.2.1  自動增長
    5.2.2  內核棧
    5.2.3  棧溢出
  5.3  進程間如何通信
    5.3.1  信號
    5.3.2  socket套接字

    5.3.3  匿名管道
    5.3.4  消息隊列
    5.3.5  共享內存
  5.4  高性能基礎:I/O多路復用
    5.4.1  select模型
    5.4.2  poll模型
    5.4.3  epoll模型
  5.5  像訪問內存一樣讀寫文件
    5.5.1  傳統文件讀寫
    5.5.2  內存映射文件
  5.6  線程里的多個執行流:協程
    5.6.1  線程阻塞問題
    5.6.2  多個執行流的「調度」
  5.7  調試器是如何工作的
    5.7.1  軟體斷點
    5.7.2  單步調試
    5.7.3  內存斷點
  5.8  可執行文件ELF
    5.8.1  格式識別
    5.8.2  ELF文件格式
    5.8.3  載入過程
第6章  電腦的攻擊與安全防護
  6.1  TCP序列號的秘密
    6.1.1  TCP初始化序列號是多少
    6.1.2  Linux協議棧里的計數器
  6.2  「猜出」TCP的序列號
    6.2.1  神秘的TCP計數器
    6.2.2  奇怪的TCP連接
    6.2.3  基於計數器的側通道攻擊
  6.3  危險的TCP SYN Flood
    6.3.1  SYN洪水攻擊
    6.3.2  安全防護:SYN Cookie
  6.4  從HTTP到HTTPS的進化
    6.4.1  第一版:直接簡單加密
    6.4.2  第二版:非對稱加密
    6.4.3  第三版:非對稱與對稱加密結合
    6.4.4  第四版:密鑰計算
    6.4.5  第五版:數宇證書
    6.4.6  第六版:信任鏈
  6.5  線程棧里的秘密行動
    6.5.1  棧溢出與Stack Canary
    6.5.2  虛函數攻擊
  6.6  CPU分支預測引發的危機
    6.6.1  觸發分支預測
    6.6.2  亂序執行與緩存引發的攻擊
    6.6.3  KPTI內核頁表隔離
  6.7  CPU中隱藏的秘密基地
    6.7.1  神秘的SGX
    6.7.2  CPU里的禁區
    6.7.3  內存加密

  6.8  躲在暗處的挖礦病毒
  6.9  伺服器被挖礦,Redis竟是內鬼
    6.9.1  挖礦病毒的入侵
    6.9.2  Redis持久化存儲「闖禍了」
  6.10  整數+1引發的內核攻擊
    6.10.1  IDT被誰基改了?
    6.10.2  有符號與無符號大有不同
    6.10.3  整數+1的悲劇
  6.11  從虛擬機中逃脫
    6.11.1  虛擬化技術
    6.11.2  虛擬機逃逸技術

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032