APP下载

MOOC环境下嵌入式系统虚拟仿真平台的实现与应用

2020-07-06平震宇李培峰顾晓燕

实验室研究与探索 2020年4期
关键词:内核嵌入式学习者

平震宇,李培峰,顾晓燕

(1.江苏信息职业技术学院物联网工程学院,江苏无锡214101;2.苏州大学计算机科学与技术学院,江苏苏州215006)

0 引 言

随着大规模在线开放课程(Massive Open Online Courses,MOOC)的迅猛发展,MOOC已经成为风靡教育领域以学习者为中心的在线学习模式,是新形势下教育理念融合信息技术的产物。MOOC具有开放性、大规模学习人群参与、高品质微视频、完整的课程组织结构以及基于大数据的学习分析等本质特征[1]。2010年MOOC在美国初露端倪,2012年我国一些知名大学也纷纷加入MOOC行列。2014年5月教育部“高等学校本科教学质量与教学改革工程”建设的爱课程网推出“中国大学MOOC”在线教育平台,2015年在教育部出台的《关于加强高等学校在线开放课程建设应用与管理的意见》推动下“教学名师”纷纷走进了MOOC课堂,数以万计的课程面向学习者开放。

1 MOOC的实践教学需求

随着MOOC如火如荼建设,课程越来越丰富,选课人数越来越多,问题和质疑也随之而来。对于计算机、电信等实践性较强的学科有一个实际问题日益突出,MOOC单纯的理论教学无法满足授课需要,需要提供高品质的实践环节教学资源[2-3]。如果仅仅提供线上理论课程教学视频,或者有实践环节教学视频,没有实验环境进行实际操作,可能导致只有少部分学习者能够坚持下来[4]。

嵌入式Linux开发是一门实践性很强的课程,学生必须配合大量的实践练习才能掌握嵌入式相关技能。目前各院校计算机、电信专业都开设了嵌入式Linux开发课程,为满足实践教学要求,各院校都购买了嵌入式实验设备,有些是功能大且全的嵌入式实验箱,有些是功能单一的开发板[5]。这对于MOOC学习者就存在以下两个问题:

(1)嵌入式系统试验设备种类繁多、软硬件资源各不相同,导致对应的系统设置和操作的不同。

(2)实验设备后期维护也存在较大的难度,一旦损坏需要较长的维修周期[6-7]。

因此虚拟仿真平台为MOOC教学过程中的实践教学提供了实现方法。通过构建嵌入式虚拟仿真平台,学习者在虚拟仿真平台上完成各种预定的实践项目。使MOOC学习者获得一种高效、稳定、廉价的实践环境[8-9]。

2 嵌入式虚拟仿真环境

Windows系统常用的虚拟仿真环境有Java虚拟机、Vmware,Microsoft的Virtual PC、Virtual Server等。嵌入式虚拟仿真环境有SkyEye,ARMulator以及本文使用的虚拟化模拟器(Quick Emulator,QEMU)。QEMU是使用可移植动态二进制翻译器的模拟器。可以在目标体系结构(QEMU运行依赖的体系结构)的主机上模拟执行源体系结构(被模拟的体系结构)的操作系统和应用程序。QEMU是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备。例如x86、PowerPC、ARM、MIPS等多种目标平台。Google在开发Android系统的同时使用QEMU开发了模拟器,降低了开发人员的开发成本,促进了Android技术的推广。

QEMU支持两种工作模式:在用户模式仿真(user mode emulation)下,QEMU能够模拟运行为源体系结构编译的应用程序。在全系统模式仿真(system mode emulation)下,QEMU模拟源体系结构的整个硬件平台[10-11]。QEMU可以在目标体系架构(如x86)下运行源体系架构(如ARM)的操作系统和程序,它虚拟仿真一个完整的系统,包括一个或多个处理器以及如显卡、网卡等各种外围设备,全系统模式仿真使用的范围更加的广泛[12-13]。

QEMU通过其快速、可移植的动态翻译程序创建接近于主机性能的虚拟机[13-14]。QEMU完成编译配置后,可以进行开发板级虚拟仿真,使学习者如同使用真实的开发板一样。QEMU提供了以下4种不同模式的网络:网桥、网络地址转换(Network Addresss Translation,NAT)内置的用户模式网络、直接分配网络设备。丰富的网络支持特别有利于课程实践教学,例如BootLoad下载内核、挂载网络文件系统等。

3 搭建嵌入式虚拟仿真环境

目标体系结构可以选择Windows+MinGW或者Linux系统,为了减少编译系统代码时产生的函数库依赖问题,本文选用Xubuntu系统。Xubuntu是一份基于Ubuntu的Linux发行版,采用轻量级的XFce桌面环境,并面向低端机器作了优化。

3.1 下载资源

由于Mini2440开发板的软硬件资源非常丰富,所以一直是嵌入式开发学习者的入门首选。Mini2440使用的基于ARM920T的S3C2440A芯片,QEMU有个项目分支专门支持S3C2440 芯片(http://repo.or.cz/qemu/mini2440.git)。首选下适配Mini2440 的QEMU,u-boot和内核。

如果使用git下载速度慢,可以直接通过网页下载。

3.2 编译系统

下载完成后依次编译QEMU程序,u-boot和内核。首先编译QEMU,在编译之前先安装zlib1g-dev、libsdldev两个库。使用下列命令编译:

./configure--target-list=arm-softmmu

make-j4

QEMU主程序qemu-system-arm在arm-softmmu文件夹内,可以使用qemu-system-arm--version测试程序运行是否正常。

编译u-boot,打开Makefile文件,修改编译u-boot使用的交叉编译工具链(Cross_Compile变量赋值armnone-linux-gnueabi-)。使用下列命令编译:

make mini2440_config

make

编译完成后在当前目录下生成名为u-boot.bin的文件,将u-boot.bin 文件复制到/opt/mini2440 文件夹中。

编译内核,在编译内核之前首先使用命令apt-get install uboot-mkimage安装uImage工具。进入内核目录,使用下列命令编译内核:

编译完成之后在arch/arm/boot/目录下生成uImage文件,将此文件复制到/opt/mini2440 文件夹中。

3.3 配置系统参数

(1)编写启动脚本mini2440_start.sh。因为QEMU主程序qemu-system-arm启动参数设置非常复杂,所有需要编写mini2440_start启动脚本,将脚本存放在/opt/mini2440文件夹中。启动脚本内容如下:

(2)创建网络配置脚本。为了实现QEMU虚拟机与外部网络的通信,需要在宿主机中创建并配置一个网桥,并将宿主机的接口作为网桥的一个接口。首先需要在宿主机中创建并配置一个tap设备,QEMU虚拟机将该tap设备连接到虚拟机VLAN中,将tap设备作为网桥的另一个接口,QEMU虚拟机通过tap设备就可以与外部网络完全通信了。创建qemu-ifup脚本如下:

两个网络配置文件存放在/opt/mini2440文件夹下。

(3)挂载nfs文件系统。可以使用BusyBox自己搭建文件系统或者使用FriendlyARM的文件系统。将文件系统存放在/opt/root_qtopia目录中。

再输入bootm命令开始加载内核,当文件系统挂在成功后,嵌入式虚拟仿真平台的界面如图1所示。

图1 嵌入式虚拟仿真平台的界面

4 嵌入式虚拟仿真平台在MOOC课程中的应用

《嵌入式Linux应用与开发实践》课程是一门实践性非常强的课程。课程偏重于嵌入式系统设计开发中的软件方面,涉及如何搭建嵌入式Linux开发环境、配置嵌入式开发常用服务、移植Bootloader、移植内核、搭建文件系统、GUI应用开发与移植。本课程遵循“一体化设计、结构化课程、颗粒资源”建设为理念,以工作过程为导向,依据职业能力成长规律设计并组织课程内容,建设以学习者为中心的在线开放课程。课程结合在线开放课程教学的特征与需求,围绕教学目标精心设计教学活动,科学规划在线学习资源,明确学业评价策略和学习激励措施[15]。课程发布在“中国大学MOOC”在线教育平台(见图2)。

图2 《嵌入式Linux应用与开发实践》课程主要内容

课程运行一个学期后,受到本校学生的热烈欢迎,取得了良好的教学效果,充分激发了学生的积极性和主动性。

由于兄弟院校的嵌入式试验设备各不相同,实验开发环境不一致,导致兄弟院校学生无法按照课程视频进行相应的实验操作。为了使MOOC课程可以面向更多的学生,搭建了统一的嵌入式虚拟仿真环境(见图3),并在课程公告发布了嵌入式虚拟仿真环境的百度云共享地址。根据嵌入式虚拟仿真环境优化了课程实践教学项目,见表1。课程以虚拟仿真项目为主导,通过项目来学习对应的理论知识,根据技术难点将项目划分为“阶段性虚拟仿真项目”和“综合性虚拟仿真项目”。

图3 虚拟仿真环境在MOOC课程中的应用

表1 虚拟仿真实践教学内容

通过以上虚拟仿真项目的实践练习,使不同层次的学习者熟练掌握嵌入式Linux系统的开发流程和程序设计的各主要环节,使学习者掌握嵌入式开发环境的搭建、嵌入式开发工具,交叉编译、BootLoader移植、内核移植等嵌入式系统开发的核心技能,为今后从事嵌入式系统行业的设计、开发工作打下坚实的基础。MOOC通过搭建虚拟仿真环境统一了交叉编译环境,使得不同院校的学习者可以使用相同版本的内核和BootLoader。课前学习者通过MOOC提供的视频学习课程的基础知识以及完成相关阶段性虚拟仿真项目与测试题。在课堂教学过程中针对完成项目过程中出现的问题进行讨论,并采用轮流的方式对项目的重点和难点进行讲解,最后由教师对项目的重点、难点进行系统的梳理和总结。

MOOC学习者免费获得了开发实践环境,不再需要为嵌入式实验设备而发愁。自2016年在“中国大学MOOC”平台上开课至今,平均每学期有6 000人参加课程的学习,累计共有14 000人通过了课程考核,其中有1 200人获得课程优秀证书。从实施效果来看,课程体现“以学生为中心”的教育理念,学生自主学习的能力不断增强,激发了学生对专业知识的兴趣,通过虚拟仿真项目的实践练习提高了解决问题的能力。学生的嵌入式项目开发的综合能力不断提升,通过课堂上讨论提高学生对所学知识的综合应用和举一反三的能力。各组学生通过相互协作完成综合性虚拟仿真项目,培养了学生的团队协作能力,增强了学生的团队凝聚力。

5 结 语

针对在《嵌入式Linux应用与开发实践》MOOC中嵌入式实验设备无法满足实践环节教学需要。本文通过构建嵌入式虚拟仿真环境,使MOOC学习者能完成预定实践教学项目。嵌入式虚拟仿真环境可以让MOOC学习者免费获得开发实践环境,并且嵌入式虚拟仿真平台具有很好的可扩展性。经过两年的实际应用结果表明将嵌入式虚拟仿真平台应用于MOOC实践教学后,能充分发挥虚拟仿真与MOOC的优势,通过开放与共享,并提供优质、高效的、稳定的、免费的虚拟仿真平台,将“以学生为中心”的教学理念和模式充分展示出来。

猜你喜欢

内核嵌入式学习者
多内核操作系统综述①
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
你是哪种类型的学习者
十二星座是什么类型的学习者
青年干部要当好新思想的学习者、宣讲者、践行者
TS系列红外传感器在嵌入式控制系统中的应用
Linux内核mmap保护机制研究
搭建基于Qt的嵌入式开发平台