摘要:针对传统嵌入式系统实验与现实产品脱节的问题,介绍在嵌入式操作系统内核实践课程中进行课程内容、教学过程改革的方法,提出一套基于智能手机教学实践平台的教学方法。
关键词:嵌入式操作系统;智能手机;教学改革;能力培养
0、引言
智能手机已经走进千家万户,大部分人都配备了智能手机,针对智能手机的应用开发发展也非常迅速。作为一种典型的嵌入式设备,智能手机不但具有较高的性能,而且成本较为低廉,在体积、重量、功耗、用户体验上有特殊的要求,非常适合作为嵌入式系统/嵌入式操作系统实践教学的载体。
在国防科学技术大学2012专业学位研究生教学方案中,我们针对专业学位研究生教育的特点,开设新的实践类课程嵌入式操作系统内核开发实践,利用智能手机作为实践教学平台,开展全新的实践教学活动。
1、嵌入式操作系统内核开发实践课程的特点
目前,在各大院校、各个专业中开设的嵌入式系统类课程主要分为3类,一类是嵌入式硬件(arm或者单片机)相关课程,一类是嵌入式操作系统(嵌入式linux、uc/os-ii)相关课程,另一类是嵌入式应用开发相关课程。这些课程使用的硬件平台大多是各类开发板和开发箱。这类硬件平台的主要优点是具有较强的可塑性、可根据实验要求定制、具有丰富的外围接口、能够使用各种测量仪器进行测量等,但是使用这类硬件作为硬件平台的主要问题就是学生缺乏兴趣,硬件平台性能较低,只能开展一些层次较低的实验(如串口通信、流水灯、电子琴、电机驱动、数字钟、硬件小游戏等),而且成本较高。特别需要指出的是,由于这类硬件平台与真实智能手机系统差距较大,因此许多在硬件平台上进行的实验和改进的技术,不能直接应用到现有的智能手机上。
结合国防科学技术大学专业学位研究生的特点及计算机教育的特长,我们以android智能手机为平台,开设了多门嵌入式类的实践课程,包括嵌入式操作系统内核开发实践、移动应用开发实践等,特别是嵌入式操作系统内核开发实践课程,专注于智能手机linux内核开发实践。该课程特点主要体现在以下几个方面。
(1)专注android手机的linux内核部分。android是一个较大的系统框架,我们进行完整的教学需要花费很长时间,而且android系统本身还在不断快速发展,需要很多的知识和能力积累,为此,我们结合未来专业学位研究生就业的特点,选择android手机的linux内核部分进行教学实践,既可以避开复杂的手机硬件,又可以增强实用性。
(2)实践性强。传统的嵌入式操作系统学习需要讲解操作系统内核的结构、各种经典的操作系统构件等,这些内容非常繁杂,不容易讲透,也不容易实践。在该课程中,学生在第一堂课就要实际操作手机,在课程全过程中要不断地在智能手机平台上开展实践,特别注重实践性。
(3)实用性强。我们选用的智能手机平台是主流的双核1ghz、512mb智能手机,在其上进行的所有实验,可以直接或者稍作修改就移植到新的智能手机系统中,具有很好的实用性。学生在将来就业时,可以直接利用课堂学习成果进行研发工作。
2、实践平台选择及课程内容设计
目前智能手机阵营主要分为苹果的ios阵营和谷歌的android阵营。根据课程教学的需要,我们选择开源的android智能手机作为实践平台。在该课程中,最终选择来自韩国lg的su660手机作为实践教学平台,主要有如下几个方面的原因。
(1)硬件开源、操作系统内核开源。su660可以在网上找到完整的手机电路原理图,包括所有选用的硬件芯片参数、型号、pcb图纸等,大部分选用的芯片可以找到数据手册。操作系统内核也在不断更新,其最新版本的2.6.39.4内核可以在官方网站上直接下载。这些为开展操作系统内核的教学实践奠定了良好基础。
(2)价格便宜。这是在课堂教学中大规模使用的前提,该手机的裸机价格约600元,大大低于各种高档手机的价格,也大大低于各种高档嵌入式开发板和开发箱的价格。
(3)性能配置较强。该手机是全球首款双核手机,配置了双核1ghz处理器、512mb内存、4英寸显示屏、16gb内置闪存、丰富的传感器等。学生对此类手机较为熟悉,容易接受。
(4)具有较大的用户群。在国外著名的xda网站上,有专门的版面讨论该手机的android开发等问题。对于具体问题,学生和教师都可以在网上进行研讨并
寻求答案。
在课程内容的设计上,我们采用专题的方式,围绕与智能手机息息相关的一些专题展开教学,具体内容包括以下几个方面。
(1)linux内核的定制、移植与编译。该专题主要介绍linux内核开发的一般流程,包括如何定制内核、编译内核和移植内核的一般思路等。
(2)面向性能优化的增强性设计。该专题主要围绕如何提高cpu性能和i/o性能、如何评测系统性能等方面展开,还涉及超频、i/o调度算法的选择等内容。
(3)面向功耗优化的增强性设计。该专题主要围绕如何降低系统的功耗展开,首先介绍系统中与电源管理相关的内容,然后重点就dvfs、各个硬件模块的低功耗设计进行实践。
(4)面向安全性的增强性设计。该专题主要介绍android、linux、bootloader等各个层次的安全性措施,智能手机root的原理,针对智能手机的破解、解锁、root等技术。
(5)面向增强用户体验的设计优化。该专题主要介绍各种增强用户体验的技术,如proiectbutter、未接来电提示灯、手电筒等,这些技术往往涉及特定的硬件驱动和内核技术,具有一定难度。
(6)基于github的操作系统内核协同开发实践。github已经成为开源软件的集散地,其方便的协同开发功能吸引了全球的程序员共同完成应用开发。很多手机linux内核开发也在github上进行。