rqdmap
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
Linux
实用Linux桌面系统定制化方案
2023.12.03 21:42
2024.03.02 20:27
Linux
ArchLinux
Utils
5473字
前前后后折腾自己使用的这套Linux桌面系统也有一年多的时间了, 但是由于其中涉及的事务纷繁细琐, 因而一直没有专门整理过一篇内容对其做系统的介绍. 不过由于这个周末又重构了之前的一套账单处理工具和一些常用脚本, 一下子便感觉到目前系统和功能服务已经愈发复杂起来了, 可以考虑对其做一个简单 ...
SUID与程序执行
2023.07.14 15:08
2023.07.24 21:44
Linux
Shell
文件系统
程序执行
1418字
在之前的博客ArchLinux调优: 显卡、声卡与电源 - rqdmap | blog中说明了如何使用开源的nvidia驱动并且关闭nvidia的供电来使得笔记本续航能力的提升. 通常来说我们不希望每次开机后都要手动向bbswitch写off字符串, 因而一般委以重任给dm; 不过像ly这样的纯终端dm貌 ...
Linux内核中的Rust使用
2023.06.05 16:09
2023.06.27 17:46
Linux
Kernel
Rust
2863字
内核代码选用Linux-6.3.4, 对其中有关Rust代码进行简单的分析. ...
ArchLinux: 蓝牙支持
2023.05.25 02:09
2023.05.29 23:05
Linux
Bluetooth
571字
由于有线版本只要1k, 带有蓝牙的双模则要2k5.. 不过由于蓝牙无线确实是十分的方便, 因而还需要测试一下本机的蓝牙模块. 主要参考<Bluetooth - ArchWiki>即可. 本机是Dell G5520 Nvidia, 可以修改ArchWiki对应的部分了:) Laptop/Dell - ArchWiki 安装几个相关的包: bluez: 蓝牙协议栈 bluez-utils: ...
NixOS: 选择与放弃
2023.05.24 17:50
2023.05.29 23:05
Linux
Nix
NixOS
2721字
偶然听说了NixOS, 其万物皆配置文件的理念深深地吸引了我. 由于Arch下的pacman对于系统的监控总是不够地完全, 完全可能出现安装的某个包被卸载后一些配置/数据文件遗留在本机(经过测试, pacman -Rsun并不行, 后续考虑结合pacman -Ql写一些钩子函数), 或者是我修改了若干位于 ...
ArchLinux调优: 显卡、声卡与电源
2023.04.23 01:29
2023.07.14 15:21
Linux
驱动
声卡
独显
电源管理
3535字
记录一些最近针对本机硬件设备驱动相关的调整与优化(?反向优化), 主要涉及到Nvidia独立显卡, Intel声卡以及电源管理等几个部分. 电源管理 在使用Windows时基本上是稳定1.5-2h左右, 去年刚配置好我的bspwm桌面系统后却能使用到4h… 结果目前Linux的 ...
sched_ext机制研究
2023.04.09 19:41
2023.05.29 23:05
Linux
Kernel
scheduler
eBPF
30526字
Slide 充斥着大量的谬误与个人的随意理解: sched_ext机制研究 简介 <The extensible scheduler class [LWN.net]> BPF背后的核心思想是, 它允许程序在运行时从用户空间加载到内核中; 与现在的Linux系统相比, 使用BPF进行调度有可能实现明显不同的调度行为. 那么, 为什么现在要提出BPF机制呢? 为了期待一场长时间的讨论, ...
Linux下修改文件的4个时间
2023.03.24 13:43
2023.05.29 23:05
Linux
文件系统
时间
396字
由于一些原因… 接触到了如何修改Linux(/windows)下文件4个时间的方式. 修改时间 修改Access time 与 Modify time: 1touch -a <file> -d '2000-01-01 08:15:23' 2touch -m <file> -d '2000-01-01 08:15:23' 而Change time与Birth time貌似是与fs相绑定的, 比如在Linux的ext4下打包一个zip, 传送至windows ...
clash+systemd自启动问题
2023.03.24 13:43
2023.05.29 23:05
Linux
clash
systemd
654字
通常来说, 参考网上最常见的guide来配置systemd + clash 没有问题: <Running Clash as a service · Dreamacro/clash Wiki> 1[Unit] 2Description=Clash daemon, A rule-based proxy in Go. 3After=network.target 4 5[Service] 6Type=simple 7Restart=always 8ExecStart=/usr/local/bin/clash -d /etc/clash 9 10[Install] 11WantedBy=multi-user.target 问题排查 但是在我的配置中(优先走的是url-test策略组)会出现一些问题: 开机自启后, 大概率会出现完全无法走proxy的情况, 而且该问题近期才出现, 因而并 ...
KML: 实现机制研究
2023.03.16 21:11
2023.05.29 23:05
Linux
Kernel
Kernel Linux Mode
12849字
本文将参考作者给出的guide, 深入研究IA-32下KML机制的工作原理以及相关技术. 有关于KML技术的使用可以参考:<启用Kernel Model Linux - rqdmap | blog> 工作原理 To execute user programs in kernel mode, Kernel Mode Linux has a special start_thread (start_kernel_thread) routine, which is called in processing execve(2) and sets registers of a user process to specified initial values. The original start_thread routine sets CS segment register to __USER_CS. The start_kernel_thread routine sets the CS register to __KERNEL_CS. Thus, a user program is started as ...
duu: 按照大小排序的du指令
2023.03.13 12:12
2023.05.29 23:05
Linux
shell
du
276字
正确的办法! du -d 1 -h | sort -hr duu du 指令无法以可读的形式按照大小排序, du -d 1 -h | sort -nr并不正确, 因而写一个简单的脚本进行实现. 1use std::env; 2 3fn main() { 4 let args: Vec<String> = env::args().collect(); 5 assert!(args.len() >= 2); 6 7 if args[1].len() > 18 { 8 println!("Number too large"); 9 return; 10 } 11 12 for c in args[1].chars() { 13 if !c.is_digit(10) { 14 println!("Invalid number"); 15 return; 16 } 17 } 18 19 let nr_bytes = args[1].parse::<u64>().unwrap(); 20 /* KB -> MB -> GB */ 21 22 let mut level: usize = 0; 23 let mut tmp = nr_bytes; ...
KML: 启用Kernel Model Linux
2023.03.08 10:58
2023.05.29 23:05
Linux
Kernel
Kernel Linux Mode
QEMU
4586字
KML简介 Kernel Mode Linux: Execute user processes in kernel mode 是一种允许用户程序运行于内核态的技术. 处于内核态的程序可以直接访问任意的内核空间, 无需再使用软中断和上下文切换等手段进行系统调用. 此外, 这些程序也会正常的参与分页和调度, 这样哪怕这些程序死循环, 整个系统也不会因此卡死. 如何使用KML? 编译了打好补丁的内 ...
基于QEMU搭建内核调试环境
2023.03.06 14:58
2023.05.29 23:05
Linux
Kernel
QEMU
GDB
3571字
搞一份内核源码, 并尝试调试一个拓展内核功能的补丁Kernel-Mode-Linux; 对于该模块的调试与分析见后续博文<启用Kernel Model Linux> Linux内核编译 这里使用的是Linux4.4.12(4.0.*, 3.1*, 2.6.*系列也有尝试过), 并且还需要打上PREEMPT_RT实时内 ...
LFS包管理与Shell脚本
2023.02.19 14:27
2023.09.01 18:14
Linux
Shell
包管理
LFS
7264字
参考文档 More Control and Package Management using Package Users (v1.4) 工具包: more_control_helpers Shell 编程 特殊变量 $开头的一些特殊变量: 1Special Parameters 2 The shell treats several parameters specially. These parameters may only 3 be referenced; assignment to them is not allowed. 4 * Expands to the positional parameters, starting from one. When the 5 expansion is not within double quotes, each positional parameter expands to 6 a separate word. In contexts where it is performed, those words are 7 subject to further word splitting and pathname expansion. When the 8 expansion occurs within double quotes, it expands to a single word with the 9 value of each parameter separated by the first character of the IFS 10 special variable. That is, "$*" is ...
ArchLinux上安装zathura-develop
2023.02.13 01:35
2023.05.29 23:05
Linux
zathura
源码包
1857字
起因是因为Zathura作为一款我很喜欢的使用键盘移动的PDF阅读器, 居然拥有如此糟糕的划词功能(Text Select), 其划词功能通过一个方框框选出一片区域, Zathura自动提取出其中的文本, 并自动复制到剪贴板, 看上去很美好但是存在两个问题: 选区粒度粗, 不能做到精准到某个字符 划词不准确, 有 ...
trash:取代危险的rm
2023.01.01 13:23
2023.05.29 23:05
Linux
rm
shell
594字
rm 指令十分的危险… 为此希望实现一个回收站. archwiki给出了一些可用的建议Trash management, 用下来体验不好, 打算自己搞一个. 第一版的trash自己解析了输入的参数.. 然后加上unix时间戳后mv到一个指定的公共磁盘分区上(因而其实性能也不太好, 尤其是大文件的删除时), ...
Linux文件权限
2023.01.01 12:48
2023.05.29 23:05
Linux
文件权限
2010字
其实对于Linux的文件权限一直一知半解, 之前使用php尝试访问sqlite的时候就发生了文件权限的惨案, 至今也不知道为什么会这样.. 当时的情况是, 将博客的public文件夹放置在服务器的/usr/share/nginx/html下就会G, 哪怕对数据库文件+该文件所在的目录都设置了777权限后php还是无法访问该目录下的sqlite DB; 修改放置位置到/srv/http/下就可以了, 而且不需要设置777, 设置为755即可.. 但是其实之前也考虑到文件权限等等, 因而将nginx和php-fpm的用户全部设置为了rqdmap, 而public文件的用户和组也全部都是rqdmap… 为何放到/srv下就可以了呢… 疑案未决… 因而准备稍微系统看一下Linux的文件权限管理. ...
Linux 上的 Nvidia 闭源显卡驱动问题记录
2022.12.20 15:17
2024.03.02 20:27
Linux
linux drivers
nvidia
显卡
946字
Nvidia闭源驱动问题多多… 本机是Dell G5520, 搭载Intel核显+nvidia GeForce 3060独显. 曾经的kde archlinux好像是从来没有过显卡的适配问题, 可以在多屏幕、多显卡(主要是hdmi接口必须要nvidia显卡来驱动)的情况下完美运行. 但是目前的archli ...
trojan+nginx共用443端口
2022.12.08 19:41
2023.05.29 23:05
Linux
nginx
trojan
906字
当远端服务器的443与80端口已经运行着Http Server后, 如何复用端口以允许trojan同样监听443呢? ...
Linux下为Chrome开启代理
2022.12.07 23:00
2023.05.29 23:05
Linux
Chrome
Proxy
Linux
334字
由于没有使用集成的桌面环境, 因而chrome没法读取全局代理的信息, 每次更新AUR chrome后都需要手动修改… 这里小小mark一下解决办法(或许今后可以做更加自动化的钩子什么的… 再说) Rofi命令行启动的应该是桌面程序(?), 在这个地方:/usr/s ...
ULK 内存管理
2022.07.29 19:50
2023.05.29 23:05
Linux
Kernel
内存
33748字
页框管理 尽管奔腾处理器允许采取两种不同大小的页框:4KB和4MB(PAE被激活则是2MB),但是Linux采用4KB页框大小作为基本分配单元,基于两个原因: 由分页单元引发的缺页异常很容易得到解释:或者是页无权访问,或者是页不存在。在后一种情况下,内存分配器仅仅需要找到一个4KB空 ...
ULK 进程
2021.10.04 16:28
2023.05.29 23:05
Linux
Kernel
进程
32210字
进程、轻量级进程和线程 进程是资源分配的实体,而线程是作业调度的基本单位。Linux使用轻量级进程来支持多线程应用程序,轻量级进程之间可以共享一部分资源,诸如地址空间、打开的文件等,通过将轻量级进程和线程关联起来就可以实现多线程应用程序。 进程描述符 进程描述符包含了与一个进程有关的所 ...
ULK 内存寻址
2021.10.04 16:28
2023.05.29 23:05
Linux
Kernel
内存寻址
7583字
绪论 绪论中从总体的框架介绍了一下操作系统、文件系统与Unix内核相关内容,不予过多赘述。 一个新学到的内容是可重入(内核,这意味着多个进程可以同时在内核下执行。这个特性太过于自然以至于让我一直没有注意到也没有在教材上见过,如果某个进程在内核态中被阻塞被挂起,那么它当然不应该影响到其 ...
LinuxKernel
2021.07.17 22:09
2023.05.29 23:05
Linux
Kernel
523字
深入理解Linux内核学习笔记 前言 想要学习Linux内核的契机大抵源于读OS相关的paper时感到力不从心,就正好趁机学习一下素来感兴趣的内核知识。 写下“兴趣”二字后不禁想到日向晶也的论述,兴趣绝不能成为训练的动力,否则遇挫后兴趣消失也就自然放弃了训练;然而学习内核确实也没有什么 ...
linux多线程
2021.03.23 12:45
2023.05.29 23:05
Linux
多线程
2090字
在linux下,Pthread是一套通用的线程库,由POSIX提出,具有较好的移植性。 使用头文件<pthread.h> 线程基本操作 线程的创建与退出 pthead_create 1int pthread_create(pthread_t *thread, pthread_attr_t * attr, void *(*start_routine)(void *), void *arg); 传入参数:thread为线程标识符,attr为线程属性设置,start_routine为线程函数起 ...
Linux 下的 socket 编程
2021.03.23 12:45
2024.03.02 20:27
Linux
7726字
基础知识 socket常用函数 socket domain指定协议族,type指定socket类型,protocol指定协议(为0时自动选择type类型对应的默认协议) 1int socket(int domain, int type, int protocol); 返回值大于0成功;-1失败,错误类型保存在全局变量errno中。 bind 分配地址族中的特地地址给socket sockfd ...
创建时间
修改时间
字数