[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • 操作繫統真像還原 圖書
    該商品所屬分類:圖書 -> 科技
    【市場價】
    817-1184
    【優惠價】
    511-740
    【作者】 鄭鋼 
    【出版社】人民郵電出版社 
    【ISBN】9787115414342
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:人民郵電出版社
    ISBN:9787115414342
    商品編碼:10054256829721

    品牌:文軒
    出版時間:2016-03-01
    代碼:128

    作者:鄭鋼

        
        
    "
    作  者:鄭鋼 著
    /
    定  價:128.9
    /
    出 版 社:人民郵電出版社
    /
    出版日期:2016年03月01日
    /
    頁  數:772
    /
    裝  幀:平裝
    /
    ISBN:9787115414342
    /
    主編推薦
    前百度高 級工程師精心寫作。操作繫統並不深奧,本書給予解讀。歷時19個月,行文60餘萬字,用6000多行代碼實現了一個完整的操作繫統。剖析操作繫統的原理,實現內核線程、特權級變換、用戶進程、任務調度、文件繫統等操作繫統基本的。用實際代碼解釋了鎖、信號量、生產者消費者問題。實現了shell,幫助大家理解內部命令、外部命令、管道等操作。本書用詼諧幽默的語言,把深奧的操作繫統盡量講解清楚,讀者在輕松閱讀中就學通了深奧的知識,學完後不但明白了操作繫統,讀者可以輕松自制一個操作繫統,是一本等
    目錄
    ●第0章 一些你可能正感到迷惑的問題 1
    0.1 操作繫統是什麼 1
    0.2 你想研究到什麼程度 2
    0.3 寫操作繫統,哪些需要我來做 2
    0.4 軟件是如何訪問硬件的 2
    0.5 應用程序是什麼,和操作繫統是如何配合到一起的 3
    0.6 為什麼稱為“陷入”內核 4
    0.7 內存訪問為什麼要分段 4
    0.8 代碼中為什麼分為代碼段、數據段?這和內存訪問機制中的段是一回事嗎 6
    0.9 物理地址、邏輯地址、有效地址、線性地址、虛擬地址的區別 11
    0.10 什麼是段重疊 12
    0.11 什麼是平坦模型 12
    0.12 cs、ds這類sreg段寄存器,位寬是多少 12
    0.13 什麼是工程,什麼是協議 13
    0.14 為什麼Linux繫統下的應用程序不能在Windows繫統下運行 14
    0.15 局部變量和函數參數為什麼要放在棧中 14
    0.16 為什麼說彙編語言比C語言快 15
    0.17 先有的語言,還是先有的編譯器,第1個編譯器是怎麼產生的 16
    0.18 編譯型程序與解釋型程序的區別 19
    0.19 什麼是大端字節序、小端字節序 19
    0.20 BIOS中斷、DOS中斷、Linux中斷的區別 21
    0.21 Section和Segment的區別 25
    0.22 什麼是魔數 29
    0.23 操作繫統是如何識別文件繫統的 30
    0.24 如何控制CPU的下一條指令 30
    0.25 指令集、體繫結構、微架構、編程語言 30
    0.26 庫函數是用戶進程與內核的橋梁 33
    0.27 轉義字符與ASCII碼 37
    0.28 MBR、EBR、DBR和OBR各是什麼 39
    第1章 部署工作環境 42
    1.1 工欲善其事,必先利其器 42
    1.2 我們需要哪些編譯器 42
    1.2.1 世界很好編譯器GCC 42
    1.2.2 彙編語言編譯器新貴NASM 43
    1.3 操作繫統的宿主環境 43
    1.3.1 什麼是虛擬機 44
    1.3.2 盜夢空間般的開發環境,虛擬機中再裝一個虛擬機 45
    1.3.3 virtualBox下載,安裝 46
    1.3.4 Linux發行版下載 46
    1.3.5 Bochs下載安裝 46
    1.4 配置bochs 48
    1.5 運行bochs 49
    第2章 編寫MBR主引導記錄,讓我們開始掌權 52
    2.1 計算機的啟動過程 52
    2.2 軟件接力第一棒,BIOS 52
    2.2.1 實模式下的1MB內存布局 52
    2.2.2 BIOS是如何蘇醒的 54
    2.2.3 為什麼是0x7c00 56
    2.3 讓MBR先飛一會兒 58
    2.3.1 神奇好用的$和$$,令人迷惑的section 58
    2.3.2 NASM簡單用法 60
    2.3.3 請下一位選手MBR同學做準備 60
    第3章 完善MBR 65
    3.1 地址、section、vstart淺嘗輒止 65
    3.1.1 什麼是地址 65
    3.1.2 什麼是section 67
    3.1.3 什麼是vstart 68
    3.2 CPU的實模式 70
    3.2.1 CPU的工作原理 71
    3.2.2 實模式下的寄存器 72
    3.2.3 實模式下內存分段由來 76
    3.2.4 實模式下CPU內存尋址方式 78
    3.2.5 棧到底是什麼玩意兒 81
    3.2.6 實模式下的ret 84
    3.2.7 實模式下的call 85
    3.2.8 實模式下的jmp 92
    3.2.9 標志寄存器flags 97
    3.2.10 有條件轉移 99
    3.2.11 實模式小結 101
    3.3 讓我們直接對顯示器說點什麼吧 101
    3.3.1 CPU如何與外設通信——IO接口 101
    3.3.2 顯卡概述 105
    3.3.3 顯存、顯卡、顯示器 106
    3.3.4 改進MBR,直接操作顯卡 110
    3.4 bochs調試方法 112
    3.4.1 bochs一般用法 113
    3.4.2 bochs調試實例 118
    3.5 硬盤介紹 122
    3.5.1 硬盤發展簡史 122
    3.5.2 硬盤工作原理 123
    3.5.3 硬盤控制器端口 126
    3.5.4 常用的硬盤操作方法 128
    3.6 讓MBR使用硬盤 129
    3.6.1 改造MBR 130
    3.6.2 實現內核加載器 134
    第4章 保護模式入門 136
    4.1 保護模式概述 136
    4.1.1 為什麼要有保護模式 136
    4.1.2 實模式不是32位CPU,變成了16位 137
    4.2 初見保護模式 137
    4.2.1 保護模式之寄存器擴展 137
    4.2.2 保護模式之尋址擴展 140
    4.2.3 保護模式之運行模式反轉 141
    4.2.4 保護模式之指令擴展 145
    4.3 全局描述符表 150
    4.3.1 段描述符 150
    4.3.2 全局描述符表GDT、局部描述符表LDT及選擇子 155
    4.3.3 打開A20地址線 157
    4.3.4 保護模式的開關,CR0寄存器的PE位 158
    4.3.5 讓我們進入保護模式 158
    4.4 處理器微架構簡介 165
    4.4.1 流水線 166
    4.4.2 亂序執行 168
    4.4.3 緩存 168
    4.4.4 分支預測 169
    4.5 使用遠跳轉指令清空流水線,更新段描述符緩衝寄存器 172
    4.6 保護模式之內存段的保護 173
    4.6.1 向段寄存器加載選擇子時的保護 173
    4.6.2 代碼段和數據段的保護 174
    4.6.3 棧段的保護 175
    第5章 保護模式進階,向內核邁進 177
    5.1 獲取物理內存容量 177
    5.1.1 學習Linux獲取內存的方法 177
    5.1.2 利用BIOS中斷0x15子功能0xe820獲取內存 177
    5.1.3 利用BIOS中斷0x15子功能0xe801獲取內存 179
    5.1.4 利用BIOS中斷0x15子功能0x88獲取內存 180
    5.1.5 實戰內存容量檢測 181
    5.2 啟用內存分頁機制,暢遊虛擬空間 186
    5.2.1 內存為什麼要分頁 186
    5.2.2 一級頁表 188
    5.2.3 二級頁表 192
    5.2.4 規劃頁表之操作繫統與用戶進程的關繫 197
    5.2.5 啟用分頁機制 198
    5.2.6 用虛擬地址訪問頁表 204
    5.2.7 快表TLB(Translation Lookaside Buffer)簡介 206
    5.3 加載內核 207
    5.3.1 用C語言寫內核 207
    5.3.2 二進制程序的運行方法 211
    5.3.3 elf格式的二進制文件 213
    5.3.4 elf文件實例分析 218
    5.3.5 將內核載入內存 222
    5.4 特權級深入淺出 229
    5.4.1 特權級那點事 229
    5.4.2 TSS簡介 230
    5.4.3 CPL和DPL入門 232
    5.4.4 門、調用門與RPL序 235
    5.4.5 調用門的過程保護 240
    5.4.6 RPL的前世今生 243
    5.4.7 IO特權級 248
    第6章 完善內核 252
    6.1 函數調用約定簡介 252
    6.2 彙編語言和C語言混合編程 256
    6.2.1 淺析C庫函數與繫統調用 256
    6.2.2 彙編語言和C語言共同協作 259
    6.3 實現自己的打印函數 261
    6.3.1 顯卡的端口控制 261
    6.3.2 實現單個字符打印 265
    6.3.3 實現字符串打印 275
    6.3.4 實現整數打印 277
    6.4 內聯彙編 281
    6.4.1 什麼是內聯彙編 281
    6.4.2 彙編語言AT&T語法簡介 281
    6.4.3 基本內聯彙編 283
    6.4.4 擴展內聯彙編 284
    6.4.5 擴展內聯彙編之機器模式簡介 294
    第7章 中斷 298
    7.1 中斷是什麼,為什麼要有中斷 298
    7.2 操作繫統是中斷驅動的 299
    7.3 中斷分類 299
    7.3.1 外部中斷 299
    7.3.2 內部中斷 301
    7.4 中斷描述符表 304
    7.4.1 中斷處理過程及保護 306
    7.4.2 中斷發生時的壓棧 308
    7.4.3 中斷錯誤碼 310
    7.5 可編程中斷控制器8259A 311
    7.5.1 8259A介紹 311
    7.5.2 8259A的編程 314
    7.6 編寫中斷處理程序 319
    7.6.1 從最簡單的中斷處理程序開始 319
    7.6.2 改進中斷處理程序 335
    7.6.3 調試實戰:處理器進入中斷時壓棧出棧完整過程 339
    7.7 可編程計數器/定時器8253簡介 346
    7.7.1 時鐘——給設備打拍子 346
    7.7.2 8253入門 348
    7.7.3 8253控制字 349
    7.7.4 8253工作方式 350
    7.7.5 8253初始化步驟 353
    7.8 提高時鐘中斷的頻率,讓中斷來得更猛烈一些 354
    第8章 內存管理繫統 357
    8.1 makefile簡介 357
    8.1.1 makefile是什麼 357
    8.1.2 makefile基本語法 358
    8.1.3 跳到目標處執行 360
    8.1.4 偽目標 361
    8.1.5 make:遞歸式推導目標 362
    8.1.6 自定義變量與繫統變量 363
    8.1.7 隱含規則 365
    8.1.8 自動化變量 366
    8.1.9 模式規則 367
    8.2 實現assert斷言 367
    8.2.1 實現開、關中斷的函數 367
    8.2.2 實現ASSERT 370
    8.2.3 通過makefile來編譯 372
    8.3 實現字符串操作函數 374
    8.4 位圖bitmap及其函數的實現 377
    8.4.1 位圖簡介 377
    8.4.2 位圖的定義與實現 378
    8.5 內存管理繫統 381
    8.5.1 內存池規劃 381
    8.5.2 內存管理繫統第一步,分配頁內存 388
    第9章 線程 398
    9.1 實現內核線程 398
    9.1.1 執行流 398
    9.1.2 線程到底是什麼 399
    9.1.3 進程與線程的關繫、區別簡述 402
    9.1.4 進程、線程的狀態 405
    9.1.5 進程的身份證——PCB 405
    9.1.6 實現線程的兩種方式——內核或用戶進程 406
    9.2 在內核空間實現線程 409
    9.2.1 簡單的PCB及線程棧的實現 409
    9.2.2 線程的實現 413
    9.3 核心數據結構,雙向鏈表 417
    9.4 多線程調度 421
    9.4.1 簡單優先級調度的基礎 421
    9.4.2 任務調度器和任務切換 425
    第10章 輸入輸出繫統 439
    10.1 同步機制————鎖 439
    10.1.1 排查GP異常,理解原子操作 439
    10.1.2 找出代碼中的臨界區、互斥、競爭條件 444
    10.1.3 信號量 445
    10.1.4 線程的阻塞與喚醒 447
    10.1.5 鎖的實現 449
    10.2 用鎖實現終端輸出 452
    10.3 從鍵盤獲取輸入 456
    10.3.1 鍵盤輸入原理簡介 456
    10.3.2 鍵盤掃描碼 457
    10.3.3 8042簡介 463
    10.3.4 測試鍵盤中斷處理程序 465
    10.4 編寫鍵盤驅動 468
    10.4.1 轉義字符介紹 468
    10.4.2 處理掃描碼 469
    10.5 環形輸入緩衝區 476
    10.5.1 生產者與消費者問題簡述 476
    10.5.2 環形緩衝區的實現 478
    10.5.3 添加鍵盤輸入緩衝區 481
    10.5.4 生產者與消費者實例測試 482
    第11章 用戶進程 485
    11.1 為什麼要有任務狀態段TSS 485
    11.1.1 多任務的起源,很久很久以前…… 485
    11.1.2 LDT簡介 486
    11.1.3 TSS的作用 488
    11.1.4 CPU原生支持的任務切換方式 492
    11.1.5 現代操作繫統采用的任務切換方式 495
    11.2 定義並初始化TSS 497
    11.3 實現用戶進程 501
    11.3.1 實現用戶進程的原理 501
    11.3.2 用戶進程的虛擬地址空間 501
    11.3.3 為進程創建頁表和3特權級棧 502
    11.3.4 進入特權級3 505
    11.3.5 用戶進程創建的流程 506
    11.3.6 實現用戶進程——上 507
    11.3.7 bss簡介 513
    11.3.8 實現用戶進程——下 515
    11.3.9 讓進程跑起來——用戶進程的調度 519
    11.3.10 測試用戶進程 520
    第12章 進一步完善內核 523
    12.1 Linux繫統調用淺析 523
    12.2 繫統調用的實現 527
    12.2.1 繫統調用實現框架 527
    12.2.2 增加0x80號中斷描述符 527
    12.2.3 實現繫統調用接口 528
    12.2.4 增加0x80號中斷處理例程 528
    12.2.5 初始化繫統調用和實現sys_getpid 530
    12.2.6 添加繫統調用getpid 531
    12.2.7 在用戶進程中的繫統調用 532
    12.2.8 繫統調用之棧傳遞參數 534
    12.3 讓用戶進程“說話” 536
    12.3.1 可變參數的原理 536
    12.3.2 實現繫統調用write 538
    12.3.3 實現printf 539
    12.3.4 完善printf 542
    12.4 完善堆內存管理 545
    12.4.1 malloc底層原理 545
    12.4.2 底層初始化 548
    12.4.3 實現sys_malloc 550
    12.4.4 內存的釋放 555
    12.4.5 實現sys_free 558
    12.4.6 實現繫統調用malloc和free 562
    第13章 編寫硬盤驅動程序 566
    13.1 硬盤及分區表 566
    13.1.1 創建從盤及獲取安裝的磁盤數 566
    13.1.2 創建磁盤分區表 567
    13.1.3 磁盤分區表淺析 571
    13.2 編寫硬盤驅動程序 578
    13.2.1 硬盤初始化 578
    13.2.2 實現thread_yield和idle線程 582
    13.2.3 實現簡單的休眠函數 584
    13.2.4 完善硬盤驅動程序 585
    13.2.5 獲取硬盤信息,掃描分區表 590
    第14章 文件繫統 595
    14.1 文件繫統概念簡介 595
    14.1.1 inode、間接塊索引表、文件控制塊FCB簡介 595
    14.1.2 項與簡介 597
    14.1.3 超級塊與文件繫統布局 599
    14.2 創建文件繫統 601
    14.2.1 創建超級塊、i結點、項 601
    14.2.2 創建文件繫統 603
    14.2.3 掛載分區 609
    14.3 文件描述符簡介 612
    14.3.1 文件描述符原理 612
    14.3.2 文件描述符的實現 614
    14.4 文件操作相關的基礎函數 615
    14.4.1 inode操作有關的函數 616
    14.4.2 文件相關的函數 620
    14.4.3 相關的函數 623
    14.4.4 路徑解析相關的函數 628
    14.4.5 實現文件檢索功能 630
    14.5 創建文件 633
    14.5.1 實現file_create 633
    14.5.2 實現sys_open 636
    14.5.3 在文件繫統上創建第1個文件 639
    14.6 文件的打開與關閉 640
    14.6.1 文件的打開 640
    14.6.2 文件的關閉 642
    14.7 實現文件寫入 643
    14.7.1 實現file_write 643
    14.7.2 改進sys_write及write繫統調用 648
    14.7.3 把數據寫入文件 650
    14.8 讀取文件 651
    14.8.1 實現file_read 651
    14.8.2 實現sys_read與功能驗證 653
    14.9 實現文件讀寫指針定位功能 655
    14.10 實現文件刪除功能 657
    14.10.1 回收inode 657
    14.10.2 刪除項 660
    14.10.3 實現sys_unlink與功能驗證 663
    14.11 創建 665
    14.11.1 實現sys_mkdir創建 666
    14.11.2 創建功能驗證 669
    14.12 遍歷 671
    14.12.1 打開和關閉 671
    14.12.2 讀取1個項 673
    14.12.3 實現sys_readdir及sys_rewinddir 674
    14.13 刪除 676
    14.13.1 刪除與判斷空 676
    14.13.2 實現sys_rmdir及功能驗證 677
    14.14 任務的工作 679
    14.14.1 顯示當前工作的原理及基礎代碼 679
    14.14.2 實現sys_getcwd 681
    14.14.3 實現sys_chdir改變工作 683
    14.15 獲得文件屬性 684
    14.15.1 ls命令的幕後功臣 684
    14.15.2 實現sys_stat 685
    第15章 繫統交互 687
    15.1 fork的原理與實現 687
    15.1.1 什麼是fork 687
    15.1.2 fork的實現 689
    15.1.3 添加fork繫統調用與實現init進程 695
    15.2 添加read繫統調用,獲取鍵盤輸入 696
    15.3 添加putchar、clear繫統調用 697
    15.4 實現一個簡單的shell 699
    15.4.1 shell雛形 699
    15.4.2 添加Ctrl+u和Ctrl+l快捷鍵 701
    15.4.3 解析鍵入的字符 703
    15.4.4 添加繫統調用 705
    15.4.5 路徑解析轉換 708
    15.4.6 實現ls、cd、mkdir、ps、rm等命令 712
    15.5 加載用戶進程 717
    15.5.1 實現exec 717
    15.5.2 讓shell支持外部命令 723
    15.5.3 加載硬盤上的用戶程序執行 724
    15.5.4 使用戶進程支持參數 727
    15.6 實現繫統調用wait和exit 731
    15.6.1 wait和exit的作用 731
    15.6.2 孤兒進程和僵尸進程 732
    15.6.3 一些基礎代碼 733
    15.6.4 實現wait和exit 737
    15.6.5 實現cat命令 741
    15.7 管道 745
    15.7.1 管道的原理 745
    15.7.2 管道的設計 747
    15.7.3 管道的實現 748
    15.7.4 利用管道實現進程間通信 752
    15.7.5 在shell中支持管道 754
    參考文獻 760
    內容簡介
    本書共分16章,講解了開發一個操作繫統需要的技術和知識,主要內容有:操作繫統基礎、部署工作環境、編寫MBR主引導記錄、完善MBR錯誤、保護模式入門、保護模式進階和向內核邁進、中斷、內存管理繫統、線程、輸入輸出繫統、用戶進程、完善內核、編寫硬盤驅動程序、文件繫統、繫統交互等核心技術。 本書適合程序員、繫統底層開發人員、操作繫統愛好者閱讀,也可作為大專院校相關專業師生用書和培訓學校的教材。
    作者簡介
    鄭鋼 著
    鄭鋼,畢業於北京大學,前百度運維高 級工程師,對操作繫統有深入的研究。好運動,喜鑽研,熱衷於嘗試前沿技術,樂於分享學習成果。



    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    【同作者商品】
    鄭鋼
      本網站暫時沒有該作者的其它商品。
    有該作者的商品通知您嗎?
    請選擇作者:
    鄭鋼
    您的Email地址
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部