QEMU - QuickStart

文章于2023年8月5日进行勘误,修正内容: -smp sockets=1,cores=4,threads=4 => -smp 4,sockets=1,cores=4,threads=1 原因:threads参数表示每核心多少线程 删除-net user Intro QEMU是一款跨平台的开源虚拟机工具,因为无GUI配置工具,有一定使用门槛 根据冯诺依曼结构,一个计算机可分为: 运算器 控制器 存储器 输入设备 输出设备 使用QEMU时,应该尽量往该模型联想 创建存储器 创建一个16G的虚拟磁盘文件 qemu-img create -f qcow2 drive 16G 虚拟硬件环境 运算器、控制器 -> CPU、各种加速器* 输入、输出设备 -> 网卡、CXL设备等 QEMU本身没有像VMware那样的GUI配置界面,所有配置通过命令行参数指定 qemu-system-x86_64 -machine q35 \ -smp 4,sockets=1,cores=4,threads=1 \ -m 4096 现在启动了一个机型为q35,处理器1插槽4核4线程,内存4096MB,使用默认网络配置的虚拟机,由于没有启动盘,并不会启动某个系统 利用虚拟硬件环境启动系统 我们已经有了一块硬盘drive作为启动盘,指定给虚拟环境: qemu-system-x86_64 -machine q35 \ -smp 4,sockets=1,cores=4,threads=1 \ -m 4096 \ -drive file=drive 会发现,指定后并没有什么区别,是因为这个“硬盘”我们没有给它“安装”系统 安装系统 参考为物理机安装系统: 物理机硬盘 -> 虚拟磁盘文件drive 安装媒介(写入了镜像的U盘) -> 系统镜像文件 qemu-system-x86_64 -machine q35 \ -smp 4,sockets=1,cores=4,threads=1 \ -m 4096 \ -drive file=drive \ -drive file=<系统镜像,如ubuntu-22....

July 30, 2023 · 1 min · Cyan

QEMU - CXL

Intro 文章不对CXL、Linux内核进行深究,可视为hello world研究 对于QEMU基本的使用知识,节省篇幅不再赘述,并省略繁琐细节 软件环境 宿主机&客户机 ubuntu-22.04.2-live-server-amd64 QEMU 8.0.3 https://download.qemu.org/qemu-8.0.3.tar.xz Download QEMU - QEMU 按照官方流程进行编译 启动虚拟机 qemu-system-x86_64 -M q35,cxl=on -accel kvm -cpu host -m 4096 -smp 4 -drive file=drive \ -object memory-backend-file,id=cxl-mem1,share=on,mem-path=/tmp/cxltest.raw,size=256M \ -object memory-backend-file,id=cxl-lsa1,share=on,mem-path=/tmp/lsa.raw,size=256M \ -device pxb-cxl,bus_nr=12,bus=pcie.0,id=cxl.1 \ -device cxl-rp,port=0,bus=cxl.1,id=root_port13,chassis=0,slot=2 \ -device cxl-type3,bus=root_port13,memdev=cxl-mem1,lsa=cxl-lsa1,id=cxl-pmem0 \ -M cxl-fmw.0.targets.0=cxl.1,cxl-fmw.0.size=4G 启动后应该可以在/dev目录下找到CXL文件 REF 在ubuntu上执行QEMU的编译安装_ubuntu安装qemu_田园诗人之园的博客-CSDN博客 linux报错:/bin/sh: 1: flex: not found scripts/Makefile.host:9: recipe for target ‘scripts/kconfig/lexe_锅锅是锅锅的博客-CSDN博客 How To Emulate CXL Devices using KVM and QEMU - Steve Scargall

July 25, 2023 · 1 min · Cyan

VUE x Tampermonkey

// ==UserScript== // @name VUE测试 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://cyan-io.github.io/ // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== let script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.src = "https://unpkg.com/vue@3/dist/vue.global.js"; document.documentElement.appendChild(script); const mes=['a','b','c'] window.onload = () => { let text = `<div id="app" style="position: fixed;top: 0;left: 0;z-index: 9999;background: #fb7d7d;width: 100px;"> {{ message }} </div>` var el = document.createElement('div') el....

May 22, 2023 · 1 min · Cyan

Excel

单元格格式设置后内容却不变 点击数据 » 分列 » 完成

May 16, 2023 · 1 min · Cyan

C++ Function Lambda

Section A #include <functional> #include <iostream> int main() { int a = 5, b = -5; auto lmbd = [&](int a) -> void { --a; --b; }; std::function<void(int)> func = [&](int a) -> void { --a; --b; }; func(a); std::cout << a << ' ' << b << std::endl; return 0; } Section B 698. 划分为k个相等的子集 - 力扣(LeetCode)(超时写法) class Solution { public: bool canPartitionKSubsets(vector<int> &nums, int k) { const int n = nums....

April 21, 2023 · 1 min · Cyan