譬如江川
这场旅行 仿佛一场等待站台的荒诞仪式 车厢中拥挤着无数泡沫 与失落的呼吸 当被凝视的镜子学会追问 每一站停泊的含义 我在成为这片土地的血脉中 迷失的细胞 春天如此透明地来临 许多新生或苍老的荒芜 正在大地上熙熙攘攘 天空铺陈的尾际云 疲于奔逐的血液与铁轨 永远皲裂流离,譬如江川 可是即使春天已至,你也不知 我是如何穿越大半个中国 如何徒劳地掠过 数…
SYN Queue & Accept Queue
内核中的两个存放连接信息的队列。存放的连接元数据,四元组、MSS、window scale 等。 其用途简单来说: 收到 SYN 以后放进 SYN queue(半连接队列) 收到 ACK 以后放进 Accept Queue(全连接队列) 用户进程调用 accept() 以后,从 Accept Queue 中取出 ![[synqueue.png]] …
systemd
1. .service 文件 主要分为三个部分 [Unit] 服务的元信息(描述、依赖关系等)。 [Service] 服务的运行参数与生命周期 [Install] 服务的安装目标(说人话:在什么情况下启动,命令行 or GUI) 1.1. 案例 [Unit] Description=frp auto start After=network.targ…
新版本 iTerm2 option + 方向键输出字符问题
最近在给新买的 mac 装机,在配置 iTerm2 的时候发现,option + 方向键并不能按照以往那样将光标移动一个单词,而是输出了 ABCD 等字符。 可以确认的是,这个问题是 iTerm2 独有的。在系统的其他地方,无论是浏览器、即时通讯的输入框、还是默认的终端,opt + 方向键的效果都是符合预期的。 在 google 上直接搜索,找到的…
linux 动态内存管理:brk/mmap/madvise 等
1. brk/sbrk syscall 要介绍 brk,需要先引入 program break 这一概念。它可以直接理解为是虚存中的一个指针,指向堆的终点。进程初始化时,由于堆大小为 0,故 program break 直接指向 .bss 段的终点。 brk/sbrk syscall 的作用就是移动 program break 的位置。如果向高地址…
杂谈:数据库相关经验
1. 不要 select * 对于复杂的表,磁盘 IO 大,浪费带宽 可能无法充分利用索引。参考 之前的 mysql 笔记 的第 24 节 兼容不佳,未来新增列以后,可能影响到 sql 结果解析。 2. 多个 insert 的部分用一行 sql 解决 虽然会写一些比较恶心的 sql 字符串拼接,但是也有收益。这里直接参考 GPT: Reduced …
clap 笔记
1. ValueEnum 当我们需要使用自定义的枚举类型作为参数时,我们可以使用 clap::clap_derive::ValueEnum。 1.1 derive 方式 直接上例子: use clap::{clap_derive::ValueEnum, Parser}; #[derive(Debug, Clone, ValueEnum)] enum…
Linux 杂记
1. ipvsadm LVS 的管理命令,详见 man 2. syslog 在路径 /var/log 下。 Debian 系: syslog ker.log RedHat 系: messages
【摘抄】《我和所有事物的时差》李元胜
1. 给 我坐在屋里 手却在大墙的外面 摸寻着这个秋天最后一片树叶 墙外的树 它沉默的时候很像我 它从树干里往外看的时候很像我 它几乎每分钟都在长树叶 我们在一起的时候它长树叶 我们不在一起的时候它也长树叶 但两种树叶绝不相同 这你不知道 你想我的时候它长树叶 没想我的时候它也长树叶 但两种树叶绝不相同 这就我知道 它几乎每分钟都在长树叶 然后把它…
TCP 杂记
1. TCP_NODELAY 和 TCP_QUICKACK 1.1. Nagle's Algorithm 现代的 Linux kernel 的网络协议栈中默认启用的算法,也是粘包产生的原因之一。 根据算法文档,原版的 Nagle 算法可以简要表达为: If a TCP has less than a full-sized packet to tra…