QixYuan 的小窝
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
Linux 驱动开发随笔:给自家温湿度传感器写个驱动模块

Linux 驱动开发随笔:给自家温湿度传感器写个驱动模块

前言:不仅仅是 Hello World在 Linux 世界里,写个 “Hello World” 的内核模块 (Kernel Module) 并不难。module_init, printk, insmod,三连招一气呵成。但这种玩具模块除了污染 dmesg 之外,毫无用处。 真正的驱动开发,是要和硬件打交道的。今天我们就来玩点真实的:给我桌上的 DHT11 温湿度传感器 写一个 Linux 字符设备
2025-09-10
Linux
#GPIO #DHT11 #内核 #设备驱动 #C语言
RAG 系统实战:如何让大模型精准“背书”不胡说八道

RAG 系统实战:如何让大模型精准“背书”不胡说八道

前言:GPT 的一本正经胡说八道大模型 (LLM) 有两个致命弱点: 知识截止:GPT-4 的训练数据截止到 2023 年,问它“昨天 QixYuan 博客更新了什么”,它只能瞎编。 幻觉 (Hallucination):问它“鲁迅和周树人打过架吗”,它能给你编出一段武侠小说。 为了解决这个问题,RAG (Retrieval-Augmented Generation,检索增强生成) 应运而生。
2025-08-30
AI Agent
#LangChain #RAG #LlamaIndex #向量数据库 #大模型
分布式系统填坑记:被 CAP 定理按在地上摩擦的血泪史

分布式系统填坑记:被 CAP 定理按在地上摩擦的血泪史

前言:只要加机器就能解决性能问题?刚入行的时候,我以为分布式系统就是“一台机器扛不住,就加两台”。直到又一次,生产环境的 Redis 集群即使有 3 个副本,依然读到了旧数据,导致用户账户余额显示错误,差点引发资损。 排查了一整夜,最后发现是网络分区导致的数据不一致。那一刻,CAP 定理 像一块砖头一样狠狠地砸在了我的脸上的。 这篇文章不是教科书式的理论分析,而是我在分布式泥潭里摸爬滚打出来的血泪
2025-07-25
CS
#CAP #Redis #Cassandra #分布式系统 #共识算法
为了搞懂 CPU 为什么慢,我模拟了一遍乱序执行

为了搞懂 CPU 为什么慢,我模拟了一遍乱序执行

疑惑:我的程序去哪儿了?写代码的时候,你以为 CPU 是在老老实实地一行一行执行你的指令吗?错了。当你写下 a = b + c; d = e * f; 时,现代 CPU 可能会先算 d,再算 a,甚至会预测 a 的结果是多少先跑下去再说。 这就是 Out-of-Order Execution (乱序执行)。它是现代 CPU 性能的基石,也是 Spectre/Meltdown 漏洞的万恶之
2025-06-20
CS
#CPU #计算机体系结构 #流水线 #乱序执行 #模拟器
硬核 FPGA:用 Verilog 搓一个贪吃蛇游戏

硬核 FPGA:用 Verilog 搓一个贪吃蛇游戏

前言:软件工程师不懂的浪漫对于软件工程师来说,写一个贪吃蛇也就是几百行 Python/C++ 的事情。但对于硬件工程师来说,这意味着: 没有操作系统帮你管理内存。 没有显卡驱动帮你画图,每一个像素点的 RGB 信号都要你亲自控制。 没有 CPU 帮你顺序执行指令,所有的逻辑都是并行发生的。 今天,我们要用 Verilog HDL (Hardware Description Langu
2025-05-15
FPGA
#FPGA #Verilog #VGA #SystemVerilog #数字逻辑
抛弃 C 语言:在 STM32 上跑 Rust 是种什么体验?

抛弃 C 语言:在 STM32 上跑 Rust 是种什么体验?

前言:苦 C 久矣作为一个嵌入式开发的“小白”,宏定义地狱、悬垂指针、复杂的构建系统 (Makefile/CMake)……每一次写代码都像是在走钢丝。稍微不注意一个 memcpy 溢出,整个系统就崩了,还找不到堆栈信息,真的让我头痛。 去年开始,Rust 官方宣布了对嵌入式设备的正式支持(Embedded Rust)。我怀着“为了更好的开发体验”的单纯目的,买了一块 STM32F4 Di
2025-04-10
Microcontroller
#Rust #STM32 #HAL #嵌入式 #单片机
不再只会调包:手撸 Embedding 算法实现向量搜索优化

不再只会调包:手撸 Embedding 算法实现向量搜索优化

前言:万物皆可向量化在 RAG (Retrieval-Augmented Generation) 大火的今天,大家都在谈论 Vector Database(向量数据库) 和 Embedding。你可能熟练使用 sentence-transformers 或者 OpenAI 的 text-embedding-3 接口,把一句话变成一个 1536 维的数组,然后扔进 ChromaDB 里做相似度搜索。
2025-03-20
Embedding
#Python #NLP #词向量 #向量数据库 #算法
这周末把手里的 LLM 接入了 Agent,谈谈 ReAct 模式的实战

这周末把手里的 LLM 接入了 Agent,谈谈 ReAct 模式的实战

周末的突发奇想作为一名被 LLM (Large Language Model) 浪潮裹挟的开发者,每天都在调用 OpenAI 的 API 这里问问那里聊聊。但你会发现,单纯的 Chatbot 很傻:由于它没有联网,无法获取实时信息;由于没有执行环境,它无法帮你跑代码、查数据库。 这周末闲得无聊,我决定不再做“调包侠”,而是尝试手写一个 AI Agent。目标很简单:给我一个自然语言指令(比如“查询
2025-03-02
AI Agent
#AI Agent #ReAct #Python #LangChain #大模型
Linux 内核折腾笔记:手搓一个简易调度器玩玩

Linux 内核折腾笔记:手搓一个简易调度器玩玩

前言:为何要挑战内核的心脏?Linux 内核中最神秘、最复杂,但也最迷人的子系统是什么?内存管理?文件系统?网络协议栈?在我看来,必须是 进程调度器 (Scheduler)。 它是操作系统的“时间管理大师”,决定了 CPU 这个稀缺资源到底该分给谁。它是系统流畅度的灵魂。你感觉到电脑卡顿?多半是调度器在“因为某些原因”没有及时让你的 GUI 进程上 CPU。 现如今的 Linux 默认使用的是 C
2025-02-15
Linux
#CFS #C语言 #Linux内核 #调度器 #操作系统
Rust 踩坑日记:被 Borrow Checker 毒打的一天与 Ownership 深度解析

Rust 踩坑日记:被 Borrow Checker 毒打的一天与 Ownership 深度解析

前言:又被编译器教做人了作为一个写了多年 C++ 的“老司机”,我自认为对内存管理早已烂熟于心。什么 malloc/free,什么 shared_ptr/unique_ptr,哪怕是手写引用计数也不在一个话下。直到我遇到了 Rust,这门号称“能让你在编译期就崩溃,但在运行期稳如老狗”的语言。 今天是个风和日丽的周末,我突发奇想,打算用 Rust 重构一下我那个简陋的 KV 存
2025-01-20
Rust
#Rust #所有权 #借用检查 #系统编程

搜索

Copyright © 2025 QixYuan 我执我笔写我心,万物山川,皆作清谈
今日总访问量 加载中... 次 今日总访客数 加载中... 人 本站总访问量 加载中... 次 本站总访客数 加载中... 人 本页总阅读量 加载中... 次 本页总访客数 加载中... 人
陕ICP备2022007489号-1