【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
和很多朋友一樣,我學習作業系統也是從uc/os開始的。一方面,學習這份代碼的時候可以參考邵貝貝的那本書;另外一方面,這份代碼比較簡潔,確實可以學習到不少東西。後來,看的os代碼多了,發現rtos的準系統還是比較明晰的,比如說一些通用功能,任務處理、任務調度、記憶體管理、時鐘管理、定時器、訊號量、互斥量、訊息佇列、事件等等。rtos在移植上也比較一致,大致有這些內容,比如說bsp編寫、任務堆棧初始化、任務切換、中斷切換、啟動第一個任務、定時器中斷調用、臨界區代碼編寫等等。當然,我上面說的都是一些大概的內容,具體系統怎麼移植,還要參考各個具體的作業系統而定。當然,今天除了這份代碼之外,還要推薦一些其他的rtos代碼,大家可以稍微關注一下。
(1)http://micrium.com/,ucos的官方網站,上面很多移植、代碼的文檔都可以參考學習。
(2)http://www.raw-os.org/,raw-os的官方網站,國內一位前輩編寫的rtos代碼,可讀性很高,可以在vc2010上模擬。
(3)http://www.rt-thread.org/,rt-thread的官方網站,目前在國內推廣的不錯的rtos,很多項目的代碼都是很完整的。
(4)http://www.rtems.org/,rtems即時系統的官方網站,中間包含了多核的處理流程,這是我感興趣的內容。項目也比較完整。
(5)http://www.t-engine.org/,t-kernel官方網站。t-kernel在任務調度和mutex處理上還是有自己特色的。
(6)http://www.windriver.com/products/vxworks/,vxworks的官方網站。目前網上可以看得到的代碼還是5.5版本的。
(7)http://www.qnx.com/,qnx的官方網站。早期的代碼已經開源,還是有很多學習的價值的。
上面的代碼其實內容已經很多了。大家可以根據自己的能力合理分配時間,分別閱讀學習,一般來說,如果對一個系統比較瞭解的話,瞭解其他系統的代碼也不會太困難。當然,如果覺得自己的時間還比較富裕,還可以去看看contiki、threadx、ecos、qp、rtai的相關內容,應該也會有不少收穫的。當然如果朋友們發現這其中的內容有什麼遺漏和錯誤的話,歡迎批評和指正。