首页 |信息 | 社区 | 开发 | ReactOS我的家 |联系我们

  1. 主页
  2. 信息
  3. 社区
  4. 开发
  5. ReactOS我的家
  6. 联系我们

  1. 概况
  2. 参与人员
  3. 论坛
  4. Wiki
  5. 邮件列表
  6. 开发者IRC 聊天频道
  7. 新闻资讯
  8. 博客
  9. 用户FAQ

Community > ReactOS Newsletter Archive > ReactOS Newsletter: 时事通讯 56 期

时事通讯 56 期

by Z98 on 2009-04-09
translated by samuel1991 on 2010-02-06

top

USB


USB 支持在 ReactOS 的历史中就非常的古怪.原先的努力包括从 Linux 里移植 Cromwell USB 堆栈,当中 Aleksey Bragin 开始花了一些时间才能将其开始运作。这个部分最终放弃了以便为另一个第三方工程,由一位中国籍的编程员为 NT4 所开发的 USB 堆栈。可是这个堆栈却不完整又蛮多问题的并且原作者不再维护它后而 Aleksey 就花了一些时间尝试修正它,至少到某个程度上。我们已经破解了一个 USB 鼠标驱动程序可是却无法可靠的运作,由于许多曾经尝试在 ROS 里使用的人都可以作为考证。最近 Aleksey 又吃回头草以便添加 USB 键盘的驱动程序并且考虑应用同样曾在 USB 鼠标驱动程序的破解以便让它在某个程度上能够运作。可是,他决定做出一些幻想的事情并且试图在他的键盘上控制LED(发光二极管)的灯光,这就牵涉到稍微不同的通讯方法而且不只是牵涉到发送击键或者鼠标的滚动。Aleksey 后来发现到 USB 驱动程序居然错误的分析由设备所发送的配置说明并且经过向某位在 Haiku 团队能够对 USB 开发有所见之的人请教后终于解决了问题。巧合的,这也导致USB 鼠标驱动程序不需要破解了。USB 驱动程序本身就依赖着一般的键盘和鼠标驱动程序,也就是说一般的驱动程序必须先载入才到USB 驱动程序。原先在普通驱动程序中支持 USB 设备是由 Hervé Poussineau 所完成的。Aleksey 直接将几个部分组成起来以便做出一个局部运作的系统。

虽然现在 ReactOS 有了 USB 鼠标和键盘驱动程序二者,但是要注意的是这两个驱动程序只为当前 USB 堆栈于 ReactOS 所设计。USB 在 NT5 或者更高则有两个堆栈,PnP(即插即用)和 HID(人机接口装置)并且都是与 ReactOS 完全不同的。当我们可以考虑实现跟随 NT5+ 设计的 USB 驱动程序之前,我们首先需要一个 USB 堆栈能够遵循着 NT5+ 的设计。这通常是为了与第三方驱动程序所兼容,并且可以为人们在 ReactOS 里使用当前的 USB 堆栈提供他们所寄望着 USB 的基础功能。

top

网络


Art Yerkes 和 Cameron Gutman 都在付出很大的努力以便让网络堆栈处在更良好的状态以及实现所缺少的功能。其中一个失败的问题是那些需要 SSL 的网站(一种加密的网站,常见于电子商业网站)将会失败,这是因为内存损坏的问题。一个 IP 地址的数组是被这两个函数,AfdGetPeerName 和 AfdGetSockName 所使用以及维护。Art 深信那些使用SSL 的网站可能在当中之一调用多两次以便确认那些证书,从而揭发了这个错误。当修正了问题后,现在确实可以上那些网站如Gmail (Google 电邮)登录页面以及那些基于保安的理由而依赖 SSL 如 Thunderbird(一个电子邮件客户端,相对是 Outlook)。

Art 和 Cameron 在处理网络代码时与其他人面对了稍微不同的挑战。他们所面对的问题是网络界面在许多层次上算是为过度设计,当多个结构有非常相似的名称并且拥有了稍微不同的成员。所指的例子就比如TDI_ADDRESS_INFO,TDI_ADDRESS_INFORMATION,和TRANSPORT_ADDRESS 数据结构。这一切的最根本推测是有个协议或许会在要求时返回数个地址,并且这是在有网络的系统中不常见。既然这些都是所定义界面的一部分,他们就无法随意更改并且必须仔细阅读代码以确保所使用的数据结构以及成员是妥当的。更混乱的是有时候数据结构的差别并不重要,也就是当中一个可以在某个情况下运作将导致另一个损坏。无论如何,这两人已经安排好自己的工作了。

top

测试基础设施


Christoph von Wittich 终于在一段时期前有了自动化 winetests 运行并且 Alwyn Tan,社区的一位成员也创建了临时图形界面供人观看并且比较各修订版之间的结果。Colin Finck 则处理一个比较长期的方案也包括更多功能。新的网络界面将允许比较高达五个不同的构造或者检视所更改的结果。除此之外,所使用的 buildbot 用来编译以及运行测试的机器也获得提升了。Rosautotest 程序也由 Colin 重新编写,如此一来它能够在ReactOS 崩溃时重新测试。联合了 Stefan Ginsberg 的努力以绕开目前已知能让 ROS 崩溃的问题,我们现在可以大概的肯定 ROS 将会经历所有的测试而非在首个崩溃后停止。如果您想要感受一下测试管理器,它现在就在测试服务器于这个地址


top

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.