30天自製作業系統

30天自製作業系統

《30天自製作業系統》是2012年人民郵電出版社出版的圖書,作者是川合秀實。該書介紹了怎么編寫代碼,完成作業系統任務。

基本介紹

  • 書名:30天自製作業系統
  • 作者:[日]川合秀實
  • 原版名稱:30日でできゐ!OS自作入門
  • 譯者:周自恆,李黎明,曾箱江,張文旭
  • ISBN:9787115287960
  • 頁數:710
  • 定價:99.00元
  • 出版社:人民郵電出版社
  • 出版時間:2012-8
  • 裝幀:平裝
  • 開本:800×1000 1/16
內容簡介,作品目錄,編輯推薦,作者簡介,

內容簡介

自己編寫一個作業系統,是許多程式設計師的夢想。也許有人曾經挑戰過,但因為太難而放棄了。其實你錯了,你的失敗並不是因為編寫作業系統太難,而是因為沒有人告訴你那其實是一件很簡單的事。那么,你想不想再挑戰一次呢?
這是一本兼具趣味性、實用性與學習性的書籍。作者從計算機的構造、彙編語言、C語言開始解說,讓你在實踐中掌握算法。在這本書的指導下,從零編寫所有代碼,30天后就可以製作出一個具有視窗系統的32位多任務作業系統。
本書以課題為主導,邊做邊玩,拋開晦澀難懂的語言,行文風格十分隨性,還充滿了各種歡樂的吐槽,適合作業系統愛好者和程式設計人員閱讀。

作品目錄

第0天 著手開發之前
1 前言
2 何謂作業系統
3 開發作業系統的各種方法
4 無知則無畏
5 如何開發作業系統
6 作業系統開發中的困難
7 學習本書時的注意事項(重要!)
8 各章內容摘要
第1天 從計算機結構到彙編程式入門
1 先動手操作
2 究竟做了些什麼
3 初次體驗彙編程式
4 加工潤色
第2天 彙編語言學習與Makefile入門
1 介紹文本編輯器
2 繼續開發
3 先製作啟動區
4 Makefile入門
第3天 進入32位模式並導入C語言
1 製作真正的IPL
2 試錯
3 讀到18扇區
4 讀入10個柱面
5 著手開發作業系統
6 從啟動區執行作業系統
7 確認作業系統的執行情況
8 32位模式前期準備
9 開始導入C語言
10 實現HLT(harib00j)
第4天 C語言與畫面顯示的練習
1 用C語言實現記憶體寫入(harib01a)
2 條紋圖案(harib01b)
3 挑戰指針(harib01c)
4 指針的套用(1)(harib01d)
5 指針的套用(2)(harib01e)
6 色號設定(harib01f)
7 繪製矩形(harib01g)
8 今天的成果(harib01h)
第5天 結構體、文字顯示與GDT/IDT初始化
1 接收啟動信息(harib02a)
2 試用結構體(harib02b)
3 試用箭頭記號(harib02c)
4 顯示字元(harib02d)
5 增加字型(harib02e)
6 顯示字元串(harib02f)
7 顯示變數值(harib02g)
8 顯示滑鼠指針(harib02h)
9 GDT與IDT的初始化(harib02i)
第6天 分割編譯與中斷處理
1 分割源檔案(harib03a)
2 整理Makefile(harib03b)
3 整理頭檔案(harib03c)
4 意猶未盡
5 初始化PIC(harib03d)
6 中斷處理程式的製作(harib03e)
第7天 FIFO與滑鼠控制
1 獲取按鍵編碼(hiarib04a)
2 加快中斷處理(hiarib04b)
3 製作FIFO緩衝區(hiarib04c)
4 改善FIFO緩衝區(hiarib04d)
5 整理FIFO緩衝區(hiarib04e)
6 總算講到滑鼠了(harib04f)
7 從滑鼠接受數據(harib04g)
第8天 滑鼠控制與32位模式切換
1 滑鼠解讀(1)(harib05a)
2 稍事整理(harib05b)
3 滑鼠解讀(2)(harib05c)
4 移動滑鼠指針(harib05d)
5 通往32位模式之路
第9天 記憶體管理
1 整理源檔案(harib06a)
2 記憶體容量檢查(1)(harib06b)
3 記憶體容量檢查(2)(harib06c)
4 挑戰記憶體管理(harib06d)
第10天 迭加處理
1 記憶體管理(續)(harib07a)
2 迭加處理(harib07b)
3 提高迭加處理速度(1)(harib07c)
4 提高迭加處理速度(2)(harib07d)
第11天 製作視窗
1 滑鼠顯示問題(harib08a)
2 實現畫面外的支持(harib08b)
3 shtctl的指定省略(harib08c)
4 顯示視窗(harib08d)
5 小實驗(harib08e)
6 高速計數器(harib08f)
7 消除閃爍(1)(harib08g)
8 消除閃爍(2)(harib08h)
第12天 定時器(1)
1 使用定時器(harib09a)
2 計量時間(harib09b)
3 逾時功能(harib09c)
4 設定多個定時器(harib09d)
5 加快中斷處理(1)(harib09e)
6 加快中斷處理(2)(harib09f)
7 加快中斷處理(3)(harib09g)
第13天 定時器(2)
1 簡化字元串顯示(harib10a)
2 重新調整FIFO緩衝區(1)(harib10b)
3 測試性能(harib10c~harib10f)
4 重新調整FIFO緩衝區(2)(harib10g)
5 加快中斷處理(4)(harib10h)
6 使用“哨兵”簡化程式(harib10i)
第14天 高解析度及鍵盤輸入
1 繼續測試性能(harib11a~harib11c)
2 提高解析度(1)(harib11d)
3 提高解析度(2)(harib11e)
4 鍵盤輸入(1)(harib11f)
5 鍵盤輸入(2)(harib11g)
6 追記內容(1)(harib11h)
7 追記內容(2)(harib11i)
第15天 多任務(1)
1 挑戰任務切換(harib12a)
2 任務切換進階(harib12b)
3 做個簡單的多任務(1)(harib12c)
4 做個簡單的多任務(2)(harib12d)
5 提高運行速度(harib12e)
6 測試運行速度(harib12f)
7 多任務進階(harib12g)
第16天 多任務(2)
1 任務管理自動化(harib13a)
2 讓任務休眠(harib13b)
3 增加視窗數量(harib13c)
4 設定任務優先權(1)(harib13d)
5 設定任務優先權(2)(harib13e)
第17天 命令行視窗
1 閒置任務(harib14a)
2 創建命令行視窗(harib14b)
3 切換輸入視窗(harib14c)
4 實現字元輸入(harib14d)
5 符號的輸入(harib14e)
6 大寫字母與小寫字母(harib14f)
7 對各種鎖定鍵的支持(harib14g)
第18天 dir命令
1 控制游標閃爍(1)(harib15a)
2 控制游標閃爍(2)(harib15b)
3 對回車鍵的支持(harib15c)
4 對視窗滾動的支持(harib15d)
5 mem命令(harib15e)
6 cls命令(harib15f)
7 dir命令(harib15g)
第19天 應用程式
1 type命令(harib16a)
2 type命令改良(harib16b)
3 對FAT的支持(harib16c)
4 代碼整理(harib16d)
5 第一個應用程式(harib16e)
第20天 API
1 程式整理(harib17a)
2 顯示單個字元的API(1)(harib17b)
3 顯示單個字元的API(2)(harib17c)
4 結束應用程式(harib17d)
5 不隨作業系統版本而改變的API(harib17e)
6 為應用程式自由命名(harib17f)
7 當心暫存器(harib17g)
8 用API顯示字元串(harib17h)
第21天 保護作業系統
1 攻克難題——字元串顯示API(harib18a)
2 用C語言編寫應用程式(harib18b)
3 保護作業系統(1)(harib18c)
4 保護作業系統(2)(harib18d)
5 對異常的支持(harib18e)
6 保護作業系統(3)(harib18f)
7 保護作業系統(4)(harib18g)
第22天 用C語言編寫應用程式
1 保護作業系統(5)(harib19a)
2 幫助發現bug(harib19b)
3 強制結束應用程式(harib19c)
4 用C語言顯示字元串(1)(harib19d)
5 用C語言顯示字元串(2)(harib19e)
6 顯示視窗(harib19f)
7 在視窗中描繪字元和方塊(harib19g)
第23天 圖形處理相關
1 編寫malloc(harib20a)
2 畫點(harib20b)
3 刷新視窗(harib20c)
4 畫直線(harib20d)
5 關閉視窗(harib20e)
6 鍵盤輸入API(harib20f)
7 用鍵盤輸入來消遣一下(harib20g)
8 強制結束並關閉視窗(harib20h)
第24天 視窗操作
1 視窗切換(1)(harib21a)
2 視窗切換(2)(harib21b)
3 移動視窗(harib21c)
4 用滑鼠關閉視窗(harib21d)
5 將輸入切換到應用程式視窗(harib21e)
6 用滑鼠切換輸入視窗(harib21f)
7 定時器API(harib21g)
8 取消定時器(harib21h)
第25天 增加命令行視窗
1 蜂鳴器發聲(harib22a)
2 增加更多的顏色(1)(harib22b)
3 增加更多的顏色(2)(harib22c)
4 視窗初始位置(harib22d)
5 增加命令行視窗(1)(harib22e)
6 增加命令行視窗(2)(harib22f)
7 增加命令行視窗(3)(harib22g)
8 增加命令行視窗(4)(harib22h)
9 變得更像真正的作業系統(1)(harib22i)
10 變得更像真正的作業系統(2)(harib22j)
第26天 為視窗移動提速
1 提高視窗移動速度(1)(harib23a)
2 提高視窗移動速度(2)(harib23b)
3 提高視窗移動速度(3)(harib23c)
4 提高視窗移動速度(4)(harib23d)
5 啟動時只打開一個命令行視窗(harib23e)
6 增加更多的命令行視窗(harib23f)
7 關閉命令行視窗(1)(harib23g)
8 關閉命令行視窗(2)(harib23h)
9 start命令(harib23i)
10 ncst命令(harib23j)
第27天 LDT與庫
1 先來修復bug(harib24a)
2 應用程式運行時關閉命令行視窗(harib24b)
3 保護應用程式(1)(harib24c)
4 保護應用程式(2)(harib24d)
5 最佳化應用程式的大小(harib24e)
6 庫(harib24f)
7 整理make環境(harib24g)
第28天 檔案操作與文字顯示
1 alloca(1)(harib25a)
2 alloca(2)(harib25b)
3 檔案操作API(harib25c)
4 命令行API(harib25d)
5 日文文字顯示(1)(harib25e)
6 日文文字顯示(2)(harib25f)
7 日文文字顯示(3)(harib25g)
第29天 壓縮與簡單的應用程式
1 修復bug(harib26a)
2 檔案壓縮(harib26b)
3 標準函式
4 非矩形視窗(harib26c)
5 bball(harib26d)
6 外星人遊戲(harib26e)
第30天 高級的應用程式
1 命令行計算器(harib27a)
2 文本閱覽器(harib27b)
3 MML播放器(harib27c)
4 圖片閱覽器(harib27d)
5 IPL的改良(harib27e)
6 光碟啟動(harib27f)
第31天 寫在開發完成之後
1 繼續開發要靠大家的努力
2 關於作業系統的大小
3 作業系統開發的訣竅
4 分享給他人使用
5 關於光碟中的軟體
6 關於開源的建議
7 後記
8 畢業典禮
9 附錄

編輯推薦

只需30天
從零開始編寫一個五臟俱全的圖形作業系統
39.1KB迷你系統
實現多任務、漢字顯示、檔案壓縮,還能聽歌看圖玩遊戲
日本編程天才
揭開CPU、記憶體、磁碟以及作業系統底層工作模式的神秘面紗

作者簡介

川合秀實(Hidemi Kawai)
生於1975年,是一位以“輕量化”編程思想見長的“非主流”開發者。2000年因自行開發的OSASK項目而名聲大噪。OSASK是一個開源的32位微型作業系統,它並非以Linux等核心為基礎,而是完全從零開始開發,在一張軟碟的容量下實現了GUI、多任務、多語言等高級特性,啟動時間只需1秒。本書的內容可以看成是作者以OSASK為藍本,教會讀者從零開始開發一個作業系統,同時可以讓初學者在編寫作業系統的過程中,了解作業系統背後更多的知識。

相關詞條

熱門詞條

聯絡我們