EdgelessPE/Edgeless

对Edgeless的一些建议(稍长)

Opened this issue · 12 comments

我用了可能有半年Edgeless了……这里是我的一些建议,仅供参考。

1. 关于插件包规范

我确实已经听说插件包将会出新的规范。这些是我对插件包规范的一些建议。
首先,能否不要使用文件名来判断插件包的版本号等信息?在压缩包内放置一个类似pack.json的文件并在加载时读取它可能是一个不错的解决方案。这也同样包括了Hub对盘内Edgeless版本号的判定。这会大大增强用户的使用体验(总有人想给文件改个自己喜欢的名字),并且类似投稿插件后被改名上传至菠萝云,自己本地的插件被识别成非官方插件的问题将消失。
其次,插件包现在使用的压缩格式是7z,虽然7z压缩比高,但是它的压缩速度真的不敢恭维,能否换个格式或同时支持两种格式?
另外,能否开通除了加内测QQ群以外的插件投稿机制?

2.关于Ventoy

Ventoy是很好的一个启动盘多合一工具,但是它的默认设置不是很好。通过Ventoy原生提供的插件功能功能就可以调整一些设置,其中部分设置应该在Hub中提供便携的修改途径,比如在安装Edgeless后询问是否让Ventoy只搜索根目录(参考Ventoy文档,实在不行可以提供快捷启动VentoyPlugson的按钮),并在插件市场中提供Ventoy主题的下载。(可能这需要询问Ventoy作者是否允许?Ventoy的主题其实就是Grub的主题)

3.关于Hub本身

Hub一直以来似乎都是Edgeless相对其它PE不同的地方,但是它的代码质量似乎并不是很高。所以是否考虑重写Hub或进一步完善手动安装教程?
官网说Hub只支持Windows 10,但是实际使用中似乎Windows 7也能正常使用,是不是应该在程序启动后检测系统版本并给出警告?
下载文件是否能通过aria2等方式多线程(可能已经实现,我没有调查)?下载文件后能否提供可选的哈希校验?

4.关于Edgeless本身

在启动完成,准备加载插件时能否添加一个可自定义的“在X秒后加载插件,按任意键跳过”?
能否添加插件优先级功能,在加载插件出现内存不足时自动停止加载优先级低的插件并提示?

最后,我想说,Edgeless是个很棒的PE,加油!

(顺便催一下浙江移动对菠萝云的无法访问问题,至今仍未解决)

感谢建议,确实比较长暂时无法完全消化,而且近期在忙于其他事情;此issue将长期保持open状态以便之后查阅

回应Point1 :

  1. 下一代Edgeless资源包的规范中已经考虑到了仅依据文件名判断导致的各种问题,会有一个package.toml文件保存包的详细信息;但是为了考虑解析速度还是会优先根据文件名获取基础信息(文件名的获取不需要打开文件、读取内容甚至是等待解压缩等耗时的IO操作,仅需从文件系统的目录节点直接返回即可),例如名称和版本号,因此随意更改文件名依旧会导致一些问题,我们认为不能自由更改文件名这一点限制对于提升用户体验会有更大的帮助;
  2. 关于7z的压缩速度问题,确实考虑过改用zstd,但是zstd尚不符合 "无专用工具可编辑性",且不便于PC端杀毒软件对资源包的介入扫描,因此目前还是考虑使用7z,可能会在之后的版本迭代中支持zstd格式;
  3. QQ群以外的投稿方式会建设,由于会涉及很多安全问题(防止服务器空间滥用、防止dos攻击等)因此需要花费大量精力编写后端,目前QQ群上传的方式有较好的实名性且不需要占用服务器资源,因此在未来一段时间内还是会使用QQ群上传的方式;

回应Point2:

  1. 插件指的是在Edgeless启动后可用的内容,Ventoy主题无法做成插件的形式上架Hub,也不方便介入对Ventoy的个性化设置(毕竟我们不是Ventoy官方)。不过会考虑在配置模块中增加指向VentoyPlugson等相关内容的链接方便用户自定义Ventoy;
  2. 对于只搜索根目录这个问题与 #13 较为相似,会在重构Hub时考虑;

回应Point3:

  1. 目前的Hub确实是屎山,下一代的Hub会使用ept-next作为核心实现与ept的代码复用,重构会在ept-next完成后开始(ept-next会支持多个镜像源负载均衡,可以解决浙江移动无法访问菠萝云的问题);
  2. 对Windows 7的屏蔽是纯前端检查ua实现的,目的是为了筛选目标用户,过滤PC配置可能较差的用户;对于有一定基础知识的用户应该能想到改ua或使用手机端下载并发送到电脑,或是根据手动制作的步骤完成制作而不是依赖Hub;此外我们在测试Hub的构建版本时也不会考虑Windows 7平台,不提供对过时操作系统的支持;
  3. Hub的下载一直是通过aria2c rpc完成的;校验选项目前来说还比较难实现,需要重构整个生态,可能会在nep的生态中实现。目前的OSI网络模型和各种现代软件已经有能力确保传输和存储过程的信息完整,因此我个人认为不重要的文件不是很需要提供校验;

回应Point4:

  1. “在X秒后加载插件,按任意键跳过”功能可以通过生命周期钩子实现(取消插件加载需要改一下.wim中的加载器判断脚本是否正常退出),熟悉Batch或pecmd编程即可;
  2. 插件优先级这个问题比较复杂,也确实没有认真考虑过,暂时没法回答你;可能需要等到第二代nep版本迭代才可能实现;
  3. 菠萝云无法访问是由于浙江移动的机房没有接入河南联通的接入点,我们的服务器供应商菠萝云已经尝试投诉了但是仍然没有解决这个问题,已经超出了我们的能力范围;ept-next的负载均衡和镜像源管理能在软件层面解决这个问题,只是现在还没开始写(

谢谢Cno的回应!不过我不是想把Ventoy的主题做成插件,而是通过Edgeless Hub下载Ventoy的主题并应用,这其实只需要修改Ventoy的配置文件就可以做到(参考官方文档),搞这个的主要目的是优化用户体验(其实是屑移动连Gnome Look都打不开)

另外实现跳过加载插件的功能能否帮忙实装到Edgeless中或做成一个插件呢?

不太方便在Edgeless Hub直接介入对Ventoy的修改,而且我们新开版块让用户下载Ventoy主题然后维护更新也需要大量的精力,有需要的可以自己动手;

跳过加载插件可以考虑加入配置版块;

感谢建议,确实比较长暂时无法完全消化,而且近期在忙于其他事情;此issue将长期保持open状态以便之后查阅

我是来申请加入组织的,内测交流2群已经满员了,有其他群可以加入吗?

Edgeless的理念还是很好的,优点也很多,开源,文档全面,插件丰富等,用了第一次就好像离不开了,有点相见恨晚的感觉

希望能加入你们的组织贡献自己一份微薄的力量,目前遇到的问题是,公开的内测交流2群满员了,有其他群么?能否发下我呢?

[hub]: 能否增加一些插件变成可选加载,并不需要一进去全加载,需要升级一下页面
[pe]: 能否安装到硬盘中作为mini系统使用(因为对于程序员,只需要网络和程序运行环境即可)

[hub]: 能否增加一些插件变成可选加载,并不需要一进去全加载,需要升级一下页面 [pe]: 能否安装到硬盘中作为mini系统使用(因为对于程序员,只需要网络和程序运行环境即可)

  1. 这个可以手动把不常用插件包拓展名改成.7zf,hub内确实没有提供操作按钮
  2. 不太行,会牺牲正常系统的启动速度因此不推荐

[hub]: 能否增加一些插件变成可选加载,并不需要一进去全加载,需要升级一下页面 [pe]: 能否安装到硬盘中作为mini系统使用(因为对于程序员,只需要网络和程序运行环境即可)

  1. 这个可以手动把不常用插件包拓展名改成.7zf,hub内确实没有提供操作按钮
  2. 不太行,会牺牲正常系统的启动速度因此不推荐
  1. 就是想让pe作为正常系统使用hhh,已经在研究了,在硬盘能运行,打包到vhdx不行。因为1是想不必每次都加载PE系统,加快启动时间,2是想保留变更数据,比如chrome的浏览记录,因为内存运行的方式重启后失效了。