1. CacheCache的内部组织结构如下图所示。Cache共有S组,每组E行,每行包括一个有效位(valid bit),一个标签和B比特数据。当E=1时,称为直接映射,当E > 1时,称为E ...
文件系统测试工具filebench
1.filebench安装首先检测是否安装了gcc: gcc –version 如果已经安装则执行: sudo apt-get install flex bison Ubuntu下安装file ...
open系统调用(二)
1. 前言前面说到通过调用函数path_openat以解析文件路径,path_openat中包装了两个重要的函数path_init和link_path_walk,本文就从这两个函数开始,继续打开文件的 ...
简单字符驱动程序与中断
1.前言本文将实现一个简单的字符驱动程序,同时在驱动程序的内核模块中注册一个中断处理函数,用来获取键盘的扫描码并存入缓冲区中,最后使用用户态程序访问字符驱动程序,取出键盘扫描码。中断常用于键盘、鼠标等 ...
open系统调用(一)
1.前言用户进程在能够读/写一个文件之前必须要先“打开”这个文件。对文件的读/写从概念上说是一种进程与文件系统之间的一种“有连接”通信,所谓“打开文件”实质上就是在进程与文件之间建立起链接。在文件系统 ...
编写字符设备驱动程序
1. 前言本文主要讨论操作系统究竟如何与设备进行通信,以编写一个字符驱动程序为主线,从用户进程–>系统调用–>文件系统–>驱动程序–>设备控制器–>设备这几个方面,结合程 ...
Ubuntu 18降低内核版本
Ubuntu18默认的内核版本已经到了5.x,由于一些需要,需要将内核版本降低,下面记录一下,将内核版本降低到4.15.0-30的过程。 查找内核可用版本 grep menuentry /boot/g ...