- 积分
- 6709
- 最后登录
- 2024-4-23
- 精华
- 0
- 阅读权限
- 220
- 主题
- 145
- UID
- 3887572
- 帖子
- 2897
- PB币
- 3573
- 威望
- 925
- 贡献
- 0
- 技术
- 801
- 活跃
- 4722
14N.M.
- UID
- 3887572
- 帖子
- 2897
- PB币
- 3573
- 贡献
- 0
- 技术
- 801
- 活跃
- 4722
|
本帖最后由 Mouri_Naruto 于 2021-8-29 21:10 编辑
两个半月前,NSudo 8.2 正式发布;今天先发布一个 NSudo 9.0 Preview 1 让你们尝尝鲜
这个版本主要是修复了 NSudo 8.2 及之前版本存在的两个 Bug,引入了 NSudo 上下文插件和交互控制台的基本实现,当然曾经计划的环境配置文件特性延迟到 Preview 2 再提供,顺便提供了毛利优化插件作为 NSudo 上下文插件的 NSudo 二次开发者的官方示例。估计读者看到这里肯定是一头雾水,那么我接下来讲解下 NSudo 9.0 要添加的功能及其由来。
大概数年前和鸭子(DISM++ 作者)提到我想做一个轻量化的框架,方便我进行测试和使用我写的系统维护功能。如果对应功能在这个轻量级框架下测试的比较成熟就集成入 DISM++,因为我觉得直接在 DISM++ 代码仓库对我编写的清理模块(NCleaner.dll)进行改进和测试还是太重(DISM++ 好歹也是一个百万行规模的项目)了,而且顾虑的事情会比较多,容易放不开手脚。虽然鸭子很爽快的同意了,但是要设计一个让强迫症比较多的我用起来比较舒服的轻量化框架,是一个令人非常纠结的事情。当时的我接触到了 busybox 后立马回忆起了将近十年前常用的 nircmd,这类能把几十个功能塞入到一个二进制的瑞士军刀风格的设施让我颇有兴致,于是我立了个代号为 reiwa 的项目,毕竟我觉得 DISM++ 和 CCleaner 是同一个时代的维护工具,我想开发一个比较有新意的玩意,而不是复刻品。
当然想让我满意到能下决心做是个挺耗时间的过程,主要原因还是做 exe 版本的话即使是控制台应用也得写一套基本的用户交互框架,一想到这就感觉写起来太复杂了,下不了手。直到大概三个月前,我的工作机的系统盘磁盘空间所剩无几,觉得自己必须得写个家伙出来了。但我又不想单独设计一套交互逻辑,因为无论是图形界面还是控制台界面蛋疼的事情还是不少的……于是想了想,干脆自己把这家伙做成动态链接库好了,然后做个宿主承载这家伙,这样就不需要特意写那么多蛋疼的交互逻辑了。刚好想起了比和鸭子提到做轻量化框架更久之前的 NSudo 的环境配置文件的大饼,这个特性是支持加载预处理和后处理插件来对目标应用的运行环境进行深度定制,譬如通过这个机制实现一些软件的绿化还有解决语言区域导致的乱码问题,如果能把这个大饼实现了,感觉自己的遗憾也能少一点,毕竟这个大饼从 2016 年就开始画了,但是当时的自己技术力还不够设计不出满意的结果。
最终,根据这些想法考虑出来的就是 NSudo 的下一个大版本,也就是 9.0,将会引入环境配置文件、上下文插件和交互控制台三大特性。交互控制台提供 NSudo 高级用户向导(我一直都想大幅扩充 NSudo 图形界面版本的功能)和上下文插件的交互,环境配置文件可以对用户要运行的应用的环境进行深度定制(按照自己的设想是可以为目标应用搭建一个轻量级沙盒的程度),上下文插件使得环境配置文件定义起来更加灵活。既然不管怎么样都要给 NSudo 的用户提供一个代码示例来让他们了解如何开发一个 NSudo 的上下文插件,那么把我做的轻量级系统维护工具作为 NSudo 的上下文插件的开发示例并且附带在二进制包里作为一个比较有用的工具插件那简直是多赢之举(毕竟我不想只提供一个只有开发者会参阅的示例,想提供一个带一点实际功能的示例),于是就这么愉快的决定了。
当然在这个上下文插件的命名上也纠结了不少,最后敲定为毛利优化插件 (Mouri Optimization Plugin),因为二进制名字可以写成 MoPlugin.dll 刚好符合 DOS 时代的 8.3 命名规则,看起来比较简洁。
于是 NSudo 9.0 是一个筹划多年的跨越式功能更新,因为工程量比较大,于是需要出好几个 Preview 版。
更新日志
- 修复在 https://github.com/M2Team/NSudo/issues/66 提到的德语系统下德语语言支持不生效的问题 (感谢 Steve)
- 修复无法获取 SYSTEM 访问令牌的问题 (感谢 _kod0k 和 DennyAmaro)
- 实现 NSudo 上下文插件和交互控制台的基础架构 (感谢 Legna 和 Microsoft_Mars)
- 警告: NSudo 上下文插件在 NSudo 9.0 最终版本之前无法保证稳定的二进制接口,该功能仍在开发中
- 引入毛利优化插件作为 NSudo 上下文插件的示例 (感谢 Legna, mingkuang, Microsoft_Mars, sdtzsf 和 abbodi1406.)
以下是毛利优化插件支持的功能:
- 内存碎片整理,通过把物理内存中的大部分内存交换到页面文件实现
- 开启 Windows Update 中 "更新 Windows 时提供其他 Microsoft 产品的更新" 的选项
- CompactOS 管理
- 基于 Chromium 的应用程序的 Web 缓存清理,包括 Chrome、基于 Chromium 的 Edge 和基于 Electron 的应用程序等
- 损坏的 AppX 包清理
- 传递优化缓存清理
- 基于 Gecko 的应用程序的 Web 缓存清理,包括 Firefox、Waterfox 和 Pale Moon 等
- NuGet 缓存安全清理
- Package Cache 目录安全清理
- 系统还原点清理
- 基于 Trident 的应用程序的 Web 缓存清理,包括 Internet Explorer、传统版本的 Edge、基于 MSHTML 的应用程序和基于based applications, Edge WebView 的应用程序等。
- Visual Studio Code 缓存清理
- Visual Studio Installer 缓存安全清理
- Windows 事件日志清理
- Windows 商店应用一键升级
- 升级到 VC-LTL 5.0.1-Beta4 (与 mingkuang 协作开发)
注意事项
- NSudo 上下文插件在 NSudo 9.0 最终版本之前无法保证稳定的二进制接口,该功能仍在开发中。
- 环境配置文件支持功能将会延迟到 Preview 2 版本再引入。
- 毛利优化插件的使用方法请参阅二进制压缩包内 MoPluginReadme.zh-Hans.txt,且该文档提到的插件宿主需要在管理员权限的命令提示符下使用。
下载地址(镜像服务器由 Legna 赞助)
GitHub Release 页面: https://github.com/M2Team/NSudo/releases/tag/9.0-Preview1
【镜像服务器】二进制: https://d.legna.cn/M2Team/NSudo/NSudo_9.0_Preview1_9.0.2676.0.zip
【镜像服务器】调试符号: https://d.legna.cn/M2Team/NSudo/ ... .0_DebugSymbols.zip
后记
NSudo 的毛利优化插件与 DISM++ 的 NCleaner 增强清理组件的关系从某种角度上类似于微软的 .NET Core 和 .NET Framework,区别在于毛利优化插件增加的对应功能如果在一年后没有出现严重问题则会回馈到 DISM++ 的 NCleaner 增强清理组件中以实现增强 DISM++ 的清理功能,这也是原本的目的(在更轻量的环境可以加速新系统清理和优化功能的开发和减少潜在的问题使得 DISM++ 作者能够少忙一些)。
DISM++ 的作者因为业余期间做的基础设施被他所在的公司全面采用,业余项目变成主业项目,于是比以前变得忙碌不少,这也是 DISM++ 处于一年大概率只出一个稳定版的非活跃开发阶段的原因。倒是让 DISM++ 作者忙碌的其中一个基础设施,即 VC-LTL 也是支撑 NSudo 整个项目的重要设施,其功用是能够让现代 MSVC 工具链编译的程序既能使用现代 C++ 标准库又能只依赖系统自带的 msvcrt.dll 或者 ucrtbase.dll 以无需额外安装 MSVC 运行库且能保持和动态连接到运行库那样小巧的体积。当然这也是 NSudo 能够不加压缩壳也能保持较小的体积的重要原因。NSudo 也是第一个使用 VC-LTL 的第三方项目,应该也是使用 VC-LTL 项目中 GitHub star 数最多的。前段日子和 DISM++ 作者一起推进 VC-LTL 5.0 的开发,VC-LTL 5.0 从结构上做了重大调整,DISM++ 作者基本从零开始,随着 VC-LTL 5.0 的可用性提升到能够发布 NuGet 包版本的时候,NSudo 9.0 在这个时候发布 Preview 1,不仅仅是给我留出更多的精力开发其他我计划中的开源项目,也是在 VC-LTL 5.0 发布时给 DISM++ 作者提供最有力的效能提升参考的数据。
毛利
|
回帖推荐
Mouri_Naruto 发表于53楼
查看完整内容
合并了就失去意义了……因为 DISM++ 本身是一个复杂的项目(百万行代码规模)
于是从三四年前开始作者就和我提到以后 DISM++ 会变成初雨团队的项目的练兵场,即以开发个人主导的项目为主,然后再把开发的成果回馈到 DISM++。
作者的话,主要是 VC-LTL YY-Thunks YY-Guard 三大基础开源设施(作者现在在他公司主要做的项目,从业余项目变成主业项目),还有就是作者的工具库
我的话,主要是 NSudo 和我的工具库(我在公司的 ...
-
7
查看全部评分
-
|