ReactOS 0.4.11 发布,Windows 系统的开源替代方案-程序员宅基地

技术标签: 运维  操作系统  数据结构与算法  

ReactOS 团队发布了 ReactOS 0.4.11 版本,他们表示该版本已完成大量内核方面的工作,这有助于提升系统的整体稳定性。此外,还修复了内核中关于存储的一些关键的 bug,以及对英特尔处理器芯片组的更完整支持,并改进对 Windows 应用程序的兼容性。

ReactOS 是一个基于 Windows NT 架构设计原则的开源操作系统。所有代码都经过重新编写,ReactOS 并不基于 Linux,而且也不包含任何 UNIX 架构。

ReactOS 项目的主要目标就是提供一个与 Windows 环境二进制兼容的操作系统。它能让您的 Windows 应用程序和驱动程序如同在 Windows 上一样运行。此外,由于应用了 Windows 操作系统的外观特性,已经熟悉 Windows 用户界面的用户在使用 ReactOS 时将驾轻就熟。ReactOS 的终极目标是使您能够在感觉不到最终用户体验变化的前提下,使用 ReactOS 来替代 Windows。

ReactOS 运行截图

073550_dvMJ_2720166.png

073550_CIxD_2720166.png

073551_PSRJ_2720166.png073550_0SPG_2720166.png
提供类似 Windows 系统的使用体验

下面看看值得关注的更新亮点:

内核改进

内核,内核是一个包罗万象的术语,事实上它封装的功能所包含的范围也确实非常广泛。举个例子,内核要对文件I/O的可靠性负责,如果此处出现了错误,可能会导致细微的数据遭到损坏,从而导致更严重的磁盘故障(hard crash)。

官方表示,ReactOS 开发者 Pierre Schweitzer 在该版本中修复了缓存控制器对其数据结构的管理,并删除了至少一个使用 ODIN 备份软件备份磁盘分区时,会导致蓝屏的根源。

不过这次内核改进的主题是存储方面的改进,毕竟 ReactOS 所支持的文件系统也已完工。虽然 ReactOS 内部文件系统的驱动程序是 fastfat,但 ReactOS 也依赖第三方驱动程序来支持 BTRFS。因此,当 ReactOS 团队收到了来自用户的反馈,他们便将用户在使用驱动程序时遇到的问题反馈至上游,以帮助进一步改进它。就像 Thomas Faber 在这个版本中改进内存泄漏问题一样。

应用程序的启动和停止

运行应用程序时,系统通常需要依赖于 DLL 形式的函数库,这些互相依赖的 DLL 一般是由加载器(LDR)负责查找和加载。而运行应用程序的基础恰好是正确迭代这些依赖项。

指定这些依赖关系的方式之一需要使用到 manifests,但之前的 ReactOS 版本并不支持 manifests,考虑到许多现代应用程序都在使用 manifests,所以在这个 ReactOS 版本也增加了对 manifests 的支持,因此现在 ReactOS 已经可以启动更多的应用程序,例如 Evernote 5.8.3, Quicktime Player 7.7.9 和 Blender 2.57b 等。

072237_rkzD_2720166.png
在 ReactOS 中运行 Blender 2.57b

ReactOS 0.4.11 系统稳定性方面的改进还包括正确停止应用程序,以释放分配给应用程序的资源。由于之前 ReactOS 无法正确处理 .NET 2.0 应用程序的关闭,常常没有给予足够的时间等待应用退出。而在这个版本中,Giannis Adamopoulos 解决了这个问题,进一步增加了运行 Windows 应用程序的兼容实用性。

更多内容请查看 https://reactos.org/project-news/reactos-0411-released

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33720956/article/details/89688959

智能推荐

java实现打印功能-程序员宅基地

文章浏览阅读7.5w次,点赞22次,收藏75次。前言在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java 提供的打印功能一直都比较弱。实际上最初的 jdk 根本不支持打印,直到 jdk1.1 才引入了很轻量的打印支持。所以,在以前用 Java/Applet/JSP/Servlet 设计的程序中,较复杂的打印都是通过调用 ActiveX/OCX 控件或者 VB/VC 程序来实现的,非常麻烦。实际上,SUN 公司也一直致力于 _java实现打印

关于用Class.forName(“com.mysql.jdbc.Driver”)注册数据库驱动_<% try { // 加载数据库驱动,注册到驱动管理器 class.forname("com.my-程序员宅基地

文章浏览阅读1.5k次。传统的使用jdbc来访问数据库的流程为: Class.forName(“com.mysql.jdbc.Driver”); String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″; Connection con = DriverManager.getConnection(url); Statem_<% try { // 加载数据库驱动,注册到驱动管理器 class.forname("com.mysql.jd</div>

modbus读取保持寄存器实例_modbus读取寄存器数据-程序员宅基地

文章浏览阅读8.4k次,点赞4次,收藏7次。读取103-110的实例,一共读取3个寄存器请求: 03 00 6B 00 0303 :功能码,表示读取保存寄存器006B,十六进制表示107,从107开始往后读取0003,十六进制表示读取3个寄存器响应: 03 06 02 2B 00 00 00 6403 功能码,直接复制请求的06 表示后面的数据有多少个字节..._modbus读取寄存器数据

windows java服务启动脚本_windows java启动脚本-程序员宅基地

文章浏览阅读1k次。start javaw -jar zsfx-api-0.0.1-SNAPSHOT.jarxxx.bat_windows java启动脚本

CTF-web Xman-2018 010 editor 简单使用_010editor底部窗口如何调出来-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏10次。在学msic时候,发现010是一个非常好用的工具,除了是一个查看和修改文件的编译器外,还有很多自带的脚本可以帮助我们辅助分析文件格式 这是他的主界面,可以通过选项改变观察方式在插入点的位置直接输入就可以覆盖原来的数据,点击delet就可以删除前一字节一些基本的查找 删除自然不在话下,就不多说了脚本安装一般可以识别的格式会自动提醒你安装相应的脚本,否则需要自己手动..._010editor底部窗口如何调出来

win7 to win10_windows7 to window 10-程序员宅基地

文章浏览阅读749次。upgrade:https://www.microsoft.com/en-us/software-download/windows10win10 iso download:http://www.iwin10.com/xiazai/826.html_windows7 to window 10

随便推点

再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)-程序员宅基地

文章浏览阅读173次。在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记录的更全面些。 上两次的博文链接:记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)、EntityFramework中的线程安全,又是Dictionary。 首先请大家不要喷我..._entityframework线程安全

vb.net 接口POST方式传参数提交返回值_vb.net webclient post-程序员宅基地

文章浏览阅读1k次。Try Dim WebClientObj As New System.Net.WebClient() Dim PostVars As New System.Collections.Specialized.NameValueCollection() 'URL _vb.net webclient post

解决EditText 键盘imeOptions 设置后与换行冲突问题-程序员宅基地

文章浏览阅读604次。解决EditText 键盘imeOptions 设置后与换行冲突问题EditText imeOptions 设置必然需要设置singleLines=true 或者设置 inputType=“textXXX”, 这就不太符合需求。 解决办法:继承 EditTextpublic InputConnection onCreateInputConnection(EditorInfo outAttrs) { InputConnection connection = super.onCreate_解决edittext 键盘imeoptions 设置后与换行冲突问题

Pycharm配置Anaconda中的Tensorflow环境详解_pycharm配置anaconda的tensorflow-程序员宅基地

文章浏览阅读4.9w次,点赞6次,收藏21次。Pycharm配置Anaconda中的Tensorflow环境详解1.打开Pycharm软件,新建工程,点击File->Default Settings->Project Interprete2.默认的应该是anaconda下的python环境,我们点击Existing enviroment:3.点击右边...添加:4.找到anaconda目录下的envs,因为我装了两次Tensorfnslow(每创建一个环境,就可以安装一个,不冲突),所以可以看到我这边会有两个这种_pycharm配置anaconda的tensorflow

符号扩展,零扩展与符号缩减-程序员宅基地

文章浏览阅读1.6w次,点赞23次,收藏101次。1. 符号位扩展,零扩展,符号位缩减1.1 符号位扩展高级程序设计语言允许程序员使用包含不同大小整数的对象表达式。那么,当一个表达式的两个操作数大小不同时,有些语言会报错,有些语言则会自动将操作数转换成一个统一的格式。这种转换是有代价的,因此如果你不希望编译器在你不知情的情况下自动加入各种转换到原本非常完美的代码中,你就需要掌握编译器如何处理这些表达式。以-64为例,其8位的二进制补码(1100 0_符号扩展

【引用】DMA内存申请--dma_alloc_coherent_dma引用-程序员宅基地

文章浏览阅读2.8k次。在项目驱动过程中会经常用到dma传输数据,而dma需要的内存有自己的特点,一般认为需要物理地址连续,并且内存是不可cache的,在linux内核中提供一个供dma所需内存的申请函数dma_alloc_coheren. 如下所述:dma_alloc_coherent()dma_alloc_coherent() -- 获取物理页,并将该物理页的总线地址保存于dma_handle,返回该物理页的虚拟地址_dma引用

推荐文章

热门文章

相关标签