摘要:針對當(dāng)前高校“Linux應(yīng)用”實(shí)踐課程主要采用國外的Linux操作系統(tǒng)平臺進(jìn)行教學(xué),阻礙國產(chǎn)操作系統(tǒng)推廣和發(fā)展的現(xiàn)狀,提出基于國產(chǎn)操作系統(tǒng)openEuler的Linux應(yīng)用實(shí)踐教學(xué)設(shè)計(jì)方法,并給出了課程教學(xué)內(nèi)容設(shè)計(jì)方案。在完成課程學(xué)習(xí)后,學(xué)生可具備一定的工程實(shí)踐能力,并為后續(xù)基礎(chǔ)課程和專業(yè)課程學(xué)習(xí),以及進(jìn)行軟件開發(fā)工作,建立良好的基礎(chǔ)。
關(guān)鍵詞:Linux應(yīng)用實(shí)踐教學(xué)openEuler操作系統(tǒng)設(shè)計(jì)方案
中圖分類號:G64
DesignofthePracticalTeachingofCourseApplication(the“LinuxApplication”Course)BasedontheOperatingSystemopenEuler(??)
CHENJunyanFENGHao*
SchoolofComputerScienceandInformationSecurity,GuilinUniversityofElectronicTechnology,Guilin,GuangxiZhuangAutonomousRegion,541004China
Abstract:Inordertoaddressthecurrentsituationthatthepracticalcourseof"LinuxApplication"incollegesanduniversitiespredominantlyusestheforeignLinuxoperatingsystemplatformforteaching,whichimpedesthepromotionanddevelopmentofdomesticoperatingsystems,thispaperputsforwardadesignmethodofthepracticalteachingof“LinuxApplication”basedonthedomesticoperatingsystemopenEuler,andgivesadesignschemeofcourseteachingcontent.Aftercompletingthiscourse,studentscanhavecertainengineeringpracticeability,andestablishagoodfoundationforthesubsequentlearningofbasicandspecializedcoursesandsoftwaredevelopment.
KeyWords:LinuxApplication;Practicalteaching;openEulerOperatingsystem;Designproposal
隨著5G、互聯(lián)網(wǎng)等數(shù)字化產(chǎn)業(yè)的大力發(fā)展,帶來了許多數(shù)字化發(fā)展機(jī)遇。其中,操作系統(tǒng)作為數(shù)字基礎(chǔ)設(shè)施的底座,已經(jīng)成為推動產(chǎn)業(yè)數(shù)字化、智能化發(fā)展的核心力量。然而在信息產(chǎn)業(yè)高速發(fā)展的同時,也不斷發(fā)現(xiàn)在一些關(guān)鍵技術(shù)領(lǐng)域上存在著瓶頸的現(xiàn)狀。操作系統(tǒng)作為軟件應(yīng)用和硬件終端的“關(guān)鍵紐帶”,是數(shù)字經(jīng)濟(jì)高質(zhì)量發(fā)展、實(shí)現(xiàn)數(shù)字關(guān)鍵核心技術(shù)自主創(chuàng)新的重要基石。在現(xiàn)代信息數(shù)據(jù)的洪流中,如果沒有屬于自己的國產(chǎn)操作系統(tǒng),信息安全將無法得到保障[1]。
1課程教學(xué)現(xiàn)狀及國產(chǎn)計(jì)算機(jī)操作系統(tǒng)的發(fā)展
“Linux應(yīng)用”實(shí)踐課程是高等院校本科教學(xué)中操作系統(tǒng)理論課程的實(shí)踐環(huán)節(jié)。通過“Linux應(yīng)用”實(shí)踐課程的教學(xué),使學(xué)生熟悉Linux系統(tǒng)環(huán)境、熟練使用開發(fā)工具、掌握程序開發(fā)和調(diào)試技術(shù)、正確進(jìn)行網(wǎng)絡(luò)服務(wù)的配置與管理,并能選題完成綜合設(shè)計(jì)實(shí)踐項(xiàng)目,最終形成工程實(shí)踐能力[2-3]。然而,在大多數(shù)院校中,“Linux應(yīng)用”實(shí)踐課程主要采用國外的Linux操作系統(tǒng)平臺進(jìn)行教學(xué)[4-5],如Ubuntu、CentOS、Fedora等,阻礙了國產(chǎn)操作系統(tǒng)推廣和發(fā)展。針對上述問題,本文提出基于國產(chǎn)操作系統(tǒng)openEuler的Linux應(yīng)用實(shí)踐教學(xué)設(shè)計(jì)方法。openEuler操作系統(tǒng)是有我國華為公司主導(dǎo)的開源、免費(fèi)的Linux發(fā)行版平臺[6],因此可作為“Linux應(yīng)用”實(shí)踐課程的學(xué)習(xí)和開發(fā)平臺。通過課程的學(xué)習(xí),使學(xué)生掌握國產(chǎn)操作系統(tǒng)openEuler環(huán)境下的基本運(yùn)維和編程開發(fā)所需的工具與方法,為工程實(shí)踐中需要的開發(fā)環(huán)境和工具選型打好基礎(chǔ)。同時,能夠運(yùn)用掌握的程序設(shè)計(jì)語言和工具以及相應(yīng)的基本原理和方法,并能通過文獻(xiàn)檢索與調(diào)研,分析軟件工程領(lǐng)域的復(fù)雜計(jì)算機(jī)工程問題,根據(jù)用戶需求確定設(shè)計(jì)解決方案。
采用openEuler操作系統(tǒng)替代國外的Linux發(fā)行版本應(yīng)用到實(shí)踐教學(xué)之中,基礎(chǔ)來自于Linux和openEuler有很多的共性,分析如下。
(1)內(nèi)核基礎(chǔ)相同。openEuler是基于Linux內(nèi)核構(gòu)建的操作系統(tǒng),它具備一個開源的、高度可定制的核心組件,為操作系統(tǒng)提供了基本的功能和服務(wù)。
(2)都具備良好的開源性。Linux和openEuler都是開源項(xiàng)目,遵循自由軟件的原則。這意味著用戶可以訪問、使用、修改和分發(fā)源代碼,以適應(yīng)自己的需求和偏好。開源性質(zhì)促進(jìn)了廣泛的社區(qū)合作和貢獻(xiàn)。
(3)都具有完善的軟件生態(tài)系統(tǒng)。Linux和openEuler都擁有豐富的軟件生態(tài)系統(tǒng)。它們提供了大量的開源軟件包和工具,涵蓋了各種應(yīng)用程序、開發(fā)工具、網(wǎng)絡(luò)服務(wù)和系統(tǒng)管理工具等。這使得用戶可以根據(jù)自己的需求選擇和安裝所需的軟件。
(4)Linux和openEuler都支持高度的可定制性。用戶可以根據(jù)自己的需求和偏好選擇和配置各種組件和功能,以構(gòu)建定制的操作系統(tǒng)。這使得它們適用于各種不同的應(yīng)用場景和用戶需求。
(5)全球社區(qū)支持。Linux和openEuler都受到全球范圍內(nèi)的開發(fā)者社區(qū)的支持和貢獻(xiàn)。這些社區(qū)提供了技術(shù)支持、文檔、教程和交流平臺,使用戶能夠分享經(jīng)驗(yàn)、解決問題并推動操作系統(tǒng)的進(jìn)步和創(chuàng)新。
總體來說,openEuler在內(nèi)核基礎(chǔ)、開源性、軟件生態(tài)系統(tǒng)、可定制性和全球社區(qū)支持等方面有都用良好的表現(xiàn),這些特點(diǎn)使openEuler成為廣泛應(yīng)用和不斷發(fā)展的操作系統(tǒng)選擇。因此,本文根據(jù)其特點(diǎn)進(jìn)行相應(yīng)的教學(xué)設(shè)計(jì)。首先,openEuler是一個基于Linux內(nèi)核的特定發(fā)行版本,主要面向服務(wù)器、云計(jì)算環(huán)境和物聯(lián)網(wǎng)場景。它旨在提供一個安全、可靠和高性能的操作系統(tǒng)解決方案。所以,在教學(xué)案例設(shè)計(jì)與興趣引導(dǎo)的時候,應(yīng)該將重點(diǎn)放在上述的應(yīng)用場景之中。其次,不同于Linux的國外發(fā)行版擁有龐大的軟件生態(tài)系統(tǒng)和豐富的軟件包管理工具,如APT、DNF、YUM等,openEuler使用了自己的軟件包管理系統(tǒng),稱為EulerOS應(yīng)用商店,能夠提供一些特定的軟件包和工具,這就要求在教學(xué)中加強(qiáng)openEuler平臺上的軟件包開發(fā)和管理的環(huán)節(jié),以滿足openEuler應(yīng)用開發(fā)及部署的需求。最后,由于openEuler比較安全性和隱私保護(hù),額外提供了一些安全增強(qiáng)特性,如硬件安全模塊(HSM)支持、安全審計(jì)等能力,這進(jìn)一步提高了在教學(xué)設(shè)計(jì)時對于應(yīng)用安全考慮的要求。
2課程教學(xué)內(nèi)容設(shè)計(jì)
基于openEuler的操作系統(tǒng)應(yīng)用課程的主要教學(xué)目標(biāo)是,通過本課程的學(xué)習(xí),學(xué)生會通過華為云服務(wù)器上機(jī)實(shí)驗(yàn)系統(tǒng)地學(xué)習(xí)openEuler操作系統(tǒng)下編輯、編譯、調(diào)試工具,能正確運(yùn)用C庫和系統(tǒng)調(diào)用,能利用進(jìn)程控制方法實(shí)現(xiàn)多任務(wù)程序編程,能實(shí)現(xiàn)TCP、UDP網(wǎng)絡(luò)通信,通過編程解決計(jì)算機(jī)工程中的應(yīng)用問題;學(xué)生在實(shí)踐過程中還應(yīng)學(xué)習(xí)查閱資料、分析問題和解決問題的方法,形成工程實(shí)踐能力,并為后續(xù)基礎(chǔ)課程和專業(yè)課程學(xué)習(xí),以及進(jìn)行軟件開發(fā)工作,建立良好的基礎(chǔ)。因此,本文將課程分成五項(xiàng)實(shí)驗(yàn)內(nèi)容,并分別設(shè)置了教師和學(xué)生在教學(xué)過程中應(yīng)完成的任務(wù),如表1所示。各項(xiàng)實(shí)驗(yàn)詳細(xì)內(nèi)容如下。
實(shí)驗(yàn)1:Linux常用命令。該實(shí)驗(yàn)的主要教學(xué)內(nèi)容是搭建openEuler系統(tǒng)環(huán)境、練習(xí)常用Linux命令以及用vim對指定的文本按照要求完成相應(yīng)的編輯。學(xué)生通過本實(shí)驗(yàn)項(xiàng)目,掌握openEuler操作系統(tǒng)命令的使用和系統(tǒng)基本環(huán)境的配置,掌握文本編輯工具vi/vim的基本操作使用,培養(yǎng)學(xué)生對強(qiáng)大的編輯器的使用操作能力。
實(shí)驗(yàn)2:開發(fā)工具。該實(shí)驗(yàn)的主要教學(xué)內(nèi)容是通過實(shí)例演示GCC、GDB、make等開發(fā)工具和isulad輕量級容器、MySQL數(shù)據(jù)庫等應(yīng)用工具的使用。學(xué)生通過本實(shí)驗(yàn)項(xiàng)目,使用gcc、gdb和make等工具,實(shí)現(xiàn)OpenEuler下C程序的開發(fā)編譯調(diào)試,并能夠針對較復(fù)雜的工程,設(shè)計(jì)makefile文件管理工程項(xiàng)目,熟悉isulad輕量級容器、MySQL數(shù)據(jù)庫等開發(fā)工具、開發(fā)環(huán)境的選擇和應(yīng)用。
實(shí)驗(yàn)3:進(jìn)程機(jī)制。該實(shí)驗(yàn)的主要教學(xué)內(nèi)容是使用fork函數(shù)實(shí)現(xiàn)進(jìn)程的創(chuàng)建、使用wait函數(shù)和lockf函數(shù)實(shí)現(xiàn)進(jìn)程管理、使用信號機(jī)制、管道機(jī)制、消息機(jī)制和共享存儲區(qū)機(jī)制實(shí)現(xiàn)進(jìn)程通信,并理解四種進(jìn)程通信方式的局限性。同時,介紹openEuler的多核調(diào)度技術(shù)。學(xué)生通過本實(shí)驗(yàn)項(xiàng)目,熟悉進(jìn)程創(chuàng)建、管理和通信的方法,并能使用多進(jìn)程機(jī)制進(jìn)行多任務(wù)程序開發(fā),提高編程開發(fā)能力。
實(shí)驗(yàn)4:網(wǎng)絡(luò)通信。該實(shí)驗(yàn)的主要教學(xué)內(nèi)容是使用socket函數(shù)創(chuàng)建套接字,掌握套接字的配置;理解TCP通信的原理,編程實(shí)現(xiàn)TCP通信的服務(wù)端和客戶端;理解UDP通信的原理,編程實(shí)現(xiàn)UDP通信的發(fā)送端和接收端。學(xué)生通過本實(shí)驗(yàn)項(xiàng)目,理解TCP/IP協(xié)議的基本原理,熟悉套接字的創(chuàng)建和配置,掌握TCP和UDP通信的編程方法,能針對具體的復(fù)雜計(jì)算機(jī)工程問題的工程需求,選擇合適的通信協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)編程,通過資料獲取和在線幫助等手段解決問題,并可以說明方案的受限因素。
實(shí)驗(yàn)5:綜合設(shè)計(jì)實(shí)踐。教師在該環(huán)節(jié)中布置初級和高級等兩個不同等級的選題并進(jìn)行說明,要求學(xué)生至少完成一個初級題目和一個高級題目。學(xué)生通過本綜合設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目,熟悉并能使用OpenEuler開發(fā)環(huán)境與工具,能針對具體的復(fù)雜計(jì)算機(jī)工程問題的工程需求,進(jìn)行開發(fā)工具選型。針對較為復(fù)雜的工程應(yīng)用問題,能夠通過基本方法,綜合使用OpenEuler系統(tǒng)中的各種工具,進(jìn)行方案設(shè)計(jì),通過資料獲取和在線幫助等手段解決問題,并說明方案的受限因素;對復(fù)雜的軟件工程問題進(jìn)行需求分析和設(shè)計(jì)目標(biāo)的確定,并能針對問題需求,進(jìn)行軟硬件環(huán)境的配置和開發(fā)工具與技術(shù)的選型,完成工程項(xiàng)目的設(shè)計(jì)、開發(fā)、測試及部署,最終獲得解決復(fù)雜工程問題的能力。
(1)教師講授OpenEuler系統(tǒng)的發(fā)展和shell命令的一般格式,并講授和實(shí)例演示文件、目錄、壓縮與解壓、用戶管理等相關(guān)shell命令,同時講解幫助命令的使用,用vim對指定的文本按要求完成相應(yīng)的編輯。(2)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書安排的實(shí)驗(yàn)項(xiàng)目。掌握shell命令的基本使用,作為后續(xù)部分實(shí)驗(yàn)的基礎(chǔ),根據(jù)實(shí)驗(yàn)指導(dǎo)書完成對文件的各種編輯操作
(1)教師講授和實(shí)例演示GCC、GDB、make等開發(fā)工具和isulad輕量級容器、MySQL數(shù)據(jù)庫等應(yīng)用工具的使用。(2)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書的實(shí)驗(yàn)項(xiàng)目,通過具體實(shí)例操作掌握設(shè)置選項(xiàng)進(jìn)行編譯的高級操作;通過實(shí)例掌握調(diào)試的基本命令;同能夠?qū)唧w工程項(xiàng)目編寫makefile文件
(1)教師講授和實(shí)例演示進(jìn)程創(chuàng)建、進(jìn)程管理、進(jìn)程通信等知識,介紹openEuler的多核調(diào)度技術(shù)。(2)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書給定的實(shí)驗(yàn)項(xiàng)目,能夠?qū)Χ噙M(jìn)程程序理解調(diào)試和實(shí)驗(yàn)結(jié)果解析,能夠理解四種通信機(jī)制的局限,并能夠根據(jù)項(xiàng)目要求進(jìn)行程序編寫和調(diào)試運(yùn)行
(1)教師講授和實(shí)例演示socket套接字的創(chuàng)建、配置以及TCP和UDP的通信等知識。(2)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書給定的實(shí)驗(yàn)項(xiàng)目,能夠理解TCP/IP協(xié)議通信原理,對TCP和UDP通信程序理解調(diào)試運(yùn)行和實(shí)驗(yàn)結(jié)果解析,并能夠根據(jù)項(xiàng)目要求進(jìn)行程序編寫和調(diào)試運(yùn)行
(1)教師布置初級和高級等兩個不同等級的選題并進(jìn)行說明。(2)學(xué)生選擇自己感興趣的題目,綜合應(yīng)用openEuler相關(guān)工具和技術(shù),通過自己對設(shè)計(jì)目標(biāo)的理解,完成需求分析和設(shè)計(jì),編寫程序代碼,實(shí)現(xiàn)選題要求的功能,并撰寫綜合設(shè)計(jì)報(bào)告。也可以根據(jù)自己的興趣自選難度適中符合要求的題目,但須經(jīng)過指導(dǎo)教師同意和確認(rèn)。要求學(xué)生要求至少完成一個初級題目后才能選擇高級題目
3相關(guān)項(xiàng)目案例
本文作者在2020年申請“Linux應(yīng)用”課程加入華為“智能基座”產(chǎn)教融合協(xié)同育人項(xiàng)目,在課程中融入了openEuler操作系統(tǒng)的相關(guān)技術(shù)。2020年至今,累計(jì)選課學(xué)生達(dá)到700余人次,教學(xué)效果良好,課程推薦的兩名優(yōu)秀學(xué)生分別獲得2021年度和2022年度“智能基座”未來之星。通過課程的學(xué)習(xí),學(xué)生能通過華為云服務(wù)器上機(jī)實(shí)驗(yàn)系統(tǒng)地學(xué)習(xí)openEuler操作系統(tǒng)下編輯、編譯、調(diào)試工具,在華為云平臺上基于openEuler操作系統(tǒng)和鯤鵬架構(gòu)服務(wù)器完成了深度學(xué)習(xí)、大數(shù)據(jù)技術(shù)、軟件定義網(wǎng)絡(luò)等多種前沿技術(shù)應(yīng)用設(shè)計(jì)。下面列舉了在課程綜合設(shè)計(jì)實(shí)踐環(huán)節(jié)中部分學(xué)生的優(yōu)秀作品設(shè)計(jì)。
項(xiàng)目名稱:基于Tensorflow2的PSPnet語義分割在openEuler系統(tǒng)下的應(yīng)用,項(xiàng)目創(chuàng)新點(diǎn):該項(xiàng)目內(nèi)容為在openEuler平臺上實(shí)現(xiàn)基于Tensorflow2框架的PSPnet語義分割平臺的應(yīng)用。項(xiàng)目主要創(chuàng)新點(diǎn)在于將傳統(tǒng)的PSPnet模塊的主干特征提取網(wǎng)絡(luò)Resnet系列深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型更換為參數(shù)更小的輕量級MobileNetv2模型。因?yàn)槿A為云服務(wù)器是基于鯤鵬CPU架構(gòu),相比于傳統(tǒng)的X86CPU架構(gòu),鯤鵬的優(yōu)勢在于高密度低功耗,MobileNetv2權(quán)重文件相比于Resnet50,參數(shù)量小了8倍而分割效果相似,更加適合部署在云服務(wù)器openEuler系統(tǒng)上進(jìn)行分割檢測。
項(xiàng)目名稱:鯤鵬計(jì)算架構(gòu)openEuler環(huán)境Tensorflow開發(fā)框架搭建與應(yīng)用開發(fā),項(xiàng)目創(chuàng)新點(diǎn):該項(xiàng)目基于運(yùn)行于鯤鵬計(jì)算架構(gòu)的openEuler系統(tǒng),完成了Tensorflow開發(fā)框架搭建與應(yīng)用開發(fā)。實(shí)現(xiàn)了一個可以根據(jù)二維張量(tensor)集訓(xùn)練出得出張量集的模型的變量(Variable)與占位符(placeeholder),并使用matplotlib.pyplot庫將得出的變量與占位符以函數(shù)圖像形式展現(xiàn)
項(xiàng)目名稱:基于openEuler的YoloV5目標(biāo)檢測技術(shù)的應(yīng)用。項(xiàng)目創(chuàng)新點(diǎn):該項(xiàng)目利用深度學(xué)習(xí)技術(shù),以道路交通場景中的行駛車輛為研究對象,在openEuler操作系統(tǒng)上基于YoloV5模型對行人與車輛進(jìn)行檢測與識別。通過YoloV5目標(biāo)檢測算法,實(shí)現(xiàn)了對機(jī)動車、非機(jī)動車的識別,對行人的識別。能夠檢測對于路口交通的飽和度以及擁堵情況,或者對闖紅燈的機(jī)動車,斑馬線不禮讓行人,機(jī)動車占用公交車道,機(jī)動車違?;蛘哌`規(guī)越線等違章行為進(jìn)行檢測識別。
4結(jié)語
本文將“Linux應(yīng)用”實(shí)踐課程融入了openEuler操作系統(tǒng)的相關(guān)技術(shù),學(xué)生可在完成課程學(xué)習(xí)后熟悉并能使用openEuler開發(fā)環(huán)境與工具,能針對具體的復(fù)雜計(jì)算機(jī)工程問題的工程需求,進(jìn)行開發(fā)工具選型。針對較為復(fù)雜的工程應(yīng)用問題,能夠通過基本方法,綜合使用openEuler系統(tǒng)中的各種工具,進(jìn)行方案設(shè)計(jì),通過資料獲取和在線幫助等手段解決問題,并說明方案的受限因素;對復(fù)雜的軟件工程問題進(jìn)行需求分析和設(shè)計(jì)目標(biāo)的確定,并能針對問題需求,進(jìn)行軟硬件環(huán)境的配置和開發(fā)工具與技術(shù)的選型,完成工程項(xiàng)目的設(shè)計(jì)、開發(fā)、測試及部署,最終獲得解決復(fù)雜工程問題的能力。本文所提出的基于國產(chǎn)操作系統(tǒng)openEuler的操作系統(tǒng)應(yīng)用實(shí)踐教學(xué)設(shè)計(jì)方法,為學(xué)生后續(xù)的基礎(chǔ)課程和專業(yè)課程學(xué)習(xí)以及進(jìn)行軟件開發(fā)工作建立良好的基礎(chǔ),同時能夠培養(yǎng)出更多能夠適應(yīng)國產(chǎn)軟件開發(fā)和信息社會發(fā)展需要的人才。
參考文獻(xiàn)
[1] 夏文,仇潔婷,陳俊杰,等.面向自主可控人才培養(yǎng)的操作系統(tǒng)課程探索[J].計(jì)算機(jī)教育,2023(2):95-99.
[2] 蘇曙光,沈剛,鄒德清.國產(chǎn)化背景下操作系統(tǒng)創(chuàng)新人才培養(yǎng)思考與實(shí)踐[J].高等工程教育研究,2022(2):52-57.
[3] 趙偉華,董黎,林菲,等.工程認(rèn)證下操作系統(tǒng)課程實(shí)踐環(huán)節(jié)的改革探索[J].實(shí)驗(yàn)技術(shù)與管理,2020,37(4):172-177、190.
[4] 孫旺朝,趙婭雯,葛旭晴,等.基于Linux的《操作系統(tǒng)》實(shí)驗(yàn)教學(xué)改革[J].中國新通信,2022,24(19):119-121.
[5] 何靜媛,陳咸彰.基于“三融三促”的操作系統(tǒng)課程教學(xué)創(chuàng)新實(shí)踐[J].計(jì)算機(jī)教育,2023(9):39-43.
[6] 吳亦澤,于佳耕,鄭晨,等.openEuler中C標(biāo)準(zhǔn)庫替換的兼容性分析[J].計(jì)算機(jī)研究與發(fā)展,2023,60(7):1514-1532.