Stakarilky DaleZ 社区设计师 Zee-Al-Eid Ahmad 整的 Windows UI Figma 模板可以很轻松做出如同真实应用的设计,还有微软官方的 WinUI 3 Figma 库,看了下楼主图里状态栏上面的一条线,应该是用前者设计的,但对话框的样式又像是后者。 从 Windows 10 后期开始。Windows 社区出现了很多水平优秀的设计师,他们以 Windows Redesign 的 Reddit 和 Twitter 为圈子,一手用类原生的设计结合最新的趋势,撑起了软粉对与 Windows 审美的期待,并分享了很多自己的心得和资源,Zee-Al-Eid Ahmad 是其中的集大成者,如果说 Zac Bowden 坐稳了软粉爆料的头把交椅,那么 Zee 就是软粉设计的头把交椅,微软也从他的设计中吸收了很多,以至于 Windows 11 发布后,E+D 的设计主管,Microsoft 365 的 CVP Jon Friedman 给他送了一个 Surface Laptop 4,以表彰他的贡献,尽管微软员工没有在他的推文下互动过,但 Windows 11 的很多设计都有社区的影子。 还有那个给 PowerToys 用 WinUI 3 做新界面的新微软员工 Niels9001,他原本就是这个圈子里的,后来加入了微软。
DaleZ SteveWorkshop 友好崩溃的两个难点在于内核没有绘制库,所以窗口要在用户层显示然后再退回到内核模式(你可以看到我故意留了一些空位,这样内核可以绘制 100% 而不遮挡文本),但对于一个崩溃的系统,它应该是连一微秒也不想停留在用户层的,但绘制需要比一微秒多得多的时间(另外考虑一下由显卡或 Intel 13~14th CPU 导致的崩溃之类的);另外一方面就是启动期间的崩溃,那看起来只能退回到传统蓝屏。
焊锡锡 DaleZ 理论上也是可行的,如果你见过macOS(特别是10.7之前的OS X)的崩溃也是能保留桌面显示,然后绘制一层遮罩,再显示中间的四国/五国提示信息,猜测是崩溃之后内核接管framebuffer实现的,不知道Windows能不能实现类似的
DaleZ SteveWorkshop 我当然知道你的意思,但内核基本只能画一些简单的图形,所以合成截图和窗口只能在用户层完成(直接在图片上进行本地化的时代已经过去了,而且不太可能对每一个 DPI 进行适配)。 另外不显示其它 UI 像是卡死了,怕是要招来漫山遍野的骂声 所以详细说就是用户层留下最后一帧带错误报告窗口,然后内核态只需要覆盖百分比那部分像素就行
DaleZ 焊锡锡 但那之后就被放弃了很明显……Windows 自从某个版本以来可以做到内核的启动向用户层面流畅淡入淡出过渡,但不知道反过来可不可以,而且需不需要加上一大堆用处狭窄的代码(在有阴影有边框之类的情况下对于一个只会填充像素颜色和写字根本连 GDI 硬写都没有的内核很可能是一个巨大的坑)……
焊锡锡 DaleZ 后面似乎macOS还有这个特性,如果你在引导时加上-v参数,如果你遇到内核恐慌,panic文本就是直接叠加到你的屏幕上 为了这一个特性搞用处狭窄的代码已经算是行业惯例了,前段时间Linux不也加上KMS panic了么,可以显示图形化的内核恐慌界面了 其实这些代码又不是完全没用,比如可以做个软重启功能,直接回到内核状态重新加载驱动,然后重新加载用户态的那些东西,跳过系统固件这些复杂的初始化流程实现快速重启啥的