KylinOS国产系统实操指南:从安装到部署的踩坑经验

我在一线折腾 Linux 也有好多个年头了,平时用主流发行版比较多。前段时间因为工作调整,需要把一部分开发和运维场景迁移到 KylinOS 这套国产系统上,于是认认真真做了一段实操学习。从下载 ISO、装虚拟机开始,到后来在真实物理机上部署服务,中间踩了不少坑,也积累了一些很有价值的经验。

这篇内容不是产品介绍文档,也不代表官方立场,就是把我在 KylinOS 上的真实操作过程、决策逻辑和踩坑记录整理出来。如果你正准备接触国产系统,或者已经装好了 KylinOS 但不知道从哪儿下手,这篇内容应该能帮你少走很多弯路。

1. 先从整体思路说起:为什么要较真做一次国产系统实操

1.1 一次学习实践的三个判断

在正式开始之前,我先做了三个判断,这决定了整个学习的方向。

第一个判断:不能停留在“看界面”阶段。很多资料把重点放在桌面壁纸、图标风格这些观感层面,但对实际使用帮助不大。我需要的是一套能跑服务、能写代码、能部署应用的环境,所以重点得放在命令行、系统服务、软件包管理这些底层操作的验证上。

第二个判断:不能默认“和某某发行版一模一样”。KylinOS 确实脱胎于成熟的 Linux 内核体系,很多命令和配置思路都是通用的,但具体到软件源、默认配置、预装组件,甚至某些系统路径,都会有细节差异。盲目套用其他发行版的经验,反而容易出问题。所以我给自己定了个原则:每个关键操作都先验证,再大批量执行。

第三个判断:学习过程要贴近真实场景。日常工作的常见需求无外乎装机、配环境、部署服务、调问题。我干脆把一个内部的统计报表服务作为模拟项目 X,从零开始在 KylinOS 上搭起来,用真实需求倒逼自己熟悉系统。事实证明,带着任务去学,效率比干看文档高很多。

1.2 学习路径拆解:从搭建到复用的闭环

我对整个学习过程做了一个闭环设计,分四个阶段推进。

  • 阶段一:系统安装与初始化。包括引导方式选择、磁盘分区、语言设置、创建用户,确保系统本身立得住。
  • 阶段二:基础运维能力。包括软件源配置、包管理器使用、系统服务管理、用户权限和远程登录。
  • 阶段三:开发环境搭建。包括编译工具链、解释器、容器运行时,把模拟项目X真正跑起来。
  • 阶段四:问题排查。把安装和运行过程中遇到的各种报错整理成速查表,形成可复用的经验。

这个路径的先后顺序是有讲究的。先解决“系统能不能稳定存在”,再解决“软件能不能方便安装”,然后才是“业务能不能顺利运行”。每一步都建立在前一步之上,不跳步、不图快。

1.3 虚拟与物理之间的取舍

前两周我主要是在虚拟机里操作的,原因很直接:方便快照回滚。装系统过程中配置错了、分区选错了,一个快照就能恢复,不用反复重装,节省大量时间。

但虚拟机也有明显短板。虚拟机无法完整验证真实硬件兼容性,比如部分显卡驱动、某些新型主板上的引导行为,还有电源管理策略,这些都必须放到物理机上才能确认。所以在虚拟机环境稳定之后,我找了一台闲置的台式机做物理机部署,专门验证引导、驱动、网络唤醒等场景。

建议你如果条件允许,两条路径都走一遍。先虚拟后物理,风险最小,也能覆盖大多数学习需求。

2. 初始化配置里的“第一口坑”:安装、引导与软件源

2.1 安装前分区和引导的实操建议

KylinOS 的图形安装界面整体比较友好,分区分区这类操作都有向导提示。但有几个细节容易被忽略,我来重点说说。

首先是引导方式。现在新机器基本都是 UEFI 引导,安装时会在磁盘上创建一个 EFI 系统分区,大小建议 512MB 以上,不要省这点空间。传统 BIOS 引导的设备则要注意分区表格式,对应的主引导记录和启动标志要设置正确。我在一台老机器上试过默认配置安装,结果因为分区没有设置启动标志,重启后找不到系统,折腾了半天。

和大多数人习惯不一样,我建议把/boot单独分出来,大小给 1GB 左右。这样即使系统盘的其他分区出了问题,引导文件也相对安全,后续想换内核、升级系统时容错性更好。数据分区用 LVM 管理则比较灵活,后面磁盘空间不够时不用重新分区,直接扩逻辑卷就行。

创建用户时有一点值得留意:默认创建的普通用户虽然能用 sudo,但某些管理操作仍需要切换到 root 完成。我习惯的做法是给普通用户配好 sudo 权限,同时保留 root 账号并设置为仅密钥登录,避免密码被反复尝试破解。

2.2 软件源:决定后续体验的隐藏关键

装上系统后第一件正事,就是检查软件源。这一步直接决定了后面安装软件的速度和成功率,重要性怎么强调都不过分。

KylinOS 的软件源分为两类:一类是系统自带的基础源,另一类可能包含扩展软件源。打开软件源配置文件后,可以看到仓库地址列表。这里我对新手有三个建议。

第一,不要盲目改动仓库地址,尤其是在不确定兼容性的情况下。KylinOS 和某些其他发行版的软件源格式不完全一样,直接搬其他源地址过来,轻则部分包无法安装,重则系统依赖损坏。我刚开始就试着把一个通用的仓库配置推进去,结果dnf update出现一堆依赖冲突,最后只能重新初始化系统。

第二,尽量使用系统自带的源,或者国内访问速度快的镜像。把 base 相关的仓库地址替换成对应镜像即可,具体镜像地址可以在官方帮助页面找到。记得替换后执行缓存清理和重建:

sudo dnf clean all sudo dnf makecache

第三,注意区分源的类型。仓库名中带有 debug、source、test 字样的,通常不是日常需要的,全部启用反而会让依赖解析变复杂。建议在配置文件中确认这些仓库处于禁用状态,优先级高的正式仓库保持启用即可。

2.3 包管理器、用户权限与安全加固

很多人一上手就习惯输入yum install,因为早期的使用习惯容易这样选。KylinOS 上实际上可以根据版本选择yum或dnf,它们底层都基于 RPM。如果输入yum --version发现能正常工作,那就继续使用;如果发现目录结构不同,也可以试试dnf。我个人建议优先使用dnf,依赖解析速度和输出清晰度都好一些,而且它提供的命令风格对日常运维更友好。

系统初始化时,我会执行一个简单的安全加固清单:

# 新建一个非 root 用户 sudo useradd -m -G wheel devops sudo passwd devops # 配置 SSH 使用密钥登录 sudo mkdir -p /home/devops/.ssh sudo tee /home/devops/.ssh/authorized_keys << 'EOF' ssh-rsa AAAAB3NzaC1yc2...(你的公钥内容) EOF sudo chown -R devops:devops /home/devops/.ssh sudo chmod 700 /home/devops/.ssh sudo chmod 600 /home/devops/.ssh/authorized_keys

然后编辑 SSH 服务配置,把PermitRootLogin改为prohibit-password或直接禁止 root 密码登录,并确认PasswordAuthentication设置为no。这里要注意,修改配置文件之前最好先保持当前连接不断开,开一个新终端验证密钥登录可用后再重载服务,防止把自己锁在外面。这个习惯我保留至今,强烈建议你也养成。

3. 核心实操:把 KylinOS 当成日常开发/服务器环境来用

3.1 软件安装的三种途径及选择逻辑

在 KylinOS 上安装软件,主要有三种途径:包管理器安装、源码编译、容器化运行。三者的适用场景各不相同,我整理了一张表:

安装方式适用场景优点潜在问题
包管理器常规命令行工具、运行库、系统组件依赖自动处理、升级方便软件版本相对固定,可能偏旧
源码编译需要新版本、需要自定义编译参数灵活定制、版本可控编译耗时长,依赖需要手动解决
容器化运行应用服务、隔离环境、多版本共存环境隔离、快速部署对系统内核有一定依赖

日常系统工具优先走包管理器,比如sudo dnf install -y htop git unzip tar,干净利落。需要新版本或者特殊编译选项的软件再考虑源码编译。对于服务类应用,我更推荐容器化,后面专门展开。

这里想多说一句源码编译的坑。有一次我需要一个较新版本的 Python,系统仓库里只有旧版本,于是下载源码编译。编译本身不难,难的是各种依赖。编译前需要确认 zlib、openssl、libffi 等开发包都已安装,否则编译出的 Python 会缺失一些重要模块,比如ssl,导致后面pip install根本无法从网络下载包。正确的准备命令大致是:

sudo dnf install -y gcc make zlib-devel openssl-devel libffi-devel bzip2-devel readline-devel sqlite-devel

然后按常规流程 configure、make、make install。编译时建议加上--enable-optimizations,虽然编译时间会变长,但运行效率更好。

3.2 服务管理:用 systemd 管好后台进程

任何 Linux 系统都绕不开服务管理,KylinOS 也使用 systemd 体系。常用命令和其他现代发行版一致,比如systemctl status、systemctl start、systemctl enable等。

但有一个细节要特别指出:KylinOS 上某些服务的服务名称可能和你预期的不一样。比如在某种使用场景下,网络管理服务可能叫NetworkManager,也可能由系统自带的网络管理组件接管,单元名称有差异。排查问题时,先用systemctl list-units --type=service | grep -i 关键词找到准确的单元名再操作,避免因为服务名写错导致命令无效。

我用内部的一个统计服务做过一次完整的服务化改造,把原先手动启动的脚本写成了 systemd 单元:

[Unit] Description=Data Collection Demo Service After=network.target [Service] User=devops WorkingDirectory=/opt/demo-service ExecStart=/usr/bin/python3 /opt/demo-service/main.py Restart=always RestartSec=5 Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target

把这个文件放到/etc/systemd/system/后,依次执行:

sudo systemctl daemon-reload sudo systemctl enable demo-service sudo systemctl start demo-service

Restart=always这个配置很关键,它保证进程异常退出后能自动拉起,对长期跑的服务来说非常实用。如果你想限制这个服务能访问的文件和网络范围,还可以在此基础上配置沙箱参数,比如PrivateTmp=true、NoNewPrivileges=true,对安全性有要求的场景可以逐步加上。

3.3 开发工具链与解释器环境搭建

搭建开发环境时,最容易犯的错误是一边用包管理器装系统 Python,一边又手动编译一份 Python,然后两个版本混用,导致pip指向混乱。

我的建议是:如果是常规项目,直接用系统自带的 Python 环境,配合虚拟环境工具隔离项目依赖,完全够用。KylinOS 的仓库通常自带 Python 3,版本虽然不是最新,但稳定性有保障。

需要更新版本时,优先看有没有对应的 Software Collection 或替代包。真的没有才考虑源码编译,并且编译安装后一定要立即检查python3 -c "import ssl; print(ssl.OPENSSL_VERSION)",确认核心模块没有缺失。

对于 Node.js、Go 这类工具,我的习惯是用版本管理工具或者直接下载官方预编译包。以 Node.js 为例,二进制包解压后加入环境变量即可:

# 假设解压到 /opt/nodejs export PATH=/opt/nodejs/bin:$PATH export LD_LIBRARY_PATH=/opt/nodejs/lib:$LD_LIBRARY_PATH

写入/etc/profile.d/nodejs.sh文件就不用每次手动 export。注意这里要留意当前用户的$PATH是否覆盖了系统路径,避免误用系统自带的老版本。

环境变量的坑我也踩过。有次配置完环境变量后,终端一开就提示command not found,查了半天才发现是配置文件里某一行路径写错,导致PATH被覆盖了一半。改配置文件的黄金法则是:先清空覆盖式写法,只追加标准路径,再用另一个终端验证,然后才正式保存。

3.4 容器化运行环境的实际落地

容器化是我在 KylinOS 上跑业务的主要方式,因为这能最大程度规避系统包版本差异带来的兼容性问题。

安装容器引擎并在 KylinOS 上运行,比预期顺利。启动服务后验证一下版本:

sudo systemctl start docker sudo docker run --rm hello-world

如果提示权限问题,把当前用户加入 docker 用户组,重新登录后即可免 sudo 执行容器命令:

sudo usermod -aG docker devops

有一个问题出现的频率很高:容器里跑的服务想访问宿主机文件,或者宿主机想访问容器内服务,端口映射和目录挂载很容易搞混。我提供一个小项目的docker run示例,方便对照:

sudo docker run -d \ --name demo-web \ -p 8080:80 \ -v /opt/demo-service:/usr/share/nginx/html:ro \ nginx:stable-alpine

这个命令把宿主机 8080 端口映射到容器内 80 端口,同时把/opt/demo-service目录以只读方式挂到容器内网站目录。ro参数是出于安全考虑,生产环境里尽量不要让容器反向写宿主机目录,除非明确需要。

使用容器时还要注意存储驱动问题。部分文件系统默认配置可能与容器引擎不兼容,如果启动容器时出现storage-driver相关报错,可以检查数据盘挂载参数是否包含 pquota 等必要选项,或者将数据盘单独挂载到容器数据目录。

4. 踩坑记录:我从安装到运维遇到的典型问题

4.1 高频报错速查表

实操过程中遇到的各种报错非常磨人,我整理了一份高频问题速查表,基本覆盖常见场景:

现象可能原因解决思路
Error: Failed to download metadata for repo软件源不可用或已过期重新配置源,执行dnf clean all && dnf makecache
Error: Problem: package X requires Y依赖包版本冲突用dnf check-update查看依赖情况,必要时使用dnf update统一升级
/etc/sudoers语法错误手写配置格式问题用visudo修复,不要直接vim /etc/sudoers
Failed to start docker: Unknown storage-driver存储驱动配置不匹配检查挂载参数,确认数据目录所在分区预留足够配额
中文文件名在终端显示乱码系统语言环境未设置正确检查locale以及字体包是否完整,尤其服务器场景LANG=zh_CN.UTF-8需要显式导入
Permission denied (publickey)SSH 密钥权限或文件权限不对检查.ssh目录权限 700,公钥文件权限 600,sshd配置确认禁用密码登录

排查问题遵循一个固定顺序:先看日志,再查状态,最后想方案。我习惯先执行journalctl -xe查看最近日志,或者查看应用级别的日志文件,避免靠猜。

4.2 启动异常与引导修复

有一段时间进行内核升级实验,中途遇到了重启后系统无法进入桌面的问题。屏幕上会卡在某个地方,仔细看是引导菜单里没有出现新内核,或者系统进入救援模式但无法挂载根分区。

这类问题的通用修复思路是:从安装介质启动,进入救援模式,然后重新生成引导配置。大致命令如下:

# 假设根分区在 /dev/sda2,先挂载 mkdir -p /mnt/system mount /dev/sda2 /mnt/system mount --bind /dev /mnt/system/dev mount --bind /proc /mnt/system/proc mount --bind /sys /mnt/system/sys chroot /mnt/system grub2-mkconfig -o /boot/grub2/grub.cfg

如果是 UEFI 引导,配置文件路径可能会有所不同,需要确认grub.cfg的实际位置。另外提醒一句,执行重装引导配置前最好先备份原配置文件,避免反复尝试失败后连原来的配置都找不回来。

日常操作里,/boot分区空间不足是引发引导故障的常见原因。内核更新频繁时旧内核不会自动清理,导致/boot被塞满。定期使用系统的清理工具移除旧内核,并坚持把/boot单独分区,这两个习惯能有效减少引导类故障。

4.3 桌面与中文环境的细节问题

不少人安装桌面版本后第一反应是“界面挺流畅,但输入法怎么弄都出不来”。中文输入法问题几乎成了新手最容易卡住的点,而且方案往往不太统一。

我的经验是分两步解决。第一步确认系统语言环境已经设置为中文,并安装中文字体,避免界面出现方块字。第二步安装输入法框架和相关组件,然后重启会话或重新登录。重启后调出输入法,在应用里测试中英文切换是否正常。

如果界面缩放不合理,分辨率看起来模糊或字体偏小,可以在显示设置中调整缩放比例。部分显卡驱动未正确加载时,界面可能会有撕裂感,这种情况优先检查显卡驱动是否启用,再调整显示参数。

此外,国产系统生态里也有一些常见的软件包,比如即时通讯、办公软件等。在系统自带的软件商店或仓库中安装基本能找到,但要注意这些软件有可能只提供特定架构的版本,安装前确认 CPU 架构是否匹配。因为不同的 CPU 架构对应不同的安装包格式,选错了基本都会报“架构不符”的错误。

5. 学习复盘:哪些经验可以直接迁移,哪些必须重新习惯

5.1 随手可用与必须变通的部分

这段实操下来,我最大的感受就是:KylinOS 对于有 Linux 使用基础的人,上手门槛并不高,但也不能指望把所有习惯无缝迁移过来。

可以直接迁移的经验很多。文件系统目录结构、常见命令行工具、系统服务管理方式、网络配置逻辑,这些基本没有变。用ssh远程管理服务器,用rsync同步文件,用cron或 systemd timer 做定时任务,这些在 KylinOS 上都能正常工作。拿我原来的工作习惯直接套用,大部分情况下是顺手且高效的。

需要变通的地方也不少。软件源要单独配置,不能照搬其他发行版的配置代码;部分图形化工具的功能边界不同,需要自己去发现替代方案;内核模块和驱动的安装方式也可能不同,特别是某些新硬件的支持,需要确认系统默认内核是否覆盖。如果发现有专有内核模块,切记不要贸然安装,先确认是否与当前内核版本匹配,再考虑如何加载。

5.2 给后来者的一条学习路线建议

想系统学 KylinOS 的人,我现在会给一条明确路线:从服务器版开始,从命令行开始,从真实任务开始。

为什么是服务器版而不是桌面版?因为服务器版能让你更早接触纯命令行环境,避免被图形界面包裹住,对系统运行机制的理解更扎实。而且服务器场景应用更广,今后无论做开发还是运维都用得上。

为什么从命令行开始?因为包管理、日志、进程监控这些核心操作都离不开命令行,图形工具往往是包在上面的一层壳,底层的原理还得靠命令行理解。

为什么从真实任务开始?因为只有带着明确目标去操作,才真正知道每一个配置项是干什么用的。我的模拟项目 X 虽然只是一个数据采集统计服务,但正是这样一个完整的任务,驱动我学会了服务编写、日志配置、权限管理、容器部署等多个知识点,比单独学一个命令有用得多。

最后分享一个个人经验:KylinOS 的实操学习,别急着追求“把每个功能都点亮”,更值得做的是把一条关键路径走通,比如从装系统到部署一个对外访问的服务。这条路径走通之后,你就有了一个可以复用的基础框架,后续不管是什么业务,都能往里套。这才是实操探索最大的收获。

相关新闻

Basler相机C++ SDK环境配置避坑指南:版本对齐与USB驱动调试

Basler相机C++ SDK环境配置避坑指南:版本对齐与USB驱动调试

简介&#xff1a;本资源是一套面向C工业视觉开发者的Basler相机SDK轻量级封装类库&#xff0c;专为快速集成Basler工业相机而设计&#xff0c;适用于机器视觉、自动化检测等需高稳定性图像采集的中高级开发场景。压缩包仅2KB&#xff0c;含2个核心文件&#xff1a;头文件Basler…

2026/10/20 3:15:58 阅读更多 →
Trimmomatic双端测序全攻略:从FASTQ质控到参数调优实战

Trimmomatic双端测序全攻略:从FASTQ质控到参数调优实战

做生信的朋友&#xff0c;对 Trimmomatic 这个名字应该都熟。它是二代测序数据预处理阶段最常被提到的工具之一&#xff0c;专门处理下机后最原始的 FASTQ 文件&#xff1a;去接头、剪低质量碱基、过滤掉太短的序列。如果说测序是原料采购&#xff0c;那 Trimmomatic 就是洗菜、…

2026/10/20 3:15:58 阅读更多 →
精度如何?EVIE-4.5B与12款主流视觉文档检索模型的ViDoRe基准完整对比清单

精度如何?EVIE-4.5B与12款主流视觉文档检索模型的ViDoRe基准完整对比清单

人工智能大模型EmbeddingRAG计算机视觉 【免费下载链接】EVIE-4.5B 项目地址&#xff1a; https://ai.gitcode.com/tencent_hunyuan/EVIE-4.5B 点击查看 免费下载 这份对比清单完整呈现了 EVIE-4.5B 视觉文档检索模型在 ViDoRe 基准上的精度表现&#xff0c;并与 12 款主流多向…

2026/10/20 3:15:58 阅读更多 →

最新新闻

用Design.md构建符合产品风格的原型设计:设计令牌实战指南

用Design.md构建符合产品风格的原型设计:设计令牌实战指南

上周跟某团队聊原型评审&#xff0c;对方把三个页面的设计稿拍在我面前&#xff0c;主色蓝就出现了五种&#xff0c;没有两个颜色值相同。评审会开了一个小时&#xff0c;快一半时间在争论“这个蓝到底是不是我们品牌那个蓝”。原型阶段最让人心累的从来不是画得快不快&#xf…

2026/10/20 20:19:47 阅读更多 →
跨学科类比提升创意新颖度:IdeaScientist实践指南

跨学科类比提升创意新颖度:IdeaScientist实践指南

做创意类工作的人&#xff0c;最能共鸣的一句话大概是&#xff1a;我知道要创新&#xff0c;可我没有新东西。过去三年&#xff0c;我一直在跟各种“点子枯竭”问题搏斗。做过竞品扫描&#xff0c;做过用户访谈&#xff0c;也试过各种头脑风暴法&#xff0c;但方案的新颖度始终…

2026/10/20 20:19:47 阅读更多 →
给AI编程助手装上开发方法论:六阶段工作流设计复盘

给AI编程助手装上开发方法论:六阶段工作流设计复盘

最近我在重构自己日常使用的 AI 编程工作流时&#xff0c;越来越明显地感受到一个现象&#xff1a;AI 编程助手本身的能力已经不缺了&#xff0c;缺的是“约束”。就像给一个执行力超强但毫无章法的实习生配了个无限量的咖啡&#xff0c;你让他“写个登录模块”&#xff0c;他能…

2026/10/20 20:19:47 阅读更多 →
JDBC连接MySQL全链路详解:驱动配置、PreparedStatement、事务与连接池实战

JDBC连接MySQL全链路详解:驱动配置、PreparedStatement、事务与连接池实战

JDBC 这个东西&#xff0c;很多 Java 开发天天在用&#xff0c;但真要自己从零写一遍“Java 连 MySQL 并完成增删改查”&#xff0c;不少人反而会卡在几个很基础的环节上。驱动版本不一致、时区报错、连接池参数不会填、PreparedStatement 和 Statement 搞混&#xff0c;这些坑…

2026/10/20 20:19:47 阅读更多 →
MATLAB调用REFPROP 64位DLL避坑指南

MATLAB调用REFPROP 64位DLL避坑指南

简介&#xff1a;本资源是面向工程热物理、制冷空调、化学工程等领域科研与工程人员的MATLAB-REFPROP高效调用方案&#xff0c;专为64位Windows平台设计&#xff0c;解决MATLAB环境下调用NIST官方REFPROP热力学数据库时常见的环境配置复杂、接口编译困难、DLL加载失败等痛点。压…

2026/10/20 20:19:47 阅读更多 →
技能拆解与能力建模:从抽象描述到可执行单元的系统方法

技能拆解与能力建模:从抽象描述到可执行单元的系统方法

1. 从“skills”这个词说起&#xff1a;它到底指什么“skills”这个词看起来简单&#xff0c;但放在不同语境里&#xff0c;含义差别很大。在职场语境下&#xff0c;它指的是一个人完成某项任务所具备的能力单元&#xff1b;在技术社区里&#xff0c;它常常指代一组可复用的技能…

2026/10/20 20:18:46 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →