- 博客(21)
- 收藏
- 关注
原创 使用 DevEco Studio 的一些笔记
本文是持续更新的DevEco Studio问题解决记录。主要记录了使用Node-API实现跨语言交互开发时遇到的安装失败问题:错误代码9568347,提示"install parse native so failed"。解决方法是在工程级build-profile.json5文件的buildOption配置中添加externalNativeOptions字段,特别是指定abiFilters参数(需包含x86_64以兼容模拟器)。该问题源于IDE自动生成的配置文件中缺少必要的ABI编译环境
2025-09-02 09:51:38
316
原创 KVM模块新建 Windows11虚拟机方法 补充
本文记录了将Windows 11虚拟机系统盘从SATA更改为Virtio类型的优化过程。作者发现直接安装会报错,于是采用变通方案:保留原SATA硬盘作为欺骗安装程序,同时添加Virtio硬盘,在安装界面加载驱动后选择新硬盘安装系统。此外,还将网卡从E1000改为Virtio以降低CPU开销,显卡从QXL改为Virtio提升图形性能并解决分辨率问题。虽然主观感觉更流畅,但作者认为需要后续数据验证性能提升效果。
2025-08-07 14:48:20
408
原创 KVM模块新建Windows11虚拟机方法
本文介绍了在Debian 12系统上使用KVM安装Windows 11的解决方案。针对Windows 11强制要求的TPM 2.0和Secure Boot特性,作者尝试了多种方法后最终通过两种方式实现:1) 安装swtpm-tools后添加TPM设备(型号TIS 2.0),同时使用virtio驱动(需提前下载virtio-win-0.1.271.iso等文件),安装时注意勾选"安装前修改配置"并正确设置网卡/显卡为Virtio;2) 更简单的方法是直接添加TPM设备并设置为"直
2025-08-05 15:54:30
647
原创 tc分析网络数据包的程序源码 修改调试随笔 总结(五)
这是一篇关于BPF程序开发的技术总结,作者分享了自己在开发过程中遇到的几个关键问题和解决方案: RINGBUF大小设置:建议根据应用场景确定,举例说明如何计算4MB的缓冲区大小。 轮询机制选择:解释了用epoll+多线程替代poll的原因,包括性能优化和扩展性考虑。 结构体对齐问题:详细说明了pkt_event.h头文件的设计考虑,包括内存对齐、完整性校验等,并附上完整代码。 调试技巧:提供了通过bpf_ringbuf_query()监控缓冲区使用情况的代码示例。 设计理念:阐述了结构体设计的严谨性考虑,包
2025-06-24 12:35:53
458
原创 tc分析网络数据包的程序源码 修改调试随笔 总结(四)
摘要:本文针对BPF程序数据处理中的性能瓶颈进行了多线程优化设计。通过将回调函数简化为仅执行队列推送,将I/O操作卸载到独立线程,实现了处理并行化。采用带锁任务队列保证线程安全,epoll_wait实现高效事件驱动,分离生产者/消费者队列避免竞争。优化后测试显示:CPU利用率仅0%,内存占用13MB,无磁盘I/O缺页,实现了零任务遗留的干净退出。主要优化点包括:1)批处理消费提升吞吐;2)队列分离减少锁竞争;3)增强错误统计和序号检查;4)统一上下文管理。这些改进显著提升了系统稳定性、资源利用率和可维护性。
2025-06-23 15:05:57
355
原创 tc分析网络数据包的程序源码 修改调试随笔 总结(三)
本文探讨了eBPF内核层代码优化中的关键问题与解决方案。主要分析了BPF验证器的工作原理,包括静态代码分析、动态值追踪和预执行模拟三个验证阶段。针对项目中遇到的bpf_ringbuf_reserve和bpf_skb_load_bytes函数参数设置问题,指出这些参数必须是编译时常量才能通过验证。文章还讨论了数据读取函数的选择策略、是否需要预先pull数据等问题,并澄清了max_entries参数的单位是字节而非条目数。此外,作者通过实例代码展示了RingBuf容量的设置方法,并建议移除正式环境中的调试语句b
2025-06-18 14:53:20
679
原创 tc分析网络数据包的程序源码 修改调试随笔 总结(二)
本文探讨了从普通C语言转向BPF编程时需要注意的问题,特别是内存对齐和结构体设计。作者通过一个网络数据包处理示例,展示了如何优化头文件设计:使用显式对齐控制替代packed属性,添加魔数校验和长度检查,并确保内核与用户空间的一致性。文章详细解释了MAX_PKT_CAPTURE、PKT_EVENT_ALIGN等宏定义的作用,以及ALIGNED、ALIGN_UP等对齐处理技巧。通过静态断言在编译期验证结构体布局,既保证了性能又避免了运行时错误。虽然设计复杂度增加,但换取了更好的内存访问效率和跨平台兼容性。
2025-06-17 13:38:58
381
原创 tc分析网络数据包的程序源码 修改调试随笔 总结(一)
摘要本文介绍了一个用于监控手机WiFi数据包发送情况的实验性项目。作者开发了一个内核层(eBPF)和用户层的程序,用于捕获和分析手机向外发送的数据包。内核层:使用eBPF技术通过TC(Traffic Control)钩子捕获出站数据包,过滤非IP数据包,并将有效数据存入环形缓冲区。用户层:解析内核层捕获的数据包,支持两种输出模式(屏幕显示或PCAP文件存储),并统计成功/失败的数据包数量。该项目仅用于实验目的,不具备严格的安全测试能力,但可用于初步检测可疑的网络活动。
2025-06-15 15:29:04
168
原创 antix编译linux-6.13.1/samples/bpf
继续勾选Generate BTF type information,勾选此项后会出现一些关联项,继续勾选Generate BTF type information for kernel modules (NEW),以确保内核模块包含BTF类型信息。编译BPF samples之前,需要先编译Linux内核源码,以便生成必要的头文件和构建环境,比如在内核根目录下生成vmlinux文件。比较高版本的内核编译时,更多配置选项有前提条件或者关联选择,如果不熟悉,直接去设置.config文件,会绕进云雾之中。
2025-02-07 20:06:35
530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅