有人不断试错才有进步。像我们这样的老人家,做事瞻前顾后,畏畏缩缩,人还没死,心先死了。自己腐烂也就算了,何苦把年轻人一起拉进坟墓。
退一步讲,新的技术在进步,在内核里面做 GUI 也并非天方夜谭。
Windows 的 GUI 技术从 win98 到 win10 就反复地把图形栈在内核和 userland 之间迁移。比如在vista 时代,为了支持装饰器效果,windows 就把窗口合成器从用户空间挪到了内核,把 GDI 窗口绘制结果和视频 directx 绘制结果发送到内核进行合成。到了 win7 时代,因为搞定了显卡驱动,能够把显存的地址空间映射到用户空间,才又把合成器挪出来。
现代 GUI 和以前已经大不一样,不再提供画点画线等绘制命令。而是简单地提供一块由显存映射的 framebuffer,具体的控件绘制或者输出图像、视频等等,都由用户层自行处理,处理完成后一次性输出到这个 framebuffer 就行了。这样的架构,把大多数组件搬到内核 为什么不行呢?
而且现代软件技术的发展,有 llvm, webasm, container, rust 这类技术,增强内核模块的稳定性。等 wayland 足够成熟,我觉得把 wayland 合并到内核也是可以的。
【 在 wwwhongyi 的大作中提到: 】
: 公司参与开源项目开发群,平时少看。今天热闹,一帮子傻X在热火朝天的讨论把GUI做到Linux内核里。大至看了下好几米长的聊天记录里关键字xorg、x11出现的次数是0,还是BATJ之一国内头部企业的开发人员。
: 自己多年来的一个学习方法是,当想到/遇到一个新的想法或观点时,首先怀疑一下“是不是已经有人搞过了”,然后去查。百分之九十九是已经有成熟的实践只是自己不知道,或是根本上就是错的不成立。这样能少做很多无用功又快速提升经验。
: Linux经历30年的锤炼,全世界范围的开发者能没人想过在kernel里面做原生稳定的GUI引擎吗?这是用脚后根上的老茧就能想明白的事,还能引起讨论…还四五个人认认真真讨论几个小时。
: ...................
--
FROM 120.33.9.*