编辑
2025-12-03
系统知识
0

本文将基于开源项目RIFFA,分析Linux系统下PCIE设备的内核驱动是如何实现的,为开发Linux PCIE驱动提供一个参考模板,同时也可作为研究PCIE软硬件交互流程的具体实例,加深对PCIE相关知识的理解。

该开源项目的地址为:https://github.com/KastnerRG/riffa

编辑
2025-11-25
系统知识
0

本文将在Ubuntu22.04下搭建一个QEMU的运行环境,并编译Linux内核源码,随后通过QEMU来调试Linux内核,用以辅助Linux内核的学习。

事实上,我在Ubuntu22.04Ubuntu24.04下都试过了,流程上是一样的,但是Ubuntu24.04因为内核版本太新(至少对于在写这篇文章的时间点来说),踩了一些细节上的坑,最终调试效果并不好,所以我还是建议选用Ubuntu22.04

编辑
2025-11-23
系统知识
0

本篇文章中,我会根据我目前的工作经验,并结合相关资料,从基本流程上简要地探究一下PCIE DMA操作的交互流程。

适用PCIE的设备有很多类型,典型的就是网卡、NVMe SSD、GPU,不同系统上细节也不同,因此我将以Linux为例,进行相关研究。

我们不需要过分追求某个细分主题下的详细内容,因为每个主题都很复杂,不是一篇文章就可以讲完的,本文旨在让你想通完成一个PCIE DMA的操作大体上都会经历什么。

编辑
2025-11-22
网络知识
0

本文旨在用纯软件的方法,来模拟真实的二层网络,我将采用Docker来模拟一台真实的主机,用OVS(Open vSwitch)来模拟一台真实的二层交换机,并构造一个稍有复杂性的网络拓扑。

注意,我所模拟出的网络,是可以和真实物理网络进行交互的,这其中的核心思想是将一台真实的主机看作一个网络,即在这台主机上利用纯软件的方法来构建一个网络。

本文不涉及任何编程实现,你只需要准备好VMwareUbuntu22.04DockerOVS

这比用网络模拟器好玩多了,因为无论是虚拟机还是Docker容器里,你都是真的可以跑你自己的东西的。

编辑
2025-10-08
杂七杂八的想法
0

你的学习系统决定了你日常中该如何学习一门学科知识,它应该是全面完善的,这有助于你更好的学习,尤其是面对那些从未接触过的新领域中的新知识。

所以,很有必要来讨论一下,如何搭建属于自己的学习系统。