检测到论坛CSS可能没有正确加载,如出现排版混乱请刷新重试。

We detected that the CSS might not be loaded correctly. If the website displays abnormally, Please refresh and try again.

SteveWorkshop 我当然知道你的意思,但内核基本只能画一些简单的图形,所以合成截图和窗口只能在用户层完成(直接在图片上进行本地化的时代已经过去了,而且不太可能对每一个 DPI 进行适配)。
另外不显示其它 UI 像是卡死了,怕是要招来漫山遍野的骂声
所以详细说就是用户层留下最后一帧带错误报告窗口,然后内核态只需要覆盖百分比那部分像素就行

    DaleZ 理论上也是可行的,如果你见过macOS(特别是10.7之前的OS X)的崩溃也是能保留桌面显示,然后绘制一层遮罩,再显示中间的四国/五国提示信息,猜测是崩溃之后内核接管framebuffer实现的,不知道Windows能不能实现类似的

      焊锡锡 但那之后就被放弃了很明显……Windows 自从某个版本以来可以做到内核的启动向用户层面流畅淡入淡出过渡,但不知道反过来可不可以,而且需不需要加上一大堆用处狭窄的代码(在有阴影有边框之类的情况下对于一个只会填充像素颜色和写字根本连 GDI 硬写都没有的内核很可能是一个巨大的坑)……

        熊猫火狗 是图形相关的错误才蓝所以在图形上出点什么幺蛾子也很正常()

        DaleZ (另外考虑一下由显卡或 Intel 1314th CPU 导致的崩溃之类的)

        这也是我担心的原因之一(((

          DaleZ 后面似乎macOS还有这个特性,如果你在引导时加上-v参数,如果你遇到内核恐慌,panic文本就是直接叠加到你的屏幕上
          为了这一个特性搞用处狭窄的代码已经算是行业惯例了,前段时间Linux不也加上KMS panic了么,可以显示图形化的内核恐慌界面了[tieba=huaji]
          其实这些代码又不是完全没用,比如可以做个软重启功能,直接回到内核状态重新加载驱动,然后重新加载用户态的那些东西,跳过系统固件这些复杂的初始化流程实现快速重启啥的

            焊锡锡 panic文本就是直接叠加到你的屏幕上

            因为这么粗糙的功能是很好实现的[tieba=huaji]

            焊锡锡 其实这些代码又不是完全没用,比如可以做个软重启功能,直接回到内核状态重新加载驱动,然后重新加载用户态的那些东西,跳过系统固件这些复杂的初始化流程实现快速重启啥的

            Windows 可能永远不会有类似的功能🤔🤔🤔

            DaleZ 好吧,众所周知 Windows 先立即退回到内核层用纯色覆盖屏幕之后再写入文本。也就是说,不可能在不更改行为的情况下让内核等用户层拖拖拉拉地显示个窗口(T先生说过于花哨,但都到这时候了就不要做动画了……虽然那也要一两毫秒,够慢)。
            结论:白日做梦
            不过退一步或者一万步还是有可能的:

            • 砍窗口细节,大体上还是那样子就够了,让内核绘制起来足够简单;
            • 成功进入用户层后立即预渲染窗口缓存给内核(要是真这么实现的话说明微软离死不远);
            • 来一个 10 的也行(最终目标反正是不要拿全屏的崩溃吓死用户)。

            永远不要忘记启动期间我们没有用户层可用。不过如果 Windows 在启动期间崩溃,那么这也不是拿去给消费者看就能解决的事情了。

              DaleZ 此问题一直没有修复(推测应该是内核绘制使用的是精简字库(类似于office的嵌入字体,只保存所用到的),而且设计时只考虑普通版本用到的字,没考虑到这个“览”字)
              而且这大概率是硬编码进去的所以修复怕是很难做

                DaleZ 不过退一步或者一万步还是有可能的:

                如果不要mica效果的话倒也好办
                1)用户态什么也不做
                2)内核将屏幕中间区域覆盖为蓝色方块
                3)在方块处绘制文字

                  © 2025 wvbCommunity 管理团队

                  删封申诉 | 知乎专栏 | 状态监控 | 用户协议(EULA) | 隐私政策

                  本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权,进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途。