摘要:針對操作系統課程實踐教學上存在效果不明顯、形式難把握的現象,本文在分析了現有實踐教學模式的基礎上,探討了若干個國外流行的教學用操作系統內核,對廣大教師選擇教學用操作系統可起到參考作用。
關鍵詞:教學改革;操作系統;實踐教學
文章編號:1672-5913(2010)08-0146-03
中圖分類號:G642
文獻標識碼:B
1 背景
操作系統課程教學中普遍存在教學與實踐脫節的問題。該課程的理論性和綜合性比較強,教師在講解基本原理的時候,往往忽略了實踐。學生在學完課程后,很難自己設計一個小型的操作系統。對于國內的普通高校,對實踐的要求大都還處于模擬相關算法的層面上。只是簡單的進行算法仿真,無法使學生對操作系統的整個工作機制有系統的認識。要提高操作系統課程的教學質量,關鍵是要加強實踐教學的力度。
本文首先對現有的實踐教學模式進行了分析,然后重點探討了一些現有的教學用操作系統,對廣大教師選擇教學用操作系統時起到引薦作用。
2 現有實踐教學模式分析
國內本科高校由低到高大致可以分為三個層次:教學型大學、教學研究型大學和研究型大學。由于師資力量、硬件環境以及學生素質的差異,目前操作系統實踐教學主要采取以下4種模式。
2,1功能模擬
針對操作系統中一些典型功能或算法,如進程調度、內存分配、頁面置換、文件系統、死鎖檢測、磁盤調度等進行編程實現,可通過操作界面運行程序對功能加以驗證。這種模式所涉及的軟硬件資源和數據結構都是自建的,并不對真實的系統資源進行訪問和修改,因此可以擺脫具體操作系統的限制和軟硬件細節。獨立實現操作系統的某一模塊,所需學時較少,但這并不是設計一個完整的系統。
2,2代碼閱讀
閱讀并理解具體操作系統的源代碼也是學習操作系統設計的一種重要方法。開放的Linux操作系統凝聚了眾多軟件高手的智慧,因此目前主要分析的是Linux源代碼。很多學校選取的是Linux早期版本,如Linux0.11,因為其源代碼量較少,可讀性好,適合學生在較短學時內閱讀理解。計算機大師Tanenbaum設計的Minix也是一個選擇,閱讀時參照其編寫的經典教材《操作系統:設計與實現》。
2,3內核擴展
首先選擇一個內核簡單的教學用操作系統,如Nachos,它提供了對時鐘和鍵盤中斷、多線程、虛擬存儲等的底層支持,代碼是開放的。使用內核提供的接口,對基礎系統的相關模塊進行完善和擴充,例如shell、用戶管理、CPU調度、進程同步、虛擬存儲以及文件系統功能。
2,4獨立設計
構造一個真正的操作系統是理解操作系統的最佳方法,但難度也最大。國內部分一流研究型大學要求學生獨立或合作實現一個結構相對簡單但功能較完備的小型操作系統。隨著后PC時代的到來,且鑒于Intel指令系統的復雜性,設計一個基于精簡指令集處理器的嵌入式操作系統是個不錯的方案。這種模式對學生個人能力要求較高。
一般教學型大學的本科生實踐教學大都采用第1、2種模式:教學研究型大學以211高校為主,主要采用第2、3種模式;第3、4種模式是研究型大學的操作系統課程實驗的主要模式,主要以985高校為主。
以地方高校為主的教學型大學,是國內本科教育的主要組成部分,承擔著大眾化教育的使命。據不完全統計,目前國內高校開辦計算機本科專業的院校達700多所,本科生的在校生數量達到90萬人,我國雖是一個教育大國,但不是教育強國。國內IT企業普遍缺乏核心技術,是我國軟件業發展的軟肋,高校作為教育的實施者,不能回避自己的責任。加強操作系統課程的實踐教學,是提高計算機專業學生的系統級編程能力的有效途徑。縱觀國外大學的操作系統教學,大都采用第3、4種模式進行,而且使用的操作系統內核也各有特色。
3 教學用操作系統內核比較分析
加強對國外高校實踐教學的學習,是提高國內高校操作系統教學的可行之道。本文下面對常見的教學用操作系統內核進行分析。
3,1Minix
Minix是荷蘭著名的計算機專家A.S.Tanenbaum主持設計的微內核操作系統,目前最新版本是Minix3.1.3a,內核只有4000行代碼,存儲管理、設備管理和文件系統等功能以用戶進程模式工作,系統具備很強的靈活性和安全性。Minix3與以往兩個版本有較大改進,功能更加完整,安裝更加方便,也可在多種虛擬機上安裝。目前加州大學圣克魯斯分校將Minix3作為教學用操作系統內核,安排有4個開發項目:一個簡單的Shell、進程調度器、內存分配和文件系統。
3,2Linux
Linux是由芬蘭赫爾辛基大學的一名叫做LinusTorovalds的大學生于1991年首先開發,后經眾多軟件高手參與共同開發的功能強大的操作系統。Linux是一個自由軟件,它的源代碼是開放的。Linux經過十幾年的發展,內核不斷升級,形成了一個龐大的代碼庫,短時間內讀完最新版本的內核源代碼是不現實的。在教學上,一般選擇低版本的內核如Linux0.12,有人用C語言對其進行了改寫,減少了匯編語句的數量,更加便于閱讀。
3,3Nachos
Nachos的全稱是“Not Another CompletelyHeuristic Operating System”,它是一個可修改和跟蹤的操作系統教學軟件。它給出了一個支持多線程和虛擬存儲的操作系統框架,可讓學生在較短的時間內對操作系統中的基本原理和核心算法有一個全面和完整的了解。Nachos是美國加州大學伯克萊分校在操作系統課程中已多次使用的操作系統課程設計平臺,在美國很多大學中得到了應用。Nachos需要運行在一個模擬MIPS R2/3000的指令集的虛擬機上,移植方便。
3,4JOS
JOS是美國麻省理工學院的操作系統課程的一個實驗性質的微型操作系統,基于Exo-Kemel理念。它提供了一個操作系統的框架,使得學生可以不必花費時間用于太底層的東西,如讀寫硬盤數據等,而是將時間精力集中于OS的核心部分。國內的清華大學和北京大學的操作系統實驗項目使用的也是JOS。
3,5GeekOS
GeekOS是一個基于X86架構的微型操作系統內核,由美國馬里蘭大學的教師開發,主要用于操作系統課程設計,目的是使學生能夠實際動手參與到一個操作系統的開發工作中,代碼有5000多行。作為一個課程設計平臺,GeekOS由一個基本的操作系統內核作為基礎,提供了操作系統與硬件之間的所有必備接口,實現了系統引導、實模式到保護模式的轉換、中斷調用及異常處理、FIFO進程調度算法、基本的輸入輸出以及一個用于存放用戶程序的只讀文件系統PFAT等。GeekOS中包含7個難度逐漸增加的擴展項目,有詳細的幫助文檔。
3,6其他教學用操作系統
(1)OS/161由美國哈佛大學設計,基于MIPS指令集,與Nachos相似,但兩者是獨立的,沒有聯系。
(2)Pintos由美國斯坦福大學的Ben Pfaff設計,該系統是在借鑒Nachos的基礎上,為面向X86架構而重新編寫的。
(3)OSKIT由美國猶他大學計算機科學系FLUX研究組編寫的一套用于架構操作系統內核、服務器和其他操作系統級軟件的框架及模塊化的部件和庫程序,基于COM思想而設計的。
(4)PortOS由美國康奈爾大學的教師設計,該系統提供一個運行于Windows上仿真環境,可用于普適計算。
(5)LittleOS是一個基于Intel32位體系結構保護模式的微型操作系統,LittleOS僅僅初始化了一些必要的硬件,是一個僅提供了鍵盤中斷和時鐘中斷的框架。
4 實施教學應注意的問題
在借鑒國外的教學用操作系統進行實踐教學時,必須看到國內實際情況與國外的差別。首先國內的教學模式與國外都有較大區別,另外由于語言背景不同,學生閱讀英文技術文檔較為吃力。在實施教學時要注意以下幾點:
(1)最好能提供中文版本的實驗指導書,降低學生切入課題的難度;
(2)對于開發平臺中涉及的編譯器和模擬器,應該給出確定的版本號和詳細的使用指導;
(3)課題的難度應根據學生具體情況進行調整。
5 結語
操作系統課程中的原理和實踐是密不可分的,在實踐教學中對內核進行擴展,在實際教學中便于操作。強調實踐是教學改革的發展趨勢。相信隨著實踐教學的加強,國內也會出現值得推廣的教學用操作系統內