分类 视频脚本 下的文章

总有人说Linux碎片化,可能是因为总有人不满足“够用”。Kent Overstreet 就是那种类型。他写出了一个叫 Bcachefs 的文件系统,目标就是融合前沿功能与稳定性。

它是个写时复制(COW)的文件系统,具备一些核心特性

  • 对数据与元结构进行校验,提高数据完整性;
  • 原生支持压缩、重删、加密,提升存储效率与安全;
  • 拥有快照机制,可在任意时间点冻结文件系统视图;
  • 内置缓存机制,继承 bcache 的理念,优化 I/O 性能;
  • 使用混合 B+ 树结构,使索引与目录操作在查找和插入上更高效;
  • 代码结构相对简洁,减少冗余,方便后续维护。

有了这些特性,Bcachefs 在 2023 年正式进入 Linux 内核主线(6.7 版本),比较罕见。

但它的故事并未就此稳定。进入主线后,争议随之而来。

首先是开发流程的冲突。在 6.16-rc 阶段,Kent 提交了“journal_rewind”等新特性补丁,这个操作被认为违反了 rc 阶段只允许修复 bug 的惯例。Linus 对此表示不满,称双方可能在下个版本“分道扬镳”

其次是社区协作问题。Bcachefs 主要由 Kent 一人维护,补丁提交与审核缺乏分工,引发了与内核维护者的摩擦。Linus 批评过:部分修复补丁改动过大,超出文件系统范围,增加了主线风险

2025 年,Bcachefs 被标记为 “externally maintained”,即外部维护状态。

这意味着未来的功能更新、兼容修复,都要靠 Kent 自行跟进。主线内核不会再主动整合它的新特性,更容易理解一点的描述,就是以后也许只能通过 fuse 来单独安装。

对用户来说,这种状态不代表它“不能用”,但也意味着它可能长期停留在“可编译、能挂载、但没人保证稳定”的阶段。若内核接口有改动、工具包无人维护,Bcachefs 迟早会被边缘化。

这个“崭新且稳定”的故事到这里暂时告一段落。它的代码仍然在,功能依旧可用。

只是它不再是 Linux 主线重点维护的对象。

在影视飓风建模那一期后续的动态下面看到了这个评论:

为什么不用 maya 或 max 啊?

不知道人家团队真实的理由,但我首先就想到了 Blender 的开源特性,使团队可以减少采购建模软件授权的开销。再结合这个评论,我突然对“我们的开源环境不好”这个问题有了些片面的见解,今天就说给各位,供大家批判。

主要就是两点:社群组建形式单一、版权意识薄弱。

版权意识薄弱我认为应该是可以被广泛接受的一个现象吧?曾经风靡网络的各种破解版软件下载站,其实一定程度上就证明了这一点。可能跟我同年代及更年长的朋友会有印象,单机游戏,要么买五块钱的光盘,要么从三大妈或者游民星空上下载。这也是直到我从 steam 购买了正版 gta 罪恶都市才知道,原来这个版本的收音机是可以播放音乐的主要原因。

但为什么会出现这种问题呢?我不想说教育什么的,主要就是早先的可支配收入不足以支撑件件正版。这从随身听年代的盗版磁带便可略微感受到。到后来,微型计算机开始风靡,微软放纵盗版 Windows 来占据家用机市场一定程度上更巩固了这种“免费为主、版权为辅”的习惯,进而一直延续。当然可以肯定,随着发展进步,人们的版权意识有在一点点增强。回想一下,你有多少年没在各种下载站下载软件了?又有多少人已经为了童年的游戏而在 steam 上面补票了?

社群组建形式则是我自己对比了国内外各种交流平台之后感受到的一点。这可能源于国内互联网聊天被 QQ 一家独大了十多年培养的结果。而 QQ 微信都是闭源软件,对功能需求的响应又没有那么快,因此逐渐养成了等功能的习惯而不会去想着建立功能了。也正因此,兴趣组这种社群组建方式变得单一:建立QQ 微信群。但这种群聊形式的兴趣组会产生一个很难解决的问题:在同一个群组不同的几波人探讨不同话题时,这个时间线会特别的混乱,而即时通讯先天性的就无法做到内容沉淀,这使得即使有重大成果被讨论出来了也需要进行特别记录才行,且讨论过程还不见得能被完整保留。

这时一些老牌团体可能会提到使用论坛贴吧。但一来,QQ微信群的使用习惯及便利性无可比拟;二来,随着老一代产出内容的作者逐渐淡出论坛贴吧,新一代作者数量难以补足,前序内容又鲜有人接手,这类偏BBS性质的平台吸引力变得更低,更多的兴趣组会将主要阵地转移到群聊之中。

这时又可能会有人想到 QQ 前段时间上线的所谓抄Discord的频道功能。抄不抄这里不谈,单说这种“伪论坛”需要用户抛弃传统使用习惯的功能,到底还能不能被广泛接受呢?

版权意识薄弱导致开源的产物经常被“借鉴吸纳”到商业软件中,开源作者得不到应有的回报;通过群聊组建社群,导致实时归纳变得难以实现,使得开源软件的修复、功能改进难以有清晰的规划;近乎垄断的商业软件市场——从操作系统到即时通讯工具——培养出来用户等功能的习惯,让开源本应拥有的“免费劳动力”特性大打折扣。这些多多少少作用在开源项目上,拥有者产出的积极性也自然会逐渐降低。

上次我提到了在切换到 Wayland 之后,我突然发现了自己一个新的癖好,就是观察软件到底是运行在兼容模式还是原生的 Wayland 模式。那经过一段时间的实验,找到了三个还算简单的查看方法,今天来分享一下。

xeyes

输入命令你会看到在桌面弹出了一双大眼睛,现在把鼠标挪到你想要查看的窗口上面,如果它运行在兼容模式,那么这双眼睛会看向你的鼠标指针,如果是原生的就不会有任何反应了。


dbus

输入这一大串命令,而且可以看到,这个使用的kwin 的特性,所以如果你不是使用KDE 系列桌面环境的话,这个命令可能不管用。弹出一个窗口看到哪些是原生的,哪些是兼容的。


xlsclients 

这个就更简单了,输入命令回车之后,终端直接反馈了一个列表。列表里面提到的程序就是使用兼容模式运行的程序。

以上提到的这三个程序应该默认就已经安装在你的发行板里边了——当然第二条是使用 KDE 桌面自带的,其他桌面可能也没法装第二条。但第一个和第三个已经足够使用了。

那么为了进一步方便调用,我把这三个命令封装到了一个小软件里边儿。而且还额外加了两个查看当前会话所使用显示服务的命令。点击就可以使用了。此外还增加了几个其他的功能。比如说输入法框架的设置向导、Electron 和steam 启动参数增加、以及程序鼠标指针主题不对应的修复。有兴趣的话可以前往app.bwsl.wang下载看看。

在安装好Debian12后,至少在使用KDE的情况下会给出X11和Wayland两个登录选项。而我则因惯性使然,一直将X11作为日常使用的登录项。但前阵子突然想到:Wayland日渐成为主流,真用起来到底怎么样呢?

一、优势

真的选择Wayland已经有快三个月了,最大的感受就是在大多数情况下都没有感受。这其实应该得算是最大的优势吧,毕竟无感切换才能让用户体验到现代化服务的同时还不需要重新去适应系统。

当然,也有一些可以体会到的改进。对于KDE来说,我的窗口破碎特效显得更流畅了。但根据网上提到的信息,实际帧率是没有提升的,使用Wayland仅仅是避免了窗口撕裂,类似于游戏打开了垂直同步功能,画面更完整了,所以显得更流畅了。

还有一个很奇怪的优势——至少在我的电脑上是这样——Wayland下可以流畅的运行CS2,但X11下会导致整个图形冻结…是真的不太理解。

优势就说到这儿,下面来谈谈从X11到Wayland我先后都进行了哪些操作来完成过渡。

二、切换

下面所有内容可能都与桌面环境强关联,因此只能是参照,并不能照抄了。

再说一句:我使用的是Debian12+KDE桌面+fcitx。

1、输入法

首先就是输入法。fcitx官方的百科已经提到了,X11与Wayland需要进行的设定不同。因此需要进行一些操作才能完成从X11的过渡。

  1. 在/etc/enviroment最后加入export XMODIFIERS=@im=fcitx,保证利用XWayland兼容层的程序可以使用输入法(rc文件不生效)
  2. 设置-输入设备-虚拟键盘,选择fcitx5
    按照fcitx官方的说明来看,它的意思是通过这个步骤来启动fcitx5才能实现将输入法传入到应用中。但我的电脑现在依然是登录即自动启动fcitx,也不清楚现在的自启动是延续自X11设置还是在这里选择之后实现的,总之不需要每次启动电脑都来这里打开。
  3. 通过命令im-config启动fcitx配置,弹出窗口直接确定-指定配置选是-选择do not activate any IM from im-config and use desktop default -确定。使系统使用桌面环境的输入法配置。

至此,输入法配置调整完成。

按照fcitx官方的说明,对于electron类的应用程序比如chrome、edge等,需要添加启动参数 —enable-features=UseOZonePlatform —ozone-platform=wayland —enable-Wayland-ime,否则无法激活输入法。但我在edge上进行如此配置后,点击图标启动edge 的同时会自动打开一个系统设置窗口。且在应用窗口里边的鼠标指针样式也与我的设置不符合。后来为了解决指针主题问题,删除了~/.icons/default下的文件,指针正常了。神奇的是,不但鼠标正常了,删除了启动参数后也可以正常使用输入法了。这诡异的关联性,可能我一生也想不明白。

2、OBS

初次打开OBS录屏,发现没发采集电脑屏幕内容。查阅之后明白了,需要安装pipewire,然后启动这个服务:systemctl —user start pipewire。然后在OBS中选择pipewire的屏幕选项即可解决。

但相对传统的X11还是有一些问题:来源选择窗口的时候,如果调整了窗口大小,那么这个录制源就会卡住,只能通过重新启用此录制源才能解决问题。

3、steam

这可能不关是不是用Wayland的事儿,只是凑巧找到了解决办法。但因为是在wayland下面发现解决了的,暂且也算是Wayland参与了一些帮助吧…
只需在启动器增加环境变量:LANG=zh_CN.UTF-8,配合前面fcitx 的设置,便可直接使用。

4、vbox

窗口状态下一切正常,但全屏的话便不再响应鼠标输入了。这妥妥是一个bug,因为只需要在虚拟机设置-用户界面下,取消在全屏或无缝模式显示的勾选即可。

5、依赖

在我试用这一段时间后,依赖仅作为一个建议操作推荐给你。因为Debian12的KDE为Qt5,使用Qt6的程序会因为找不到Qt6相关库而自动转为XWayland模式运行。虽然不影响使用,但能解决的话自然是更好的。

实际上也很好解决。只需要安装qt6-wayland这个包(Debian12下是这个名称,不同发行版名称可能不同)即可。

三、一些bug

最后来介绍一些bug——都是可以体现到使用上面的bug。

1、对于edge浏览器,最大化时关闭窗口,不会触发关闭动效(可能是最大化时为无边框程序导致的);此外,在我的桌面布局下,最大化窗口顶部有遮挡;
2、透明效果及一些组件会明显闪烁;
3、latte多次点击编辑容易崩溃、任务管理器部分图标右键不可展开菜单。但这个其实算是有情可原,因为latte dock现在已经没有维护了;
4、连续点击软件中多个弹出式菜单按钮,前一个按钮的菜单不会自动收回。这明显是Wayland的问题。因为XWayland应用并无类似现象;
6、steam第一次启动,窗体进程会崩溃。虽然只需要直接点击重新启动即可,且在电脑关机之前随意退出再启动都不会再出现崩溃问题,但还是有点恼人的;
7、输入法状态只能全局共享

总的来说,至少对于我这种打游戏、上上网、偶尔直直播的这种使用场景来说,Wayland还算是一个可用的状态,但也只能说是可用而谈不上好用了。X11虽然古老,但其良好的兼容性是现阶段Wayland难以比拟的优势。只能说,看看发行版逐渐把Wayland作为默认这种“强制”措施,能不能倒逼出一些不错的发展来了。

如果你使用 opensuse,那你也许会听说过它的在线构建服务 OBS。每个人都可以在 OBS上建立自己的软件仓库。建立很容易,在网站里边点几下就可以。但如何真正跑起来?我找了好长时间教程也没有——至少我是没找到中文的。所以在我下载了suse 全套的用户指南并阅读之后,分享给各位一个简单的起步流程。

网站建立仓库的过程就不演示了,需要的话以后再说。今天主要来看怎么把在线的仓库放到本地从而实现本地编辑,推送到远程。

这里用初始opensuse15.6 做演示。

  • Yast-软件管理-搜索osc,选择安装。这个操作会默认把依赖和推荐安装全都选中。接受,等待安装完成。
  • 如果不想每次使用相关构建命令时都使用sudo权限,则需要进行权限配置。

    • Yast-用户和组
    • 打开的窗口中,在组标签页下点击添加

      • 名称:osc
      • 组成员:勾选当前使用的用户
    • 确定,确定,完成组配置。
    • 打开终端并进入root权限。执行以下命令
      visudo -f /etc/sudoers.d/osc
    • 打开的文件输入内容

      Cmnd_Alias OSC_CMD = /usr/bin/osc, /usr/bin/build
      %osc ALL = (ALL) NOPASSWD:OSC_CMD
    • 保存。注销再登录。

至此,osc组件已经配置完成。接下来就可以尝试建立配置文件了。

但在进行下面的操作前,需要在OBS网站注册了账号。这里假设已经完成了注册——呃我确实也注册过,毕竟早就有自己的仓库了。

  • 打开终端,输入命令osc ls home:stsiao(这是我自己的仓库)
  • 输入用户名和密码,通过后选择密码存储方式。

如果终端没有反馈错误,那么证明你的配置文件就建立完成,可以开始建立本地仓库了。

  • 新建一个文件夹以保存工程。这里取名obshome
  • 进入,输入命令osc checkout home:stsiao
  • 等待拉取完成。

至此,本地的仓库已经建立完成。可以像使用git一样,先在本地进行编辑,测试无误后同步到服务器端了。

上期内容的评论有提到在终端中显示中文字符的问题。看了几层楼之后突然意识到:这似乎涉及到了两个东西:终端模拟器与 MSDOS 模式。

一、MSDOS 模式

先来说 MSDOS 模式。这玩意儿又被称作实模式,是 Windows ME 及之前版本 Windows 操作系统中的一种特殊运行模式。可能有朋友说最后支持切换的不是 Windows98 吗?看起来是这样,但 WindowsME是可以通过将 OEM 审核模式的引导文件替换进系统来恢复实模式的,所以虽然默认不再提供进入选项,但实际上还算是支持的。在这个模式下,计算机只能访问有限的内存地址空间,并且无法加载图形用户界面。

发现了吗?这种模式下的 Windows 才对应着 Linux的 TTY 模式。显然,这个时候 Windows 也是不支持中文的。

接着说实模式。WinMe 不再正式支持实模式切换就像一个风向标 ,当 Windows NT 内核正式取代 DOS 内核之后,用户可操作的实模式便不再存在了。在这个阶段,实模式主要被用作启动操作系统。如今 UEFI 引导成为主流,实模式的用处也被进一步压缩。

二、终端模拟器

那现在 Windows 启动项中的命令提示符是什么东西呢?确切的说,不管你是从启动项中选择命令提示符,还是直接从正常的系统中打开命令提示符窗口,你所使用的都是“终端模拟器”,是建立在图形界面上的一个程序而非真正的字符模式。可以看看通过启动项选择命令提示符后的样式。输入命令启动任务管理器就可以发现,这个模式仍然启动了一个最基本的图形,然后打开了命令提示符程序。也正因此,这个窗口可以接受任何形式的字符。这种模式的终端对应在 Linux 中就是在图形界面启动了终端程序。它只是一个模拟器,因此可以显示各种形式的字符。

所以,要说 Linux 终端不能显示中文吧也对,毕竟 Linux 至今还保留有纯字符模式。但拿这个同 Windows 的命令提示符可以显示来对比可能就有失偏颇,毕竟 Windows 的命令提示符如今只是图形界面下的一个工具了。