昌维的博客 — 记录 AI、系统与工程的实践笔记
正在加载首页内容
正在加载首页内容
共 28 篇文章
现在因为一些特殊用途,还需要用到旧版本的 Windows 系统,像是 Windows 10 早期版本、Windows Server 2016/2019 这些系统。
这是一篇完整的密码分析实战记录。目标是一台家用光猫(I-040GW),它在配置备份里不存 PPPoE 明文密码,而是存一串看起来像乱码的 Base64。我从一组自己构造的「明文 → 密文」对出发,用不到一页纸的算术就反推出了它用的 8 字节密钥,并成功还原了真实的 PPPoE 密码。本文会完整记录这条思路:怎么拿到已知明文、怎么用排除法缩小假设空间、怎么反推...
如果你把前端仓库放在 D 盘,第一次运行 pnpm install 后打开资源管理器,很可能会在 D:\ 根目录看到一个名为 .pnpm-store 的隐藏文件夹。它体积不小,名字也令人困惑——这到底是病毒、误操作,还是 pnpm 的正常行为?本文从文件系统底层出发,解释 pnpm 内容寻址 store 的选址逻辑、hard link(硬链接)原理,以及 W...
本文是 AI 系列的第三篇。如果你还不了解 AI 的基本概念与 Transformer 发展脉络,建议先阅读《从智慧到人工智能:AI 基本概念与发展史入门》与《机器学习与 MNIST 手写数字识别入门》。 这篇文章会从 ChatGPT 等大语言模型「怎么被训练出来」讲起,解释为什么预训练 alone 不够、为什么需要 SFT 与 RLHF 做对齐,最后带你用...
本文面向已经会写一点 SystemVerilog,但几乎完全不了解内存芯片工作原理的读者。我们会从“为什么内存不能像寄存器一样直接读写”开始,一步步讲到 SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)的内部结构、命令编码、初始化流程、刷新机制、读写时序,最后通过我写的开源项目 SDRAM...
我写 ez-react 的出发点很简单:如果只看官方 React 的文档和源码,React 往往会显得过于庞大。它有 Fiber、Lane、Scheduler、Concurrent Rendering、Hooks、Server Components、Suspense、Hydration 等等机制,每一个机制背后都有复杂的历史包袱和工程约束。可是如果一个人刚刚...
本文是《从智慧到人工智能:AI 基本概念与发展史入门》的续篇。如果你还不了解 AI 的基本概念、函数视角,以及从图灵测试到 Transformer 的发展脉络,建议先阅读上一篇。 这篇文章会从「机器学习到底是什么」讲起,再用大白话解释图像像素、向量矩阵、卷积神经网络和训练机制,最后配合完整的 PyTorch 手写数字识别代码,带你走一遍"训练一个能认数字的神...
本文面向只学过基础 C 语言、还没有系统接触过网络通信的读者。我们会从 IP、端口、TCP、NAT、防火墙入站与出站这些最基本的概念讲起,再通过我写的 NATBypass 项目源码,完整拆解一个 TCP 端口转发与反向隧道工具是如何工作的。
本文将从最基础的密码学概念讲起,逐步深入WiFi加密协议的演进历史,最终详细介绍使用aircrack-ng和hashcat等工具进行WiFi密码破解的完整技术路线。无论你是刚入门的安全爱好者,还是希望系统了解WiFi安全的技术人员,本文都能为你提供一个清晰完整的知识图谱。
本文面向完全没有接触过 IC(Integrated Circuit,集成电路) 设计和流片的读者,将用科普的视角从最基础的概念开始介绍,并在每个英文专业缩写第一次出现时标注其完整英文全称和中文翻译。
2026 年被不少人叫作「AI Agent 元年」。从 AutoGPT 到 Claude Code,从 OpenAI Operator 到 OpenClaw,AI 正在从「只会聊天的机器人」变成「能自己动手的智能体」。这篇先聊清楚 AI Agent 到底是什么,再拆两个具体例子:2026 年很火的 Agent 网关 OpenClaw(小龙虾),以及一个基于...
这篇文章面向对 AI 完全零基础、想先建立整体认知的读者。我会先从「什么是智慧」「人工智能是什么」讲起,再系统梳理 AI 从图灵测试、感知机、反向传播到 AlexNet、ResNet、Transformer 的发展脉络。 如果你还想继续学习机器学习、CNN 和 PyTorch 手写数字识别实战,请阅读续篇《机器学习与 MNIST 手写数字识别入门》。 如果你...
我在師大就讀期間,對校史一直有著濃厚的興趣。這篇文章整理了一些關於臺師大校史的冷知識和有趣的故事,算是為自己的大學生活留下一些記錄。
2026 年的 AI Coding早已成为日常开发流程的一部分。本文记录我在实际使用中的选型思路、省钱技巧,以及 OpenCode、提示词和 AGENTS.md 的一些实操经验——前半部分偏概念对比,后半部分是可以直接照着做的清单。 文内价格与配额信息参考 2026 年 6 月各厂商公开定价,具体价格请以官方页面为准。
五月初,我跟著 GDG on NTNU 到臺師大林口校區參訪資訊中心機房。 這篇記下幾個印象比較深的片段:冷氣只送進機櫃通道的節能設計、年均 PUE 低於 1.6 代表什麼,以及那些平常被「雲端」兩個字藏起來的實體設備,像是 KVM、NVR、APC InRow 和 UPS 電池櫃。
三月下旬,我在校園裡看到臺師大學生會選舉的海報。想起以前在臺科大參與學生自治的經驗,這次便也報名參選,第一次參加選委會辦的「候選人政見發表會」。 這篇記下當天的流程與規則:限時 5 分鐘的政見發表、Slido 匿名提問按讚決定順序,以及我覺得很像總統大選的 Q&A 計時;最後也談談我對投票率與學生自治參與度的一點觀察。
本文整理自 X 推文。原帖讨论的是:AI 对软件工程里长期存在的「屎山」问题,究竟能帮上多少忙——尤其是依赖库 major version 升级时那一堆 breaking changes。
离职之后准备写一些随笔文章,放在 Gossip 这个分类下面,记录一些不太希望直接在 Twitter 等公开社交平台上发表的内容。 如果你会深挖到这里,可能你是一位对我比较感兴趣的朋友。谢谢你的关注,如果有什么话题想要聊聊也欢迎寄 Email 或者 Twitter 等私信联系我。
实习时收到一个反馈:天才计划页面某段文字的第一行像是「溢出」了。布局属性翻了一遍都没问题,后来才知道是浏览器处理全角标点换行的规则在作怪。这篇记下排查过程,以及 line-break 这个属性该怎么用。
把最新版 Intel SDM 和早年的 80386 datasheet 摆在一起对着读,偶尔会撞见几处不太一致的地方。这篇最短,只记三件小事:LAHF 指令在旧手册里的描述错误、within segment 与 intersegment 的用词变化,以及 JCXZ / JECXZ 说明中一个不常见的介词。
sleep() 在不同语言里由不同的库提供,可它本身究竟是怎么实现的?这篇从单片机的软件延时、硬件定时器延时之间的取舍讲起,再落到 ez-rtos 里基于 nowtick 和时基列表的实现,看看一个任务睡着的时候,CPU 是怎么被让出去给别的任务的。
上一章写完了任务切换器,但翻遍代码也没看到有人调用 PendSVHandler。这篇就来回答这个悬念:Cortex-M3 内核级的 SysTick 如何定时触发,为什么工业级 OS 不直接在 SysTick 里切换任务,而要再绕一层 PendSV 可悬起中断,以及「中断共振」是怎么被避开的。
一个 main() 函数只能顺序执行,那多个任务「同时」跑是怎么做到的?这篇拆开 ez-rtos 的任务切换器:为什么要先引入 idle 任务、Cortex-M3 的 MSP/PSP 双栈与中断自动压栈是怎么一回事,然后逐段读 PendSVHandler 的汇编,看清楚保存上下文、选下一个任务、恢复上下文这三步。
单片机上电之后,CPU 第一件事到底做了什么?这篇沿着 Cortex-M3 的启动流程走一遍:从内存 0x00000000 处的栈顶指针与 ResetHandler,看官方 startup 文件里的 ARM 伪指令、SystemInit 对时钟的配置,再到 main() 里 osinit() 与 osstart() 组成的那段 bootloader,顺便聊一...
《从零开始写一个操作系统》这个系列,我会用自己写的 ez-rtos 当案例,讲清楚一个操作系统到底是怎么跑起来的。第一篇先补齐背景:CPU、指令集、指令集架构、微架构、单片机分别指什么,为什么选 STM32F103 和 Cortex-M3 而不是 X86,最后把 Keil 5 的编译与仿真环境跑通,看到 GPIO 电平在仿真里跳动。
家里摆一台机架服务器当 NAS,最先受不了的往往是风扇噪音。这篇从「服务器为什么不能像家用 PC 那样在 BIOS 里调风扇」讲起,先把 BMC 与 IPMI 的分工理清楚,再一步步用网线和 ipmitool 连上 iDRAC,关闭自动控速、手动设定转速,最后附上我写的 C# GUI 小工具以及一组保守的转速参考值。
placeholder 与 focus是 前端开发中很容易被忽略的小地方。placeholder 这半篇讲它该怎么配色、Webkit 下为什么反而能被选中,以及怎么用伪元素把它禁掉;focus 这半篇从「浏览器的原生焦点样式为什么会被自己写的按钮样式弄丢」讲起,再介绍 :focus-visible 与它当年的 polyfill。
整理几个游戏里常见的「障眼法」:用 2D 图片冒充树木和火焰的 billboard、无限滚动的背景、拿法线贴图伪造凹凸、事先烘焙好的静态反光,以及手游里为了省性能而做的假抗锯齿。例子多半来自 CS:GO、绝地求生和王者荣耀。