本書從最底層來深入闡述嵌入式操作系統(tǒng),分享給大家提供源碼,讓大家理解含義.
講述原理 從無到有,和你一起一步步編寫實時嵌入式操作系統(tǒng)內(nèi)核
操作系統(tǒng)內(nèi)核也許并沒有像你想象的那么神秘
0.png (163.22 KB, 下載次數(shù): 223)
下載附件
2017-11-8 02:24 上傳
目前我所見的絕大部分介紹操作系統(tǒng)的書籍只是從應用的角度告訴讀者應該如何使用操作系統(tǒng) , 而且相當一部分書籍只是把原有的用戶手冊整理了一下便出書了 , 這樣的書籍只能當做一本使用手冊去查 , 從學習的角度來說意義不大 , 一不介紹實現(xiàn)背景 、 原理 , 二不介
紹應用例子 , 無法讓讀者深刻體會操作系統(tǒng)的用法 。 本手冊最大特點是從操作系統(tǒng)的結構設計 、 編碼的角度講述操作系統(tǒng)內(nèi)核原理 。 本手冊不是在操作系統(tǒng)寫完后才寫的 , 而是一邊設計一邊編碼一邊編寫 , 記錄了操作系統(tǒng)從無到有的過程 , 講解了操作系統(tǒng)實現(xiàn)的原理 , 只要
讀者了解 C 語言,再對匯編語言和硬件稍微有所了解便能看懂本手冊。
05 年 4 月,經(jīng)歷了漫長的學生時代我終于參加工作了!
在學校里接觸了少的可憐的硬件開發(fā) , 由于無人指導再加上本人做和尚撞鐘 , 因此所調(diào)試的單板問題百出 。 進入公司后 , 當我可在硬件與底層軟件之間選擇時我毫不猶豫的選擇了軟件,直至走到今天。最開始被分配到做微碼,后來又陰錯陽差的搞起了 C 語言底層軟件開發(fā) 。 我剛入公司時可謂軟件基礎太差 , 學校里學的知識也使我僅知道一點 C 語言的概念 ,從來沒有實戰(zhàn)過 。 好在當時所作的項目編碼階段已經(jīng)結束 , 我的工作就是學習別人的代碼并幫助測試 、 修改問題 , 當然 , 做的也并不好 。 現(xiàn)在回想起來 , 在這平淡的工作過程中有三點對我至關重要 , 一 、 正是在這段時間培養(yǎng)起我比較扎實的 C 語言基礎 , 不能說學到了很多 ,但絕對是讓我明白了很多最基本的概念 , 讓我知道了學習的方法 。 二 、 正是在這段時間我接
觸了項目的開發(fā) , 讓我參與到歷時幾年幾百人相互協(xié)助的項目開發(fā)中 , 看到大項目的開發(fā)過程 , 接觸到了很多在學校里永遠不會接觸到的事物 , 這些經(jīng)驗對我今后至關重要 , 雖然只是冰山一角。三、正是在這段時間讓我有機會第一次接觸了嵌入式操作系統(tǒng) —— vxworks ,雖
然僅僅是嵌入式操作系統(tǒng)的一些應用層概念。
由于我基礎較差再加上我是慢熱型 , 當時工作的并不好 , 一年半后幾經(jīng)周折我換到了一個小部門 。 以前幾百人的開發(fā)團隊不見了 , 眾多的技術專家 、 牛人不見了 , 一二十層 、 幾個 、幾十個 CPU 的板子不見了,取而代之的是巴掌大的單板,所謂專家就是我,我一個人就可以是整個項目的全部軟件開發(fā)人員,設計軟件結構、編寫從驅(qū)動層到業(yè)務層的所有代碼 。 以前所做的工作是冰山一角 , 只知功能不識業(yè)務 , 現(xiàn)如今則需要我承擔與軟件相關的所有工作 。
正是在這種環(huán)境中我可以借鑒以前的一些經(jīng)驗并按照自己現(xiàn)有的想法設計軟件 , 在實現(xiàn)系統(tǒng)功能的同時也證明了我在硬件、底層軟件所掌握知識的正確性。從做大系統(tǒng)的冰山一角 , 到做麻雀雖小五臟俱全的小系統(tǒng) , 各有各的難處 , 但也各有各的優(yōu)點 , 這也為我編寫這本手冊
提供了必要條件。
在做這些小系統(tǒng)時有一個問題一直困擾著我 , 我所作的設備需要與主設備對接 , 主設備會實時下發(fā)命令給我們執(zhí)行 , 并且需要實時回應消息 , 這樣看來如果有一個嵌入式操作系統(tǒng)就會比較好實現(xiàn) 。 但我們的小系統(tǒng)硬件資源受限制 , 主頻低 、 存儲空間少 , 使得我很難找到一個合適的操作系統(tǒng) 。 現(xiàn)有的一些能用的操作系統(tǒng)需要收費 , 有些不提供源碼 , 但讓我最不能接受的是資料不全 , 真看不明白 , 使用這些操作系統(tǒng)如果在項目開發(fā)過程中出了問題又沒有很好的技術支持將是很大的風險 , 因此在做這些小系統(tǒng)時我一直是裸奔 。 裸奔是可以搞定一切,但對于系統(tǒng)設計、維護來說確實是比較費勁。
在一個項目中我拋棄了原有的 51 單片機,使用了 ARM7TDMI 處理器。隨著反復查 看ARM 芯片手冊并在項目調(diào)試過程中對 ARM7 芯片的逐步了解 , 我逐漸意識到實現(xiàn)一個簡單的操作系統(tǒng)內(nèi)核調(diào)度功能似乎并沒有想象中的那么困難 , 原以為實現(xiàn)操作系統(tǒng)調(diào)度功能需要深入了解編譯器的知識,現(xiàn)在發(fā)現(xiàn)只要使用標準的 C 語言、一些匯編語言和芯片硬件知識就可以實現(xiàn)。
整理一下我目前所處的情況:
1. 迫切需要一個適合小系統(tǒng)的嵌入式操作系統(tǒng),但又沒有合適的。
2. 了解了嵌入式操作系統(tǒng)的一些概念。
3. 掌握了 ARM7 芯片的硬件結構、 C 語言和匯編語言知識。
4. 找不到一本可以較好的介紹操作系統(tǒng)的書籍 , 希望能讓更多的人了解嵌入式操作系統(tǒng)內(nèi)核調(diào)度的基本原理,并以一種簡單易懂的方式讓更多的人接受。
事已如此 , 萬事具備 ! 現(xiàn)在 , 我們就開始一起編寫兩個嵌入式操作系統(tǒng)內(nèi)核 —— Wanli x和 Mindows !
Wanlix 是一個內(nèi)核非常小的嵌入式操作系統(tǒng),只有幾百個字節(jié)(大小與編譯器、編譯選項也有關 ) ,但功能也非常少,只提供任務切換功能,而且需要主動調(diào)用函數(shù)切換任務。但 , 它確實可以實現(xiàn)任務調(diào)度功能 , 最難能可貴的是它的小巧 , 非常適合資源特別少但又需要任務切換的小項目。在這個源碼開放的時代, Linux 、 Unix 遍地生根,它就跟我姓了 , 因此叫 Wanlix 。
地球人都知道 Windows ,它是一種大型 PC 機操作系統(tǒng),它是分時操作系統(tǒng),它是 P C機通用操作系統(tǒng)。而我們將要編寫的 Mindows 則是一種小型操作系統(tǒng),是實時的,是用在嵌入式設備上的嵌入式實時操作系統(tǒng),一切都是與 Windows 相反的!因此這個操作系統(tǒng)就
叫 Mindows !
本手冊假定讀者具有一定的軟硬件基礎,對于其中軟件編碼方面的基礎問題不再贅述 。另外需要特殊說明的是 , 我使用 vxworks 嵌入式操作系統(tǒng)時間只有一年左右 , 而且只是使用過極其簡單的幾個最基本的功能,在后來的一個項目中還簡單使用過 TI DSP 的 BIOS操作系統(tǒng) , 因此本人對嵌入式操作系統(tǒng)的了解僅限皮毛 , 本手冊也僅是根據(jù)本人在使用上述兩種操作系統(tǒng)中所建立的感官印象并按照我自己的想法來實現(xiàn)的 , 錯誤 、 疏漏之處在所難免 ,還請各位多多包涵,如有問題,可以反饋到論壇。
本人免費提 供 Wanli x 和 Mindow s 的源碼 , 但不承擔您使用本操作系統(tǒng)為您帶來的損失 。另外 , 本人語文水平實在有限 , 當我還年輕的時候就因為高中還需要寫作文 , 就沒有報考高中,后來是班主任硬逼著改報的高中,在此向當年的班主任孫老師表示感謝!因此 , 本手冊無法顧及語言優(yōu)美邏輯順通,只要大家能看明白就行了,有問題我們可以再交流。
最后 , 向那些無償付出自己知識的兄弟姐妹們表示敬意 ! 在編寫操作系統(tǒng)過程中 , 確實遇到了一些問題 , 正是在網(wǎng)上查到你們貢獻出的寶貴經(jīng)驗才能讓我得以完成此操作系統(tǒng)的編寫 , 因此 , 我也將這本手冊無償提供給大家 , 供大家參考 , 希望本手冊能給你能帶來一些幫助!
0.png (122.79 KB, 下載次數(shù): 178)
下載附件
2017-11-8 02:26 上傳
0.png (98.25 KB, 下載次數(shù): 193)
下載附件
2017-11-8 02:26 上傳
0.png (134.17 KB, 下載次數(shù): 175)
下載附件
2017-11-8 02:27 上傳
0.png (110.01 KB, 下載次數(shù): 192)
下載附件
2017-11-8 02:27 上傳
0.png (77.01 KB, 下載次數(shù): 162)
下載附件
2017-11-8 02:27 上傳
內(nèi)容截圖:
0.png (249.9 KB, 下載次數(shù): 178)
下載附件
2017-11-8 02:28 上傳
0.png (181.7 KB, 下載次數(shù): 208)
下載附件
2017-11-8 02:28 上傳
完整的pdf格式文檔51黑下載地址(共219頁):
底層工作者手冊之嵌入式操作系統(tǒng)內(nèi)核.pdf
(5.19 MB, 下載次數(shù): 906)
2017-11-7 10:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|