译至: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. Python数模笔记-StatsModels 统计回归(1)简介

    1.关于 StatsModels statsmodels(http://www.statsmodels.org)是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化. 2.文档 ...

  2. JAVA基础语法-day02

    五.变量.常量.作用域 静态量(类变量)只能写在类中,不能在外面,用static修饰. final修饰的变量为常量. 六.运算符 Math类是一个工具类,用于复杂数学运算,它的构造器被定义成priva ...

  3. java并发编程工具类JUC第一篇:BlockingQueue阻塞队列

    Java BlockingQueue接口java.util.concurrent.BlockingQueue表示一个可以存取元素,并且线程安全的队列.换句话说,当多线程同时从 JavaBlocking ...

  4. FPGA与ASIC:它们之间的区别以及使用哪一种?

    FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...

  5. 尚硅谷Java——宋红康笔记【day11-day18】

    day11 Eclipse中的快捷键: * 1.补全代码的声明:alt + / * 2.快速修复: ctrl + 1 * 3.批量导包:ctrl + shift + o * 4.使用单行注释:ctrl ...

  6. 菜鸟刷题路:剑指 Offer 09. 用两个栈实现队列

    剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的 ...

  7. mybatis——一级缓存、二级缓存

    一.Mybatis缓存 ● MyBatis包含一个非常强大的查询緩存特性,它可以非常方便地定制和配置缓存.绶存可以极大的提升查询效率. ● MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存 ...

  8. mybatis学习——日志工厂

    为什么要使用日志工厂? 我们想一下,我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率?答案是肯定的,如果一个 数据库相关的操作出现了问题,我们就可以根据输出的S ...

  9. Golang Heap 源码剖析

    堆原理解析 堆一般指二叉堆.是使用完全二叉树这种数据结构构建的一种实际应用.通过它的特性,分为最大堆和最小堆两种. 如上图可知,最小堆就是在这颗二叉树中,任何一个节点的值比其所在子树的任意一个节点都要 ...

  10. TCP/IP协议 (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...