使用树莓派让操作系统更具吸引力

摘要

(work进行中)。2012年,埃本·厄普顿创立了树莓派基金会,推出了售价35美元的简易计算机树莓派(RPi)。其目标是重新激发公众对编程的兴趣,并提高大学计算机科学专业的入学率。如今,第三代树莓派配备了多核处理器、用于显示图形的小型图形处理器(GPU)、无线网络、蓝牙和USB连接功能。

令人惊讶的是,尽管树莓派在公众和大学生中因DIY项目和创客文化而变得非常流行,但教师们尚未广泛使用它来教授操作系统概念。在本文中,我分享了我在操作系统课程中使用树莓派的经验。本文的贡献如下:

  • 使用树莓派相较于其他传统和基于云的方法在教授操作系统概念方面的教学优势
  • 在校园企业网络的课堂环境中,教师和学生运行多个树莓派所面临的挑战。
  • 使用树莓派激发学生创造力,并激励他们设计和实现自己的相关计算项目的优点。

关键词 —操作系统,树莓派,教学法,学生动机与学习

I. 引言

在教授操作系统课程时,我始终选择Linux作为学生编程项目的操作系统。Linux具有诸多优势:

  • 它是开源且免费的(通常在GNU许可证下),这使其成为教育机构极具吸引力的选择。
  • 许多先进的编译器和库支持Linux。当前的编译器和库涵盖了C、C++、Python语言和Java语言等流行的编程语言。
  • Linux 提供了简单的远程访问功能,内置安全外壳(ssh),无需远程桌面。
  • 有关 Linux 的文献资料非常丰富,并且被许多流行的操作系统书籍所引用 [1]。
  • 当前的C语言++多线程标准,如C++11、C++14和 C++17 ,已在最新的GNU C++编译器和库[2]中实现。

这使得Linux在实现涉及多线程、并发、调度和安全概念的学生项目时非常方便。

如今,大部分“云”由Linux服务器运行,嵌入式系统和移动设备平台也是如此。这使得掌握Linux技能成为许多计算机工程和计算机科学学生的理想选择。

在操作系统课程中使用Linux也存在一些缺点:

  • 由于我们大学没有资源来运行供学生使用的Linux实验室或服务器,因此我在云中创建了一台Linux服务器供学生访问。远程访问可能会受到网络延迟的限制,尤其是在桌面访问和运行图形应用时。
  • 在云中的Linux服务器上,学生没有机会管理自己的操作系统及其安全。
  • 最后,Linux共享服务器不允许学生实验自己的操作系统模块。

其中一些缺点可以通过虚拟化来解决(即学生需要在自己的笔记本电脑上安装虚拟副本)。然而,虚拟化需要磁盘资源、功能足够的x86机器以及学生笔记本电脑上可能不具备的内存空间。此外,虚拟化可能会带来性能损失并引入兼容性问题。

当我开始考虑在我的操作系统课程中采用树莓派时,我惊讶地发现,尽管树莓派在校园的DIY项目和创客空间中很受欢迎,却几乎没有将其用于操作系统课程的示例。缺乏采用的原因可能是早期版本的树莓派性能较低的单核;也就是说,许多教师可能一直将树莓派视为面向爱好者的设备,而非用于专业开发或大学级别课程的工具。教师们也可能更习惯于 Microsoft Windows,该系统已经主导了市场;他们对 Linux 可能不太熟悉。

II. 使用树莓派的教学优势

由于最新的树莓派3配备了四核ARM处理器,学生现在可以实现多线程并测量最高达四倍的加速比。多线程正成为计算机工程和计算机科学课程中必不可少的一部分。例如, ACM/IEEE 2016计算机工程课程指南建议在操作系统课程中涵盖并发和多线程内容[3]。事实上,所有操作系统主题(如进程、线程、并发、死锁等)都可以由学生在树莓派3上实现。

学生可以安装并管理自己的Linux。学生能够接触到启动过程,并可自行管理操作系统。支持的操作系统包括:

  • Raspbian 带默认桌面环境
  • Ubuntu MATE,具有快速用户界面的桌面
  • Ubuntu Core:一种适用于嵌入式系统和物联网设备的轻量级操作系统
  • RISC OS,这是一种简单的操作系统(比Linux更简单),可能适合操作系统课程进行学习和修改。

Raspbian 作为一种 Linux 操作系统,其本身并不是实时操作系统(RTOS),但学生可以开发嵌入式实时操作系统(RTOS)并将其与树莓派的通用输入输出(GPIO)进行连接。通用输入输出(GPIO)支持 I2C 和 SPI 等通信方式以及串行通信。这对于移动设备、物联网、机器人技术和自动化非常有用。在多核处理器上实现多线程并与通用输入输出(GPIO)连接,使树莓派3成为一个功能强大的嵌入式平台。

此外,对游戏和多线程感兴趣的学生可以使用树莓派的小型图形处理器(GPU)进行图形和动画处理。

III. 校园企业的挑战

如今,大多数计算机科学和电气与计算机工程专业的学生都拥有一台笔记本电脑,并将其作为主要计算机使用。因此,这些学生必须通过网络连接从笔记本电脑访问他们的树莓派,而不是直接访问。直接访问树莓派意味着将HDMI显示器、键盘和鼠标直接连接到树莓派。而笔记本电脑通常无法为树莓派这样的外部设备提供显示和键盘支持。

计算机实验室可以为学生的树莓派提供显示器,但这种选择限制了他们在实验时间之外进行编程的能力,例如在教室或宿舍中。

尽管使用个人网络路由器在家庭网络中访问单个树莓派很容易实现,但在安全校园网络中访问树莓派则面临多个挑战:

A. 查找树莓派的IP地址

为了通过网络连接到树莓派,学生必须知道其IP地址。

在提供动态主机配置协议服务的校园网络中,IP地址可能会发生变化,甚至每次新的连接会话都可能不同。

当然,连接后很容易获取IP地址,但在每次建立连接之前都需要IP地址。

树莓派组织网站建议使用远程系统上的“nmap”(网络映射工具)命令工具扫描子网络,查找带有树莓派名称的设备以找到其IP地址。然而,在企业网络(例如我们的校园网络)中,动态主机配置协议客户端被分配了通用名称,例如 vlan‐101,并且这些名称会随着每个连接的设备而变化。因此,nmap命令在我们校园以及其他具有类似网络结构的环境中将无法使用。

我发现让学生每次都能可靠地找到IP地址的最佳方法是:让树莓派在建立网络连接后,通过电子邮件将其IP地址发送给所有者。这种发送电子邮件的方法很简单,首先需要安装并配置ssmtp工具,以便树莓派能够使用电子邮件。请通过编辑/etc/ssmtp/ssmtp.conf文件来配置ssmtp,填入你创建的一个虚拟用户账户信息(例如Gmail账户),如图1所示:

示意图0

配置ssmtp后,需要修改在Linux启动过程结束时运行的“/etc/rc.local”脚本,以调用发送电子邮件的脚本。

示意图1 . 修改后的rc.local文件,用于在启动过程结束时调用电子邮件功能。

最后一步是安装一个实际发送电子邮件的shell脚本。

示意图2 。用于发送主题为“树莓派连接”且包含IP地址的电子邮件的脚本。

B. Wi-Fi证书

树莓派3在校园企业网络中的另一个挑战是,其内置 Wi‐Fi需要一个公开证书。与家庭或公共Wi‐Fi不同,企业 Wi‐Fi需要一个商业操作系统可以自动下载的公开证书。然而,对于树莓派上的Raspbian,该证书必须手动安装。你需要向校园网络管理员咨询具体细节。

IV. 学生的动机

当我首次在操作系统课程中引入树莓派时,我感觉到学生对编程项目的积极性比之前学期更高。选修树莓派操作系统课程的学生人数也略有增加。我与三名通常不愿将操作系统课程作为选修课的电气工程专业学生交谈后发现,他们选修这门课程的主要原因是想学习如何为树莓派编程。

为了量化学生的学习动机和积极性,我在学期末进行了一项简短的调查。以下是关于在操作系统课程中使用树莓派的调查结果:

问题 回答人数 平均答案(评分范围0到5)
您对使用树莓派的好奇心 15 4.63
您购买树莓派2或树莓派3的热情 15 4.27
您购买额外配件的积极性 15 3.77
树莓派在应用概念方面的实用性(如并发、死锁、进程和线程) 15 4.40
树莓派如何促进你的编程和DIY的兴趣 15 4.47

关于课程结束后树莓派的未来使用,我向学生提出了以下问题:

问题 回答人数 平均答案(评分范围0到5)
将来,你有多大可能制作一些涉及树莓派的东西? 15 4.67

为了更具体地了解学生未来可能使用的硬件和软件功能,调查提出了以下问题:

在将来,你会使用哪些树莓派功能?(可多选)

  • HDMI 显示接口:11人
  • 通用输入输出引脚:12人
  • 声音:8人
  • 相机接口:6人
  • 传感器,例如温度、压力、陀螺仪等:13人
  • 其他(游戏手柄):1人

我询问了学生未来可能开发的软件应用类型:

在将来,你会用C语言创建什么类型的软件用于树莓派?(可多选)

  • 3D图形:4人
  • 游戏和娱乐:10人
  • 家庭自动化:14人
  • 人工智能和模式识别:8人
  • 其他:0人

该调查询问了学生在Linux方面的专业水平:

问题 回答人数 平均答案(评分范围0到5)
您的专业知识水平如何(课程开始前的Linux)? 15 1.53
将来,你认为Linux专业知识有多有用? 15 4.07

上表显示,大多数学生在进入课程时对Linux的掌握水平较低。然而,他们中的大多数人认为未来Linux对他们会有用,这支持了在操作系统课程中使用树莓派上的Linux。

最后,学生在调查结束时留下了一些总体评论:

  • 我非常享受使用树莓派的动手实践体验
  • Pi 我学到了大量关于C语言和Linux的知识。这门课程很有帮助。
  • 我认为通过树莓派获得一些动手实践经验非常棒
  • 我真的很喜欢使用树莓派。能够更深入地学习Linux以及操作系统方面的知识,感觉非常好。
  • 很喜欢这门课程!

V. 结论与未来方向

尽管树莓派在大学校园的DIY项目和创客空间中很受欢迎,但我并未发现其在操作系统课程中有太多应用。

本文分享了采用树莓派2和3作为教授操作系统概念平台的经验。树莓派3拥有四核处理器,其Linux操作系统可用于讲解并发和多线程概念,这些是操作系统课程中的核心内容。学生拥有自己的树莓派后,可以利用Linux开源系统来实验开发和对接自己的操作系统模块。通过使用树莓派 GPIO 和通信功能,学生还可以尝试实时操作系统(RTOS)的实验。通过企业网络访问树莓派会带来一些挑战,本文也提出了相应的解决方案。最后,我展示了来自我的操作系统课程的一项调查,结果显示学生不仅对课程本身更加兴奋和积极,也对树莓派未来的使用表现出更高的兴趣。

未来,我希望开发更多能够利用树莓派的图形编程练习图形处理器(GPU)。我还希望创建更多利用树莓派作为嵌入式平台的练习。我认为嵌入式系统与图形的结合将使树莓派成为计算机工程和计算机科学学生更具吸引力的平台。

更多推荐