最近看了看代码,研究了一下Linux内核中诸多数据结构中的radix tree。radix tree数据结构在Linux内核中实现的很精致,没怎么看的明白!今天先来简单记录一下这段时间的一些测试和想法。
获取实例代码
https://github.com/Jeoos/jecortech/tree/master/Tree/Radix
主要实现:
1,虚拟块设备,/dev目录下标准块设备
2,简单的ioctrl接口,供应用程序直接访问
3,做了bio的按page页拆分
4,radix tree缓存page页,测试增删
linux内核radix tree最典型的就是用于page页的管理,本实例介绍了怎么使用该数据结构。当然,该实例设备是虚拟的,所以没submit_bio时就返回了,不过有兴趣的,可以自行添加一个实际的block_device。iotctl也没做什么东西,同样的可以自己实现一些功能,比如用户态向内核态传送一个结构体。考虑一下锁的问题。
思考一个拓展问题:怎么实现一次性遍历查找出同时满足两个特定TAG属性的page页?