简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
CMA的全称叫做contiguous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为reserved-memory。早期的Linux内核中没有cma的实现,如果驱动想要申请一个大块的物理连续内存,那么只能通过预留专属内存的形式,然后在驱动中使用ioremap来映射后作为私有内存使用。这样带来的后果就是有一部分内存将被预留出来不能作为系统中的.
asmlinkage __visible void __sched schedule(void){struct task_struct *tsk = current;sched_submit_work(tsk);do {__schedule();} while (need_resched());}schedul...
什么是journal日志作为日志文件系统,ext4使用journal来对文件系统操作进行记录,它和文件系统数据是分开进行管理的,当我们写入文件系统时,会先把最新的数据保存在journal区域中,然后再写入到真正文件系统中,当多次写入时会不停的更新journal中的数据内容,以保持最新的写入数据。这样做保证了文件系统的可靠性,并且当文件系统出现问题时,利于分析问题。journal block的创..
skb结构体中的长度和数据指针len: 线性区和分片区域的总长度data_len:分片区域frag page中的数据长度len-data_len: 当前协议层中的线性区长度head:线性区的起始地址data:数据的起始地址tail:数据的结束地址end:线性区的结束地址headroom:从head到data之间的空间tailroom:从tail到end之间的空间除了上面的几个成员,特别指出一个tr
我的crash常用命令如下所示:log/dmesg: 打印出故障现场的kmsg缓冲区log_buf中的内容。struct:展示结构体的定义,或者从指定的地址开始解析一个结构体。union:与struct类似,但是用于union的展示p:print查看某个变量的值,实际上是调用gdb的p命令whatis:展示结构体、联合体等定义bt <pid>:展示调用堆栈信息,如果不加参数...
systemd启动过程systemd启动时会默认启动default.target配置,并且递归的处理它的依赖关系,一般这个配置为graphical.target 或者 multi-user.target。第一种会启动图形界面,第二种会启动多用户字符模式。下图是关键服务配置的启动依赖:下面将简单介绍启动中的4个关键步骤:第一步systemd 执行默认target 配置,配置文件/etc/system
KSM (Kernel Samepage Merging)内核合并页,目的是为了把内容完全相同的页面合并,从而释放内存供其他应用使用。Linux对虚拟机的支持,增加了相同页面的数量,所以KSM存在的合理性也就越来越大了,KSM页面在struct page中的page->mapping中标识,并且KSM页面一定也是一个匿名页。#define PAGE_MAPPING_ANON1#...
virtualbox的扩展插件是分为宿主机和虚拟机两部分的。宿主机对于宿主机来说,就是需要在virtualbox软件中添加扩展包,名字类似Oracle_VM_VirtualBox_Extension_Pack-4.0.10.vbox-extpack虚拟机而对于虚拟机而言,如果虚拟机是window系统,那么当宿主机安装了扩展包后,虚拟机会自动下载并安装对应的子机插件。而对于Linux系统,则需要安装
虚拟化环境中,对于网络的连接有多种方式,以KVM为例,我们平时在使用libvirt或者qemu创建虚拟机时,可以选择NAT网络连接和bridge桥接网络连接。首先来调查一下这二者的实现区别是什么。基础虚拟网络桥接网卡首先来看下网卡桥接的连接方式,它相当于虚拟机和宿主机共用同一块物理网卡,虚拟机具有独立的IP地址,并且与宿主机所在网络处于同一个局域网,就相当于局域网中多了一台普通机器,可以直接访问局
OVMF (Open Virtual Machine Firmware ) 旨在支持虚拟机启动的一套edk2 Package。目前支持如下特性:Current capabilities:* IA32 and X64 architectures* QEMU (0.10.0 or later)- Video, keyboard, IDE, CD-ROM, serial...