摘要:
Rust实战系列第一部分,主要包括Rust的基本介绍。 阅读全文
摘要:
“ 包括 nydus 的基本概念、架构和容器镜像加速使用方法。 1. nydus 1.1 存在的问题 对于容器镜像使用者 问题一:启动容器慢:容器启动慢的情况普遍发生在当用户启动一个很大的容器镜像时,由于在容器准备阶段需要三步(以overlayfs为例): 下载镜像 解压镜像 使用overlayfs 阅读全文
摘要:
stackbd 是一个虚拟的块设备,它作为另一个块设备的前端,如 USB 闪存盘或循环设备。它将I/O请求传递给底层设备,同时它打印请求信息用于调试。它还有可能修改请求。 堆叠块设备(stackbd)是基于 Linux 设备映射器的代码,它是 Linux 内核中的一个块设备,RedHat 支持,用于 阅读全文
摘要:
如果你想知道SSD为什么使用多队列,可以看看这篇文章:https://kernel.dk/blk-mq.pdf 1. 多块层 以下关于多队列层的总结来自 The Multi-Queue Interface Article,Linux kernel git 展示了如何转换为blk-mq。 blk_mq 阅读全文
摘要:
摘要 许多微架构攻击依赖于攻击者有效地找到小型 驱逐集(映射到同一缓存集的虚拟地址集合)的能力。这种能力已经成为缓存侧信道、rowhammer 和推测性执行攻击的决定性基础。尽管这很重要,但寻找小型驱逐集的算法在文献中还没有得到系统的研究。 在本文中,我们进行了这样一个系统的研究。我们首先将问题形式 阅读全文
摘要:
infiniswap来自 NSDI'17,其代码主要用到以下技术: configfs(主要) configfs-用户空间控制的内核对象配置 https://www.kernel.org/doc/Documentation/filesystems/configfs/configfs.txt confi 阅读全文
摘要:
在内核编程的过程中,需要获取主机的内存使用率,多方搜索无果,以此为记! 代码如下: void update_memory_rate() { struct sysinfo mem_info; unsigned long total; unsigned long free; unsigned long 阅读全文
摘要:
1. 为什么要使用多队列 在主机中,多cpu运行多个线程,每个线程都能和文件系统交互,文件系统层也是用多线程和bio层交互,但是,块设备层只有一个队列: 在块设备层,来自多个cpu的bio请求被放在同一个队列中,造成阻塞: 因此,提出了多队列的方法,在块设备层也做成多线程: 但是,在块设备层实现多个 阅读全文
摘要:
别人写过的内容,我就不写了。贴一下大佬的博客,写的非常好: 块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动) 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行) 块设备驱动实战基础篇三 (BIO请求回调机制) 块设备驱动实战基础篇四 (逐渐成型,加入ioctl通信机制) 阅读全文
摘要:
1. 编译运行 代码从如下链接获得: https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c 编写 Makefile 文件: obj-m += configfs_sample.o all: ma 阅读全文