汪文彬 吳淑婷 馬玉春
摘 ?要: 軟件工程專業(yè)的教學(xué)實(shí)踐離不開服務(wù)器,而服務(wù)器環(huán)境的搭建比較繁瑣,服務(wù)器本身也相對(duì)昂貴,如果用單機(jī)實(shí)踐客戶機(jī)與服務(wù)器,與實(shí)際生產(chǎn)環(huán)境也不一致。樹莓派是卡片式計(jì)算機(jī),利用樹莓派搭建服務(wù)器,價(jià)格低廉,在使用過程中,除了電源不需要任何外接設(shè)備,可以用來便捷地開發(fā)Web應(yīng)用程序及網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng),對(duì)學(xué)生來說比較直觀,容易理解。
關(guān)鍵詞: 樹莓派;Linux;MySQL;Tomcat
中圖分類號(hào): TP311.5 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.001
本文著錄格式:汪文彬,吳淑婷,馬玉春. 樹莓派在軟件工程專業(yè)教學(xué)中的應(yīng)用研究[J]. 軟件,2020,41(08):01-05
【Abstract】: The teaching practice of software engineering cannot be carried out without the server, and the construction of the server environment is very complicated, and the server itself is relatively expensive. If a single machine is used as both the client and server, it is not consistent with the actual production environment. Raspberry Pi is a card type computer; it is feasible to construct a multifunctional server at a low price with Raspberry Pi. The server does not need any external equipment except the power supply, and can be used to develop Web applications and network database management system conveniently, which is more intuitive and easy for students to understand.
【Key words】: Raspberry pi; Linux; MySQL; Tomcat
0 ?引言
軟件工程專業(yè)的特點(diǎn)之一,就是在掌握專業(yè)理論的條件下,通過在實(shí)踐中反復(fù)試錯(cuò)來檢驗(yàn)和強(qiáng)化理論,從而將理論知識(shí)演變?yōu)樽约旱慕?jīng)驗(yàn),也通過實(shí)踐來體現(xiàn)理論的價(jià)值,為將來的謀職或創(chuàng)業(yè)做好準(zhǔn)備?,F(xiàn)代應(yīng)用軟件的開發(fā)離不開服務(wù)器,跟早期傳統(tǒng)的單機(jī)桌面應(yīng)用程序不一樣。因而,為了節(jié)省設(shè)備,一般采用單機(jī)充當(dāng)客戶機(jī)(包括瀏覽器)和服務(wù)器,對(duì)學(xué)生來說不直觀,跟實(shí)際生產(chǎn)環(huán)境也不一樣。
樹莓派是一種卡片式計(jì)算機(jī),只有信用卡大小,現(xiàn)在已經(jīng)發(fā)展到4B版本,最高內(nèi)建4G內(nèi)存,可以滿足一臺(tái)簡單服務(wù)器的基本需要。樹莓派通過Wi-Fi建立無線連接,開通SSH,這樣可以借助軟件工具,利用臺(tái)式機(jī)來輸入樹莓派命令;安裝FTP服務(wù)器,可以在樹莓派和臺(tái)式機(jī)之間傳送文件;在樹莓派上安裝MySQL服務(wù)器,則可以用來實(shí)踐網(wǎng)絡(luò)數(shù)據(jù)庫的開發(fā);在樹莓派上搭建Tomcat服務(wù)器,可以將Web應(yīng)用程序部署到樹莓派上。將此樹莓派接上電源,無需外接任何設(shè)備,則一個(gè)宿舍的同學(xué)均可以比較直觀地實(shí)踐以上所有任務(wù)。
1 ?操作系統(tǒng)的燒錄與基本配置
樹莓派使用TF(T-Flash)卡來安裝系統(tǒng),為了得到較好的性能,一般選擇閃迪(SanDisk)10速(寫入速度為10 MB/s),32G容量的TF卡,基本能夠較好地滿足需要。另外還有超高速(Ultra High Speed,UHS)TF卡,可以達(dá)到30 MB/s的寫入速度。樹莓派中可以安裝多種操作系統(tǒng),一般下載文獻(xiàn)[1]中的官方版本(Debian版,Linux的發(fā)行版之一),該版本兼容性好,本文以此版本展開。另外,Ubuntu MATE系統(tǒng)的可視化效果更好,可以較好地通過該系統(tǒng)支持USB接口的打印機(jī)實(shí)現(xiàn)網(wǎng)絡(luò)共享,但目前沒有4B版本的系統(tǒng);Windows 10 IoT Core 系統(tǒng)可以較好地支持物聯(lián)網(wǎng)應(yīng)用,但該系統(tǒng)不能直接燒錄,需要在線安裝。
系統(tǒng)映像下載后,通過Win32DiskImager工具寫入TF卡,插入樹莓派中對(duì)應(yīng)的插槽,連接鍵盤、鼠標(biāo)和HDMI顯示器,插上網(wǎng)線,上電啟動(dòng)。初始啟動(dòng)需要設(shè)置國家(Country)、語言(Language)和時(shí)區(qū)(Time-zone)等,勾選使用美國鍵盤(Use US keyboard),否則有些字符無法輸出。缺省用戶名為pi,設(shè)置一個(gè)自己喜歡的用戶密碼。無需設(shè)置Wi-Fi,使用如下第(1)條命令修改設(shè)置,第(2)條是配置中的文本內(nèi)容,這里輸入了一個(gè)IP地址的DNS,如果有多個(gè)IP地址,以空格分隔即可。
sudo nano /etc/dhcpcd.conf (1)
static domain_name_servers=114.114.114.114 (2)
有線比無線的速度快得多。輸入命令sudo reboot,啟動(dòng)樹莓派,利用有線更新系統(tǒng),如下第(3)條命令讀取需要更新的軟件包列表,第(4)條完成系統(tǒng)軟件的更新。如果更新不完整,可以添加參數(shù)“—fix- missing”,修補(bǔ)丟失的軟件包,然后重新啟動(dòng)系統(tǒng)。
sudo apt-get update [--fix-missing] (3)
sudo apt-get dist-upgrade [--fix-missing] (4)
燒錄好的樹莓派在初始狀態(tài)下沒有root密碼。在軟件安裝和系統(tǒng)配置過程中,有時(shí)需要root權(quán)限。為了更好地使用系統(tǒng),可以使用shell命令sudo passwd root來添加root密碼。
2 ?SSH與FTP的安裝及配置
SSH連接比Telnet遠(yuǎn)程桌面連接使用更為安全,已經(jīng)成為行業(yè)標(biāo)準(zhǔn)。使用SSH連接登錄樹莓派,可以對(duì)樹莓派進(jìn)行遠(yuǎn)程控制與編程開發(fā)。樹莓派最終作為一個(gè)只需要連接電源即可工作的服務(wù)器,因而,需要配置好SSH連接,以便輸入遠(yuǎn)程命令。安裝FTP服務(wù)器則方便臺(tái)式機(jī)與樹莓派之間傳送文件,這樣連U盤也不需要了。
通過命令sudo raspi-config打開系統(tǒng)設(shè)置,選擇 Interfacing Options -> SSH,設(shè)置SSH Enabled,保存退出。通過第(5)條命令安裝SSH服務(wù),然后打開/etc/rc.local文件,在語句“exit 0”之前加入第(6)條命令,這樣即可開機(jī)自動(dòng)啟動(dòng)SSH服務(wù)。圖1為在Windows 10 平臺(tái)下,通過PuTTY工具建立與樹莓派的SSH連接,設(shè)置樹莓派參數(shù)的效果。
sudo apt-get install openssh-server (5)
/etc/init.d/ssh start (6)
在Linux系統(tǒng)中,可供選擇的FTP服務(wù)器種類眾多。vsftpd(Very Secure FTP Daemon,即非常安全的FTP進(jìn)程)是一個(gè)基于GPL發(fā)布的類UNIX類操作系統(tǒng)上運(yùn)行的FTP服務(wù)器,支持很多其他傳統(tǒng)的FTP服務(wù)器不支持的良好特性,小巧輕快,安全易用,十分適合樹莓派。通過第(7)條命令安裝FTP服務(wù)器,第(8)條命令啟動(dòng)服務(wù)。但是需要將/etc/vsftpd.conf文件中的local_enable變量設(shè)置為YES(即允許本地訪問),write_enable變量設(shè)置為YES(即允許寫操作)。
sudo apt-get install vsftpd (7)
sudo service vsftpd start (8)
配置完畢,重新啟動(dòng)樹莓派,即可在臺(tái)式機(jī)上通過“ftp IP”命令(IP替換為具體的地址)連接樹莓派,輸入第1節(jié)配置的用戶名pi和對(duì)應(yīng)的密碼即可。登錄成功后,采用lcd命令切換本地路徑,!dir顯示本地目錄和文件;cd命令切換遠(yuǎn)程路徑,ls命令顯示遠(yuǎn)程目錄和文件;put命令上傳文件到樹莓派(缺省為pi目錄),get命令從樹莓派(缺省為pi目錄)下載文件。
雖然配置好了SSH和FTP服務(wù),但是,還需要通過防火墻開放對(duì)應(yīng)的端口。Linux防火墻的iptables過于繁瑣,ufw(ubuntu fireward 的縮寫)防火墻工具使用方便高效。通過命令(9)安裝ufw防火墻,命令(10)使能或者禁用防火墻,命令(11)缺省將所有端口關(guān)閉,命令(12)開放SSH默認(rèn)端口22,命令(13)查看防火墻狀態(tài),即打開了多少端口。相應(yīng)地,F(xiàn)TP服務(wù)需要打開默認(rèn)端口21,下文需要安裝的MySQL服務(wù)器需要打開默認(rèn)端口3306,Tomcat服務(wù)器則需要打開默認(rèn)端口8080,具體根據(jù)實(shí)際需要進(jìn)行調(diào)整。
sudo apt-get install ufw (9)
sudo ufw enable/disable (10)
sudo ufw default deny (11)
sudo ufw allow 22 (12)
sudo ufw status (13)
3 ?MySQL數(shù)據(jù)庫服務(wù)器的安裝與配置
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,采用SQL 語言訪問數(shù)據(jù)庫,通用性比較強(qiáng),目前使用該數(shù)據(jù)庫的主流公司與組織有Facebook、Github、YouTube、Twitter、PayPal、諾基亞、Spotify、Netflix 等。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版(免費(fèi))和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫,高校也經(jīng)常采用此數(shù)據(jù)庫系統(tǒng)用于教學(xué)。
MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,由MySQL的創(chuàng)始人Michael Widenius主導(dǎo)開發(fā),采用GPL授權(quán)許可,完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的替代品。4B版本的樹莓派只能安裝MariaDB,這里第(14)條命令即可完成安裝。為了能夠在其它計(jì)算機(jī)上也能訪問樹莓派上的MySQL數(shù)據(jù)庫,需要通過命令(15)修改文件中的bind-address,將本地IP地址“127.0.0.1”修改為“0.0.0.0”。通過命令(16)設(shè)置MySQL的root密碼。
sudo apt-get install default-mysql-server (14)
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf(15)
sudo mysqladmin -u root -p password (16)
當(dāng)root密碼修改完成后,即可登錄MySQL數(shù)據(jù)庫,使用如下數(shù)據(jù)庫命令開啟root遠(yuǎn)程登錄權(quán)限。
->USE mysql;
->update user set host='%' where user='root' and host='localhost';
->update mysql.user set plugin='mysql_native_ pass?word' wh?ere user='root';
->FLUSH PRIVILEGES;
->exit;
如此配置完成后,通過ufw開放3306端口即可遠(yuǎn)程訪問MySQL數(shù)據(jù)庫系統(tǒng),用于創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表,執(zhí)行查改刪操作。
4 ?通過Visual Basic .NET訪問MySQL數(shù)據(jù)庫
文獻(xiàn)[2]實(shí)現(xiàn)了一個(gè)基于Windows的事務(wù)提醒軟件(軟件名WinAlarm),方便辦公事務(wù)安排。但是,采用Access數(shù)據(jù)庫需要安裝Office辦公軟件,不夠便捷。如果在一個(gè)小公司,將需要提醒的事務(wù)放入一個(gè)MySQL服務(wù)器中,通過桌面程序共享,即可協(xié)調(diào)大家的工作。這里采用Visual Basic .NET(Express 2019版本)訪問MySQL數(shù)據(jù)庫,研發(fā)一個(gè)支持MySQL的Windows事務(wù)提醒軟件(WinAlarmMySQL)。MySQL數(shù)據(jù)庫是通過相關(guān)驅(qū)動(dòng)程序被開發(fā)工具調(diào)用的,這里需要下載文獻(xiàn)[3]中所列的“Connector/NET”驅(qū)動(dòng)程序,選擇8.0.19版的Windows安裝程序,安裝后的路徑如下所示,該驅(qū)動(dòng)程序需要使用4.5.2版的.NET Framework框架。
新建項(xiàng)目WinAlarmMySQL,右擊項(xiàng)目,項(xiàng)目屬性-->應(yīng)用程序-->目標(biāo)框架,選擇.NET Framework 4.5.2.如果本機(jī)沒有該版本的框架,點(diǎn)擊“安裝其他框架”,到微軟站點(diǎn)下載相應(yīng)的Windows框架安裝軟件即可。在項(xiàng)目屬性的“引用”部分添加對(duì)MySql.Data.dll的引用。
ADO.NET DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,它提供了獨(dú)立于數(shù)據(jù)源的一致關(guān)系編程模型。DataSet 表示整個(gè)數(shù)據(jù)集,其中包含表、約束和表之間的關(guān)系。由于 DataSet 獨(dú)立于數(shù)據(jù)源,因此 DataSet 可以包含應(yīng)用程序本地的數(shù)據(jù),也可以包含來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)。與現(xiàn)有數(shù)據(jù)源的交互通過 DataAdapter 適配器來控制。DataSet、DataAdapter 與數(shù)據(jù)源之間的關(guān)系如圖2所示。
本文利用圖2所示的數(shù)據(jù)庫模型讀寫數(shù)據(jù)。在項(xiàng)目中分別導(dǎo)入(Imports)MySql.Data和MySql.Data. MySqlClient兩個(gè)類。MySQL驅(qū)動(dòng)提供了MySql?Con-nectionStringBuilder類來構(gòu)建連接字符串,生成該對(duì)象的實(shí)例builder后,即可傳入用戶名、密碼、服務(wù)器名、端口號(hào)和數(shù)據(jù)庫名,通過builder的ConnectionString屬性獲得連接字符串conn.如下第(17)條語句得到適配器的實(shí)例adapter,傳入的第一個(gè)參數(shù)為SELECT語句sql,第二個(gè)參數(shù)conn是包含用戶名與密碼等的連接字符串,一條語句即實(shí)現(xiàn)了數(shù)據(jù)源的讀取,如圖2的模型所示。第(18)條語句生成DataSet實(shí)例ds,其中沒有數(shù)據(jù)。第(19)條語句通過Fill方法將數(shù)據(jù)填入ds,第(20)條語句得到數(shù)據(jù)表DataTable對(duì)象dt,這樣即可簡單地通過dt對(duì)象對(duì)二維關(guān)系表進(jìn)行修改、添加和刪除操作。但是,對(duì)dt的操作僅限于內(nèi)存,調(diào)用第(21)條函數(shù),即可將數(shù)據(jù)寫入數(shù)據(jù)源。文獻(xiàn)[4]中設(shè)計(jì)的“Access數(shù)據(jù)庫類”詳細(xì)介紹了使用DataAdapter操作二維數(shù)據(jù)庫的方法,只要稍加改動(dòng)即可用于操作MySQL數(shù)據(jù)庫。
adapter = New MySqlDataAdapter(sql, conn) (17)
ds = New DataSet() (18)
adapter.Fill(ds) (19)
dt = ds.Tables(0) (20)
adapter.Update(ds, dt.TableName) (21)
5 ?構(gòu)建Web應(yīng)用程序
在“Java程序設(shè)計(jì)”的教學(xué)過程中,一般選用免費(fèi)的elipse版本作為開發(fā)工具,這里選擇文獻(xiàn)[5]的壓縮包,解壓縮以后即可直接使用。但需要先安裝JDK,并完成配置。構(gòu)建Web應(yīng)用程序是每個(gè)軟件工程專業(yè)學(xué)生必須掌握的技能,此版本的eclipse不能用來開發(fā)Web應(yīng)用程序,需要通過主菜單路徑“Help->Install New Software->Work with下拉框”,選擇當(dāng)前的版本安裝“Web, XML, Java EE and OSGI Enterprise Development”插件,打開Progress窗口可以查看安裝進(jìn)度,安裝過程中提醒是否安裝沒有簽名的軟件,選擇全部同意即可。安裝完成后,plugins目錄下將增加400多個(gè)插件。關(guān)于eclipse的日期版本號(hào),可以通過主菜單Help下的“About Eclipse IDE”子菜單查看。
安裝完Web插件,eclipse即可創(chuàng)建“Dynamic Web Project”,即Web應(yīng)用程序。但Web應(yīng)用程序需要Web服務(wù)器,這里同樣選用免費(fèi)的Tomcat,從文獻(xiàn)[6]下載壓縮版,解壓縮后即可使用,conf子目錄下的server.xml文件中有缺省端口設(shè)置(默認(rèn)8080),如果跟其它軟件相沖突,可以在這里調(diào)整。執(zhí)行bin子目錄下的startup命令,即可啟動(dòng)Web服務(wù),這樣就可以在瀏覽器中打開Tomcat的默認(rèn)主頁。
在開發(fā)Web應(yīng)用程序的過程中,啟動(dòng)Tomcat不是通過startup命令進(jìn)行的,而是通過開發(fā)環(huán)境eclipse本身,因而,需要建立eclipse與Tomcat之間的關(guān)聯(lián),即進(jìn)行必要的配置。從主菜單開始,Window-> Preferences->Server ->Runtime Environment->Add,添加Apache Tomcat 9.0,并勾選Create a new local server(創(chuàng)建本地服務(wù)器)。接著右擊創(chuàng)建的Web項(xiàng)目,Java Build Path->Libraries->Add Library->Server Runtime,下一步選擇Apache Tomcat v9.0,這樣eclipse就建立了與Tomcat的關(guān)聯(lián),并且添加了Tomcat的類庫支持。
Web應(yīng)用程序離不開數(shù)據(jù)庫,這里仍然調(diào)用MySQL數(shù)據(jù)庫,因而,也需要對(duì)應(yīng)的Java驅(qū)動(dòng)程序,從文獻(xiàn)[7]中下載壓縮版,操作系統(tǒng)一欄選擇“Platform Independent(平臺(tái)無關(guān))”,解壓縮以后將驅(qū)動(dòng)包“mysql-connector-java-8.0.17.jar”復(fù)制到新建Web項(xiàng)目的WebContent\Web-INF\lib目錄下。以下為查詢數(shù)據(jù)庫的關(guān)鍵代碼,url中包括IP地址、開放的端口和數(shù)據(jù)庫名firstdb,sql中指示查詢數(shù)據(jù)表grade,最后得到數(shù)據(jù)集對(duì)象rs,通過一個(gè)循環(huán)(代碼略)即可列出所有數(shù)據(jù)。
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://192.168.1.105:3306/ firstdb";
Connection conn = DriverManager.getCon?nec-tion(url, "root", "123456");
Statement stat = conn.createStatement();
String sql = "select * from grade";
ResultSet rs = stat.executeQuery(sql);
6 ?部署Web應(yīng)用程序
Web應(yīng)用程序開發(fā)完成后,需要部署到服務(wù)器(樹莓派)。首先通過第(22)條命令安裝Java環(huán)境(無需配置),然后從文獻(xiàn)[7]下載Linux版本的Tomcat壓縮包,解壓縮后放到樹莓派的“/usr”目錄下。
sudo apt-get install oracle-java8-jdk (22)
運(yùn)行Tomcat子目錄bin下的“./startup.sh”腳本啟動(dòng)Tomcat,即可從瀏覽器訪問本地主頁。為了可以從其它計(jì)算機(jī)訪問,需要使用ufw工具開放默認(rèn)端口8080。關(guān)閉Tomcat,執(zhí)行對(duì)應(yīng)的“./shutdown.sh”腳本即可?,F(xiàn)在只是手動(dòng)啟動(dòng)和關(guān)閉Tomcat,在樹莓派投入使用后,需要開機(jī)自動(dòng)啟動(dòng)??梢栽?/etc/init.d 目錄下構(gòu)建一個(gè)服務(wù)腳本(命名為my-tomcat.sh),啟動(dòng)該服務(wù)的時(shí)候,運(yùn)行startup腳本;關(guān)閉Tomcat的時(shí)候,運(yùn)行shutdown腳本。執(zhí)行第(23)條命令將該服務(wù)腳本設(shè)置為可運(yùn)行,通過第(24)條命令將該服務(wù)加入系統(tǒng)管理并設(shè)置默認(rèn)啟動(dòng)級(jí)別,第(25)條命令允許作為系統(tǒng)服務(wù)開機(jī)自動(dòng)啟動(dòng)。
sudo chmod +x /etc/init.d/my-tomcat.sh (23)
sudo update-rc.d my-tomcat.sh defaults (24)
sudo systemctl enable my-tomcat.sh (25)
從上一節(jié)導(dǎo)出Web項(xiàng)目TestMySQL.war,采用第2節(jié)介紹的FTP工具登錄樹莓派,通過put命令將Web項(xiàng)目上傳到樹莓派并復(fù)制到Tomcat的webapps子目錄,重新啟動(dòng)樹莓派。在其它計(jì)算機(jī)上運(yùn)行瀏覽器的效果如圖3所示,Tomcat是開機(jī)自動(dòng)啟動(dòng)的,也成功訪問了MySQL數(shù)據(jù)庫。
7 ?教學(xué)應(yīng)用
在軟件公司工作,經(jīng)常需要面對(duì)不同的操作系統(tǒng)以及多位員工之間的協(xié)作。作為軟件工程專業(yè)的學(xué)生,如果大學(xué)四年只守著一臺(tái)Windows計(jì)算機(jī),既作為客戶機(jī)使用,又作為服務(wù)器使用,軟件部署界限不明顯,直觀體會(huì)不夠深刻,而且,客戶機(jī)與服務(wù)器位于一臺(tái)計(jì)算機(jī)上,也容易引起沖突。將樹莓派引入軟件工程專業(yè)的教學(xué)實(shí)踐,可以用來低成本熟悉Linux操作系統(tǒng)及對(duì)應(yīng)的軟件開發(fā);配置好Wi-Fi無線連接后,只需要樹莓派和電源適配器,即可提供SSH登錄,用來熟悉shell命令和簡單的代碼編寫;臺(tái)式機(jī)和樹莓派之間的文件傳送,不需要使用繁瑣的U盤,只要使用FTP功能即可;可以在SSH客戶端操作樹莓派、安裝和卸載軟件以及操作MySQL數(shù)據(jù)庫;也可以將Web應(yīng)用程序部署到樹莓派,使其充當(dāng)Web服務(wù)器的功能,在Web應(yīng)用程序中讀寫MySQL中的數(shù)據(jù)。
8 ?結(jié)語
樹莓派采用Linux操作系統(tǒng),價(jià)格低廉,攜帶方便。只要連接Wi-Fi,提供電源,即可充當(dāng)多種服務(wù)器使用,并實(shí)現(xiàn)小范圍內(nèi)共享,尤其適合軟件工程專業(yè)的學(xué)生在宿舍進(jìn)行軟件實(shí)踐。本文重點(diǎn)提供了利用Visual Basic .NET調(diào)用MySQL數(shù)據(jù)庫的解決方案,以及在Web應(yīng)用程序中使用Java調(diào)用MySQL數(shù)據(jù)庫的關(guān)鍵代碼與項(xiàng)目部署方案。此外,樹莓派還可以一條命令安裝可視化的Code Blocks開發(fā)環(huán)境,用來實(shí)踐Linux操作系統(tǒng)的底層軟件開發(fā)。樹莓派自帶的Python開發(fā)工具,可以廣泛應(yīng)用于AI開發(fā)和硬件設(shè)計(jì)與操作[9]。
參考文獻(xiàn)
[1] Download Raspbian for Raspberry Pi[OL]. (2020-03-21) [2020-08-20]. https: //www.raspberrypi.org/downloads/raspbian/.
[2] 馬玉春. 計(jì)算機(jī)監(jiān)控系統(tǒng)的仿真開發(fā)[M]. 北京: 國防工業(yè)出版社, 2015: 182-196.
[3] MySQL Community Downloads[OL]. (2020-03-21)[2020- 08-20]. https://dev.mysql.com/downloads/.
[4] 馬玉春, 苑囡囡, 王哲河. 基于Visual Basic 2008的Access數(shù)據(jù)庫類的設(shè)計(jì)[J]. 軟件, 2012, 33(6): 41-43+47.
[5] Eclipse IDE for Eclipse Committers[OL]. (2020-03-21) [2020-08-20]. https://www.eclipse.org/downloads/packages/
[6] Tomcat 9 Software Downloads[OL]. (2020-03-21)[2020-08- 20]. https://tomcat.apache.org/download-90.cgi.
[7] MySQL Product Archives, MySQL Connector/J(Archived Ver?sions)[OL]. (2020-03-21)[2020-08-20]. https://downloads. mysql.com/archives/c-j/.
[8] 馬玉春, 汪文彬. Android個(gè)性化服務(wù)軟件的設(shè)計(jì)及教學(xué)應(yīng)用[J]. 軟件, 2020, 41(1): 24-28.
[9] 楊叢叢, 吳濤, 張安峰等. 基于樹莓派的無線遙控移動(dòng)機(jī)器人設(shè)計(jì)及運(yùn)動(dòng)控制[J]. 軟件, 2020, 41(2): 97-101.
[10] 韓萬江, 姜立新, 張笑燕等. 基于工程化的軟件工程教學(xué)案例研究[J]. 軟件, 2019, 40(3): 78-87.
[11] 屈天琦. 探究計(jì)算機(jī)軟件工程的維護(hù)措施與方法[J]. 軟件, 2019, 40(8): 168-170.