30天自制操作系統( 簡體 字) | |
作者:[日]川合秀實 著 | 類別:1. -> 作業系統 -> 綜合 2. -> 程式設計 -> 綜合 |
出版社:人民郵電出版社 | 3dWoo書號: 55752 詢問書籍請說出此書號! 缺書 NT售價: 650 元 |
出版日:4/1/2022 | |
頁數:710 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115287960 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
0天 著手開發之前 1
1 前言 1 2 何謂操作系統 3 3 開發操作系統的各種方法 4 4 無知則無畏 4 5 如何開發操作系統 6 6 操作系統開發中的困難 7 7 學習本書時的注意事項(重要!) 9 8 各章內容摘要 11 第 1天 從計算機結構到匯編程序入門 13 1 先動手操作 13 2 做了些什么 19 3 初次體驗匯編程序 22 4 加工潤色 24 第 2天 匯編語言學習與Makefile入門 28 1 介紹文本編輯器 28 2 繼續開發 29 3 先制作啟動區 40 4 Makefile入門 41 第3天 進入32位模式并導入C語言 45 1 制作真正的IPL 45 2 試錯 50 3 讀到18扇區 51 4 讀入10個柱面 52 5 著手開發操作系統 54 6 從啟動區執行操作系統 55 7 確認操作系統的執行情況 56 8 32位模式前期準備 57 9 開始導入C語言 59 10 實現HLT(harib00j) 62 第4天 C語言與畫面顯示的練習 64 1 用C語言實現內存寫入(harib01a) 64 2 條紋圖案(harib01b) 67 3 挑戰指針(harib01c) 69 4 指針的應用(1)(harib01d) 74 5 指針的應用(2)(harib01e) 74 6 色號設定(harib01f) 75 7 繪制矩形(harib01g) 84 8 今 天的成果(harib01h) 86 第5天 結構體、文字顯示與GDT/IDT初始化 88 1 接收啟動信息(harib02a) 88 2 試用結構體(harib02b) 89 3 試用箭頭記號(harib02c) 91 4 顯示字符(harib02d) 91 5 增加字體(harib02e) 94 6 顯示字符串(harib02f) 96 7 顯示變量值(harib02g) 97 8 顯示鼠標指針(harib02h) 99 9 GDT與IDT的初始化(harib02i) 101 第6天 分割編譯與中斷處理 108 1 分割源文件(harib03a) 108 2 整理Makefile(harib03b) 109 3 整理頭文件(harib03c) 110 4 意猶未盡 112 5 初始化PIC(harib03d) 115 6 中斷處理程序的制作(harib03e) 119 第7天 FIFO與鼠標控制 125 1 獲取按鍵編碼(hiarib04a) 125 2 加快中斷處理(hiarib04b) 127 3 制作FIFO緩沖區(hiarib04c) 130 4 改善FIFO緩沖區(hiarib04d) 133 5 整理FIFO緩沖區(hiarib04e) 135 6 總算講到鼠標了(harib04f) 138 7 從鼠標接受數據(harib04g) 141 第8天 鼠標控制與32位模式切換 144 1 鼠標解讀(1)(harib05 a) 144 2 稍事整理(harib05b) 146 3 鼠標解讀(2)(harib05c) 148 4 移動鼠標指針(harib05d) 151 5 通往32位模式之路 153 第9天 內存管理 162 1 整理源文件(harib06a) 162 2 內存容量檢查(1)(harib06b) 163 3 內存容量檢查(2)(harib06c) 168 4 挑戰內存管理(harib06d) 172 第 10天 疊加處理 181 1 內存管理(續)(harib07a) 181 2 疊加處理(harib07b) 184 3 提高疊加處理速度(1)(harib07c) 194 4 提高疊加處理速度(2)(harib07d) 197 第 11天 制作窗口 201 1 鼠標顯示問題(harib08a) 201 2 實現畫面外的支持(harib08b) 202 3 shtctl的指定省略(harib08c) 203 4 顯示窗口(harib08d) 206 5 小實驗(harib08e) 208 6 高速計數器(harib08f) 209 7 消除閃爍(1)(harib08g) 211 8 消除閃爍(2)(harib08h) 214 第 12天 定時器(1) 220 1 使用定時器(harib09a) 220 2 計量時間(harib09b) 224 3 超時功能(harib09c) 225 4 設定多個定時器(harib09d) 228 5 加快中斷處理(1)(harib09e) 232 6 加快中斷處理(2)(harib09f) 234 7 加快中斷處理(3)(harib09g) 236 第 13天 定時器(2) 240 1 簡化字符串顯示(harib10a) 240 2 重新調整FIFO緩沖區(1)(harib10b) 241 3 測試性能(harib10c~harib10f) 243 4 重新調整FIFO緩沖區(2)(harib10g) 246 5 加快中斷處理(4)(harib10h) 253 6 使用“哨兵”簡化程序(harib10i) 257 第 14天 高分辨率及鍵盤輸入 262 1 繼續測試性能(harib11a~harib11c) 262 2 提高分辨率(1)(harib11d) 266 3 提高分辨率(2)(harib11e) 269 4 鍵盤輸入(1)(harib11f) 272 5 鍵盤輸入(2)(harib11g) 275 6 追記內容(1)(harib11h) 277 7 追記內容(2)(harib11i) 279 第 15天 多任務(1) 282 1 挑戰任務切換(harib12a) 282 2 任務切換進階(harib12b) 289 3 做個簡單的多任務(1)(harib12c) 291 4 做個簡單的多任務(2)(harib12d) 293 5 提高運行速度(harib12e) 294 6 測試運行速度(harib12f) 297 7 多任務進階(harib12g) 299 第 16天 多任務(2) 304 1 任務管理自動化(harib13a) 304 2 讓任務休眠(harib13b) 308 3 增加窗口數量(harib13c) 313 4 設定任務優先級(1)(harib13d) 317 5 設定任務優先級(2)(harib13e) 320 第 17天 命令行窗口 329 1 閑置任務(harib14a) 329 2 創建命令行窗口(harib14b) 331 3 切換輸入窗口(harib14c) 334 4 實現字符輸入(harib14d) 337 5 符號的輸入(harib14e) 341 6 大寫字母與小寫字母(harib14f) 343 7 對各種鎖定鍵的支持(harib14g) 346 第 18天 dir命令 350 1 控制光標閃爍(1)(harib15 a) 350 2 控制光標閃爍(2)(harib15b) 352 3 對回車鍵的支持(harib15c) 355 4 對窗口滾動的支持(harib15d) 357 5 mem命令(harib15e) 359 6 cls命令(harib15f) 363 7 dir命令(harib15g) 366 第 19天 應用程序 371 1 type命令(harib16a) 371 2 type命令改良(harib16b) 378 3 對FAT的支持(harib16c) 382 4 代碼整理(harib16d) 387 5 第 一個應用程序(harib16e) 387 第 20天 API 392 1 程序整理(harib17a) 392 2 顯示單個字符的API(1)(harib17b) 399 3 顯示單個字符的API(2)(harib17c) 402 4 結束應用程序(harib17d) 403 5 不隨操作系統版本而改變的API(harib17e) 405 6 為應用程序自由命名(harib17f) 408 7 當心寄存器(harib17g) 410 8 用API顯示字符串(harib17h) 412 第 21天 保護操作系統 418 1 攻克難題——字符串顯示API(harib18a) 418 2 用C語言編寫應用程序(harib18b) 420 3 保護操作系統(1)(harib18c) 424 4 保護操作系統(2)(harib18d) 426 5 對異常的支持(harib18e) 431 6 保護操作系統(3)(harib18f) 434 7 保護操作系統(4)(harib18g) 435 第 22天 用C語言編寫應用程序 443 1 保護操作系統(5)(harib19a) 443 2 幫助發現bug(harib19b) 448 3 強制結束應用程序(harib19c) 452 4 用C語言顯示字符串(1)(harib19d) 455 5 用C語言顯示字符串(2)(harib19e) 457 6 顯示窗口(harib19f) 462 7 在窗口中描繪字符和方塊(harib19g) 465 第 23天 圖形處理相關 468 1 編寫malloc(harib20a) 468 2 畫點(harib20b) 472 3 刷新窗口(harib20c) 475 4 畫直線(harib20d) 478 5 關閉窗口(harib20e) 483 6 鍵盤輸入API(harib20f) 484 7 用鍵盤輸入來消遣一下(harib20g) 488 8 強制結束并關閉窗口(harib20h) 489 第 24天 窗口操作 493 1 窗口切換(1)(harib21a) 493 2 窗口切換(2)(harib21b) 495 3 移動窗口(harib21c) 496 4 用鼠標關閉窗口(harib21d) 498 5 將輸入切換到應用程序窗口(harib21e) 500 6 用鼠標切換輸入窗口(harib21f) 506 7 定時器API(harib21g) 507 8 取消定時器(harib21h) 511 第 25天 增加命令行窗口 515 1 蜂鳴器發聲(harib22a) 515 2 增加更多的顏色(1)(harib22b) 518 3 增加更多的顏色(2)(harib22c) 520 4 窗口初始位置(harib22d) 523 5 增加命令行窗口(1)(harib22e) 524 6 增加命令行窗口(2)(harib22f) 528 7 增加命令行窗口(3)(harib22g) 531 8 增加命令行窗口(4)(harib22h) 532 9 變得更像真正的操作系統(1)(harib22i) 534 10 變得更像真正的操作系統(2)(harib22j) 538 第 26天 為窗口移動提速 541 1 提高窗口移動速度(1)(harib23a) 541 2 提高窗口移動速度(2)(harib23b) 543 3 提高窗口移動速度(3)(harib23c) 547 4 提高窗口移動速度(4)(harib23d) 549 5 啟動時只打開一個命令行窗口(harib23e) 551 6 增加更多的命令行窗口(harib23f) 554 7 關閉命令行窗口(1)(harib23g) 555 8 關閉命令行窗口(2)(harib23h) 561 9 start命令(harib23i) 563 10 ncst命令(harib23j) 564 第 27天 LDT與庫 571 1 先來修復bug(harib24a) 571 2 應用程序運行時關閉命令行窗口(harib24b) 573 3 保護應用程序(1)(harib24c) 577 4 保護應用程序(2)(harib24d) 580 5 優化應用程序的大小(harib24e) 583 6 庫(harib24f) 587 7 整理make環境(harib24g) 590 第 28天 文件操作與文字顯示 598 1 alloca(1)(harib25 a) 598 2 alloca(2)(harib25b) 601 3 文件操作API(harib25c) 605 4 命令行API(harib25d) 612 5 日文文字顯示(1)(harib25e) 615 6 日文文字顯示(2)(harib25f) 624 7 日文文字顯示(3)(harib25g) 629 第 29天 壓縮與簡單的應用程序 635 1 修復bug(harib26a) 635 2 文件壓縮(harib26b) 636 3 標準函數 644 4 非矩形窗口(harib26c) 647 5 bball(harib26d) 648 6 外星人游戲(harib26e) 651 第30天 高 級的應用程序 659 1 命令行計算器(harib27a) 659 2 文本閱覽器(harib27b) 664 3 MML播放器(harib27c) 671 4 圖片閱覽器(harib27d) 679 5 IPL的改良(harib27e) 683 6 光盤啟動(harib27f) 688 第31天 寫在開發完成之后 690 1 繼續開發要靠大家的努力 690 2 關于操作系統的大小 692 3 操作系統開發的訣竅 693 4 分享給他人使用 694 5 關于光盤中的軟件 695 6 關于開源的建議 696 7 后記 698 8 畢業典禮 703 9 附錄 704 《30天自制操作系統》是一本兼具趣味性、實用性與學習性的操作系統圖書。作者從計算機的構造、匯編語言、C語言開始解說,讓讀者在實踐中掌握算法。在這本書的指導下,從零編寫所有代碼,30天后就可以制作出一個具有窗口系統的32位多任務操作系。
《30天自制操作系統》適合操作系統愛好者和程序設計人員閱讀。 |