坚持了近30年的开源项目,ReactOS终于迈出了兼容Windows Vista的第一步
技术笔记 1 次阅读

坚持了近30年的开源项目,ReactOS终于迈出了兼容Windows Vista的第一步

ReactOS开源项目

坚持了近30年的开源项目,ReactOS终于迈出了兼容Windows Vista的第一步

说实话,看到这个消息的时候我愣了一下。ReactOS——这个想要做Windows开源替代品的项目,居然已经快30年了。

30年是什么概念?我说几个数字你可能就明白了:这个项目1996年启动的,那一年Windows 95刚发布一年,互联网还在用56k猫拨号。

前两天,ReactOS的合并请求里出现了第一个NT6系统调用,名字叫"NtGetCurrentProcessorNumberEx"。功能说白了很简单——就是返回当前线程正在跑的CPU核心编号。但别小看这个看似微不足道的函数,它意味着ReactOS正式敲开了Windows Vista及以上系统的兼容大门。

一个30年的执念

ReactOS的目标一直是做一个能用、兼容Windows应用和驱动的开源操作系统。但这么多年下来,它主要只兼容到Windows NT 5.2架构——也就是Windows XP和Server 2003那一代。

XP多老了?微软2014年就停止支持了。但ReactOS还在这条老路上走了十年,不是不想前进,是NT6的坑太深了。

Windows Vista(NT 6.0)改了非常多底层的东西——驱动模型、安全架构、系统调用接口全变了。ReactOS团队只能靠逆向工程,一行一行代码去猜微软到底做了什么,稍微猜错一点就是蓝屏。

这第一步有多小,就有多不容易

NT6系统调用的第一个函数,为什么挑了个返回CPU编号的?因为简单。但再简单的第一步,也得先把整个NT6的调用框架搭好,包括怎么注册系统服务、怎么处理参数、怎么跟现有的NT5.2架构共存。

ReactOS是个净室工程项目,也就是说开发团队不能看微软的源代码,全靠公开文档和自己逆向。这个项目里有很多人来了又走,有人从20岁写到了40岁,有人学生时代就开始贡献代码,现在孩子都上小学了。

这次的NT6调用虽然只是一个函数,但方向已经明确了。接下来会有更多NT6函数被慢慢加进来,兼容Vista、Windows 7、甚至Windows 10也不是完全不可能的事。

有人问:现在做这事还有意义吗?

毕竟Linux已经统治了服务器,Wine也在稳步推进。但ReactOS的价值在于——它走的是一条完全不同的路。

Linux不是Windows,跑Windows应用全靠Wine翻译。ReactOS是想直接从底层兼容,原生跑Windows驱动和软件。对某些特定场景(比如政府、军工、工控领域),一个开源的Windows兼容系统有非常大的想象空间。

当然,ReactOS离"日常可用"还有很远的路要走。但一个快30年的项目还在迭代,还在往前拱,本身就挺让人敬佩的。

对了,如果你想试试,他们官网有LiveCD可以下载跑一下。但友情提醒:别装在你的主力机上。

分享

评论 (0)

评论通过后显示

暂无评论,来写第一条吧 ✍️