<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>汉松札记 - 技术笔记</title><description>工程实践、系统设计、编程语言和技术原理的长期笔记。</description><link>https://blog.xiaohansong.com/</link><item><title>Harness 工程实践：如何让 Agent 完成自主迭代</title><link>https://blog.xiaohansong.com/posts/tech-notes/harness%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5-%E5%A6%82%E4%BD%95%E8%AE%A9agent%E5%AE%8C%E6%88%90%E8%87%AA%E4%B8%BB%E8%BF%AD%E4%BB%A3/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/harness%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5-%E5%A6%82%E4%BD%95%E8%AE%A9agent%E5%AE%8C%E6%88%90%E8%87%AA%E4%B8%BB%E8%BF%AD%E4%BB%A3/</guid><description>一个人一天最多跑一次迭代实验，但每周上百个 badcase 追着我们跑——我们团队用 Harness 工程让 AI 自主运行 17 小时、完成 16 轮迭代实验，最终上线了实验。这篇文章复盘了整个搭建过程。</description><pubDate>Thu, 02 Jul 2026 11:57:50 GMT</pubDate><category>技术笔记</category><category>Harness Engineering</category><category>Agent 系统</category></item><item><title>不写代码的工程师，才是 AI 时代最值钱的人</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%B8%8D%E5%86%99%E4%BB%A3%E7%A0%81%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88-%E6%89%8D%E6%98%AF-ai-%E6%97%B6%E4%BB%A3%E6%9C%80%E5%80%BC%E9%92%B1%E7%9A%84%E4%BA%BA/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%B8%8D%E5%86%99%E4%BB%A3%E7%A0%81%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88-%E6%89%8D%E6%98%AF-ai-%E6%97%B6%E4%BB%A3%E6%9C%80%E5%80%BC%E9%92%B1%E7%9A%84%E4%BA%BA/</guid><description>我已经很久没写过一行代码了。</description><pubDate>Tue, 03 Mar 2026 00:51:00 GMT</pubDate><category>技术笔记</category><category>AI 编程</category><category>人机协作</category></item><item><title>从零实现 vLLM (1.4）：RMSNorm 如何解决训练不稳定</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-4-rmsnorm-%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E8%AE%AD%E7%BB%83%E4%B8%8D%E7%A8%B3%E5%AE%9A/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-4-rmsnorm-%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E8%AE%AD%E7%BB%83%E4%B8%8D%E7%A8%B3%E5%AE%9A/</guid><description>在上篇文章《从零实现 vLLM（1.3）：如何加速 Attention 计算》中，我们深入分析了 Qwen3Attention 组件，学习了 FlashAttention 如何通过在线 Softmax 和分块计算技术。</description><pubDate>Sun, 19 Oct 2025 07:37:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>从零实现 vLLM (1.3）：如何加速 Attention 计算</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-3-%E5%A6%82%E4%BD%95%E5%8A%A0%E9%80%9F-attention-%E8%AE%A1%E7%AE%97/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-3-%E5%A6%82%E4%BD%95%E5%8A%A0%E9%80%9F-attention-%E8%AE%A1%E7%AE%97/</guid><description>在上篇文章《从零实现 vLLM (1.2）：如何实现张量并行》中，我们深入到 Qwen3DecoderLayer 的第一个核心组件：Qwen3Attention。</description><pubDate>Sun, 14 Sep 2025 14:22:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>大模型分布式训练（1）：FSDP 的原理与实践</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%AD%E7%BB%831-fsdp-%E7%9A%84%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E8%B7%B5/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%AD%E7%BB%831-fsdp-%E7%9A%84%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E8%B7%B5/</guid><description>在大模型出现之前，分布式训练最常用的技术是 数据并行（Data Parallelism, DP） 。</description><pubDate>Sun, 17 Aug 2025 12:14:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>从零实现 vLLM (1.2）：如何实现张量并行</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-2-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%BC%A0%E9%87%8F%E5%B9%B6%E8%A1%8C/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-2-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%BC%A0%E9%87%8F%E5%B9%B6%E8%A1%8C/</guid><description>在上篇文章《从零实现 vLLM (1.1）：并行词嵌入 VocabParallelEmbedding》中，我们分析了 Qwen3Model 模型中第一个组件：VocabParallelEmbedding 的源码。</description><pubDate>Sat, 26 Jul 2025 10:05:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>从零实现 vLLM (1.1）：并行词嵌入 VocabParallelEmbedding</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-1-%E5%B9%B6%E8%A1%8C%E8%AF%8D%E5%B5%8C%E5%85%A5-vocabparallelembedding/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%AE%9E%E7%8E%B0-vllm-1-1-%E5%B9%B6%E8%A1%8C%E8%AF%8D%E5%B5%8C%E5%85%A5-vocabparallelembedding/</guid><description>我一直都喜欢通过代码学习各种技术，特别是各种从零开始实现 XX 的。</description><pubDate>Sun, 20 Jul 2025 07:23:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>DeepSeek 新论文 SPCT：让奖励模型学会“先定规则后点评，再打分”</title><link>https://blog.xiaohansong.com/posts/tech-notes/deepseek%E6%96%B0%E8%AE%BA%E6%96%87spct-%E8%AE%A9%E5%A5%96%E5%8A%B1%E6%A8%A1%E5%9E%8B%E5%AD%A6%E4%BC%9A%E5%85%88%E5%AE%9A%E8%A7%84%E5%88%99%E5%90%8E%E7%82%B9%E8%AF%84-%E5%86%8D%E6%89%93%E5%88%86/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/deepseek%E6%96%B0%E8%AE%BA%E6%96%87spct-%E8%AE%A9%E5%A5%96%E5%8A%B1%E6%A8%A1%E5%9E%8B%E5%AD%A6%E4%BC%9A%E5%85%88%E5%AE%9A%E8%A7%84%E5%88%99%E5%90%8E%E7%82%B9%E8%AF%84-%E5%86%8D%E6%89%93%E5%88%86/</guid><description>现在大语言模型（LLM）是越来越火，能力也越来越强。</description><pubDate>Sun, 06 Apr 2025 05:20:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>AutoGLM 技术探秘：让 AI 学会“点点点”的挑战与策略</title><link>https://blog.xiaohansong.com/posts/tech-notes/autoglm-%E6%8A%80%E6%9C%AF%E6%8E%A2%E7%A7%98-%E8%AE%A9-ai-%E5%AD%A6%E4%BC%9A%E7%82%B9%E7%82%B9%E7%82%B9%E7%9A%84%E6%8C%91%E6%88%98%E4%B8%8E%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/autoglm-%E6%8A%80%E6%9C%AF%E6%8E%A2%E7%A7%98-%E8%AE%A9-ai-%E5%AD%A6%E4%BC%9A%E7%82%B9%E7%82%B9%E7%82%B9%E7%9A%84%E6%8C%91%E6%88%98%E4%B8%8E%E7%AD%96%E7%95%A5/</guid><description>最近 AI 领域有个挺火的方向，就是让 AI 像人一样去操作图形界面（GUI），比如自动帮你订外卖、处理邮件等等。</description><pubDate>Tue, 01 Apr 2025 15:20:00 GMT</pubDate><category>技术笔记</category><category>Agent 系统</category><category>AI 编程</category></item><item><title>不需要人类教练的 o3：OpenAI 用强化学习训练出编程&quot;六边形战士&quot;</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%B8%8D%E9%9C%80%E8%A6%81%E4%BA%BA%E7%B1%BB%E6%95%99%E7%BB%83%E7%9A%84o3-openai%E7%94%A8%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E8%AE%AD%E7%BB%83%E5%87%BA%E7%BC%96%E7%A8%8B%E5%85%AD%E8%BE%B9%E5%BD%A2%E6%88%98%E5%A3%AB/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%B8%8D%E9%9C%80%E8%A6%81%E4%BA%BA%E7%B1%BB%E6%95%99%E7%BB%83%E7%9A%84o3-openai%E7%94%A8%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E8%AE%AD%E7%BB%83%E5%87%BA%E7%BC%96%E7%A8%8B%E5%85%AD%E8%BE%B9%E5%BD%A2%E6%88%98%E5%A3%AB/</guid><description>OpenAI 在最近的发表的对比研究中发现：在编程竞赛任务中，人类精心设计的策略败给了强化学习训练的通用模型。</description><pubDate>Mon, 17 Feb 2025 02:28:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>深入浅出 GraphRag[2]检索生成</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAgraphrag2%E6%A3%80%E7%B4%A2%E7%94%9F%E6%88%90/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAgraphrag2%E6%A3%80%E7%B4%A2%E7%94%9F%E6%88%90/</guid><description>在上篇文章《深入浅出 GraphRag 知识图谱生成》中，我分析了 GraphRag 的图谱生成过程，那么生成的这些图谱数据是如何应用到生成里面的？</description><pubDate>Sun, 21 Jul 2024 05:19:00 GMT</pubDate><category>技术笔记</category><category>上下文工程</category><category>AI 基础设施</category></item><item><title>深入浅出 GraphRag[1]知识图谱生成</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAgraphrag1%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1%E7%94%9F%E6%88%90/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAgraphrag1%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1%E7%94%9F%E6%88%90/</guid><description>GraphRAG 是微软开源的一个基于大模型 + 知识图谱回答用户问题的开源项目。</description><pubDate>Sun, 14 Jul 2024 11:55:00 GMT</pubDate><category>技术笔记</category><category>上下文工程</category><category>AI 基础设施</category></item><item><title>ChatGPT 文本生成的工程原理分析与代码示例</title><link>https://blog.xiaohansong.com/posts/tech-notes/chatgpt%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90%E4%B8%8E%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/chatgpt%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90%E4%B8%8E%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B/</guid><description>之前 ChatGPT 刚出来的时候大家都在研究 GPT 模型，有很多的科普文章都说 GPT 模型其实就是在做文字接龙，根据前面的文本预测下一个字。</description><pubDate>Sat, 25 Nov 2023 13:46:00 GMT</pubDate><category>技术笔记</category><category>模型训练与推理</category><category>AI 基础设施</category></item><item><title>机器学习基础之梯度计算：Pytorch 代码与公式</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B9%8B%E6%A2%AF%E5%BA%A6%E8%AE%A1%E7%AE%97-pytorch%E4%BB%A3%E7%A0%81%E4%B8%8E%E5%85%AC%E5%BC%8F/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B9%8B%E6%A2%AF%E5%BA%A6%E8%AE%A1%E7%AE%97-pytorch%E4%BB%A3%E7%A0%81%E4%B8%8E%E5%85%AC%E5%BC%8F/</guid><description>本文主要就是通过结合代码和公式的分析让理论和实践之间完成一次双向奔赴。</description><pubDate>Sun, 19 Nov 2023 03:59:00 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>ChatGPT 之 GPTs 的使用与分析：5 分钟构建一个天气画报</title><link>https://blog.xiaohansong.com/posts/tech-notes/chatgpt%E4%B9%8Bgpts%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90-5%E5%88%86%E9%92%9F%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%A4%A9%E6%B0%94%E7%94%BB%E6%8A%A5/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/chatgpt%E4%B9%8Bgpts%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90-5%E5%88%86%E9%92%9F%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%A4%A9%E6%B0%94%E7%94%BB%E6%8A%A5/</guid><description>在 GPTs 推出之后，我用它花了 5 分钟就配置了一个生成天气画报的 GPTs，目前看 GPTs 在提升 AI 应用研发效率上面还是做的非常好的，但并没有超出期望，它只是一种研发范式的创新。</description><pubDate>Mon, 13 Nov 2023 03:44:00 GMT</pubDate><category>技术笔记</category><category>Agent 系统</category><category>AI 编程</category></item><item><title>统计学与机器学习交汇点：线性回归的数学基础</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B8%8E%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%BA%A4%E6%B1%87%E7%82%B9-%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E7%9A%84%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B8%8E%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%BA%A4%E6%B1%87%E7%82%B9-%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E7%9A%84%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/</guid><description>本文详细解析了线性回归的数学含义，包括“线性”和“回归”两个核心概念。</description><pubDate>Thu, 09 Nov 2023 03:00:00 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>ChatGLM3 的代码解释器（Code Interpreter）实现原理</title><link>https://blog.xiaohansong.com/posts/tech-notes/chatglm3-%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%A3%E9%87%8A%E5%99%A8code-interpreter%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/chatglm3-%E7%9A%84%E4%BB%A3%E7%A0%81%E8%A7%A3%E9%87%8A%E5%99%A8code-interpreter%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/</guid><description>在之前的文章《ChatGLM3 的工具调用（FunctionCalling）实现原理》里面，我们介绍了 ChatGLM3 工具调用的原理，其本质就是让大模型通过微调学会根据 prompt 中的函数的定义学会下一步应该调用哪个函数。</description><pubDate>Sat, 04 Nov 2023 08:09:00 GMT</pubDate><category>技术笔记</category><category>Agent 系统</category><category>AI 编程</category></item><item><title>ChatGLM3 的工具调用（FunctionCalling）实现原理</title><link>https://blog.xiaohansong.com/posts/tech-notes/chatglm3-%E7%9A%84%E5%B7%A5%E5%85%B7%E8%B0%83%E7%94%A8functioncalling%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/chatglm3-%E7%9A%84%E5%B7%A5%E5%85%B7%E8%B0%83%E7%94%A8functioncalling%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/</guid><description>ChatGLM3 终于带来了跟 ChatGPT 一样的工具调用能力，通过它的源码和样本数据，我们可以了解到让大模型学会使用工具的方法原理。</description><pubDate>Sat, 04 Nov 2023 08:08:00 GMT</pubDate><category>技术笔记</category><category>Agent 系统</category><category>AI 编程</category></item><item><title>从零开始写数据库：500 行代码实现 LSM 数据库</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99%E6%95%B0%E6%8D%AE%E5%BA%93-500%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0-lsm-%E6%95%B0%E6%8D%AE%E5%BA%93/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99%E6%95%B0%E6%8D%AE%E5%BA%93-500%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0-lsm-%E6%95%B0%E6%8D%AE%E5%BA%93/</guid><description>LSM Tree 是很多 NoSQL 数据库引擎的底层实现，例如 LevelDB，Hbase 等。</description><pubDate>Sat, 08 Apr 2023 09:11:00 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>SQL 查询引擎原理浅析</title><link>https://blog.xiaohansong.com/posts/tech-notes/sql%E6%9F%A5%E8%AF%A2%E5%BC%95%E6%93%8E%E5%8E%9F%E7%90%86%E6%B5%85%E6%9E%90/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/sql%E6%9F%A5%E8%AF%A2%E5%BC%95%E6%93%8E%E5%8E%9F%E7%90%86%E6%B5%85%E6%9E%90/</guid><description>SQL 英文全称是 Structured Query Language，中文名即结构化查询语言，是一门专门用来查询数据的声明式编程语言。</description><pubDate>Sun, 16 Oct 2022 13:24:00 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>对感知机算法的一些理解</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%AF%B9%E6%84%9F%E7%9F%A5%E6%9C%BA%E7%AE%97%E6%B3%95%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%AF%B9%E6%84%9F%E7%9F%A5%E6%9C%BA%E7%AE%97%E6%B3%95%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3/</guid><description>机器学习假设了对于某个问题存在一个上帝函数，给定一个输入就能得到一个确定的输出，计算机可以通过样本数据在假设的函数空间中找到一个近似上帝函数的函数，我们可以利用这个近似函数来进行预测。</description><pubDate>Mon, 12 Sep 2022 07:46:00 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>怎样写线程安全的代码</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E6%80%8E%E6%A0%B7%E5%86%99%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E4%BB%A3%E7%A0%81/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E6%80%8E%E6%A0%B7%E5%86%99%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E4%BB%A3%E7%A0%81/</guid><description>多线程编程是软件开发中最棘手的问题之一。</description><pubDate>Thu, 24 Feb 2022 13:47:00 GMT</pubDate><category>技术笔记</category><category>并发编程</category><category>Java 与 JVM</category></item><item><title>MAB 问题的解法与应用（万字长文）</title><link>https://blog.xiaohansong.com/posts/tech-notes/mab%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E6%B3%95%E4%B8%8E%E5%BA%94%E7%94%A8%E4%B8%87%E5%AD%97%E9%95%BF%E6%96%87/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/mab%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E6%B3%95%E4%B8%8E%E5%BA%94%E7%94%A8%E4%B8%87%E5%AD%97%E9%95%BF%E6%96%87/</guid><description>MAB 是多臂老虎机（Multi Armed Bandit）的缩写，MAB 问题就是假设有个赌徒到赌场里面摇老虎机，赌场里面有 10 个老虎机，每个老虎机的赢钱概率是不一样的，此时他不知道每个老虎机的赢钱概率，而且他只有 100 个币。</description><pubDate>Wed, 10 Nov 2021 13:29:00 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>50 行代码实现一个 KV 数据库</title><link>https://blog.xiaohansong.com/posts/tech-notes/50%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AAkv%E6%95%B0%E6%8D%AE%E5%BA%93/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/50%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AAkv%E6%95%B0%E6%8D%AE%E5%BA%93/</guid><description>最简单的 KV 数据库需要多少行代码实现？</description><pubDate>Mon, 11 Oct 2021 14:32:00 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>从零开始写 KV 数据库：基于哈希索引</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99kv%E6%95%B0%E6%8D%AE%E5%BA%93-%E5%9F%BA%E4%BA%8E%E5%93%88%E5%B8%8C%E7%B4%A2%E5%BC%95/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99kv%E6%95%B0%E6%8D%AE%E5%BA%93-%E5%9F%BA%E4%BA%8E%E5%93%88%E5%B8%8C%E7%B4%A2%E5%BC%95/</guid><description>新的 KV 数据库层出不穷，我们经常听说的 KV 数据库如 RocksDb、Hbase 等都是基于日志结构的存储引擎。</description><pubDate>Sun, 23 May 2021 03:36:00 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>Java 类隔离加载的正确姿势</title><link>https://blog.xiaohansong.com/posts/tech-notes/java-%E7%B1%BB%E9%9A%94%E7%A6%BB%E5%8A%A0%E8%BD%BD%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/java-%E7%B1%BB%E9%9A%94%E7%A6%BB%E5%8A%A0%E8%BD%BD%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF/</guid><description>只要你 Java 代码写的足够多，就一定出现这种情况：系统新引入了一个中间件的 jar 包，编译的时候一切正常，一运行就报错：java.lang.NoSuchMethodError，然后就哼哧哼哧的开始谷歌找解决方法。</description><pubDate>Sun, 17 May 2020 02:44:00 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>Java 日志框架冲突问题排查与总结</title><link>https://blog.xiaohansong.com/posts/tech-notes/java-%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%E5%86%B2%E7%AA%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E4%B8%8E%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/java-%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%E5%86%B2%E7%AA%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E4%B8%8E%E6%80%BB%E7%BB%93/</guid><description>Java 有很多的日志框架可以选择，当同一个项目中出现多种日志框架时就很容易出现日志框架冲突的问题，导致日志打印不出来。</description><pubDate>Sun, 17 May 2020 02:42:00 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>多视角看区块链</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%A4%9A%E8%A7%86%E8%A7%92%E7%9C%8B%E5%8C%BA%E5%9D%97%E9%93%BE/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%A4%9A%E8%A7%86%E8%A7%92%E7%9C%8B%E5%8C%BA%E5%9D%97%E9%93%BE/</guid><description>像很多新技术一样，区块链开始火起来的时候评价是两级分化的，有人觉得区块链会成为下一代的互联网的基础设施，有人觉得区块链没有任何价值。</description><pubDate>Tue, 06 Aug 2019 15:05:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>分布式系统：一致性协议</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E4%B8%80%E8%87%B4%E6%80%A7%E5%8D%8F%E8%AE%AE/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E4%B8%80%E8%87%B4%E6%80%A7%E5%8D%8F%E8%AE%AE/</guid><description>一致性模型本质上是进程与数据存储的约定，通过一致性模型我们可以理解和推理在分布式系统中数据复制需要考虑的问题和基本假设。</description><pubDate>Sat, 25 May 2019 07:23:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>分布式系统：Lamport 逻辑时钟</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-lamport-%E9%80%BB%E8%BE%91%E6%97%B6%E9%92%9F/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-lamport-%E9%80%BB%E8%BE%91%E6%97%B6%E9%92%9F/</guid><description>分布式系统解决了传统单体架构的单点问题和性能容量问题，另一方面也带来了很多的问题，其中一个问题就是多节点的时间同步问题：不同机器上的物理时钟难以同步，导致无法区分在分布式系统中多个节点的事件时序。</description><pubDate>Sat, 27 Apr 2019 02:31:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>分布式系统：向量时钟</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E5%90%91%E9%87%8F%E6%97%B6%E9%92%9F/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E5%90%91%E9%87%8F%E6%97%B6%E9%92%9F/</guid><description>在上一篇文章分布式系统：Lamport 逻辑时钟中我们知道 Lamport 逻辑时钟帮助我们得到了分布式系统中的事件全序关系，但是对于同时发生的关系却不能很好的描述，导致无法描述事件的因果关系。</description><pubDate>Sat, 27 Apr 2019 02:31:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>IDEA 插件开发入门教程</title><link>https://blog.xiaohansong.com/posts/tech-notes/idea-%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/idea-%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/</guid><description>IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE，它本身的功能已经非常强大了，但是每个人的需求不一样，有些需求 IDEA 本身无法满足，于是我们就需要自己开发插件来解决。</description><pubDate>Sat, 27 Apr 2019 02:30:00 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>分布式系统：一致性模型</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E4%B8%80%E8%87%B4%E6%80%A7%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E4%B8%80%E8%87%B4%E6%80%A7%E6%A8%A1%E5%9E%8B/</guid><description>分布式系统中一个重要的问题就是数据复制，数据复制一般是为了增强系统的可用性或提高性能。</description><pubDate>Sat, 27 Apr 2019 02:30:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>分布式系统：持续一致性</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E6%8C%81%E7%BB%AD%E4%B8%80%E8%87%B4%E6%80%A7/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-%E6%8C%81%E7%BB%AD%E4%B8%80%E8%87%B4%E6%80%A7/</guid><description>在分布式系统中，数据复制一般是为了增强系统的可用性或提高性能，但是数据一致性跟系统性能往往是矛盾的，对于数据复制的一致性问题没有最好的解决方法。</description><pubDate>Sat, 27 Apr 2019 02:29:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>分布式系统：CAP 理论的前世今生</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-cap-%E7%90%86%E8%AE%BA%E7%9A%84%E5%89%8D%E4%B8%96%E4%BB%8A%E7%94%9F/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F-cap-%E7%90%86%E8%AE%BA%E7%9A%84%E5%89%8D%E4%B8%96%E4%BB%8A%E7%94%9F/</guid><description>CAP 理论是分布式系统设计中的一个重要理论，虽然它为系统设计提供了非常有用的依据，但是也带来了很多误解。</description><pubDate>Sat, 27 Apr 2019 02:27:00 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>编写高质量代码的思考</title><link>https://blog.xiaohansong.com/posts/tech-notes/high-quality-code/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/high-quality-code/</guid><description>最近在看《代码大全》，可以说是一本软件开发的百科全书，特别厚，但是干货也很多。</description><pubDate>Wed, 09 Aug 2017 15:56:52 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>代码生成利器：IDEA 强大的 Live Templates</title><link>https://blog.xiaohansong.com/posts/tech-notes/idea-live-templates/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/idea-live-templates/</guid><description>Java 开发过程经常需要编写有固定格式的代码，例如说声明一个私有变量，logger 或者 bean 等等。</description><pubDate>Fri, 17 Mar 2017 15:08:30 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>IDEA 代码生成插件 CodeMaker</title><link>https://blog.xiaohansong.com/posts/tech-notes/codemaker/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/codemaker/</guid><description>Java 开发过程中经常会遇到编写重复代码的事情，例如说：编写领域类和持久类的时候，大部分时候它们的变量名称，类型是一样的，在编写领域类的时候常常要重复写类似的代码。</description><pubDate>Fri, 03 Feb 2017 12:11:34 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>图解 Paxos 一致性协议</title><link>https://blog.xiaohansong.com/posts/tech-notes/paxos/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/paxos/</guid><description>Paxos 一致性协议可以说是一致性协议研究的起点，也以难以理解闻名。</description><pubDate>Fri, 30 Sep 2016 02:17:52 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>Zookeeper ZAB 协议分析</title><link>https://blog.xiaohansong.com/posts/tech-notes/zab/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/zab/</guid><description>ZAB 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。</description><pubDate>Thu, 25 Aug 2016 15:53:11 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>ZooKeeper Watcher 和 AsyncCallback 的区别与实现</title><link>https://blog.xiaohansong.com/posts/tech-notes/zookeeper-watch-async/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/zookeeper-watch-async/</guid><description>初学 Zookeeper 会发现客户端有两种回调方式：Watcher 和 AsyncCallback，而 Zookeeper 的使用是离不开这两种方式的，搞清楚它们之间的区别与实现显得尤为重要。</description><pubDate>Mon, 22 Aug 2016 14:15:08 GMT</pubDate><category>技术笔记</category><category>分布式系统</category></item><item><title>ThreadLocal 内存泄露的实例分析</title><link>https://blog.xiaohansong.com/posts/tech-notes/threadlocal-leak-analyze/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/threadlocal-leak-analyze/</guid><description>之前写了一篇深入分析 ThreadLocal 内存泄漏问题是从理论上分析 ThreadLocal 的内存泄漏问题，这一篇文章我们来分析一下实际的内存泄漏案例。</description><pubDate>Tue, 09 Aug 2016 14:10:04 GMT</pubDate><category>技术笔记</category><category>并发编程</category><category>Java 与 JVM</category></item><item><title>深入分析 ThreadLocal 内存泄漏问题</title><link>https://blog.xiaohansong.com/posts/tech-notes/threadlocal-memory-leak/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/threadlocal-memory-leak/</guid><description>ThreadLocal 的作用是提供线程内的局部变量，这种变量在线程的生命周期内起作用，减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。</description><pubDate>Sat, 06 Aug 2016 12:12:16 GMT</pubDate><category>技术笔记</category><category>并发编程</category><category>Java 与 JVM</category></item><item><title>【Getty】Java NIO 框架设计与实现</title><link>https://blog.xiaohansong.com/posts/tech-notes/getty/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/getty/</guid><description>Getty 是我为了学习 Java NIO 所写的一个 NIO 框架，实现过程中参考了 Netty 的设计，同时使用 Groovy 来实现。</description><pubDate>Sat, 30 Jul 2016 02:42:23 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>Java 线程池框架核心代码分析</title><link>https://blog.xiaohansong.com/posts/tech-notes/java-executor/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/java-executor/</guid><description>多线程编程中，为每个任务分配一个线程是不现实的，线程创建的开销和资源消耗都是很高的。</description><pubDate>Mon, 11 Jul 2016 16:13:44 GMT</pubDate><category>技术笔记</category><category>并发编程</category><category>Java 与 JVM</category></item><item><title>RedisHttpSession 的设计与实现</title><link>https://blog.xiaohansong.com/posts/tech-notes/redishttpsession/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/redishttpsession/</guid><description>RedisHttpSession 是我的一个 Java 开源项目，通过将 Session 存储在 Redis 中实现多服务器间共享 Session，同时这一过程是完全透明的。</description><pubDate>Sun, 15 May 2016 02:49:39 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>三言两语：JVM 字节码执行实例分析</title><link>https://blog.xiaohansong.com/posts/tech-notes/java-bytecode/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/java-bytecode/</guid><description>运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构，它是虚拟机运行时数据区中的虚拟机栈的栈元素。</description><pubDate>Tue, 26 Apr 2016 03:11:29 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>【译】JVM 进行线程同步背后的原理</title><link>https://blog.xiaohansong.com/posts/tech-notes/jvm-synchronized/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/jvm-synchronized/</guid><description>本文翻译自[How the Java virtual machine performs thread synchronization][1]，内容略有删改。</description><pubDate>Sat, 23 Apr 2016 02:50:37 GMT</pubDate><category>技术笔记</category><category>并发编程</category><category>Java 与 JVM</category></item><item><title>三言两语：SQL 连接（join）</title><link>https://blog.xiaohansong.com/posts/tech-notes/sql-join/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/sql-join/</guid><description>本文将从连接的理论和语法讲起，结合具体的例子，详细分析 SQL 连接。</description><pubDate>Thu, 14 Apr 2016 13:52:59 GMT</pubDate><category>技术笔记</category><category>数据库与数据系统</category></item><item><title>Hiho 1289 403 Forbidden（微软编程题）</title><link>https://blog.xiaohansong.com/posts/tech-notes/forbidden/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/forbidden/</guid><description>allow 1.2.3.4/30 deny 1.1.1.1 allow 127.0.0.1 allow 123.234.12.23/3 deny 0.0.0.0/0。</description><pubDate>Sat, 09 Apr 2016 08:10:40 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>Java String 对 null 对象的容错处理</title><link>https://blog.xiaohansong.com/posts/tech-notes/null-in-java-string/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/null-in-java-string/</guid><description>最近在读《Thinking in Java》，看到这样一段话：Primitives that are fields in a class are automatically initialized to zero。</description><pubDate>Sun, 13 Mar 2016 09:10:24 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>访问 NULL 指针错误背后的原理</title><link>https://blog.xiaohansong.com/posts/tech-notes/dereference-null/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/dereference-null/</guid><description>说到 NULL 指针大家都是谈之色变，第一印象就是 NullPointerException, Segmentation fault 之类的错误。</description><pubDate>Thu, 18 Feb 2016 14:50:43 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>对抽象类与接口的一点思考</title><link>https://blog.xiaohansong.com/posts/tech-notes/abstract-class-and-interface/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/abstract-class-and-interface/</guid><description>抽象类与接口的对比 参数 | 抽象类 | 接口 | | 默认的方法实现 | 它可以有默认的方法实现 | 接口完全是抽象的。</description><pubDate>Wed, 02 Dec 2015 13:55:47 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>简洁代码之道（2）：避免全局可变状态</title><link>https://blog.xiaohansong.com/posts/tech-notes/avoid-global-state/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/avoid-global-state/</guid><description>什么是全局状态 Talk is cheap, show me the code. Linus。</description><pubDate>Mon, 30 Nov 2015 07:42:41 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>简洁代码之道（1）：用多态替代条件语句</title><link>https://blog.xiaohansong.com/posts/tech-notes/clean-code-polymorphism/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/clean-code-polymorphism/</guid><description>这篇文章主要着重于如何避免 if 语句。</description><pubDate>Tue, 24 Nov 2015 07:54:43 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item><item><title>控制反转（IoC）与依赖注入（DI）</title><link>https://blog.xiaohansong.com/posts/tech-notes/ioc-and-di/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/ioc-and-di/</guid><description>最近在学习 Spring 框架，它的核心就是 IoC 容器。</description><pubDate>Wed, 21 Oct 2015 13:39:57 GMT</pubDate><category>技术笔记</category><category>Java 与 JVM</category></item><item><title>Linux 内存寻址之分页机制</title><link>https://blog.xiaohansong.com/posts/tech-notes/linux%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%80%E4%B9%8B%E5%88%86%E9%A1%B5%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/linux%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%80%E4%B9%8B%E5%88%86%E9%A1%B5%E6%9C%BA%E5%88%B6/</guid><description>在上一篇文章[Linux 内存寻址之分段机制][1]中，我们了解逻辑地址通过分段机制转换为线性地址的过程。</description><pubDate>Mon, 05 Oct 2015 04:51:06 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>Linux 内存寻址之分段机制</title><link>https://blog.xiaohansong.com/posts/tech-notes/linux%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%80%E4%B9%8B%E5%88%86%E6%AE%B5%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/linux%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%80%E4%B9%8B%E5%88%86%E6%AE%B5%E6%9C%BA%E5%88%B6/</guid><description>最近在学习 Linux 内核，读到《深入理解 Linux 内核》的内存寻址一章。</description><pubDate>Sat, 03 Oct 2015 05:56:31 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>ucore 实验之操作系统启动流程</title><link>https://blog.xiaohansong.com/posts/tech-notes/ucore%E5%AE%9E%E9%AA%8C%E4%B9%8B%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/ucore%E5%AE%9E%E9%AA%8C%E4%B9%8B%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B/</guid><description>本文基于 ucore 操作系统实验，简要分析操作系统的启动流程。</description><pubDate>Fri, 02 Oct 2015 08:02:05 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>Linux 平台下阅读源码的工具</title><link>https://blog.xiaohansong.com/posts/tech-notes/linux%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E9%93%BE/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/linux%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E9%93%BE/</guid><description>看源代码是一个程序员必须经历的事情，也是可以提升能力的一个捷径。</description><pubDate>Mon, 24 Aug 2015 02:02:11 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>spice 源码分析之 server(1)</title><link>https://blog.xiaohansong.com/posts/tech-notes/spice%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8Bserver-1/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/spice%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8Bserver-1/</guid><description>前言：本文是结合我自己阅读代码的心得总结而来，同时会忽略很多细节，只能作为阅读源码时的参考。</description><pubDate>Wed, 19 Aug 2015 07:36:41 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>理解链接之链接的基本概念</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E9%93%BE%E6%8E%A5%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</guid><description>我们知道，开发程序的基本流程是：设计 代码编写 编译 链接 执行。</description><pubDate>Sun, 19 Jul 2015 05:29:13 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>桌面虚拟化传输协议之 android spice</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E6%A1%8C%E9%9D%A2%E8%99%9A%E6%8B%9F%E5%8C%96%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE%E4%B9%8Bandroid-spice/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E6%A1%8C%E9%9D%A2%E8%99%9A%E6%8B%9F%E5%8C%96%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE%E4%B9%8Bandroid-spice/</guid><description>云计算是目前计算机领域的一个热门领域，桌面虚拟化是其中的一个重要应用，即把桌面系统在服务器端虚拟化，然后通过传输协议传输数据到客户端来实现桌面虚拟化，这样的好处就在于不管用什么设备，只要通过客户端都可以访问到云端的系统。</description><pubDate>Thu, 16 Jul 2015 04:46:15 GMT</pubDate><category>技术笔记</category><category>Linux 与操作系统</category></item><item><title>算法学习之减治法 (decrease and conquer)</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E5%87%8F%E6%B2%BB%E6%B3%95-decrease-and-conquer/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E5%87%8F%E6%B2%BB%E6%B3%95-decrease-and-conquer/</guid><description>什么是分治法 减治技术利用了一个问题给定实例的解和同样问题较小实例的解之间的某种关系。</description><pubDate>Mon, 22 Jun 2015 02:55:13 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>算法学习之分治法 (divide and conquer)</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E5%88%86%E6%B2%BB%E6%B3%95-divide-and-conquer/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E5%88%86%E6%B2%BB%E6%B3%95-divide-and-conquer/</guid><description>什么是分治法 字面上的解释是“分而治之”，就是把一个复杂的问题分成两个或更多的相同或相似的子问题，直到最后子问题可以简单的直接求解，原问题的解即子问题的解的合并。</description><pubDate>Thu, 18 Jun 2015 10:50:50 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>算法学习之暴力求解 (brute force)</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3-brute-force/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3-brute-force/</guid><description>Brute force is a straightforward approach to solving a problem。</description><pubDate>Thu, 18 Jun 2015 08:53:51 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>算法学习之算法基本概念</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%AE%97%E6%B3%95%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</guid><description>An algorithm is a sequence of unambiguous instructions for solving a problem。</description><pubDate>Thu, 18 Jun 2015 08:18:24 GMT</pubDate><category>技术笔记</category><category>算法与机器学习基础</category></item><item><title>用 hexo 搭建 github 博客</title><link>https://blog.xiaohansong.com/posts/tech-notes/%E7%94%A8hexo%E6%90%AD%E5%BB%BAgithub%E5%8D%9A%E5%AE%A2/</link><guid isPermaLink="true">https://blog.xiaohansong.com/posts/tech-notes/%E7%94%A8hexo%E6%90%AD%E5%BB%BAgithub%E5%8D%9A%E5%AE%A2/</guid><description>搭建环境:Linux,nodejs,npm,git。</description><pubDate>Wed, 17 Jun 2015 02:14:18 GMT</pubDate><category>技术笔记</category><category>软件设计与开发工具</category></item></channel></rss>