Menu

osolinux / Blog: Recent posts

It turns out that C functions are just examples. not proper code.

最早的时候 magiclinux 前辈留有一个 rpm-findold 这样的工具,当然对应还有 rpm-findnew,不重要,因为 old 才是系统构建人最需要的对话。早前这程序用的 perl 写的,我看不懂,Linux 有个特点,就是任何看似和版本平台无关的程序,只要它需要 x 属性并无人维护的,都要被淘汰。终于有一天 rpm-findold 不工作了,perl 版本无法编译这段代码,对 perl 毫无办法的我也不想再去修复它。那时我最熟悉的就是 bash 脚本,不是有 sort 指令不,于是一个简单的脚本解决了这个问题,也叫 rpm-findold。再后来,bash 版本的 rpm-findold 又出问题了,bash 版本改动,总是给你添加一些新的约束或变化。再后来,bash 脚本不能满足需求了,因为太慢了。于是我用 C 写了 一点代码,使用 qsort 并且找到一些魔幻般的网友分享的简单共享函数,对了,速度快了近十倍,你是不是无法理解脚本对系统资源的无情浪费。再后来,我发现自己的一些劳动成果经常不见了,于是发现 rpm-findold 工作不稳定,经常出来些不正确的结果。试了很多办法,总之,无论网上共享的点子还是 C 语言现存的函数都没有办法解决。于是乎发现 C 语言为什么这么招人烦,因为没有东西是现成的,就连那个 qsort strcmp 其实都是脱裤子放屁。因为这些东西只是例子函数,你要写排序软件,就不能怕麻烦。网络知识共享是个好东西,因为自己一直没有一个适宜的环境,比如一个学校一起专业学习几年代码,回想校园生活中天天打瞌睡、突击应付考试,那个时候自己独立搜集代码写出和同学不一样有界面对话的 debase 数据库交互都是神话了,因为我是学会计的。。。废话不多说,掌握 C 语言确实就是多写几回排序软件就明白了,千万不要用 strcmp 之流,因为只有这样,你才会真正懂得如何直接对字符进行运算,如何理解字符串指针和字符串数组,如何调节指针进行储存,如何循环,如何比较。。。自己写排序的程序,比利用通用例子函数的程序,速度提升不说,运行才算稳定。其实很简单,没有经历就一直如同瓶颈一样。还想起当年想成为 PHP 程序员的面试,一个简单的遍历问题就把我初学水平暴露地体无完肤。当年的问题就是这样,一棵复杂的树,如何最快地遍历找到自己的数据。当年我回答不了,就算什么前后对比移位法、冒泡法、中间法、探针法,其实我就这么回答也不会对的。现在想想,唉,其实会懂时,就很直白了,哪来的什么法。。。最快的办法其实就是特征对照,那么多树,找到特征对应就省掉了很多操作,存储要有特征,搜索也是如此才能快速反应。好了,一个晚上折腾出一个排序代码,却给自己写了这么长一篇感慨。

Posted by haulm 2024-05-07

The Fedora40 beta-based osolinux is basically finished

The Fedora40 beta-based osolinux is basically finished, and is waiting for the official release of Fedora40 at the same time.

Posted by haulm 2024-04-16

Unable to complain about Wayland's mistakes

从 F40 开始 Fedora 激进只保留 wayland 的窗口协议方式,我也是从测试版本发现从更早的 OsoLinux 就有的一个 Bug。这个隐藏 Bug 就是根本不明白为什么 Fedora 发行版本正常启动 startplasma-wayland,而重新压缩打包就无法启动。这很奇怪,要想重新正常运行 wayland-session,必需运行一次 X 或 Xwayland 指令,比如简单的 X -configure,然后你再运行 startplasma-wayland 就能工作,否则 sddm 一直返回登录界面。不过折腾多少天,最后发现这个是旧版内核的兼容问题,升级内核后就不需要这个麻烦了。
这里面还牵扯到 systemd,我要建立一个服务,在 sddm 加载前运行一次 X -configure,必需是 tty2 运行。当我调试 systemd 的服务时给搞得焦头烂额,才发现自己严重的 init 启动思维这么多年就一直没改正。用 systemd 一定是要放弃原来一个脚本调整所有功能的想法,这也是 systemd 让人痛恨和干净的原因。要想 systemd 不老是选择性拒绝脚本的部分代码,你就得把脚本拆成各个功能,拆成各个服务,分成不同运行时需求( 比如类似 init 1 init 3 init 5 分层 ),针对服务再对代码进行整理,而不是一统脚本,一统脚本的结果就是 systemd 的横加干涉,有的执行了,有的没的有,结果得到莫名其妙的结果。其实这里面还有一些 init 这种代码惰性的方面,systemd 每个服务在不同的过程中都是有限的执行时间和执行安全要求,超时或敏感执行就被停止,比如 X 运行就中止了终端 tty 的服务。
systemd 管地很宽,有些脚本在终端环境能正常工作,但直接拿来做为 systemd 服务脚本是会失败的,比如对重要的系统文件夹的某个文件反复写入就会被中止,正确做法是在临时文件夹写完后再一次性写入系统文件夹。尽量把自己的代码放到 systemd 的最后,也就是 sddm 之后来执行,否则很难保证运行时间和结果。
要不然 systemd 为什么这么多年迎来如此多的谩骂,因为代码质量、运行时间和安全 systemd 也管,重要的是什么运行阶段、运行时间、功能的急重缓轻,你就没办法随心所欲,不急的话都设置到最后,然后符合安全地敏感作业。

Posted by haulm 2024-04-09

About grub2-install target i386-pc ~ error filesystem 'btrfs' doesn't support blocklists

之前呢 grub2 -install target i386-pc 也就支持 btrfs ext4,所以我写了不管是安装脚本还是后来的图形安装工具 i386-pc 也都只支持 btrfs,后来可能也没注意会有什么麻烦,直到前几天我突然想加入对 ext4 格式的安装,却发现很多安装失败的调式过程。最后不得不在虚拟机中去 bash 测试 grub2-install,结果就跳出 error filesystem 'btrfs' doesn't support blocklists。也就是说 mbr 上 grub2 最后只能支持 ext4 了。你想,虚拟机上默认还是 i386-pc 引导,不是 uefi 引导,这变成了我最大的挫败。谁知道为什么 grub2 的 i386-pc 突然就不支持 btrfs 分区的硬盘了,编译问题还是其它?

Posted by haulm 2024-03-07

Why?

The Linux system can manage the hardware for 20 years, and the Win upgrade will be eliminated every two years. Win7 is not supported large-capacity mechanical hard disk , Win10 printer is out of driver, Win11 is not supported with some CPU and motherboard, Win12 mechanical hard disk can not be used as a system disk and it cannot be installed without NPU chips.

Posted by haulm 2024-01-15

A beautiful skin for FCITX5

收集了 fcitx5 输入法一款我认为很棒的免费皮肤

Posted by haulm 2024-01-11

The KDE Connect Android app is already powerful

kde connect 不仅能够实现手机、电脑互相发送文件,还强大到可以远程操作 LINUX 桌面了,以前因为各种限制一直没有坚持代入这个功能,现在亲测非常好用,因为墙的原因,现在转载提供安卓端程序的下载。
只是一些功能没实现或不容易配置好。

Posted by haulm 2023-12-29


AMD motherboard BIOS is causing AMD graphics card not to work

AMD 主板 BIOS 导致 AMD 显卡不工作,这是奇怪的事情,BIOS 升级后重启可能就发生黑屏,有时又可以点亮,但反复折腾几次就彻底凉凉。
把显卡寄往送修,结果厂商测试没有问题,又发了回来,特意交待换一块卡,因为它在我手里确实经常黑屏。
结果送回来的显卡还是无法工作,在客服强烈自信显卡没问题的情况下,他透露顾客中有些主板对 N 卡点亮没问题,但 A 卡就无法工作,反复交涉后我突然觉悟了。用 N 卡启动系统 BIOS,降级微星 X570S 主板 BIOS,结果点亮了。。。
Boot the system BIOS with an N card, downgrade the MSI X570S motherboard BIOS A6, and the result is that the AMD Radeon™ RX 6700 graphics card lights up.

Posted by haulm 2023-12-26

感谢网友媛的支持

Thank you to netizen Yuan for her support, it was a spiritual encouragement.

Posted by haulm 2023-12-24

基于 Fedora39 的系统已经做好了

过些时间就放出来,这期间想把安装工具再修理、修理。

Posted by haulm 2023-12-22

SF 空间不再支持各种拿来主义的开源论坛、博客

我也没收到官方任何要处理的通知,osolinux 这个链接被删除了,就连注册个 osolinux 也被屏蔽了,我真怀疑科技战波及到我这根本微不足道的小地方,这过去十年也从未发生的事情,一个晚上信仰就被和谐了,haulm 下挂的网页都没事,估计还是论坛建设惹的祸。现在链接 oso 空间重新建设,php blog 还是自己随便写个简单的好了,懒病的结果就是被官方删除都不带一点同情的,现在空间扔任何安装对话的开源博客都不显示的。

Posted by haulm 2023-12-22

不知所以然

空间怎么就不支持 php 了

Posted by haulm 2023-12-20