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

自研操作系統--DIM-SUM設計與實現

  • 作者:謝寶友|責編:張春雨
  • 出版社:電子工業
  • ISBN:9787121391866
  • 出版日期:2020/08/01
  • 裝幀:平裝
  • 頁數:440
人民幣:RMB 129 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書詳細闡述了自研操作系統DIM-SUM的設計與實現,提供了在ARM 64虛擬機中動手實踐DIM-SUM及參與DIM-SUM開發的方法。針對DIM-SUM操作系統的同步與互斥、調度、內存、中斷與定時器、塊設備、文件系統模塊進行了詳細的分析,包括這些模塊的設計思路、數據結構定義、關鍵API說明。最重要的是,本書對各個模塊的主要函數進行了逐行解釋,有助於讀者深刻理解如何實現一款實用的操作系統。最後,本書還展望了接下來10年DIM-SUM操作系統的發展目標,希望最終其能發展為可以在伺服器系統、桌面系統中實用的自研操作系統。
    本書適合於對操作系統研發有興趣的大學生、研究生,以及從事操作系統相關工作的一線工程師。對於Linux操作系統工程師,本書也極具實用價值。

作者介紹
謝寶友|責編:張春雨
    謝寶友,1996年畢業於四川省稅務學校稅收專業,現供職于中興微電子操作系統團隊,對操作系統內核有較強的興趣。專職于操作系統內核已經有8年時間。希望利用10年時間,成為一名真正的「內核菜鳥」。主要工作是對Linux進行分析,解決遇到的標準內核故障,並向項目組提出應用程序優化措施。作為LinuxZTE平台的維護者,偶爾也向開源社區提交一些補丁。在中興通訊操作系統產品部工作期間,作為技術總工參與的電信級嵌入式實時操作系統,獲得了行業最高獎——「中國工業大獎」。負責本書第1 1章至附錄F,以及附錄D的對應答案部分內容翻譯。

目錄
第1章  準備工作
  1.1  DIM-SUM簡介
  1.2  DIM-SUM是什麼
    1.2.1  DIM-SUM的第一個版本為什麼是HOT-POT
    1.2.2  DIM-SUM歡迎什麼
    1.2.3  DIM-SUM不歡迎什麼
  1.3  獲得源代碼
    1.3.1  通過網頁下載源代碼
    1.3.2  通過Git獲取源代碼
  1.4  搭建調試開發環境
    1.4.1  安裝ubuntu 16.04
    1.4.2  ubuntu 16.04環境配置
    1.4.3  搭建編譯環境
    1.4.4  編譯HOT-POT
    1.4.5  運行HOT-POT
    1.4.6  開始調試
  1.5  向DIM-SUM操作系統提交補丁
    1.5.1  心態
    1.5.2  準備工作
    1.5.3  製作補丁
    1.5.4  製作正確的補丁
    1.5.5  發送補丁
  1.6  獲得幫助
  1.7  提醒
第2章  演算法基礎
  2.1  鏈表
  2.2  散列表
  2.3  紅黑樹
  2.4  基樹
第3章  計數與互斥同步
  3.1  計數
    3.1.1  計數的難題
    3.1.2  精確計數器
    3.1.3  近似計數器
    3.1.4  引用計數
  3.2  內核互斥原語
    3.2.1  每CPU變數
    3.2.2  自旋鎖
    3.2.3  自旋位鎖
    3.2.4  自旋順序鎖
    3.2.5  自旋讀/寫鎖
    3.2.6  讀/寫信號量
    3.2.7  互斥鎖
  3.3  內核同步原語
    3.3.1  信號量的設計原理
    3.3.2  信號量的數據結構
    3.3.3  信號量API
    3.3.4  信號量的實現
第4章  調度
  4.1  基本概念

    4.1.1  進程和線程
    4.1.2  任務
    4.1.3  任務搶佔
    4.1.4  idle線程
  4.2  SMP CPU初始化
  4.3  數據結構
    4.3.1  線程
    4.3.2  調度隊列
    4.3.3  雜項
  4.4  調度子系統初始化
    4.4.1  init_sched_early函數
    4.4.2  init_idle_process函數
    4.4.3  init_sched函數
  4.5  線程調度
    4.5.1  上下文切換
    4.5.2  喚醒線程
  4.6  高級調度API
    4.6.1  等待隊列
    4.6.2  位等待隊列
    4.6.3  線程睡眠
    4.6.4  消息隊列
第5章  中斷及定時器
  5.1  中斷控制器初始化
    5.1.1  主CPU中斷控制器初始化
    5.1.2  從CPU中斷控制器初始化
  5.2  中斷控制器維護
    5.2.1  中斷號映射
    5.2.2  邏輯中斷的控制
    5.2.3  設備中斷處理函數
  5.3  中斷處理
    5.3.1  序言
    5.3.2  中斷處理通用流程
    5.3.3  處理外部設備中斷
    5.3.4  處理核間中斷
    5.3.5  軟中斷
    5.3.6  尾聲
  5.4  工作隊列
    5.4.1  工作隊列的數據結構
    5.4.2  工作隊列的全局變數
    5.4.3  工作隊列的API
    5.4.4  工作隊列的實現
  5.5  定時器與時間管理
    5.5.1  初始化
    5.5.2  定時器的數據結構
    5.5.3  定時器的全局變數
    5.5.4  定時器的API
    5.5.5  定時器的實現
    5.5.6  定時器中斷處理
    5.5.7  時間管理
第6章  內存管理

  6.1  內存初始化
    6.1.1  艱難地準備C運行環境
    6.1.2  準備BOOT內存空間
    6.1.3  物理內存塊管理
    6.1.4  早期設備內存映射
    6.1.5  初始化每CPU變數
    6.1.6  初始化線性映射
    6.1.7  其他內存初始化工作
  6.2  BOOT內存分配器
    6.2.1  BOOT內存分配API
    6.2.2  BOOT內存分配器的實現
    6.2.3  BOOT內存分配器的銷毀
  6.3  頁面編號
    6.3.1  頁面編號的數據結構
    6.3.2  頁面編號的全局變數
    6.3.3  頁面編號的API
    6.3.4  頁面編號的實現
  6.4  頁面分配器
    6.4.1  頁面分配器的設計原理
    6.4.2  頁面分配器的數據結構
    6.4.3  頁面分配器的全局變數
    6.4.4  頁面分配器的API
    6.4.5  頁面分配器的實現
    6.4.6  頁面分配器的初始化
  6.5  Beehive內存分配器
    6.5.1  Beehive內存分配器的設計原理
    6.5.2  Beehive內存分配器的數據結構
    6.5.3  Beehive內存分配器的全局變數
    6.5.4  Beehive內存分配器的API
    6.5.5  Beehive內存分配器的實現
    6.5.6  Beehive內存分配器的初始化
  6.6  I/O內存映射
第7章  塊設備
  7.1  磁碟及其分區
    7.1.1  磁碟及其分區的數據結構
    7.1.2  磁碟及其分區的全局變數
    7.1.3  磁碟及其分區的API
    7.1.4  磁碟及其分區的實現
  7.2  塊設備維護
    7.2.1  塊設備的數據結構
    7.2.2  塊設備的全局變數
    7.2.3  塊設備的API
    7.2.4  塊設備的實現
  7.3  I/O請求
    7.3.1  I/O請求的數據結構
    7.3.2  I/O請求的全局變數
    7.3.3  I/O請求的API
    7.3.4  I/O請求的實現
  7.4  I/O調度
    7.4.1  I/O調度的數據結構

    7.4.2  I/O調度的全局變數
    7.4.3  I/O調度的API
    7.4.4  I/O調度的實現
第8章  虛擬文件系統
  8.1  掛載、卸載文件系統
    8.1.1  掛載、卸載文件系統的數據結構
    8.1.2  掛載、卸載文件系統的全局變數
    8.1.3  掛載、卸載文件系統的API
    8.1.4  掛載、卸載文件系統的實現
  8.2  文件節點緩存
    8.2.1  文件節點緩存的數據結構
    8.2.2  文件節點緩存的全局變數
    8.2.3  文件節點緩存的API
    8.2.4  文件節點緩存的實現
  8.3  打開、關閉文件
    8.3.1  打開、關閉文件的數據結構
    8.3.2  打開、關閉文件的全局變數
    8.3.3  打開、關閉文件的API
    8.3.4  打開、關閉文件的實現
  8.4  讀/寫文件
    8.4.1  讀/寫文件的數據結構
    8.4.2  讀/寫文件的全局變數
    8.4.3  讀/寫文件的API
    8.4.4  讀/寫文件的實現
  8.5  其他功能
第9章  雜項文件系統
  9.1  文件系統的掛載
    9.1.1  第一次載入根文件系統
    9.1.2  第二次載入根文件系統
  9.2  內存文件系統
    9.2.1  內存文件系統的數據結構
    9.2.2  內存文件系統的全局變數
    9.2.3  內存文件系統的API
    9.2.4  內存文件系統的實現
  9.3  設備文件系統
    9.3.1  設備文件系統的數據結構
    9.3.2  設備文件系統的全局變數
    9.3.3  設備文件系統的API
    9.3.4  設備文件系統的實現
第10章  LEXT3文件系統
  10.1  簡介
    10.1.1  超級塊
    10.1.2  塊組描述符
    10.1.3  塊點陣圖
    10.1.4  文件節點點陣圖
    10.1.5  文件節點表
    10.1.6  文件節點
    10.1.7  文件日誌
  10.2  LEXT3
    10.2.1  LEXT3的數據結構

    10.2.2  LEXT3的全局變數
    10.2.3  LEXT3的API
    10.2.4  LEXT3的實現
  10.3  文件系統日誌
    10.3.1  日誌的數據結構
    10.3.2  日誌的全局變數
    10.3.3  日誌的API
    10.3.4  日誌的實現
第11章  雜項
  11.1  klibc
  11.2  網路子系統
  11.3  SIMPLE-KSHELL

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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