|
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: 时事通讯 69 期时事通讯 69 期by Z98 on 2010-03-03 陷阱处置处置硬件时使用低层沟通的其中一个方法是中断和异常。这样仍然需要编写代码以便应对这些事情并且这个代码就称之为陷阱处置。在 ReactOS 原先的陷阱处置代码是纯组合,并且某个程度上是无可避免是因为有绝对的必要执行那些操作是 C 语言并没有为其提供一个方法。这些操作就包括操作堆栈并且读取以及写入特定的寄存器,并且这是在定义上必须针对特定平台并且包括它们的话将会减少 C 跨平台的天性。作为一个努力要移植 ReactOS 到ARM 平台,ARM 团队为此开始重新编写代码以便至少在 C 里提供一个非常薄的抽象层,然后把所有特定于某个架构的组件使用组合内联函数来编写。组合内联函数基本是个特定于编译器的宏以便表示哪些组合命令是要在 C 代码中使用。这将会帮助提升可维护性和可读性并且导致数个错误在这个过程中基于修正。在 ARM 移植的部分里,这并不是绝对需要但是 ARM 团队却决定这么做是因为为本工程整体上的长期利益而出发的。不幸的,使用了 GCC 组合内联函数却导致 MSVC 无法编译这些代码。此前组合文件至少可以编译成二进制对象,从而让 MSVC 可以处理它们,可是随着转移到 C 代码时却将这个可能变得不行了。这里,Timo Kreuzer 前来并更改这些组合内联函数回到原有的组合语言。这看似是轻微的向后倒退,但是 C 框架仍然保留并且唯一更改的是所使用的 GCC 组合内联函数。在这个过程中 Timo 也在组合代码里修正了几个部分以及标记设置并且转换那些从 GCC 特定方法的函数参数在寄存器里传输到跨平台的方法。理论上,这甚至会允许使用微软的编汇程序来编译这些组合语言。 topACPIACPI,全名为 Advanced Configuration and Power Interface 是处理计算机电源管理特征的标准。ReactOS 支持这个标准是原先由 Samuel Serapion 发起的,他在表面上也是另一位时事通讯的撰稿员和对 X64 移植的贡献者。Sam 从这个标准委员所提供的 ACPI 实现参考里移植到 ReactOS。可是,由于一个问题在硬件 ID 是如何在代码中呈现,这导致他的代码不能运作。Cameron Gutman 近期里再次看看这个代码并找到问题的根源,从而现在的 ACPI 组件能够运作了。可是由于在 ReactOS 的代码仍然还未完成,因此有几个ACPI 所生成的 I/O 要求包 (IRP) 还不能够处理。尽管如此,Cameron 已经解决了重大的阻碍性错误并使得 Sam 的初始杰作真的能够运作了。 topWindows 驱动程序标题在过去的日子里,那里有少许的反复来回并且与 Mingw64 工程合作的经历,可是大约五天前 Kai Tietz 主动找上了 Amine Khaldi,他是一位错误报告的辩论者,并询问 ReactOS 是否兴趣合作于 Windows 驱动程序的标题。在大部分里 ReactOS 的标题是正确或者或多或少完整的,尽管稍微有点不整齐。Amine 和 Kai 希望正确的分开在标题的信息并提供正确组织的。这些杰作将会在分支里进行以避免在主干里出现重大的妨碍。Timo Kreuzer 和 Aleksey Bragin 也附和这个活动并且 Timo 建议自动生成一套驱动程序的公共标题,这就像微软如何在其 SDK 和 WDK 里生成标题。那里或许有些时候是需要某些努力使得这些标题能够与 mingw64 兼容,但是最终的结果是做出一个与微软分开的 Windows 驱动程序开发包。在使用 GCC 来构建原生 Windows 的驱动程序仍然有几个问题,多数是在关联结构化异常处理的支持,但是至少这将会是一个开头的。 topReactOS 于 Chemnitz Linux 日数位 ReactOS 团队的成员将会在 Chemnitz Linux 日博览于 3 月 13 日到 3 月 14 日。他们将会在场推广本工程,回答问题并且与开源社区交往。 top |