摘要:Linux操作系統(tǒng)是計(jì)算機(jī)專業(yè)本科生比較重要的一門課程。本文探討Linux操作系統(tǒng)課程體系劃分,將Linux操作系統(tǒng)課程學(xué)習(xí)分為基礎(chǔ)應(yīng)用、應(yīng)用編程、內(nèi)核分析、內(nèi)核編程四部分。并探討了Linux操作系統(tǒng)的課程設(shè)置。
關(guān)鍵詞:Linux;操作系統(tǒng);課程體系
中圖分類號:G642 文獻(xiàn)標(biāo)志碼:A 文章編號:1674-9324(2013)44-0239-02
一、引言
操作系統(tǒng)是計(jì)算機(jī)專業(yè)本科生的核心專業(yè)課程,然而其理論性較強(qiáng),學(xué)生理解不夠透徹,尤其是對多進(jìn)程、多線程和內(nèi)存管理等部分內(nèi)容。由于Linux操作系統(tǒng)開源,以及良好的可移植性,可靠的安全性,已從最初的服務(wù)器領(lǐng)域。迅速擴(kuò)展到互聯(lián)網(wǎng)、嵌人式系統(tǒng)、桌面系統(tǒng)以及信息安全領(lǐng)域等各個方面,得到了廣泛應(yīng)用。人才市場對Linux系統(tǒng)管理和開發(fā)人員的需求也越來越大。因此對計(jì)算機(jī)相關(guān)專業(yè)本科生而言,學(xué)習(xí)好Linux操作系統(tǒng),不僅有助于理解操作系統(tǒng)原理,還能提升學(xué)生編程能力,提高未來就業(yè)競爭力或研究生階段科研能力。廣義的Linux操作系統(tǒng)學(xué)習(xí)涵蓋多方面的知識和內(nèi)容,不僅包括常規(guī)意義上的Linux操作系統(tǒng),還涉及Linux系統(tǒng)在不同領(lǐng)域的應(yīng)用、基于Linux平臺的軟件開發(fā)、以Linux和開源軟件技術(shù)為核心的各類IT解決方案等。本文主要探討Linux操作系統(tǒng)課程體系和課程設(shè)置。
二、Linux操作系統(tǒng)課程體系
文獻(xiàn)5將Linux技術(shù)細(xì)分為9門課程,全面覆蓋了從Linux技術(shù)基礎(chǔ)應(yīng)用到各類Linux技術(shù)高級管理和開發(fā)的各個層面。其中,教學(xué)目標(biāo)方面,分為應(yīng)用、管理和開發(fā)3類,教學(xué)層次上,根據(jù)課程的難易程度分為初級、中級和高級3類。該課程劃分非常詳盡,然而過于復(fù)雜。為保證教學(xué)內(nèi)容設(shè)計(jì)的科學(xué)性和合理性,筆者結(jié)合在二本和三本計(jì)算機(jī)相關(guān)專業(yè)Linux操作系統(tǒng)課程教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上,將Linux操作系統(tǒng)教學(xué)內(nèi)容分為如下四部分:第一部分是Linux基礎(chǔ)應(yīng)用,第二部分是Linux應(yīng)用編程,第三部分是Linux內(nèi)核分析,第四部分是Linux內(nèi)核編程。
1.基礎(chǔ)應(yīng)用。本部分主要講解Linux系統(tǒng)簡介和系統(tǒng)安裝、Linux常用命令、Linux系統(tǒng)目錄、Linux用戶和工作組管理、Linux進(jìn)程和日志管理、Samba服務(wù)器配置、Web服務(wù)器配置、RPM軟件包管理等內(nèi)容。
2.應(yīng)用編程。本部分內(nèi)容主要講解Linux編程工具和Linux下系統(tǒng)調(diào)用編程。Linux編程工具:標(biāo)準(zhǔn)腳本語言Shell編程如包含一個或多個命令的組合、選擇、循環(huán)語句、函數(shù)等。Linux下文本編輯工具vi和emacs、C和C++語言編譯工具gcc、調(diào)試工具gdb、自動化編譯工具make、版本控制管理工具CVS等;圖形化界面集成開發(fā)環(huán)境QT簡介。Linux下系統(tǒng)調(diào)用編程:如文件的基本訪問函數(shù)如打開、讀、寫、查找、關(guān)閉文件、權(quán)限控制、獲取文件信息等;進(jìn)程系統(tǒng)調(diào)用如獲取進(jìn)程ID、不同的方式system、exec、fork建立新進(jìn)程、信號機(jī)制、進(jìn)程終止等;線程的建立、取消、退出、同步和互斥等;進(jìn)程間通信操作如共享內(nèi)存、信號量、消息隊(duì)列、映射內(nèi)存、管道、命名管道、網(wǎng)絡(luò)通信Sockets等。
3.內(nèi)核分析。本部分內(nèi)容主要講解Linux內(nèi)核體系結(jié)構(gòu)和Linux內(nèi)核簡介、Linux內(nèi)核啟動過程;Linux進(jìn)程管理如Linux進(jìn)程控制塊PCB、Linux進(jìn)程狀態(tài)、Linux進(jìn)程創(chuàng)建和進(jìn)程調(diào)度策略等;Linux內(nèi)存管理如MMU、Cache、內(nèi)存加鎖和保護(hù)、物理空間管理、內(nèi)存的申請和釋放、虛擬內(nèi)存管理、Linux分頁管理等;內(nèi)核文件管理如Linux虛擬文件系統(tǒng)VFS、ext2和ext3文件系統(tǒng)、文件操作、proc文件系統(tǒng)等;Linux設(shè)備管理如字符設(shè)備管理與注冊、塊設(shè)備管理與注冊、塊設(shè)備的請求隊(duì)列、設(shè)備驅(qū)動程序、網(wǎng)絡(luò)設(shè)備等;Linux系統(tǒng)管理調(diào)用。
4.內(nèi)核編程。本部分內(nèi)容主要講解Linux內(nèi)核編譯過程如內(nèi)核目錄結(jié)構(gòu)、配置內(nèi)核、編譯內(nèi)核、啟動內(nèi)核、查看內(nèi)核狀態(tài)等;Linux內(nèi)核模塊編程如內(nèi)核模塊實(shí)現(xiàn)機(jī)制、內(nèi)核模塊與應(yīng)用程序的區(qū)別、內(nèi)核模塊編程簡單實(shí)例、內(nèi)核模塊插入、查詢、卸載等操作;內(nèi)核驅(qū)動編程包括內(nèi)核空間和用戶空間、驅(qū)動設(shè)備的注冊與管理、驅(qū)動設(shè)備模塊設(shè)計(jì)、編程、調(diào)試、編譯、插入、建立設(shè)備、用戶程序調(diào)用等。
三、Linux操作系統(tǒng)課程設(shè)置
由于Linux操作系統(tǒng)課程學(xué)習(xí)內(nèi)容較多,且實(shí)踐性比較強(qiáng),學(xué)生需要循序漸進(jìn)、逐步吸收和消化。可將Linux操作系統(tǒng)課程拆分成兩門課程:Linux操作系統(tǒng)(上)主要講解Linux系統(tǒng)應(yīng)用及編程、Linux操作系統(tǒng)(下)主要講解Linux系統(tǒng)內(nèi)核分析及高級編程。此外,還可開設(shè)1~2個課程設(shè)計(jì),提高學(xué)生的動手和實(shí)踐能力。
1.Linux系統(tǒng)應(yīng)用及編程。可在大二下或大三上開設(shè)Linux操作系統(tǒng)(上),主要講解Linux基礎(chǔ)應(yīng)用和應(yīng)用編程。建議在學(xué)了C語言、操作系統(tǒng)、C++之后開設(shè)32~40學(xué)時(包括實(shí)驗(yàn)課8~16學(xué)時)。
2.Linux系統(tǒng)內(nèi)核分析及高級編程。可在大三上或大三下開設(shè)Linux操作系統(tǒng)(下),主要講解Linux內(nèi)核分析和內(nèi)核編程。建議在學(xué)了C語言、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)組成原理之后開設(shè)40~48學(xué)時(包括實(shí)驗(yàn)課8~16學(xué)時)。
3.1~2個課程設(shè)計(jì)。Linux操作系統(tǒng)是一門實(shí)踐性很強(qiáng)的課程,實(shí)踐是學(xué)好這門課程的主要途徑。可在大二和大三期間做1~2個與Linux應(yīng)用編程和Linux內(nèi)核編程相關(guān)的課程設(shè)計(jì),如網(wǎng)絡(luò)流量監(jiān)測、嵌入式驅(qū)動程序開發(fā)等。通過課程設(shè)計(jì),培養(yǎng)學(xué)生的實(shí)踐能力,提高學(xué)生的創(chuàng)新意識。
四、結(jié)語
本課程設(shè)置方案適合二本和三本計(jì)算機(jī)相關(guān)專業(yè)的Linux操作系統(tǒng)的教學(xué),通過Linux操作系統(tǒng)的學(xué)習(xí)、不僅有助于理解操作系統(tǒng)原理,還能提升學(xué)生編程能力,提高未來就業(yè)競爭力或研究生階段科研能力。
參考文獻(xiàn):
[1]文東戈,王旭.Linux操作系統(tǒng)原理實(shí)驗(yàn)教學(xué)平臺的設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2008,27(5):63-65.
[2]楊海鵬,魏巍.Linux操作系統(tǒng)的教學(xué)與實(shí)驗(yàn)研究[J].吉林工程技術(shù)師范學(xué)院學(xué)報(bào),2007(23):60-62.
[3]梁正平,紀(jì)震.高校Linux課程體系建設(shè)研究與實(shí)踐[J].計(jì)算機(jī)教育,2009(5):87-90.
[4]應(yīng)毅.針對實(shí)際應(yīng)用的Linux實(shí)驗(yàn)教學(xué)研究[J].計(jì)算機(jī)教育,2010(20):139-142.
[5]梁正平,申向軍,洪皓.Linux創(chuàng)新教學(xué)實(shí)驗(yàn)中心的建設(shè)與探索[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(12):127-131.
基金項(xiàng)目:湖北省高等學(xué)校省級教學(xué)研究項(xiàng)目(2012273),湖北工業(yè)大學(xué)校教研項(xiàng)目資助(2011006)
作者簡介:陳宏偉(1975-),男,湖北武漢人,博士,副教授,碩士生導(dǎo)師,主要研究對等網(wǎng)絡(luò)和云計(jì)算。