抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

Modern Cmake

basic TODO: rename 笔记内容来源 经典三行 12345cmake_minimum_required(VERSION 3.9)project(answer)# TODO: add_executable(answer main.cpp answer.cpp) 使用 123cmake -B build # 生成构建目录,-B 指定生成的构建系统代码放在 build ...

显卡直通

显卡直通总结只要能用vfio把显卡隔离出来就算成功了, 剩下都是调试问题 双显卡直通 教程 需要注意有的CPU没有集成显卡, 如i513600kf, k代表超频, f代表没有核显 双显卡: CPU核显 + GPU 启用IOMMU, 如果双amd cpu则amd_iommu=on, 此时需要重启来获取设备组id以配置vfio 123$ vim /etc/default&#...

如何使用纯c实现面向对象

继承与多态c语言结构体能保证第一个成员永远都是位于起始地址。而由于内存对齐(一种类型的起始地址必须是该类型长度的整数倍),其他紧邻的成员地址未必连续。 父类总是结构体的第一个成员 ,这样在强制类型转换截取相应大小时得到的总是一个完整的结构体。如 1234567891011struct father{ int age; char* name; ...};s...

OS中一些反直觉的tips

AbstractPrefaceOverviewfork and print fork复制资源 print内有缓冲区 case 1如下程序会打印多少-: 123456789101112#include<stdio.h>#include<sys/types.h>#include<unistd.h>int main() { int i; for(i...

QOM使用:qemu如何注册使用一个MemoryRegion类的

openrisc中ram对象的生成过程QEMU利用QOM来对对象进行抽象,用它来对各种资源进程抽象、管理(创建、配置、销毁)。即QEMU内部实现面向对象机制的方法。 QOM机制有如下三个部分: 类型注册,涉及函数有type_init、register_module_init、type_register 生成TypeImpl,通过TypeImpl就可以知道如何初始化一个类 相当于告诉qemu...

QEMU的内存模拟

QEMU softmmu虚拟机(Guest)内存模拟的首要任务是将虚拟机虚拟地址(GVA)转换成实际存储的宿主机(Host)的物理地址(HPA)。 虚拟机提供了虚拟的硬件环境,GVA到到虚拟机物理地址(GPA)的过程可以由Guest OS完成,而QEMU要做的就是提供一个GPA到HPA的转换的实现。 123456789101112131415 GVA ...

qemu中的初始化技术

qemu的初始化框架qemu启动需要初始化很多内容,为了方便维护和添加初始化函数,qemu有它自己的一种实现方式。 qemu的初始化时根据具体的模块类型,执行该类型的所有模块的初始化。有如下类型: 1234567891011typedef enum { MODULE_INIT_MIGRATION, MODULE_INIT_BLOCK, MODULE_INIT_OP...

日志型文件系统

日志型文件系统试想这么一个场景,磁盘正在写data block或data bitmaps或inodes时发生了crash,要如何保证数据的一致性呢?这时使用 日志journaling 就是一个很好的解决方案。 原理在真正更新磁盘数据前,会先往磁盘写入一些信息,这些信息用于描述接下来的任务,这种方式被称为 write-ahead loggind。 当发生crash时就可以通过记录的信息回溯cr...

Linux中的内存管理

为何需要逻辑地址由于系统中的物理内存是随分配不断在变化的,有时候这个程序使用,有时候那个程序在使用。如果不使用逻辑地址直接使用物理地址,那当前进程操作的地址被占用,则不能使用内存。通过将连续的逻辑地址映射成不连续的物理地址,程序将只用关系的连续的逻辑地址,而物理地址再通过一些方法找到并映射过去就行了。 考虑一种简单的映射方法: 如果简单的使用<物理地址起始地址,大小>实现:程序A...

使用ftrace追踪内核函数调用

1 初探ftrace遇到的问题1.1 搞清楚ftrace是否标记出中断函数根据官网的描述,funcgraph-irqs选项,用于表明是否追踪中断。因此关闭后就不会记录中断信息。 123funcgraph-irqs When disabled, functions that happen inside an interrupt will not be traced. 1.2 搞清楚为...