QEMU内核调试实战:从零搭建Linux内核开发与调试环境
这次我们来看一个对 Linux 内核开发者至关重要的工具QEMU。它不是一个新的 AI 模型而是一个功能强大的开源机器模拟器和虚拟化器。对于内核开发者而言QEMU 的核心价值在于它提供了一个无需实体硬件、可完全在软件层面运行和调试 Linux 内核的沙盒环境。这意味着你可以在自己的开发机上快速启动一个“虚拟机”来测试新编译的内核、驱动模块或者复现某个特定的内核崩溃Panic/Oops极大地提升了开发与调试效率。这篇文章的重点不是泛泛介绍 QEMU 的虚拟化概念而是聚焦于它如何服务于 Linux 内核开发这一具体场景。我们会拆解清楚用 QEMU 调试内核需要什么环境、如何快速搭建、启动命令有哪些关键参数、如何与 GDB 配合进行源码级调试以及如何模拟特定的硬件环境来测试驱动。无论你是正在学习内核机制的学生还是需要频繁测试驱动兼容性的工程师这套方法都能让你摆脱对物理测试机的依赖将内核调试流程标准化、自动化。本文会带你完成从零开始的环境准备到启动一个最小化的内核镜像再到进行实际的调试操作。整个过程不依赖特定云服务或昂贵的开发板主要资源开销是磁盘空间和 CPU 算力对显卡GPU没有要求普通台式机或笔记本电脑即可运行。下面我们就直接进入正题。1. 核心能力速览对于 Linux 内核开发QEMU 提供的核心能力可以总结为下表能力项说明项目类型开源机器模拟器与虚拟化器核心用途无需实体硬件在宿主机上运行和调试 Linux 内核及驱动硬件门槛无 GPU 要求。主要依赖 CPU支持硬件虚拟化加速更佳和足够内存建议 4GB。磁盘空间用于存放内核镜像、根文件系统等。支持架构支持 x86_64, ARM, AArch64, RISC-V, PowerPC, MIPS 等众多 CPU 架构的模拟方便进行跨平台内核开发。启动方式命令行直接启动参数灵活可配置。可集成到脚本或 Makefile 中实现一键启动。调试支持完美支持 GDB。可通过-s -S参数启动调试服务器实现源码级单步调试、设置断点、查看内存和寄存器。网络支持可模拟虚拟网络设备如 e1000、virtio-net使 Guest 内核具备网络功能方便进行网络驱动或协议栈测试。存储模拟可模拟硬盘、CD-ROM、SD 卡等存储设备用于加载根文件系统。外围设备模拟可模拟 UART、PCI、USB 等总线及设备用于驱动开发和测试。适合场景1. Linux 内核初学者学习引导、内存管理、进程调度等机制。2. 内核开发者测试新功能、调试崩溃和问题。3. 驱动开发者验证驱动在不同架构或模拟硬件上的兼容性。4. 构建持续集成CI环境自动化测试内核变更。2. 适用场景与使用边界QEMU 在内核开发领域是一个“瑞士军刀”但它并非万能。明确其适用边界能帮助你更高效地利用它。最适合的场景内核机制学习与实验你可以在一个完全可控的环境中跟踪内核从引导、初始化到启动用户空间的完整流程通过修改代码并重新编译来观察行为变化。驱动开发与测试在物理硬件到位之前可以先在 QEMU 模拟的硬件如 virtio 设备、模拟的网卡上开发并测试驱动的基本功能逻辑。崩溃分析与调试当内核在真实硬件上发生难以复现的崩溃时可以尝试在 QEMU 中构造类似环境利用 GDB 精确地定位问题代码行。跨平台编译与验证在 x86 开发机上为 ARM 或 RISC-V 编译内核后直接用 QEMU 启动验证无需等待硬件板卡。自动化测试将 QEMU 启动命令写入脚本配合自动化框架可以在每次代码提交后自动启动测试内核运行测试用例。不适用或需注意的场景性能调优与基准测试QEMU 是模拟器其模拟的 CPU 和设备的性能与真实硬件有差异不适合用于评估内核或驱动的真实性能指标。硬件特性深度依赖对于严重依赖特定硬件特性如某些独特的电源管理单元、加密引擎或硬件加速器的驱动QEMU 可能无法准确模拟其行为。生产环境部署验证最终的内核镜像必须在目标真实硬件上进行充分测试QEMU 只能作为前期开发辅助。图形界面GUI密集型测试虽然 QEMU 可以模拟 VGA 或 virtio-gpu但用于测试图形显示驱动或复杂的 GUI 应用并非其强项效率较低。合规与安全边界QEMU 运行的内核和根文件系统均为你自己编译或获取的开源软件不存在第三方版权或隐私风险。但需要注意在模拟环境中测试网络驱动或安全模块时应避免与生产网络直接桥接最好使用隔离的虚拟网络。3. 环境准备与前置条件搭建 QEMU 内核调试环境主要涉及三部分QEMU 本身、待调试的 Linux 内核源码、以及一个最小的根文件系统。以下是在 Ubuntu/Debian 系和 Fedora/RHEL 系系统上的通用准备步骤。1. 安装 QEMU 系统模拟器QEMU 提供了完整的系统模拟qemu-system-xxx。我们需要安装对应目标架构的版本。# Ubuntu / Debian sudo apt update sudo apt install qemu-system-x86 qemu-system-arm qemu-system-riscv qemu-utils # Fedora / RHEL / CentOS sudo dnf install qemu-system-x86 qemu-system-aarch64 qemu-system-riscv qemu-img安装后可以通过qemu-system-x86_64 --version或qemu-system-aarch64 --version验证。2. 获取 Linux 内核源码你可以从 kernel.org 下载稳定版内核或克隆主线开发仓库。# 示例下载并解压稳定版内核 (例如 6.6 版本) wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz tar -xf linux-6.6.tar.xz cd linux-6.6 # 或者克隆主线仓库体积较大 git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git3. 安装编译工具链根据目标架构安装对应的交叉编译工具链。例如在 x86 主机上编译 ARM 内核# Ubuntu / Debian sudo apt install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi # Fedora / RHEL sudo dnf install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi对于 x86_64 目标使用宿主机的 gcc 即可。4. 准备根文件系统initramfs内核启动后需要一个根文件系统。最简单的方法是使用initramfs一个包含基本工具的内存文件系统。我们可以用 BusyBox 来制作。# 下载并编译 BusyBox wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2 tar -xf busybox-1.36.1.tar.bz2 cd busybox-1.36.1 make defconfig # 静态编译避免依赖宿主动态库 make menuconfig # 进入 Settings - Build static binary (no shared libs) 选上 make -j$(nproc) make install编译后在_install目录下就有了基本的 Linux 命令。4. 编译内核与制作根文件系统镜像环境准备好后下一步是配置和编译内核并打包根文件系统。1. 配置与编译 Linux 内核以 x86_64 为例cd /path/to/linux-6.6 # 使用默认配置 make x86_64_defconfig # 如果需要启用内核调试符号必须否则GDB无法调试 make menuconfig # 确保以下选项被启用可以通过 / 搜索 # Kernel hacking - Compile-time checks and compiler options - Compile the kernel with debug info (DEBUG_INFO) # Kernel hacking - Compile-time checks and compiler options - Provide GDB scripts for kernel debugging (可选但推荐) # General setup - Initial RAM filesystem and RAM disk (initramfs/initrd) support # 保存退出后编译 make -j$(nproc)编译完成后内核镜像位于arch/x86/boot/bzImage。2. 制作 initramfs 镜像首先基于 BusyBox 的_install目录创建 initramfs 的目录结构。# 创建一个工作目录 mkdir initramfs cd initramfs cp -r /path/to/busybox-1.36.1/_install/* . # 创建必要的设备节点QEMU 可能需要 sudo mknod dev/console c 5 1 sudo mknod dev/null c 1 3 # 创建 init 脚本内核启动后执行的第一个用户空间进程 cat init EOF #!/bin/sh echo Hello from the Linux kernel! echo Mounting proc and sys... mount -t proc none /proc mount -t sysfs none /sys # 启动一个 shell方便我们交互 exec /bin/sh EOF chmod x init # 打包成 cpio 格式initramfs find . -print0 | cpio --null -ov --formatnewc | gzip -9 ../initramfs.cpio.gz现在我们有了两个关键文件bzImage内核和initramfs.cpio.gz根文件系统。5. 启动 QEMU 与基础交互有了内核和根文件系统就可以启动 QEMU 了。我们将从最简单的无图形界面、串口控制台模式开始。1. 启动命令x86_64 架构qemu-system-x86_64 \ -kernel /path/to/linux-6.6/arch/x86/boot/bzImage \ -initrd /path/to/initramfs.cpio.gz \ -append consolettyS0 nokaslr root/dev/ram init/init \ -nographic \ -m 512M参数解析-kernel: 指定编译好的内核镜像路径。-initrd: 指定 initramfs 镜像路径。-append: 传递给内核的命令行参数。consolettyS0: 将控制台重定向到串口 0ttyS0这样-nographic模式下我们才能看到输出。nokaslr:关键参数。禁用内核地址空间布局随机化。如果不禁用GDB 断点地址会错位导致调试失败。root/dev/ram init/init: 告诉内核使用 RAM disk 作为根设备并执行/init脚本。-nographic: 禁用图形输出所有输出重定向到当前终端。对于服务器调试这是最常用的模式。-m 512M: 为虚拟机分配 512MB 内存。可根据需要调整。执行上述命令后你会看到内核启动日志滚动最后出现Hello from the Linux kernel!和 BusyBox 的 shell 提示符/ #。此时你已经成功在 QEMU 中运行了一个极简的 Linux 系统。2. 退出 QEMU在 QEMU 监控器中按下CtrlA然后松开再按X即可强制退出 QEMU。如果想先回到 QEMU 监控器可执行一些虚拟机控制命令按CtrlA然后松开再按C。在监控器中输入quit退出。6. 使用 GDB 进行内核源码级调试这是 QEMU 对于内核开发者最强大的功能。我们可以让 QEMU 在启动时等待 GDB 连接然后像调试普通程序一样调试内核。1. 启动 QEMU 并开启 GDB 服务器在启动命令中加入-s -S参数。qemu-system-x86_64 \ -kernel /path/to/linux-6.6/arch/x86/boot/bzImage \ -initrd /path/to/initramfs.cpio.gz \ -append consolettyS0 nokaslr root/dev/ram init/init \ -nographic \ -m 512M \ -s -S-S: 在启动时冻结 CPU暂停直到 GDB 连接并发送继续执行的命令。-s: 是-gdb tcp::1234的简写在 TCP 1234 端口上开启 GDB 服务器。执行此命令后QEMU 会暂停并等待 GDB 连接。2. 在另一个终端中使用 GDB 连接并调试# 切换到内核源码目录 cd /path/to/linux-6.6 # 启动 gdb并加载内核的调试符号文件 vmlinux注意不是 bzImage gdb vmlinux在 GDB 界面中(gdb) target remote localhost:1234 # 连接到 QEMU 的 GDB 服务器 (gdb) break start_kernel # 在内核启动的早期函数 start_kernel 处设置断点 (gdb) continue # 让内核继续执行直到命中断点当内核执行到start_kernel()函数时会暂停。此时你可以使用 GDB 的所有功能next/step: 单步执行。print variable: 打印变量值。list: 查看当前附近的源码。backtrace: 查看调用栈。break function_name: 在其他函数设置断点。continue: 继续执行。3. 调试示例跟踪内核启动流程设置断点后你可以一步步跟踪内核初始化过程。例如在start_kernel断点停下后单步执行观察setup_arch,trap_init,mm_init等子函数的调用。这比阅读代码更直观地理解内核启动顺序。7. 模拟特定硬件与驱动测试QEMU 可以模拟多种设备这对于驱动开发测试非常有用。例如测试一个网络驱动。1. 为虚拟机添加一个网络设备e1000 网卡qemu-system-x86_64 \ -kernel /path/to/bzImage \ -initrd /path/to/initramfs.cpio.gz \ -append consolettyS0 nokaslr root/dev/ram init/init \ -nographic \ -m 512M \ -netdev user,idmynet0,hostfwdtcp::5555-:22 \ -device e1000,netdevmynet0-netdev user,idmynet0,...: 创建一个用户模式网络后端ID 为 mynet0。hostfwdtcp::5555-:22将宿主机的 5555 端口转发到虚拟机的 22 端口SSH。-device e1000,netdevmynet0: 为虚拟机添加一个模拟的 Intel e1000 网卡并连接到 mynet0 网络后端。启动后在虚拟机内的 BusyBox shell 中你可以使用ip addr查看网卡信息并尝试配置 IP 地址。这可以用来测试内核中的 e1000 驱动代码。2. 使用更高效的 virtio 设备现代内核和 QEMU 更推荐使用 virtio 半虚拟化设备性能更好。-device virtio-net-device,netdevmynet0 \ -device virtio-blk-device,drivemyhd -drive filedisk.img,formatraw,ifnone,idmyhd这里添加了一个 virtio 网络设备和一个 virtio 块设备硬盘。disk.img是一个预先用qemu-img创建的硬盘镜像文件。8. 常见问题与排查方法在使用 QEMU 进行内核开发时你可能会遇到以下典型问题问题现象可能原因排查方式解决方案QEMU 启动失败报Could not open ‘xxx.iso’镜像文件路径错误或格式不被识别。检查-kernel,-initrd,-drive file等参数指定的文件路径是否正确、文件是否存在。使用绝对路径或确认相对路径正确。确保镜像文件是有效的格式如 raw, qcow2。内核启动后卡住无输出或提示Kernel panic1. 内核命令行参数错误。2. 缺少必要的驱动或 initramfs 配置错误。3. 内核未包含对应架构支持。1. 检查-append参数特别是console设置是否正确。2. 检查 initramfs 中的/init脚本是否有执行权限内容是否正确。3. 确认编译的内核架构与 QEMU 模拟的架构一致如用qemu-system-aarch64启动 ARM64 内核。1. 确保consolettyS0串口或consoletty0图形。2. 为 initramfs 添加ls -la /init和echo语句调试。3. 在内核配置中确保对应平台和基本驱动已编译。GDB 连接失败 (Connection refused)QEMU 的 GDB 服务器未启动或端口被占用。1. 确认 QEMU 启动命令包含-s或-gdb tcp::1234。2. 使用 netstat -tlnpgrep 1234 查看端口状态。GDB 能连接但断点不生效1. 内核未启用调试符号 (CONFIG_DEBUG_INFO)。2. 未禁用 KASLR (nokaslr参数缺失)。1. 检查内核.config文件确认CONFIG_DEBUG_INFOy。2. 检查 QEMU 启动参数-append是否包含nokaslr。1. 重新配置并编译内核确保启用调试信息。2. 在-append参数中必须加上nokaslr。虚拟机内无网络1. 未添加网络设备。2. 用户模式网络配置问题。3. 内核未编译对应网卡驱动。1. 检查 QEMU 命令是否有-netdev和-device网络相关参数。2. 在虚拟机内执行ip link查看网卡状态。3. 检查内核配置中对应网卡驱动如CONFIG_E1000是否编译。1. 正确添加网络设备参数。2. 尝试使用-netdev user,idn0 -device virtio-net-device,netdevn0简单配置。3. 确保内核镜像包含了所需驱动或编译为模块并在 initramfs 中加载。QEMU 进程占用 CPU 过高这是正常现象因为 QEMU 在模拟整个系统。用户模式网络或图形输出也可能增加负担。使用top或htop观察。1. 对于纯调试使用-nographic并关闭不必要的设备。2. 如果宿主机支持 KVM使用-enable-kvm加速仅限同架构虚拟化如 x86 on x86。如何从虚拟机传文件到宿主机默认用户模式网络不提供类似共享文件夹的功能。无直接文件共享。1. 在虚拟机内启动网络服务如 SSH通过scp传输。2. 使用-virtfs或-fsdev参数配置 9p 虚拟文件系统共享目录需内核支持。3. 将文件打包进 initramfs 或额外的磁盘镜像。9. 最佳实践与使用建议将 QEMU 内核调试集成到日常开发工作流中可以遵循以下建议脚本化一切不要每次都手动输入一长串 QEMU 命令。将启动命令、GDB 连接命令、内核编译命令分别写入run_qemu.sh,debug_kernel.gdb,build_kernel.sh等脚本中。这能保证环境可复现也方便分享给团队成员。# run_qemu.sh 示例 #!/bin/bash qemu-system-x86_64 \ -kernel ./arch/x86/boot/bzImage \ -initrd ../initramfs.cpio.gz \ -append consolettyS0 nokaslr root/dev/ram init/init quiet \ -nographic \ -m 1G \ -s -S \ $版本控制你的配置将你的内核配置文件.config、initramfs 构建脚本、BusyBox 配置、QEMU 启动脚本一并纳入版本控制如 Git。这能让你随时回溯到任何一个可工作的状态。分层构建根文件系统对于复杂测试initramfs 可能不够用。可以创建一个基于ext4格式的磁盘镜像使用debootstrapDebian/Ubuntu或dnf --installrootFedora在其上安装一个轻量级发行版。这样你就能拥有一个更完整的用户空间环境来测试内核特性。利用 QEMU 监控器在 QEMU 运行中按CtrlA C进入监控器。这里可以执行很多实用命令如info registers查看寄存器、info mem查看内存映射、savevm/loadvm保存/加载虚拟机状态对于分析特定时刻的系统状态很有帮助。结合自动化测试框架对于内核的持续集成可以将 QEMU 作为测试执行器。使用-kernel和-append参数指定内核和命令行并通过串口重定向-serial file:output.log或网络将测试结果输出到日志文件由 CI 系统如 Jenkins, GitLab CI解析判断测试是否通过。安全隔离在测试网络相关代码或安全模块时务必使用隔离的网络配置如-netdev user的默认隔离模式避免测试代码意外访问或影响宿主机网络。10. 总结与下一步QEMU 为 Linux 内核开发者提供了一个近乎完美的软件调试沙盒。它最大的优势在于可重复性和可控性任何内核崩溃都可以瞬间重启虚拟机来复现任何内存状态都可以通过 GDB 来检查任何硬件配置都可以通过命令行参数来模拟。对于初学者建议从最简单的 x86_64 架构开始完成一次完整的内核编译、initramfs 制作、QEMU 启动和 GDB 连接流程并成功在start_kernel处断住。这个流程打通后你就掌握了内核调试的基本范式。对于有经验的开发者下一步可以探索多处理器SMP调试在 QEMU 启动参数中加入-smp 4来模拟 4 核 CPU调试内核的并发、锁和调度问题。设备树Device Tree测试对于 ARM 等架构学习如何为 QEMU 的virt机器准备设备树二进制文件dtb并传递给内核。内核模块动态调试在 QEMU 启动的系统中动态加载和卸载你自己编写的内核模块并使用printk或kgdb进行调试。性能 profiling虽然不精确但可以结合 QEMU 的-d参数输出执行轨迹或使用内核的ftrace功能在模拟环境中进行初步的性能分析。将 QEMU 作为你内核开发工具箱中的常驻工具能显著降低学习门槛、加速问题定位并让驱动和内核功能的早期验证变得更加高效和安全。建议将本文中的关键脚本和命令保存下来作为你下一个内核探索项目的起点。

相关新闻

揭秘大模型回复生成:从概率游戏到采编审校的完整流程

揭秘大模型回复生成:从概率游戏到采编审校的完整流程

你有没有想过,当你向一个大型语言模型提问,它流畅、得体、甚至富有洞见的回复,究竟是如何“写”出来的?这背后,真的只是一套冰冷的算法在随机组合词汇吗?最近,一个有趣的现象引起了我的注意&…

2026/8/13 7:27:19 阅读更多 →
企业智能体开发怎么做?从需求分析、业务语义层到生产上线的10个关键步骤

企业智能体开发怎么做?从需求分析、业务语义层到生产上线的10个关键步骤

企业智能体开发 企业Agent开发 AI Agent定制开发 企业智能体开发流程 业务语义层 越来越多企业开始搜索“企业智能体开发”“企业Agent开发”“AI Agent定制开发”,但真正进入项目后,会发现Agent开发和普通聊天机器人开发完全不同。聊天机器人可以从…

2026/8/13 7:27:19 阅读更多 →
Python爬虫实战:微信公众号历史文章数据自动化抓取与解析

Python爬虫实战:微信公众号历史文章数据自动化抓取与解析

1. 项目概述与核心需求解析 那天晚上,我盯着电脑屏幕,看着自己运营了半年的公众号后台,心里一阵烦躁。我需要整理一份季度运营报告,分析一下历史文章的阅读量、点赞数、用户互动趋势。后台的数据导出功能,一次只能导出…

2026/8/13 7:26:19 阅读更多 →

最新新闻

代码的第一把切割刀:用边界终结“面条系统”的坍塌

代码的第一把切割刀:用边界终结“面条系统”的坍塌

专栏《信息技术》 | 计算系统进化论 (01/12) 一万行代码里的“排雷”暗战

2026/8/13 10:43:14 阅读更多 →
大模型Token全解析:从核心原理到实战优化

大模型Token全解析:从核心原理到实战优化

1. 项目概述:从“乐高积木”的比喻说起 最近和不少刚接触大模型的朋友聊天,发现一个挺有意思的现象:大家聊起GPT、Claude这些模型时,都能说上几句,但一提到“Token”这个词,很多人就有点懵了。有人觉得它像…

2026/8/13 10:43:14 阅读更多 →
2026年热门的存储芯片热流仪加工哪家精度高实力公司推荐

2026年热门的存储芯片热流仪加工哪家精度高实力公司推荐

编辑 | 深圳市丞坤仪器科技有限公司现在存储芯片行业不断升级,对可靠性测试的要求越来越细化,存储芯片热流仪作为存储芯片温度特性、热稳定性测试的核心设备,很多采购和研发负责人在选购的时候都会有疑问:存储芯片热流仪销售厂家哪…

2026/8/13 10:43:14 阅读更多 →
《模拟人生4》NOCC房屋安装指南:从文件部署到功能验证全流程

《模拟人生4》NOCC房屋安装指南:从文件部署到功能验证全流程

这次我们来看一个《模拟人生4》的玩家自制房屋作品——“秘密森林女巫树屋 NOCC房屋”。这个项目不是技术工具或AI模型,而是一个游戏模组(Mod),但它同样涉及文件分享、安装部署、功能验证和兼容性排查,对喜欢自定义游戏…

2026/8/13 10:43:14 阅读更多 →
元初混沌体系架构 第二卷 第四十篇 高频信号宇宙远距离衍射补偿模型

元初混沌体系架构 第二卷 第四十篇 高频信号宇宙远距离衍射补偿模型

第四十篇 高频信号宇宙远距离衍射补偿模型承启前置 超宽带穿透闭环与高频衍射短板补齐第三十九篇《超宽带频谱星际穿透优势与边界约束》已永久定稿,完整构建7G超宽带全域穿透机理、五大统治级优势、四类星际专属约束与鸿蒙制衡化解体系,彻底完成太赫兹超…

2026/8/13 10:43:14 阅读更多 →
微服务配置管理实战:Nacos Config核心原理与Spring Cloud集成指南

微服务配置管理实战:Nacos Config核心原理与Spring Cloud集成指南

1. 项目概述:为什么我们需要Nacos Config?在微服务架构里,配置管理是个老生常谈但又极其关键的问题。想象一下,你手头有几十个甚至上百个服务,每个服务都有自己的数据库连接、缓存地址、业务开关。如果这些配置都写在每…

2026/8/13 10:42:13 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →