- 博客(4)
- 收藏
- 关注
原创 qemu-kvm的pio和mmio的模拟
I/O作为CPU和外设交流的一个渠道,主要分为两种,一种是PIO(Port I/O,PortIO),一种是MMIO(Memory mapping I/O)。PIO和MMIO的input和output方向是从CPU的角度来描述的,如:PIO的IN指令,指CPU从IO设备中读取数据。对于qemu-kvm,虚拟机的设备驱动读写Port IO和MMIO时,会触发虚拟机退出到kvm,然后kvm处理Port IO和MMIO的读写操作,如果需要qemu模拟,则会退出到qemu进程中进行处理。
2024-04-22 11:53:03 596 1
原创 Linux的DisplayLink设备驱动分析
DisplayLink是USB接口的显示器(USB显示器)的实现技术,支持windows、Linux、macOS等。windows10的DisplayLink驱动可以支持GPU渲染加速(超出了本人的知识范围,不做详细描述),但Linux上的DisplayLink驱动只能使用CPU渲染,本文主要分析Linux上的DisplayLink驱动,下文描述的DisplayLink都是指Linux上的DisplayLink驱动,下文不再赘述。
2024-04-19 17:01:32 1687 1
原创 字节序以及C语言struct中的位域
大端序(BE, Big-Endian):高字节在前,低字节在后(高字节存放在低地址,低字节存放在高地址)。小端序(LE, Little-Endian):低字节在前,高字节在后(低字节存放在低地址,高字节存放在高地址)。大小端设备上给struct位域成员分配的位存储空间与单字节数值中的bit位的对应关系为:1)小端:先从单字节数值中的LSB开始分配;2)大端:先从单字节数值中的MSB开始分配;单字节内,大端的位域定义和小端的位域定义顺序相反时,代表了相同的结构体定义。
2022-05-05 20:46:46 3177
原创 Linux进程的不可中断休眠与可中断休眠状态
Linux 中的进程睡眠状态有两种:一种是可中断的睡眠状态(S状态),其状态标志位为TASK_INTERRUPTIBLE;另一种是不可中断的睡眠状态(D状态),其状态标志位为TASK_UNINTERRUPTIBLE。
2022-05-05 14:49:55 5316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人