<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[唐装鼠的主页]]></title><description><![CDATA[醒梦一如]]></description><link>https://blog.youkuaiyun.com/haibosdu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; haibosdu]]></copyright><item><title><![CDATA[Rust裸指针方法(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/162104624</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/162104624</guid><author>haibosdu</author><pubDate>Thu, 18 Jun 2026 17:21:08 +0800</pubDate><description><![CDATA[本文总结了 Rust 中裸指针（*const T 和 *mut T）的主要方法，分为创建、判断转换和指针运算三类，并强调这些操作几乎都需要在 unsafe 块中使用。文章提供了详细的方法分类表格，重点注意事项包括：必须使用 unsafe 块、注意转换后的生命周期陷阱、使用 addr_of! 处理未对齐字段、确保指针有效性等。最后建议结合实际使用场景进行更深入的分析，以规避未定义行为风险。]]></description><category></category></item><item><title><![CDATA[Nginx + Gunicorn + Python Web 应用 架构(Claude)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/161646834</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/161646834</guid><author>haibosdu</author><pubDate>Wed, 03 Jun 2026 10:55:53 +0800</pubDate><description><![CDATA[本文概述了Python Web应用的典型分层架构：Nginx作为反向代理层处理SSL和静态文件，转发动态请求至Gunicorn；Gunicorn作为WSGI服务器管理多进程Worker处理请求；应用层（Flask/Django等）遵循WSGI规范响应；数据层通过ORM/SDK访问各类存储。对比了Unix Socket与TCP通信的适用场景，并建议使用systemd管理服务以实现高可用。核心要点包括分层职责、进程模型及部署优化策略。]]></description><category></category></item><item><title><![CDATA[深入解析WPAD协议：从代理自动发现到安全实践（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/160852084</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/160852084</guid><author>haibosdu</author><pubDate>Thu, 07 May 2026 11:18:47 +0800</pubDate><description><![CDATA[WPAD协议摘要 WPAD（Web代理自动发现协议）是企业网络中实现客户端自动配置代理服务器的关键技术。它通过DNS或DHCP方式让浏览器自动发现代理配置，下载PAC文件（JavaScript脚本）决定流量走向。DNS方式通过层级域名猜测（如wpad.example.com）定位代理服务器，而DHCP方式直接提供PAC文件URL，但因安全风险现已较少使用。值得注意的是，WPAD获取PAC文件采用HTTP而非HTTPS，这是受限于历史技术条件（早期HTTPS性能开销大、证书管理复杂）和协议设计假设（内网环境可]]></description><category></category></item><item><title><![CDATA[内核网络数据包处理深度解析：从硬件到协议栈的完整旅程（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/159948530</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/159948530</guid><author>haibosdu</author><pubDate>Wed, 08 Apr 2026 10:15:57 +0800</pubDate><description><![CDATA[本文深入解析了Linux内核网络数据包处理的完整流程与优化演进。文章首先通过仓库管理员的类比，形象化解释了DMA拷贝、描述符管理和中断机制的工作原理。随后详细分析了三种主流处理模式：传统内核驱动的完整协议栈处理、DPDK的用户态轮询方案和XDP的eBPF快速路径技术。 文章重点剖析了内核驱动模式下的关键环节，包括描述符与环形队列的设计、硬中断与软中断的分工协作、sk_buff数据结构的内存管理机制，并指出了其性能瓶颈。在此基础上，对比了DPDK完全绕过内核的极致性能方案和XDP平衡性能与灵活性的eBPF技术]]></description><category></category></item><item><title><![CDATA[Linux 下 malloc 内存分配机制详解]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/157765574</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/157765574</guid><author>haibosdu</author><pubDate>Thu, 05 Feb 2026 11:29:23 +0800</pubDate><description><![CDATA[在 Linux 系统中，malloc() 是 C 语言标准库（glibc）提供的动态内存分配函数。📌 示例：运行一个多线程程序后查看 /proc//maps，你会看到一个 [heap] 区域和多个匿名 mmap 区域——它们分别对应 main arena 和 thread arenas。因此，一个进程可以有多个 arena，每个 arena 都是一个独立的“堆”，拥有自己的空闲块管理结构和锁。Arena 是 malloc 用来管理内存的独立分配区，目的是支持高效、线程安全的内存分配。]]></description><category></category></item><item><title><![CDATA[指令排序与内存顺序：并发编程的核心概念（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/157249675</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/157249675</guid><author>haibosdu</author><pubDate>Thu, 22 Jan 2026 10:51:14 +0800</pubDate><description><![CDATA[默认使用除非有明确性能需求，否则使用最强一致性更易于推理和调试理解 Acquire-Release 模式这是构建高效同步原语的基础掌握"发布-消费"模式最小化同步范围只在必要时使用内存屏障减少共享数据的使用使用高级抽象优先考虑std::mutex它们内部已经正确实现了内存屏障平台差异意识x86 内存模型较强，很多屏障是隐式的ARM/PowerPC 需要更多显式屏障从"代码书写顺序"到"多线程交错与可见性"从"单线程优化"到"多线程正确性优先"关键要点。]]></description><category></category></item><item><title><![CDATA[Aya eBPF框架学习]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/157135282</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/157135282</guid><author>haibosdu</author><pubDate>Mon, 19 Jan 2026 14:54:54 +0800</pubDate><description><![CDATA[【代码】欧拉系统安装Aya eBPF框架。]]></description><category></category></item><item><title><![CDATA[实现微纳秒级时间同步：Linux PTP 全面指南]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156947202</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156947202</guid><author>haibosdu</author><pubDate>Wed, 14 Jan 2026 15:41:52 +0800</pubDate><description><![CDATA[Linux PTP是一套在Linux操作系统上实现IEEE 1588协议的软件套件，能够提供高精度的时间同步能力。该协议主要针对需要微秒甚至纳秒级同步精度的应用场景而设计：包括工业自动化系统通信网络（特别是5G网络的时间同步需求）以及金融交易系统等对时间敏感的关键领域。协议通过两种核心工具实现：ptp4l守护进程负责实施PTP协议并与其他设备协调时间同步；phc2sys守护进程则专门用于同步硬件时钟与系统时钟，确保系统层面的时间一致性。]]></description><category></category></item><item><title><![CDATA[linux vscode解压版 AI账号无法登陆问题（浏览器无法打开vscode）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156755613</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156755613</guid><author>haibosdu</author><pubDate>Fri, 09 Jan 2026 11:08:08 +0800</pubDate><description><![CDATA[更新数据库：update-desktop-database ~/.local/share/applications/Name[ja]=新しい空のウィンドウ。Name[zh_CN]=新建空窗口。Name[zh_TW]=開新空視窗。]]></description><category></category></item><item><title><![CDATA[C语言syslog()函数（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156417872</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156417872</guid><author>haibosdu</author><pubDate>Tue, 30 Dec 2025 10:51:37 +0800</pubDate><description><![CDATA[同步与异步：syslog()默认是同步阻塞的，可以设置成异步的。与rsyslog日志处理是异步解耦的，数据发送到socket缓冲区后立即返回。两者通过journald服务中转。性能敏感：正常情况10-50μs，阻塞时可能达到秒级可配置性强：支持多种设备类型和日志级别系统集成好：与journald/rsyslog深度集成。]]></description><category></category></item><item><title><![CDATA[Linux日志系统：syslog、rsyslog、journald的关系（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156415735</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156415735</guid><author>haibosdu</author><pubDate>Tue, 30 Dec 2025 09:58:25 +0800</pubDate><description><![CDATA[特性syslog（协议）rsyslog（实现）journald本质协议/标准守护进程（兼容协议）守护进程（自有格式）日志格式纯文本（标准）纯文本（默认，可扩展）结构化二进制存储文件（/var/log/文件、数据库、网络等二进制索引文件查询工具greptailawk等同上 + 自带过滤journalctl主要优势通用、简单高性能、灵活、企业级功能速度快、元数据丰富、与 systemd 集成角色定位行业标准中心化的处理器和转发器系统级的集中收集器。]]></description><category></category></item><item><title><![CDATA[rsyslog 配置文件语法详解(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156393923</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156393923</guid><author>haibosdu</author><pubDate>Mon, 29 Dec 2025 17:37:14 +0800</pubDate><description><![CDATA[重新加载（如果支持）。]]></description><category></category></item><item><title><![CDATA[GCC/Clang 构造函数特性（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156300140</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156300140</guid><author>haibosdu</author><pubDate>Fri, 26 Dec 2025 11:26:58 +0800</pubDate><description><![CDATA[构造函数特性是GCC和Clang编译器提供的非标准语言扩展构造函数（Constructor）：在main()函数执行前自动调用析构函数（Destructor）：在main()函数返回后或程序退出时自动调用谨慎使用：只在真正需要时使用构造函数保持简单：构造函数中只做必要的初始化处理错误：添加适当的错误检查和恢复机制文档化：在代码中明确说明构造函数的用途考虑可移植性：如果需要跨平台，提供替代实现避免依赖：尽量减少构造函数之间的依赖关系性能意识：不要在构造函数中执行耗时操作。]]></description><category></category></item><item><title><![CDATA[Rust Cow(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156232694</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156232694</guid><author>haibosdu</author><pubDate>Wed, 24 Dec 2025 14:19:23 +0800</pubDate><description><![CDATA[(Clone On Write) 是 Rust 标准库中的一个智能指针，主要目的是在需要时才进行数据克隆，从而提高性能。它是  中的一个枚举类型。
核心特性
1. 两个变体

：包含对数据的不可变引用
：包含数据的所有权

2. 主要使用场景

避免不必要的克隆操作
实现写时复制模式
在处理可能为引用或拥有的数据时提供灵活性

实际示例
基础使用

字符串处理示例

解析器示例

常用方法
1.  - 获取可变引用（必要时克隆）

2.  - 转换为拥有的数据

3.  /  - 检查状态

实际应用场景
]]></description><category></category></item><item><title><![CDATA[Rust Box＜T＞ 和引用(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156190472</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156190472</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:45:15 +0800</pubDate><description><![CDATA[Box<T>和引用 (&T&mut T) 是 Rust 中两种不同的指针类型，它们在所有权、生命周期和用途上有显著区别。]]></description><category></category></item><item><title><![CDATA[Rust transmute(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156189565</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156189565</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:29:08 +0800</pubDate><description><![CDATA[是 Rust 中最危险的操作之一，它允许你绕过 Rust 的类型系统和内存安全保证。让我详细解释它的用途、危险性和正确用法。 是一个极度不安全的函数，它可以将一个类型的值重新解释为另一个类型，不进行任何运行时检查。
2. transmute 的危险性
危险1：违反类型安全

危险2：破坏生命周期

危险3：大小不匹配导致 UB

3. transmute 的正确使用场景
场景1：FFI 调用

场景2：底层类型操作

场景3：实现 union（在 safe Rust 之前）

4. transmute 的替]]></description><category></category></item><item><title><![CDATA[Rust Borrow 和 BorrowMut(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156189280</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156189280</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:24:40 +0800</pubDate><description><![CDATA[Sized> {// 实现相等的 Hash// 实现相等的 PartialEq// 实现 Borrow<str> 以支持字符串查找&self.0// 使用示例// 可以用小写字符串查找assert!// 因为实现了 Borrow<str>]]></description><category></category></item><item><title><![CDATA[rust AsRef 和 AsMut(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156188981</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156188981</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:18:54 +0800</pubDate><description><![CDATA[和  是 Rust 中用于廉价引用转换的两个重要 trait，它们用于处理需要“借用为某种类型的引用”的场景。
作用

提供一种廉价的、非消耗性的方式将类型转换为引用
通常用于函数参数，接受多种类型的输入
零成本抽象，编译器会优化掉

使用示例

自动实现
Rust 为常见类型自动实现了 ：
作用

提供可变引用的廉价转换
用于需要修改内部数据的场景

使用示例

3. 常见模式和应用
通用函数参数

与泛型一起使用

实现多个 AsRef

4. 与 Deref 的区别

关键区别：在 API 设计中优先]]></description><category></category></item><item><title><![CDATA[Rust 中的 `parse` 方法详解（deepseek）]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156188430</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156188430</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:08:26 +0800</pubDate><description><![CDATA[parse方法是 Rust 中用于将字符串转换为其他类型的通用方法，主要通过FromStrtrait 实现。它是 Rust 标准库中非常强大且常用的功能。FromStr。]]></description><category></category></item><item><title><![CDATA[Rust Turbofish 语法详解(deepseek)]]></title><link>https://blog.youkuaiyun.com/haibosdu/article/details/156188370</link><guid>https://blog.youkuaiyun.com/haibosdu/article/details/156188370</guid><author>haibosdu</author><pubDate>Tue, 23 Dec 2025 10:06:52 +0800</pubDate><description><![CDATA[如果你在 Rust 代码中看到::<>，可能会觉得这个语法有点奇怪。它看起来像一条小鱼 🐟，因此被 Rust 社区亲切地称为 “turbofish”。这个语法不仅仅是 Rust 的一个特色，它背后体现了语言设计者对语法明确性的坚持。Turbofish 语法::<>是 Rust 中显式指定泛型类型参数的方式。它之所以得名，是因为::<>形状酷似一条鱼。// 使用 turbofish 明确指定 Vec 的元素类型// 等价于类型标注::<>]]></description><category></category></item></channel></rss>