幸狐RV1106开发板实战:从SD卡启动自定义BusyBox根文件系统的完整避坑指南
幸狐RV1106开发板实战从SD卡启动自定义BusyBox根文件系统的完整避坑指南对于刚拿到幸狐RV1106开发板的嵌入式爱好者来说从官方提供的Buildroot系统切换到更精简、更可控的自定义BusyBox根文件系统往往是迈向深度定制的第一步。这个过程听起来简单——不就是把编译好的文件系统塞进SD卡然后让板子从那里启动吗但真正动手时你会发现从分区规划、内核参数调整到驱动兼容、网络配置每一步都可能藏着意想不到的“坑”。我自己在折腾这块小板子时就曾因为一个不起眼的CONFIG_BOOTDELAY设置白白浪费了一个下午调试启动失败的问题。这篇文章我将结合自己多次实战的经验为你梳理一条从零开始、在幸狐RV1106上实现SD卡启动自定义BusyBox根文件系统的清晰路径。我们不仅会完成基础的启动流程还会深入到网络配置、时间同步、用户管理等实用功能的搭建目标是让你得到一个功能完整、可网络连接、便于后续开发的轻量级Linux环境。无论你是想为项目打造一个极简的运行时基础还是单纯想学习嵌入式Linux的启动与定制这篇指南都能帮你避开那些常见的陷阱。1. 前期准备理解启动流程与硬件配置在动手之前我们需要先理清幸狐RV1106开发板的启动逻辑。这块板子的存储介质通常包括板载的SPI NAND Flash和可选的Micro SD卡。默认的官方镜像会将U-Boot引导程序、Linux内核以及Buildroot根文件系统全部烧录到Flash中。我们的目标是让U-Boot和内核依然从Flash启动但将根文件系统rootfs转移到SD卡上。这样做有几个明显的好处首先根文件系统的开发和调试变得极其方便你只需要插拔SD卡或在主机上修改文件无需反复烧录整个Flash其次SD卡的容量通常远大于板载Flash可以容纳更丰富的工具和应用程序最后这种混合启动模式为你提供了灵活的双系统切换能力——通过U-Boot的环境变量你可以随时选择从Flash的原始系统启动还是从SD卡的自定义系统启动。1.1 硬件与软件清单为了顺利完成本指南的所有步骤请确保你已准备好以下环境硬件幸狐RV1106开发板Luckfox Pico Pro/Max 或类似型号。一张容量不小于8GB的Micro SD卡及读卡器。建议使用Class 10或更高速度的卡以保证系统运行流畅。用于供电和串口调试的USB Type-C数据线。一台用于开发的x86_64 Linux主机物理机或虚拟机均可。我使用的是Fedora 42但Ubuntu、Debian等主流发行版同样适用。网线可选用于有线网络调试或为开发板提供网络访问。软件与工具ARM交叉编译工具链用于在x86主机上编译ARM架构的软件。推荐使用ARM官方发布的GNU Toolchain。你可以从ARM开发者网站下载例如arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz。BusyBox源码我们将从源码构建根文件系统的基础。建议使用较新的稳定版本如busybox-1.36.1.tar.bz2。幸狐RV1106 SDK其中包含了针对该板子定制的U-Boot和Linux内核源码是编译引导程序和内核所必需的。串口终端软件如minicom,picocom或screen用于通过串口与开发板交互。提示在开始前请确保你的开发板已经能够通过官方镜像正常启动并且可以通过串口登录。这验证了硬件和基础通信是正常的。1.2 开发板启动模式与存储布局理解存储布局对后续分区操作至关重要。幸狐RV1106的U-Boot通常支持从多个存储设备启动。当插入SD卡时其启动顺序可能受跳线或软件配置影响。在我们的方案中我们依赖U-Boot的环境变量来动态指定根文件系统的位置。下表概括了两种启动方式的关键区别启动方式U-Boot位置内核位置根文件系统位置适用场景默认Flash启动SPI NAND FlashSPI NAND FlashSPI NAND Flash (Buildroot)出厂状态系统稳定SD卡混合启动SPI NAND FlashSPI NAND FlashSD卡第三分区 (BusyBox)自定义开发灵活调试我们的核心任务就是准备一张符合上述布局的SD卡并配置U-Boot使其在启动内核时将根设备指向SD卡上的正确分区。2. 构建BusyBox根文件系统BusyBox被誉为“嵌入式Linux的瑞士军刀”它在一个可执行文件中集成了数百个最常用的Unix工具。从它构建根文件系统能让我们获得一个极其精简且完全可控的基础环境。2.1 获取与配置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 ARCHarm CROSS_COMPILEarm-none-linux-gnueabihf- defconfig这里CROSS_COMPILE需要指向你的交叉编译工具链前缀。然后我们进行一些关键的自定义配置make ARCHarm CROSS_COMPILEarm-none-linux-gnueabihf- menuconfig在menuconfig界面中需要关注以下几个关键设置Settings - Build static binary (no shared libs)建议不要勾选。静态编译虽然部署简单但会生成巨大的二进制文件且无法享受动态库更新的便利。我们选择动态链接后续会处理库的部署。Settings - Cross compiler prefix确保此处已正确设置为arm-none-linux-gnueabihf-。Linux System Utilities - mdev务必启用。mdev是BusyBox提供的轻量级设备管理工具对于自动创建设备节点至关重要。Networking Utilities确保包含ifconfig,route,ping,udhcpcDHCP客户端等基本网络工具。Shells选择你喜欢的Shell例如ash是BusyBox默认的轻量级Shell。配置完成后保存退出。注意在较新的系统如Fedora 42上编译时你可能会遇到一个关于ncurses库的常见错误提示Unable to find the ncurses libraries。这通常是因为menuconfig的检查脚本与新版GCC的语法要求不匹配。解决方法之一是修改scripts/kconfig/lxdialog/check-lxdialog.sh文件找到main() {}这一行将其改为int main() {}。这个小改动能让配置检查顺利通过。2.2 编译与安装配置无误后开始编译make ARCHarm CROSS_COMPILEarm-none-linux-gnueabihf- -j$(nproc)编译成功后进行安装。我们需要指定一个临时目录作为根文件系统的骨架export BUSYBOX_ROOTFS$PWD/../busybox-rootfs make ARCHarm CROSS_COMPILEarm-none-linux-gnueabihf- CONFIG_PREFIX$BUSYBOX_ROOTFS install这会在$BUSYBOX_ROOTFS目录下生成bin,sbin,usr等目录里面是BusyBox的各种工具符号链接。2.3 完善根文件系统骨架仅有BusyBox二进制文件还不够一个可用的Linux根文件系统还需要一些必要的目录和配置文件。cd $BUSYBOX_ROOTFS mkdir -p dev etc/init.d proc sys tmp run var/log home root mnt media接下来创建最基础的初始化脚本/etc/init.d/rcS。这个脚本将在系统启动时由init即BusyBox执行。cat etc/init.d/rcS EOF #!/bin/sh # Mount proc and sysfs /bin/mount -t proc proc /proc /bin/mount -t sysfs sysfs /sys /bin/mount -t tmpfs tmpfs /tmp /bin/mount -t devpts devpts /dev/pts # Populate /dev using mdev echo /sbin/mdev /proc/sys/kernel/hotplug /sbin/mdev -s # Set hostname /bin/hostname -F /etc/hostname # Bring up loopback interface /sbin/ifconfig lo 127.0.0.1 up # (后续网络配置会在这里添加) EOF chmod x etc/init.d/rcS然后创建/etc/fstab文件定义文件系统的自动挂载cat etc/fstab EOF # file system mount point type options dump pass proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 EOF创建/etc/hostname文件设置主机名echo luckfox-rv1106 etc/hostname最后创建/etc/passwd和/etc/group文件至少定义root用户echo root:x:0:0:root:/root:/bin/sh etc/passwd echo root:x:0:root etc/group至此一个最简化的BusyBox根文件系统骨架就准备好了。你可以通过tree命令查看其结构。3. 准备SD卡与分区策略一张空白的SD卡需要被正确分区和格式化才能被Linux内核识别并挂载为根文件系统。3.1 SD卡分区规划我推荐使用三个分区的方案兼顾了灵活性、数据交换和根文件系统的需求第一分区 (1-2MB)通常保留给U-Boot或其它引导信息。在某些板子上这个分区可能是必需的。我们可以将其格式化为一个小的未使用分区或直接留空。第二分区 (FAT32, 例如 1GB)作为数据交换分区。FAT32格式在Windows、Linux和开发板之间具有最好的通用性方便你通过读卡器快速拷贝文件如编译好的程序、库文件、配置文件到开发板。第三分区 (ext4, 剩余所有空间)用于存放我们的BusyBox根文件系统。ext4是Linux上稳定可靠的文件系统适合作为根文件系统。使用fdisk或parted工具进行分区。以下是一个使用fdisk的交互式示例假设SD卡设备为/dev/sdb操作前请务必确认设备名错误操作会导致数据丢失sudo fdisk /dev/sdb在fdisk交互界面中输入o创建新的DOS分区表。输入n创建新分区选择p主分区分区号1起始扇区默认大小输入2M。输入n创建第二个分区选择p主分区分区号2起始扇区默认大小输入1G。输入n创建第三个分区选择p主分区分区号3起始扇区默认直接按回车使用所有剩余空间。输入t然后选择分区1将其类型改为c(W95 FAT32 (LBA))。分区3的类型默认83(Linux) 即可。输入w将更改写入磁盘并退出。分区完成后使用lsblk确认分区创建成功你应该看到类似/dev/sdb1,/dev/sdb2,/dev/sdb3的设备。3.2 格式化与挂载分区现在格式化这些分区# 格式化第二分区为 FAT32 sudo mkfs.vfat -F 32 /dev/sdb2 # 格式化第三分区为 ext4 sudo mkfs.ext4 /dev/sdb3第一分区我们暂时不用处理。接下来将编译好的根文件系统复制到第三分区# 挂载第三分区 sudo mkdir -p /mnt/rootfs sudo mount /dev/sdb3 /mnt/rootfs # 复制文件 sudo cp -a $BUSYBOX_ROOTFS/* /mnt/rootfs/ # 同步并卸载 sync sudo umount /mnt/rootfs第二分区FAT32可以在需要时挂载用于在主机和开发板之间传输文件。sudo mount /dev/sdb2 /mnt/sddata # 在此目录下放置你需要的文件 sync sudo umount /mnt/sddata4. 配置U-Boot与内核启动参数这是实现混合启动的关键一步。我们需要修改U-Boot使其在启动内核时将根文件系统的路径指向SD卡的第三分区。4.1 修改U-Boot引导延迟默认情况下幸狐RV1106的U-Boot可能将引导延迟CONFIG_BOOTDELAY设置为0秒这意味着它不会等待用户中断直接启动内核。为了有机会进入U-Boot命令行手动设置参数我们需要先增加这个延迟。首先找到幸狐SDK中U-Boot的配置文件。根据官方构建脚本的输出确定使用的defconfig文件。例如如果输出显示TARGET_UBOOT_CONFIGluckfox_rv1106_uboot_defconfig那么配置文件路径通常类似于sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig。编辑这个文件找到CONFIG_BOOTDELAY这一行将其值从0改为5表示等待5秒CONFIG_BOOTDELAY5保存后重新编译U-Boot并烧录到开发板的Flash中。具体编译和烧录步骤请参考幸狐官方Wiki。完成这一步后开发板上电时串口会显示Hit any key to stop autoboot:并倒计时5秒此时按下任意键通常是回车或空格即可进入U-Boot命令行。4.2 在U-Boot中设置启动参数进入U-Boot命令行后我们需要设置内核的启动参数bootargs特别是root参数。这个参数告诉内核从哪里挂载根文件系统。假设你的SD卡在系统中被识别为mmcblk1可以通过U-Boot的mmc list命令确认那么第三分区就是mmcblk1p3。设置命令如下# 设置启动参数根设备为SD卡第三分区可读写文件系统类型为ext4初始化程序为/linuxrc setenv sys_bootargs root/dev/mmcblk1p3 rw rootfstypeext4 init/linuxrc consolettyS2,115200n8 # 保存环境变量到Flash这样设置会永久生效下次启动无需再设 saveenv # 启动内核 bootroot/dev/mmcblk1p3指定根文件系统设备。rw以读写方式挂载根文件系统。rootfstypeext4明确指定文件系统类型有助于内核更快识别。init/linuxrc指定系统初始化程序BusyBox编译的init通常链接到/linuxrc。consolettyS2,115200n8指定内核控制台为串口2波特率115200根据你的板子实际串口调整。执行boot命令后内核会开始启动。如果一切顺利你会在串口看到内核解压、设备初始化的信息最后出现BusyBox的登录提示符可能是~ #。恭喜你你已经成功从SD卡启动了自定义的根文件系统注意如果启动失败卡在类似Kernel panic - not syncing: VFS: Unable to mount root fs的错误请检查1) SD卡分区号是否正确2) 根文件系统是否完整复制到了该分区3) 内核是否支持ext4文件系统幸狐官方内核通常已包含。5. 系统完善与网络配置一个能启动的系统只是开始。接下来我们要为这个极简系统添加网络连接、时间同步等实用功能让它真正“可用”。5.1 移植交叉编译器的运行时库我们编译BusyBox时使用的是动态链接因此系统需要对应的C库如glibc或musl才能运行程序。我们需要将交叉编译器中的库文件复制到根文件系统中。首先在开发主机上找到交叉编译器的库目录。对于ARM官方的arm-none-linux-gnueabihf工具链库通常位于类似arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc的路径下。我们将整个libc目录复制到SD卡根文件系统的/lib下。一个方便的做法是先将库打包然后通过SD卡的第二分区FAT32传输到开发板再解压。在开发主机上# 假设工具链解压在家目录 cd ~/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf sudo cp -a arm-none-linux-gnueabihf/libc /mnt/sddata/ # 或者打包后复制 sudo tar -czf libc.tar.gz -C arm-none-linux-gnueabihf/libc . sudo cp libc.tar.gz /mnt/sddata/ sync sudo umount /mnt/sddata在开发板上从SD卡BusyBox系统启动后# 挂载第二分区 mkdir -p /mnt/sdfat mount -t vfat /dev/mmcblk1p2 /mnt/sdfat # 解压库文件到根文件系统 tar -xzf /mnt/sdfat/libc.tar.gz -C / # 创建必要的库缓存 ldconfig umount /mnt/sdfat5.2 配置网络连接以Wi-Fi为例幸狐RV1106开发板通常带有Wi-Fi模块如RTL8723DS或类似型号。要让Wi-Fi工作需要内核模块、固件和用户空间工具wpa_supplicant的配合。1. 准备内核模块和固件最简单的方法是从官方Buildroot系统中拷贝已编译好的Wi-Fi驱动模块和固件。在Buildroot系统中它们通常位于/lib/modules/和/lib/firmware/或/oem/usr/ko/目录下。将这些文件复制到SD卡第二分区再在BusyBox系统中加载。在Buildroot系统中# 挂载SD卡第二分区 mkdir -p /mnt/sdfat mount /dev/mmcblk1p2 /mnt/sdfat # 创建目录并复制 mkdir -p /mnt/sdfat/wifi cp /oem/usr/ko/cfg80211.ko /mnt/sdfat/wifi/ cp /oem/usr/ko/your_wifi_driver.ko /mnt/sdfat/wifi/ # 替换为实际驱动名 cp -r /oem/usr/ko/firmware /mnt/sdfat/wifi/ # 如果有固件目录 sync umount /mnt/sdfat在BusyBox系统中# 挂载第二分区 mount -t vfat /dev/mmcblk1p2 /mnt/sdfat # 加载内核模块 insmod /mnt/sdfat/wifi/cfg80211.ko insmod /mnt/sdfat/wifi/your_wifi_driver.ko # 复制固件到系统目录 cp -r /mnt/sdfat/wifi/firmware /lib/ umount /mnt/sdfat2. 交叉编译 wpa_supplicantwpa_supplicant是连接WPA/WPA2加密Wi-Fi网络的必备工具。由于BusyBox默认不包含它我们需要交叉编译。这个过程依赖openssl和libnl库。编译步骤稍显复杂但大致流程如下# 1. 交叉编译 openssl cd openssl-1.1.1w ./Configure linux-armv4 no-asm --cross-compile-prefixarm-none-linux-gnueabihf- --prefix/usr/local make make install DESTDIR$(pwd)/_install # 2. 交叉编译 libnl cd libnl-3.11.0 ./configure --hostarm-none-linux-gnueabihf --prefix/usr/local make make install DESTDIR$(pwd)/_install # 3. 交叉编译 wpa_supplicant cd wpa_supplicant-2.11/wpa_supplicant cp defconfig .config # 编辑 .config指定交叉编译器和库路径 echo CCarm-none-linux-gnueabihf-gcc .config echo CFLAGS -I/path/to/openssl/_install/usr/local/include -I/path/to/libnl/_install/usr/local/include .config echo LIBS -L/path/to/openssl/_install/usr/local/lib -L/path/to/libnl/_install/usr/local/lib .config # 禁用可选的DBus支持以简化依赖 sed -i s/CONFIG_CTRL_IFACE_DBUS_NEWy/# CONFIG_CTRL_IFACE_DBUS_NEW is not set/ .config make将编译好的wpa_supplicant二进制文件、openssl和libnl的库文件都打包复制到SD卡再解压到BusyBox系统的/usr/local/目录下。3. 配置并连接网络在BusyBox系统上创建Wi-Fi配置文件/etc/wpa_supplicant.confcat /etc/wpa_supplicant.conf EOF ctrl_interface/var/run/wpa_supplicant update_config1 network{ ssid你的Wi-Fi名称 psk你的Wi-Fi密码 } EOF然后启动wpa_supplicant并获取IP地址# 启动后台服务 wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf # 使用DHCP获取IP udhcpc -i wlan0 -b # 测试网络 ping -c 4 8.8.8.85.3 系统时间同步与基础服务一个没有正确时间的系统会在日志、文件时间戳等方面带来困扰。我们可以使用ntpdate工具从网络时间服务器同步。首先需要在开发主机上交叉编译ntpdate它是ntp包的一部分然后将其复制到开发板。之后可以创建一个简单的启动脚本来自动同步# 在 /etc/init.d/rcS 末尾添加 /usr/local/sbin/ntpdate -s pool.ntp.org 此外你可能还想设置时区。对于北京时间东八区可以创建一个符号链接ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime最后别忘了为root用户设置一个密码并可以创建普通用户# 设置root密码 passwd # 添加一个普通用户如 ‘oct1158‘ adduser oct1158经过以上步骤你的幸狐RV1106开发板就已经运行在一个完全由你定制的、功能相对完善的BusyBox系统之上了。这个系统体积小巧响应迅速并且具备了网络、时间等基础服务为后续安装Web服务器、数据库或任何你想要的应用程序打下了坚实的基础。整个过程中最深的体会是嵌入式开发的成功往往取决于对细节的把握——一个错误的分区号、一个缺失的库文件、一个不匹配的内核参数都可能导致启动失败。耐心地阅读每一行日志输出系统地排查每一个环节是解决问题的唯一捷径。

相关新闻

USB设备远程共享新姿势:用cpolar免费版搭建永久访问通道

USB设备远程共享新姿势:用cpolar免费版搭建永久访问通道

突破物理限制:构建稳定高效的远程USB设备共享网络 你是否曾遇到过这样的困境:办公室的专用扫描仪无法在家调用,实验室的加密狗锁在机房,或者团队成员需要轮流使用一个昂贵的硬件设备?在分布式办公和远程协作日益普及的…

2026/5/17 8:58:08 阅读更多 →
STM32F103实战:0.96寸OLED屏显示动态二维码(附完整代码)

STM32F103实战:0.96寸OLED屏显示动态二维码(附完整代码)

STM32F103实战:0.96寸OLED屏显示动态二维码(附完整代码) 最近在做一个智能门禁的原型,需要在小巧的嵌入式设备上显示动态变化的二维码,比如临时的访客码。手头正好有最常见的STM32F103C8T6“蓝板”和几片0.96寸的OLED屏…

2026/7/3 20:54:35 阅读更多 →
从瑞吉到苍穹:外卖系统开发必须掌握的5个企业级技术(含WebSocket实战)

从瑞吉到苍穹:外卖系统开发必须掌握的5个企业级技术(含WebSocket实战)

从瑞吉到苍穹:外卖系统开发必须掌握的5个企业级技术(含WebSocket实战) 如果你已经跟着“瑞吉外卖”这类经典入门项目走了一遍,成功搭建了一个能跑通的基础外卖系统,那么恭喜你,你已经迈出了坚实的第一步。但…

2026/5/17 8:58:07 阅读更多 →

最新新闻

Devin工程化落地:AI协作者如何嵌入CI/CD与测试流水线

Devin工程化落地:AI协作者如何嵌入CI/CD与测试流水线

1. 项目概述:这不是一个“AI编程助手”的简单测评,而是一次对工程化落地边界的实战测绘“Software Development With Devin: Integrations, Testing, and CI/CD (Part 3)”——这个标题里藏着三个被绝大多数AI编程类内容刻意绕开的硬核关键词&#xff1a…

2026/7/5 13:44:13 阅读更多 →
行业领先·审查通过·高性能|运营商行业数据库审计和监测最佳实践指南

行业领先·审查通过·高性能|运营商行业数据库审计和监测最佳实践指南

一、方案概要:数据化落地的全周期数据库安全治理体系【提示】本段立足运营商数字化转型全局,聚焦产品核心特性与落地成效,系统性概述方案核心价值与行业定位。在数字基建升级与数据合规强监管态势下,电信运营商数据库安全治理成为…

2026/7/5 13:42:12 阅读更多 →
踩坑3周,我在实验室内网搭了个零公网请求的论文AIGC筛查本地系统

踩坑3周,我在实验室内网搭了个零公网请求的论文AIGC筛查本地系统

搞AIGC内容本地筛查的这三周我人都麻了,之前先后试了GPTZero、Originality.ai、团象AIGC检测、Crossplag、Copyscape、PaperPass旗下的AI检测,全不好用。这些工具要么强制要求把全文上传公网服务器,要么对理工科论文的公式部分误判率高到离谱…

2026/7/5 13:42:12 阅读更多 →
11、<简单>有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一位,得到一个新的六位数,假如新数为I旧数的4倍,求原来的六位数

11、<简单>有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一位,得到一个新的六位数,假如新数为I旧数的4倍,求原来的六位数

#include <iostream> using namespace std;int main() {// old 是原六位数&#xff0c;个位固定为7for (long old 100007; old < 999997; old 10){// 拆分前5位long front old / 10;// 个位7移到十万位&#xff0c;生成新六位数long newNum 700000 front;// 判断…

2026/7/5 13:40:12 阅读更多 →
终极精简指南:使用PowerShell脚本让Windows 11瘦身50%

终极精简指南:使用PowerShell脚本让Windows 11瘦身50%

终极精简指南&#xff1a;使用PowerShell脚本让Windows 11瘦身50% 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否曾为Windows 11那臃肿的系统体积和缓慢的…

2026/7/5 13:40:12 阅读更多 →
从《中国统计年鉴》到可比数据:手把手教你计算不变价GDP

从《中国统计年鉴》到可比数据:手把手教你计算不变价GDP

1. 为什么需要计算不变价GDP&#xff1f; 我第一次接触GDP数据时&#xff0c;发现一个奇怪现象&#xff1a;某城市2000年GDP是1000亿元&#xff0c;2020年GDP是8000亿元&#xff0c;看起来增长了8倍。但老师告诉我&#xff0c;这个比较毫无意义&#xff0c;因为没考虑物价变化。…

2026/7/5 13:40:12 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻