如何自制一个简易的资源监控程序
前段时间有网友留言好奇我这个博客下的资源监控是怎么实现的,今天就和大家讲一下实现思路。
这里博主使用 JS / TS(Bun)作为演示。当然,你也可以选择自己喜欢的编程语言来实现,但本质上是通用的。
首先科普一下 Linux 下的 ``/proc/`` 这个目录,这里存放着很多内核级的接口文件,有些是可读或可写的(或需要管理员权限)。
下面是几种常见的:
|文件|信息|
|-|-|
|``/proc/cpuinfo``| 这里可以获取到 CPU 型号,频率等信息。|
|``/proc/meminfo``| 可以获取到内存有关的详细信息。
|``/proc/net/dev``| 可以获取到网卡的上下行流量,数据包。
|``/proc/stat`` | 可以获取到 CPU 工作状态。
...
2024/12/29 00:09:39
Linux
资源监控,Bun
Debian 打包入门,与需要注意的问题
众所周知 `.deb` 是 Debian 发行版所采用的软件包格式。可以将二进制,脚本,图片或各种文件打包成一个类似压缩包形式(ar 归档格式),然后通过 `apt install [包]` 去安装(解压)文件到各个目录下。
一般可以使用 ``ar x [deb包]`` 或使用 ``dpkg-deb -X [deb包] [解压目录]`` 命令提取里面的文件。
打包好的 .deb 包解压后会是这样子:
```txt
├── control.tar.xz
├── data.tar.xz
└── debian-binary
```
其中 ``control.tar.xz`` 通过解压后里面的含有 deb 包的配置文件。而 ``data.tar.xz`` 里面是 deb 包的主体安装文件。`...
2024/10/06 18:46:07
Linux
Debian
在 fedora 建立一个 Arch 容器
在尝试 https://blog.glumi.cn/bwrap-debian (建立一个 Debian 隔离容器)可行之后,有天需要用到 Arch 的一些环境,决定再次尝试建立一个 Arch 的容器以方便使用。
Arch 官方提供了一种 <a href="https://mirrors.aliyun.com/archlinux/iso/2024.10.01/archlinux-bootstrap-x86_64.tar.zst">Bootstrap 镜像</a>(这里是阿里云的下载节点,架构为 x86_64)
下载完成后将它解压,即可得到一个 Arch 的基础 rootfs.
在安装 ``bwrap`` (bubblewrap) 的前提下
```shell
sudo dnf insta...
2024/10/03 23:20:33
Linux
bwrap,Fedora,Arch
在 fedora 上建立一个 debian 容器
有天入了 fedora 的坑,把笔记本电脑安装了它作为主系统。但是有个问题随之而来,恐怕我以后没法用 deb 包还有星火商店了(解deb包吧还怪麻烦,而且不太方便找软件)。想起星火社区搞了一个 ACE(debian 容器),但 rpm 构建脚本已经年久失修,问题挺多的。后面干脆看 ACE 的源码看它怎么实现的了。后面了解到使用了 bwrap ,随后我在一个 debian rootfs 上做了些简易测试,感觉还算成功。
首先通过 debootstrap 可以下载 debian 的 rootfs。
```
sudo debootstrap --arch amd64 sid /path/to/debian/ https://deb.debian.org/debian
```
参数:--arch...
2024/07/22 21:12:06
Linux
bwrap,Fedora,Debian
i3wm | 自制一个极简的屏幕亮度调节器
在不需要额外软件包的情况下
i3wm 是一个轻量级的平铺窗口管理器,它比 gnome 和 kde 这些桌面环境功能要单一,只显示 x 窗口程序,然后搭配快捷键去 打开/关闭/切换窗口。默认情况下不支持屏幕亮度调节。这需要安装额外的软件去支持,不过我们也可以去自制一个简单的。
在 ~/.config/i3/config 文件可以配置 i3wm 以及快捷键功能,
i3 给我们提供了两个叫 ``XF86MonBrightnessUp`` 以及 ``XF86MonBrightnessDown`` 的变量,分别对应的是笔记本电脑 亮度调节的"递增"和"减少"键
在其文件中编辑
```
bindsym XF86MonBrightnessUp exec "这里执行亮度递增的程序路径"
bindsym XF86MonBrigh...
2024/03/01 17:20:43
node.js
Linux
在 Linux 下启用内存压缩技术 zram
在电脑物理内存少的情况下,可以添加交换文件 swap 利用硬盘空间来扩展内存的使用(在 windows 里叫页文件)来缓解。zarm(内存压缩) 是一种更新的内存扩展技术,在传统 swap 无法满足需求时,使用 zram 来作为 swap 也许会派上用场。
### 如何在 Linux 开启 zram
编辑 /etc/modules-load.d/zram.conf 添加
```
zram
```
会在进入系统时自动启用 zram 模块
接下来是建立一个 zram0 设备,在不使用额外软件包情况下,可以使用 udev 规则配置。
编辑 /etc/udev/rules.d/99-zram.rules (按需调整 disksize 大小,一般为总物理内存 / 2 比较适合) ,其中 co...
2024/02/20 19:01:03
Linux
搭建一个本地轻量级聊天 Ai
使用消费级电脑计算,并且不需要高端显卡
近年来 chatGPT 热度非常高,很多不同的大语言模型也破圈出现在大家的视野,如 科大讯飞星火、清华ChatGLM、百度文心一言、华为盘古大模型等。
这些语言模型服务一般都需要大公司服务器配置高端显卡来加速计算。使得普通用户上手门槛略高,不过好在他们也开放了一些量级相对小的模型。比如 ChatGLM 可以让最低拥有 6GB 显存,1-4 张 RTX3070~RTX4080 的机器跑 ChatGLM-6B 量化后的模型,但这仍然是一个比较高的硬件门槛。
不过博主发现了一个Github项目,chatglm-cpp ``https://github.com/li-plus/chatglm.cpp`` 可以让我的 R7-6800h - 16GB 内存的笔记本跑起来该语言模型,它由C++ 实现...
2023/07/21 14:53:53
大语言模型
我又又又重新上线了博客
再次重构了博客
从使用 WordPress 到 Typecho 现成的系统来建博、到自己基于 hexo 制作博客主题、通过 Vue2+nuxt.js 编写博客系统,php后端重构了几次,后面又切换到了 Node.js 。一直在重新上线博客没停过 哈哈哈(唉就是玩)。
(2024-12-5更新) 最终切换到 Bun。(这是一个有着性能不错的 JS/TS 运行时)
(由于我过于业余,底子写得太烂不好维护),最终还是决定继续开发一个新的。我会一边开发一边直接投入使用(如果遇到bug欢迎热心网友的反馈)。
以前的文章笔记,后续补充更新 :)...
2023/06/19 07:50:24
碎碎念
如何通过 winetricks 管理 wine 容器 (包括 proton)
在使用 wine 时的一些技巧。
我们都知道 Wine 是容器化运行 Windows 程序的。在我们通过 wine [程序.exe] 都会建立一个单独的容器,默认情况下会自动创建在 ~/ 创建一个 .wine 目录。
可以通过以下命令行管理该容器:
```shell
WINEPREFIX=/home/user/.wine/ winetricks
```
而如果直接执行 winetricks 也会默认从这个路径上找。只要不自己修改或添加新容器,一般情况下 wine 都会使用这同一个容器。
### 什么是 proton
如果你在 Linux 上玩游戏,你一定对于 Steam 的 SteamPlay 技术有了解,它的核心技术 proton 是基于 wine 开发的(wine 的 fork 版本),因为预装了很多环境,开箱即...
2023/05/16 07:13:08
Linux
wine
Btrfs 文件系统创建 swap 文件的方法
首先创建一个 0 byte 的文件并设置 No_COW 属性
```shell
truncate -s 0 /swapfile
chattr +C /swapfile
```
创建一个8GB的交换文件(指向那个 0 byte 的文件路径)
```shell
dd if=/dev/zero of=/swapfile bs=1G count=8
```
设置为一个安全的权限(可选)
```shell
chmod 600 /swapfile
```
格式化并激活 swap
```shell
mkswap /swapfile
swapon /swapfile
```
## 开机自动挂载的方法
打开 /etc/fstab
```shell
vim /etc/fstab
```
追加
```s...
2022/12/17 17:13:43
Linux
btrfs
如何创建适用于 Linux 桌面的程序启动文件
desktop 文件的使用和介绍
在 Linux 中 .desktop 文件类似 windows 中的快捷方式,可以通过鼠标双击启动一些指定的应用程序。
而大部分发行版一般在该目录下就存放着应用程序中心所显示的应用。
```shell
/usr/share/applications/
```
许多桌面应用程序在安装后都自动生成 .desktop 到此处。(个别不遵守规则的软件例外)
有时如果你恰好想在启动台中或桌面某个角落快捷启动某个程序,那么就可以自己手动去编写一个 .desktop 文件。
通常的字段编写是这样:
```shell
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/path/to/...
2022/09/26 15:54:29
Linux
在 Linux 控制 intel CPU 调度的方法
在硬件驱动成功的情况下,拿到 root 权限,然后编辑以下文件。
参数阈值: 10-100,最大主频
```shell
vim /sys/devices/system/cpu/intel_pstate/max_perf_pct
```
参数阈值:10-100,最小主频
```shell
vim /sys/devices/system/cpu/intel_pstate/min_perf_pct
```
是否关闭CPU睿频,1 为不开启 0 则开启睿频
```shell
vim /sys/devices/system/cpu/intel_pstate/no_turbo
```
如果你动手能力强的话,可以用脚本来实现自动化。比如检查某硬件温度多少时调整多少对应的CPU频率阈值。
对于我之前的...
2022/08/22 08:56:27
Linux
cpu调度,node.js
Arch Linux 的基本安装
一个极简的操作系统
Arch Linux 作为一个 Linux 的其中一个发行版与其它发行版有点不一样的就是可定制性 (DIY玩法) 非常高,几乎可以完全自己定制操作系统。决定哪些软件想安装,哪些软件不想安装。
但它的安装几乎没有图形界面,只能靠终端输入命令来进行安装,对于很多人来说有一定的难度。
不过所谓的难也只是万事开头"难",只要认真稍微了解了之后,安装该系统一定也能觉得是一件简单的事情。
话不多说,咱直接就来上手。
当制作好 ArchLinux 启动盘并引导进入 Live 的时候,就可以开始了。
首先需要分好区, EFI 分区、Root 分区、Swap分区(可选)并依次格式化。如果已经提前做过这些操作那可以直接跳过。以下为一些分区格式化的命令。
### 格式化 EFI
```shell
mk...
2022/07/05 17:35:26
Linux
Arch