OSWALD 项目

作者:Victor Kuechler

计算机科学(CS)教育,在一段时间以来,一直被指责为过时,并且未能抓住下一代领导者和创新者的心。重燃 1970 年代和 1980 年代黑客文化的先锋精神和兴奋感,需要在鼓励实验和协作的环境中,使用灵活且易于访问的开放硬件和软件。尽管软件社区在构建和共享此类平台方面有着悠久的历史,但开放和灵活的硬件平台却寥寥无几。俄勒冈州立大学开发了俄勒冈州立无线主动学习设备(OSWALD),以帮助弥合这一差距。OSWALD 是一款开放的、基于 Linux 的超移动个人电脑,它融合了当今许多新技术,并让学生和爱好者完全访问其硬件和软件。本文基于与 OSWALD 开发团队的讨论,简要概述了该平台,并探讨了通过开源重新塑造计算机科学所汲取的经验教训。

The OSWALD Project

位于俄勒冈州立大学纪念联盟广场的 OSWALD。手持 OSWALD 的是帕特里克·范彻,俄勒冈州立大学新媒体传播专业的学生。(摄影师:维克多·库克勒)

The OSWALD Project

位于俄勒冈州立大学杰斐逊街科瓦利斯俄勒冈州的 OSWALD(摄影师:维克多·库克勒)

The OSWALD Project

OSWALD 和 OSWALD 用户指南 (摄影师:维克多·库克勒)

开源与计算机科学教育的现状

当今 CS 教育工作者面临的最令人沮丧的挑战之一是,让下一代学生相信在计算领域仍然存在创新和做出改变的空间。随着计算技术的进步及其在生活各个方面的普及,许多有抱负的学生认为计算是“一个已解决的问题”,创新和做出重大贡献的日子已经过去。我们是我们自己成功的受害者。廉价硬件和精良应用程序的迅速普及,消除了许多人学习计算机科学的最令人信服的原因之一:满足我们自身需求的需求。因此,CS 的入学人数已经下降了十多年。

在许多方面,CS 课程未能跟上变化,这并没有帮助。我在这里指的是核心课程,而不是选修课或高级课程,在这些课程中,我们经常看到更丰富和最新的主题。在过去的 15 年里,核心课程几乎没有变化,除了编程语言的选择。公平地说,CS 的知识体系一直在大幅增长,基础知识仍然是基础,但学术界未能确保这个核心知识对当前和未来的学生保持相关性和可见性。

开源为我们提供了一个独特的机会来帮助我们弥合这一差距。在题为“21 世纪的计算机科学教育”的文章中,前 ACM 主席、加州大学伯克利分校帕迪计算机科学教授 David A. Patterson 解释说,开源为课堂注入现实主义和相关性提供了独特的机会。Patterson 的一个遗憾是,学生们很容易在没有真正接触计算的情况下完成本科教育。学生们很少阅读别人的代码,而代码共享通常等同于作弊。学生们可能看到的最大代码库是他们自己在 6-12 个月内编写的几千行代码,最多有五六个其他学生参与。这段代码不会进化或维护。很可能,它会在课程结束后立即被丢弃。开源允许教育工作者改变这种动态,打开一扇通往混乱而复杂,但又真实的软件开发世界的窗口。这是一个由许多人设计和编写代码的地方,并且所有人都可获得所需的上下文、元数据、讨论和协作。对于教育工作者来说,这是一个独特的资源,可以为学生提供学习真实技能的宝贵机会。俄勒冈州立大学一直忙于开发以开源为中心的的课程,并且意识到如何驾驭有时令人沮丧的 waters。

卡洛斯·詹森博士是俄勒冈州立大学的助理教授,也是这个项目的幕后推手,他解释说:

学生们不想重新发明轮子,并且可能会被轻易获得的软件的数量和质量吓倒。我们中的许多人通过编写旨在满足其他软件无法满足的某些需求的小程序来学习编程。我们中的一些人通过编写我们的同学也觉得有用并会传播的东西而获得了荣耀。今天,很有可能已经有一个应用程序可以满足大多数需求,学生们通常认为加入大型开源社区是他们在计算领域做出改变的唯一选择。对于一个正在学习编码的人来说,这可能是一个令人生畏和望而却步的前景,因此,必须在正确的上下文中引入开源。

OSWALD

为了忠实于这种开源模式,OSWALD 开发团队决定采用这种模式并将其应用于硬件和软件。对于学生来说,要通过开源学习,重要的是将其扩展到他们使用的硬件平台,而这仍然出奇地困难。

OSWALD 是一款手持式超移动 PC,旨在让学生能够轻松访问和负担得起,同时融入移动设备市场中看到的许多新技术。OSWALD 是一个开放平台,旨在为学生项目打开创意空间。凭借其相对新颖的外形尺寸,学生们有机会再次探索和突破计算的边界,并通过触摸屏和加速度计等硬件探索当代交互技术。该设备经过精心设计,在功率和性能与成本之间取得平衡,相当于一本大学教科书。

我们可以鼓励使用运行开源软件的上网本。这些机器的价格点和功能使其成为完整笔记本电脑的诱人替代品。出于这个原因,外形尺寸对我们很重要。该设备是一种辅助计算设备,而不是台式机或笔记本电脑的替代品。学生们会小心对待他们的主要计算设备;这是他们存储媒体和工作的地方。因此,主要计算平台不是我们期望看到大量实验的地方。为此外形尺寸定制的软件相对较少,这对 OSWALD 来说是一个好处。学生可能会创建或移植一个有趣的软件,并与另一个会欣赏它的学生分享。考虑到这一点,学生们将有一个很长的期望功能列表要带到该平台,并且有动力创建更好的软件。

构建像 OSWALD 这样的开放平台的最大挑战是与其制造相关的成本,尤其是在小规模生产的情况下。由于这是一个大学项目,因此这些设备基本上是为了学生自己的消费而制造的。例如,尽管不乏可以组装和测试这些设备的公司,但这些设备是由本科生制造的。这意味着将会有积极和消极的结果。会存在质量问题,并且设备组装需要更长的时间,但是有相当多的大学新生和二年级学生正在使用这些设备,并且在此过程中学习并获得使用计算机硬件的信心。电气工程和计算机科学专业的本科生,也是首席硬件开发人员 Ben Goska 详细阐述说:“我们一次构建运行只制造 300 台 OSWALD。与开发人员交谈很棘手,因为大多数制造商都习惯了数千台的数量。我们正在手工构建这些设备。”

硬件也没有像商业支持那样优化,但是有意地存在相当多的冗余。正如 Jensen 博士解释的那样:

我是一名用户界面研究员。我想做的是使用这个设备来帮助学生理解不同界面技术之间的权衡。当您选择手机或移动设备时,通常会为您选择一种交互方法。对于 iPhone,一切都是触摸式的。除了触摸屏幕之外,没有其他方法可以做任何事情。这是一个非常直观、流畅的界面,但在某些情况下,这只是一个愚蠢的想法。对于某些应用程序,拥有一个单独的触摸区域、一个摇杆开关或一个操纵杆更有意义。我们提供了所有这些,因为我想做的一部分是拥有一个设备,让学生可以尝试计算的所有方面,包括界面。这就是其灵活性的原因。这只是一个例子,说明对于非常特定类型的课程或课程,您可以如何利用这种类型的灵活性。即使我们没有将所有三个功能都内置到设备中,我也可以通过 USB 端口插入鼠标或操纵杆,基本上任何东西,这将给我带来这种灵活性,然后学生可以学习它们的优点和缺点。

在大学层面,廉价且开放的嵌入式计算平台在多个方面都很有价值。在俄勒冈州立大学,物理系已经拆卸了 OSWALD,并用它们来控制科学仪器。机器人俱乐部使用 OSWALD 板来控制他们的火星探测器和飞行器。OSWALD 比笔记本电脑更坚固;它有一个固态硬盘,这使其经久耐用。Jensen 博士解释说:

我们设想,随着我们的发展,人们将拿走其中一些设备,将它们拆开并改造成他们需要的任何东西,无论是迷你 Web 服务器、文件服务器、媒体服务器,还是嵌入到其他东西中。它有足够的处理能力来做到这一点,并且它对能源的需求非常低,这使其非常适合嵌入到许多不同的应用程序中。它是您家庭市场的通用计算解决方案。

OSWALD 规格

软件层

  • RADIX:使用 OpenEmbedded 创建的 Linux 自定义发行版。

  • Matchbox:一个轻量级、可主题化的窗口管理器,专为掌上电脑设计,为 OSWALD 提供 GUI 框架和环境 (matchbox-project.org/overview.html)。

  • JamVM:一个小型且符合规范的 Java 虚拟机 (jamvm.sourceforge.net)。

  • Leafpad:一个简单的基于 GTK+ 的文本编辑器 (tarot.freeshell.org/leafpad)。

  • ePDFView:一个轻量级的 PDF 查看器 (trac.emma-soft.com/epdfview)。

  • GPicView:一个轻量级的基于 GTK+ 的图像查看器,内存使用率低 (http://lxde.sourceforge.net/gpicview"/>)。

  • PCManFM:一个轻量级的选项卡式文件管理器,用于基本的图形文件操作 (pcmanfm.sourceforge.net)。

  • Xournal:一个使用 OSWALD 触摸屏进行笔记和草图绘制的应用程序 (xournal.sourceforge.net)。

  • MPlayer:一个适用于 Linux 的媒体播放器,可以播放大多数电影和音乐 (www.mplayerhq.hu/design7/news.html)。

硬件规格和功能

尺寸和重量

  • 高度:80 毫米(3.2 英寸)。

  • 宽度:150 毫米(5.9 英寸)。

  • 深度:25 毫米(10 英寸)。

  • 重量:210 克(7.4 盎司)。

核心系统

  • 德州仪器 OMAP3530 应用处理器 500MHz ARM Cortex-A8 核心、NEON SIMD 协处理器、430MHz TMS320C64x+ DSP 核心、SGX530 2D/3D 图形处理器(OpenGL ES 2.0 兼容)。

  • 128MB DDR-SDRAM (266MHz)。

  • 256MB NAND 闪存。

显示

  • 3.5 英寸电阻式触摸屏 LCD。

  • QVGA 分辨率 (320x240) 24 位彩色。

  • HD 分辨率 (1024:768) 的 DVI 输出。

音频

  • 德州仪器 TLV320AIC33 立体声音频编解码器,24 位分辨率,96kHz 采样率,3-D/低音/高音/EQ/去加重效果。

  • 扬声器。

无线

  • IEEE 802.15.4 ZigBee 无线。

按钮和传感器

  • 触摸板。

  • 三轴加速度计。

  • 五向摇杆开关(上、下、左、右和中心)。

  • 六个通用按钮。

  • 麦克风。

连接器和 IO

  • 3.5 毫米立体声耳机端口。

  • HDMI(不完全兼容,只是作为一个小型 DVI 端口)。

  • 安全数字卡插槽(兼容 SDIO 和 SDHC)。

  • 两个全速 USB 主机端口(USB A 型)。

电源

  • 1300mAh 聚合物锂离子电池(~7 小时电池续航时间)。

  • 通过 USB 或电源适配器充电。

有关更多信息,请访问 beaversource.oregonstate.edu/projects/cspfl

为什么选择 Linux?

在软件方面,操作系统的选择要明确得多。Linux 是一个真正的操作系统;它不是玩具。学生们认真对待它,并看到了深入学习 Linux 的长期好处。学生们还可以从加入 Linux 丰富的开放社区中受益,新手可以在这里找到指导和丰富的资源。从开发的角度来看,Linux 支持多种类型的软件和设备,因此简化了开发。不利的一面是,Linux 在掌上设备上的开发很少,但这也就意味着学生仍然可以以相对适度的努力做出有意义的贡献。

拥抱 Linux 也使 OSWALD 与这里众多的媒体播放器设备区分开来,例如 iPod Touch。尽管许多这些平台提供了更时尚的设计和有吸引力的价格点,但为这些设备进行开发却很困难,因为供应商要么锁定他们的平台,要么应用严格的 IP 限制。考虑到这一点,OSWALD 的设计具有支持各种课程所需的灵活性。两个 USB 端口对于满足此设计要求至关重要。此组件在任意数量的方向上扩展了平台,这是当前任何媒体播放器平台都不允许您做的事情。以 Linux 为基础,如果有人为其编写了驱动程序,则 OSWALD 可以支持它。这在课程设计方面具有很大的灵活性。在大学一年级课程中,学生使用 OSWALD 来控制小型机器人和传感器。在图形课程中,USB 摄像头可以实现简单的图像识别,内置网络允许学生设计 P2P 协议作为其网络课程的一部分。

OSWALD 的未来

一所大学设计像 OSWALD 这样的 UMPC 依赖于硬件和软件合作伙伴的仁慈和支持。为了跟上技术变革的步伐,OSWALD 开发人员需要与 Linux 社区合作,以确保他们的更改和需求得到满足。电气和计算机工程专业的研究生,也是 OSWALD 的首席软件开发人员 Tim Harder 这样说:

在开源中,您有很多更新,因为很多人都在从事不同的事情。目前,我们使用 OpenEmbedded 来创建创建自定义 Linux 发行版所需的 BitBake 文件,但帮助我们前进的一个重要修复是找到一个具有丰富贡献的开发环境。我们希望拥有灵活性以及像 Gentoo 这样的东西提供的高可配置性。Gentoo 为我们打包了更多软件,我们可以利用这一点。

迁移到更大的开发社区(例如 Gentoo)将在未来最大限度地降低风险。

在硬件方面,幸运之神眷顾,许多芯片公司为我们提供了积极的支持,他们免费提供芯片、以降低的价格提供芯片或补贴构建过程。这些公司包括德州仪器、泰克、英特尔公司和国家科学基金会。他们对该设备的支持来自俄勒冈州立大学的信念,即 OSWALD 将有助于培养更好的工程师和程序员,但也因为这些合作伙伴相信对接受过 UMPC 和嵌入式平台开发培训的人员存在巨大的未来需求。

目前,OSWALD 的最大挑战是扩大该计划。为一个小社区制造硬件既昂贵又冒险,而且长期成本可能会超过收益。因此,扩大对其他大学甚至爱好者的需求是该设备成功的关键。目前,OSWALD 仅供学生和少数朋友使用。像许多大学一样,俄勒冈州立大学没有为大规模制造或分销做好准备。作为一个开源社区,它将不得不思考如何在未来支持这些类型的教育工作。

致谢

感谢 Ben Goska、Tim Harder、泰克、德州仪器、英特尔和国家科学基金会。

Victor Kuechler 是俄勒冈州立大学英语文学和写作专业的本科生。他在电气工程和计算机科学系担任技术作家。

卡洛斯·詹森博士是俄勒冈州立大学电气工程和计算机科学学院的助理教授,他在那里领导人机交互研究小组。他的研究重点是可用的隐私和安全、开源系统和开源开发。

加载 Disqus 评论