译至:http://www.advogato.org/article/803.html

译者按:这篇采访的时间很早,但有助于你了解Xenomai相关的背景。

这是对菲利普格鲁姆,ADEOS项目的共同领导者的采访。

ADEOS的目的是提供一个灵活的环境,在多个操作系统之间共享硬件资源,或是在一个单一的操作系统实现多个实例。
访谈
GNA:你好,你能给ADEOS两句让你的老奶奶都能理解的简单的说明吗?ADEOS的目标受众是什么?
菲利普:比方说,你想编写自己的内核,旨在提供非常具体的服务,但是你不想花时间去实现一套建立一个完整的O / S所需的常见任务,这是因为:1),它会转移你的主要目标,你本来是着眼于一个特定的技术领域; 2)其他内核黑客们可能比你更胜任这个工作。可以通过运行在和Linux内核相同的硬件环境上的kernel来解决该问题,它会为你管理繁琐的工作,如引导过程,存储管理等等。为此,你必须找到一个分享一些重要的硬件资源的有效方式,来使这两个内核可以在同一台机器并行运行,并提供了一种对各自应用的最适应服务。ADEOS就是这样一个共享层。
ADEOS的一个直接的应用是它在和Linux的相同硬件上并行运行实时系统,由于实时应用相对于硬件中断处理比普通的Linux的优先级更高,实时机器必须始终在Linux内核之前有机会处理任何触发的中断,从而使实时处理能尽快处理。实时意味着在处理事件时是确定的,ADEOS给RTOS提供了一个方便的层来实现实时性。在这个意义上,ADEOS是一个实时系统推动者。
GNA:介绍一下你自己,有多少开发人员经常给ADEOS项目做贡献,这个项目是如何推进的?
菲利普:我39岁,为一个开放源码软件服务和支持的公司Openwide工作,我写了大部分的ADEOS的代码库,除了2.4内核的PPC移植,它主要由Wolfgang Grandegger完成。其他几个人给我们提供了具体的bug修复和意见反馈。
GNA:这个项目是什么时候启动的,为什么要启动?
菲利普:这个项目有两个不同的阶段,第一个阶段可以追溯到2000年,当时卡里姆发表了名为“自适应域环境的操作系统”的论文,该论文描述了一个简单而聪明的方案上在一个硬件上的多个内核间共享相同的硬件资源,然后他举例说明了在x86硬件上通过“管道”的抽象方式来共享中断,根据不同内核在管道中的优先级来依次分发中断。因此,这篇论文提出了一种新的中断优先级方式使基于Linux内核的实时扩展可以不利用一些专有的实时操作系统的专利方法。
两年后,当时我正在开发一个基于Linux的GPL的实时扩展名为Xenomai,围绕该软件专利的范围的FUD已经变得如此激烈,任何提交不侵犯专利的GPL的实时代码似乎变得不可能。这是软件专利的大问题:他们被授予给相信他们先“发明”专利的那些人而他们不过是弄“明白”专利罢了,因此这些人要么是玩世不恭要么是一无所知,这足以让你感到紧张。
为了应对这种掠夺性的威胁,我决定去实现卡里姆的ADEOS,让我的基于GPL的Xenomai可以利用它,并最终不会被专利所阻碍。作为其中的一个结果,Linux 2.4.18的第一个ADEOS补丁已经于2002年6月6日发布。
GNA!那这后事情进展的如何?你的计划是什么?你如何看待ADEOS的未来?
菲利普:首次发布的几个月后,ADEOS已经被RTAI项目,一个著名的Linux实时扩展,所采用。你可以想像,这一举动显著地推动了ADEOS的开发。很明显,有一个庞大的用户基础来测试你的软件将缩短它达到成熟的时间。
此后,对客户端的内核的优先级中断管道的基本方案不断得到改进,并且还扩展到其他资源,比如陷阱,异常和其他任何感兴趣的源于内核的事件。
从第一天开始,这个想法就是在一个无缝的方式下虚拟化关键资源,提供一个架构无关的层,在这个层上可以和Linux并行运行的独立内核,除了x86,ADEOS已经被移植到IA64,有/没有MMU的ARM和PPC,我们也移植ADEOS到2.6内核中,这是目前我们的主要发展重点。
作为一个实时系统的实现者,ADEOS目前提供了在同一硬件上运行实时操作系统以及Linux的所需要的核心服务,更重要的是,目前ADEOS的进化为下一个被称为“融合”的RTAI技术所推动。通过这种方式,我们想要整合vanilla Linux和它的RTAI扩展到共生水平,给普通的Linux任务提供严格的实时保证。
未来的方向,包括将它移植到其他CPU架构,同时还致力于更好的组件化的代码库,为此,我打算将基本中断管道核心作为一个独立的组成部分,给只关心原始的中断处理服务的人使用。
GNA:你为ADEOS选择什么许可证,为什么?
菲利普:是GPL,因为它是一个自由软件。另外,也是因为ADEOS的实现了解并使用了Linux内核的内部操作,所以它遵守内核的许可证。
GNA:你能不能说一些ADEOS在真实世界的使用情况?
菲利普:对于冰山的可见部分,ADEOS最突出的用户是RTAI项目,该项目在GNU/Linux环境充分利用其管道技术来实现一个成熟的RTOS。RTAI已经有全球范围内的很多用户,HYADES 项目也贡献了ADEOS的安腾相关的移植。
GNA:你有没有产业界或机构的支持,如果有,是怎么一个情况?
菲利普:我们刚才谈到了我们是HYADES项目组合的成员,泰利斯集团已出资IA64的移植,而最近,DENX软件工程慷慨地为我们提供了PPC移植的测试平台。
不过,目前还没有持续的工业或机构对ADEOS项目的赞助。
GNA:您是否在寻找贡献,如果是的话,什么样的贡献可用于该项目?
菲利普:我想这每一个自由软件项目正在寻求积极的贡献者。首先,我们想在更多的架构上移植ADEOS,我们手头上的硬件非常有限,所以我们主要是靠一些机会,像人们给我们一些特定的硬件,或是他们自己移植。接下来,我们希望拥有核心的软件开发技能的人去尽可能优化的中断管道,尤其是对那些内存带宽低的非x86架构。我确信,在将来后者的问题是很重要的。
GNA:你用什么工具开发ADEOS,为什么?
菲利普:就我而言,我的首选工具是我的大脑,顺便说一句,这或许可以解释为什么在过去的两年中我们提交了超过200个补丁用于修复以前版本中的bug或限制:○),我个人希望能够使用任何现有的调试器开发ADEOS,但是这在最需要的地方却无法选择:当错误在中断路径的某处时,调试器通常无法使用。现在的代码库是稳定的,我比较倾向于用特殊的手法来解决某一架构的中断延迟问题,因为调试器无法使用,至少在处理数百微秒时太麻烦。正如你所看到的,在我的工具集里没有什么特别的。
GNA:还有别的吗?
菲利普:享受乐趣。

[开源名人访谈录] Philippe Gerum的更多相关文章

  1. xenomai内核解析之嵌入式实时linux概述

    Linux系统作为一个GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循GPL协议,开放所有系统源代码,非常易于裁剪.更重要的是,与其他开源的GPOS或RTOS相比,Linux系统支持多 ...

  2. 在linux跑xenomai vkworks skin的测试

    1 代码 ############################################################## /* * Copyright (C) 2001,2002,200 ...

  3. 了解Linux实时内核

    了解Xenomai过程中,对现阶段的RTOS进行总结如下: 把现阶段的RTOS分成两个阵营: 非Linux阵营:VxWorks,RTEMS Linux阵营 :RT-linux,Preempt-rt,W ...

  4. xenomai内核解析之xenomai的组成结构

    @ 目录 一.xenomai 3 二.xenomai3 结构 这是第二篇笔记. 一.xenomai 3 从xenomai3开始支持两种方式构建linux实时系统,分别是cobalt 和 mercury ...

  5. 《Node.js实战(双色)》作者之一——吴中骅访谈录

  6. C++ 开源库

    1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5.C++各大有名库的介绍— ...

  7. 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard

    目录 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard 正文 对我的启发 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard Sanyam Bhutani 是 M ...

  8. 【硅谷问道】Chris Lattner 访谈录(下)

    [硅谷问道]Chris Lattner 访谈录(下) Chris Lattner 访谈录(下) 话题 Swift 在 Server 和操作系统方面有着怎样的雄心抱负? Swift 与 Objectiv ...

  9. 【硅谷问道】Chris Lattner 访谈录(上)

    [硅谷问道]Chris Lattner 访谈录(上) 话题 Chris Lattner 是谁? Xcode 的编译器 LLVM 背后有怎样的故事? Swift 诞生的前世今生,封闭的苹果为何要拥抱开源 ...

随机推荐

  1. JS轮播图(网易云轮播图)

    JS 轮播图 写在前面 最聪明的人是最不愿浪费时间的人.--但丁 实现功能 图片自动切换 鼠标移入停止自动播放,显示按钮 点击按钮,实现前后翻 鼠标移入小圆圈,可以跳转到对应图片 点击左右两侧图片部分 ...

  2. MongoDB(8)- 文档删除操作

    删除方法 db.collection.deleteOne() 删除单条文档 db.collection.deleteMany() 删除多条文档 db.collection.remove() 删除单条或 ...

  3. leetcode -- 二进制

    leetcode -- 二进制 在学习编程语言的运算符时,大部分语言都会有与,或等二进制运算符,我在初期学习这些运算符的时候,并没有重点留意这些运算符,并且在后续的业务代码中也没有频繁的使用过,直到后 ...

  4. GO学习-(7) Go语言基础之流程控制

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...

  5. springboot中引入zookeeper,生成 配置类

    1.application.properties zookeeper.address=@mvn.zookeeper.address@ zookeeper.namespace=@mvn.zookeepe ...

  6. 如何使用TVM Pass红外线

    如何使用TVM Pass红外线 随着Relay / tir中优化遍数的增加,执行并手动维护其依赖关系变得很棘手.引入了一个基础结构来管理优化过程,将其应用于TVM堆栈中IR的不同层. Relay / ...

  7. 如何挑选深度学习 GPU?

    如何挑选深度学习 GPU? 深度学习是一个对计算有着大量需求的领域,从一定程度上来说,GPU的选择将从根本上决定深度学习的体验.因此,选择购买合适的GPU是一项非常重要的决策.那么2020年,如何选择 ...

  8. TensorFlow反向传播算法实现

    TensorFlow反向传播算法实现 反向传播(BPN)算法是神经网络中研究最多.使用最多的算法之一,用于将输出层中的误差传播到隐藏层的神经元,然后用于更新权重. 学习 BPN 算法可以分成以下两个过 ...

  9. jmeter设置成中文显示

    meter默认语言设置: 1.临时设置: 进入options -- Choose Language -- 选择中文简体,设置后语言切换成中文,重启失效 2.永久设置:进入jmeter目录下的bin目录 ...

  10. 菜鸟刷题路(随缘刷题):leetcode88

    lc88 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i = m - 1, j = ...