logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux 资源限制:结合 Cgroups v2 与 prlimit 限制单进程文件描述符与栈内存

在多租户计算节点、在线代码沙箱、以及高可用微服务底座中,不可信的用户代码或存在缺陷的第三方模块始终是系统稳定的最大威胁。最典型的破坏场景包括:死递归调用在微秒级耗尽调用栈触发不可控崩溃;或是循环调用socket()与open()制造海量文件描述符泄漏,迅速打满操作系统全局文件表配额,导致宿主机上连基础的 SSH 登录与 DNS 查询都由于而全盘瘫痪。为了构建坚固的防御屏障,单一维度的限制往往漏洞百

文章图片
#AI#人工智能#linux +1
Linux 缺页异常中的匿名页映射:do_anonymous_page 源码深度追踪与零页优化

在 Linux 用户态程序中,无论是调用malloc()分配堆内存,还是局部变量撑大用户栈,操作系统为了维持极致的物理内存利用率,都严格遵循惰性分配(Demand Paging)准则。当程序获得一段合法的虚拟内存地址范围时,内核仅仅在进程的mm_struct中构建或合并了虚拟内存区域(, 简称 VMA),此时硬件页表(Page Table Entry, PTE)中甚至连一个物理页帧的映射都未曾建立

文章图片
#AI#人工智能#linux +1
深入理解 Linux 缺页异常(Page Fault):从硬件中断触发到内核 do_page_fault 入口

在现代多任务操作系统中,虚拟内存(Virtual Memory)是支撑整个软件世界最伟大的抽象之一。无论用户态程序调用malloc()分配了多大的连续空间,操作系统向你许诺的都只是一张张“虚拟地址白条”。在调用(申请 100MB)的那一瞬间,!内核仅仅是在当前进程的内存描述符中,开辟了一段合法的虚拟内存区域(真正的物理内存绑定,被巧妙地推迟到了进程第一次真正通过指令去读取或写入这块地址的瞬间。

文章图片
#性能优化
终端历史搜索升级:结合 BM25 算法与小模型重构 Ctrl+R 的极速搜索体验

终端交互是工程师与操作系统最核心的连接纽带,但原生 Shell(如 Bash、Zsh)内置的Ctrl+R反向增量搜索自几十年前诞生以来几乎毫无长进。它仅支持机械的子串精准匹配:一旦命令参数顺序调换、少输了一个前缀横杠、或者只记得“查看特定网卡丢包”这类自然语言意图,原生搜索立即哑火。社区随后催生了fzf等基于字符跳跃的模糊匹配工具,大幅改善了体验。然而模糊匹配在长历史(数十万条历史记录)面前仍然暴

文章图片
#AI#人工智能#linux +1
Linux 内核内存泄漏排查利器 kmemleak:原理、启动开销与假阳性误报压制

在用户态应用程序中排查内存泄漏,工程师们拥有极其丰富的现代化武器库:Valgrind、AddressSanitizer(ASan)、以及各类带有完整运行时反射与堆栈采样的 Profiler 工具。一旦出现内存泄露,往往几分钟内就能顺藤摸瓜定位到是哪一行malloc遗漏了对应的free。然而,一旦进入**操作系统内核(Kernel Space)**的深水区,排查内存泄漏的难度会瞬间陡增几个数量级。在

文章图片
#AI#人工智能#linux +1
PCIe设备驱动开发:从枚举到DMA传输的完整链路

设备匹配与初始化:定义表,实现probe。使用托管API(pcim_*)避免资源泄漏。生产驱动必须处理热插拔。配置空间与BAR:BAR探测是基础能力,一行搞定。特殊设备寄存器通过获取。中断选择:高性能设备首选MSI-X,利用中断亲和性实现多队列并行。中断处理采用上半部确认+下半部处理的经典模式。DMA决策:小数据频繁交互用一致性映射(描述符环);大块数据传输用流式映射。严格遵循映射期间不访问缓冲区

#linux#嵌入式
打造纯粹的极客生产力工作站:基于Arch Linux、Neovim与Tmux的极简环境落地

现代操作系统正以前所未有的速度侵蚀开发者的注意力。开机后随之而来的通知中心、显卡驱动控制面板、Electron 架构的各色即时通讯软件,以及桌面环境后台数百个未知的 D-Bus 守护进程,不仅吃掉数以吉字节计的物理内存,更在后台频繁制造上下文切换与不可控的 CPU 唤醒周期。对于深耕底层开发、内核调试以及系统级编程的工程师而言,这种环境无异于杂音工厂。

文章图片
#AI#人工智能#linux +1
C23废弃旧式变长数组的部分不安全用法:为什么内核开发者对栈溢出零容忍

在 C 语言演进史上,C99 引入的变长数组(Variable-Length Array, 简称 VLA)曾被视为提升动态数组便捷性的“语法糖”。然而在系统级编程、操作系统内核以及安全关键领域,VLA 却成为了最具破坏力的漏洞温床之一。早在多年前,Linus Torvalds 便在 Linux 内核邮件列表中公开抨击 VLA 为“纯粹的愚蠢与脑残设计”,并在 Linux 内核中全面强制开启-Wvl

文章图片
#AI#人工智能#linux +1
C23废弃旧式变长数组的部分不安全用法:为什么内核开发者对栈溢出零容忍

在 C 语言演进史上,C99 引入的变长数组(Variable-Length Array, 简称 VLA)曾被视为提升动态数组便捷性的“语法糖”。然而在系统级编程、操作系统内核以及安全关键领域,VLA 却成为了最具破坏力的漏洞温床之一。早在多年前,Linus Torvalds 便在 Linux 内核邮件列表中公开抨击 VLA 为“纯粹的愚蠢与脑残设计”,并在 Linux 内核中全面强制开启-Wvl

文章图片
#AI#人工智能#linux +1
Linux User Namespace 与非特权容器:免 root 实现安全进程隔离

在云计算与多租户容器安全领域,传统 Docker“以宿主机 root 权限运行守护进程”的架构长期被安全团队视作高危阿喀琉斯之踵。一旦容器内的恶意代码利用未修补的内核漏洞或运行时逃逸缺陷(如经典的 runc CVE-2019-5736),由于容器内的 UID 0 直接等价于宿主机的 UID 0,攻击者逃逸后将直接接管整台物理机,拥有擦除磁盘与窃取一切租户机密的至高权力。

文章图片
#AI#人工智能#linux +1
    共 1292 条
  • 1
  • 2
  • 3
  • 130
  • 请选择