Cyan 发布于 2023-07-30 文章于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的虚拟磁盘文件
1 qemu-img create -f qcow2 drive 16G 虚拟硬件环境 运算器、控制器 -> CPU、各种加速器* 输入、输出设备 -> 网卡、CXL设备等 QEMU本身没有像VMware那样的GUI配置界面,所有配置通过命令行参数指定
1 2 3 qemu-system-x86_64 -machine q35 \ -smp 4,sockets=1,cores=4,threads=1 \ -m 4096 现在启动了一个机型为q35,处理器1插槽4核4线程,内存4096MB,使用默认网络配置的虚拟机,由于没有启动盘,并不会启动某个系统
利用虚拟硬件环境启动系统 我们已经有了一块硬盘drive作为启动盘,指定给虚拟环境:
1 2 3 4 qemu-system-x86_64 -machine q35 \ -smp 4,sockets=1,cores=4,threads=1 \ -m 4096 \ -drive file=drive 会发现,指定后并没有什么区别,是因为这个“硬盘”我们没有给它“安装”系统
安装系统 参考为物理机安装系统:
Cyan 发布于 2023-07-25 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
按照官方流程进行编译
启动虚拟机 1 2 3 4 5 6 7 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
Cyan 发布于 2023-07-24 VNC Client Access - Proxmox VE
Cyan 发布于 2023-07-24 收录于 Linux How to resize a logical volume with 5 simple LVM commands | Enable Sysadmin (redhat.com)
系统运维|如何在 Linux 中扩展/增加 LVM 大小(逻辑卷调整)
解决 Linux /dev/mapper/ubuntu–vg-ubuntu–lv 磁盘空间不足的问题_ubuntu vg 为什么不用满_fly-liuhao的博客-CSDN博客
Cyan 发布于 2023-06-24 Create Python Environment 1 cond create -n env_name python=3.x Torch Start Locally | PyTorch
Check Installation 1 2 import torch torch.cuda.is_available() CUDA CUDA Toolkit Archive | NVIDIA Developer
1 conda install cudatoolkit=x.x CUDNN 简单区分:CUDA为NV的计算框架,而CUDNN为NV为深度学习设计的计算库
建议使用pytorch官方的conda指令一键安装
Cyan 发布于 2023-05-22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 // ==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.
Cyan 发布于 2023-05-16 单元格格式设置后内容却不变
点击数据 » 分列 » 完成
Cyan 发布于 2023-04-22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <div id="app">{{ message }}</div> <script> const { createApp } = Vue createApp({ data() { return { message: 'Hello Vue!' } } }).mount('#app') </script>
Cyan 发布于 2023-04-21 参考教材:《汇编语言》第4版 王爽,仅作有选择的摘要。
一、基础知识 汇编语言组成 汇编指令(核心):机器码的助记符,有对应机器码 伪指令:没有对应机器码,由编译器执行,计算机不执行 其他符号:如+-*/,由编译器识别,没有对应机器码 指令和数据 应用上的概念,在内存或磁盘上没有任何区别(二进制信息)
存储单元 单个单元:8bit => 1Byte
CPU读写存储器 地址线 存储单元的地址(地址信息) 寻址能力:$2^{width} Byte$ 控制线 器件选择,读或写的命令(控制信息) 数据线 读或写的数据(数据信息) 一次数据传送量:$width\ bit$ 二、寄存器
Cyan 发布于 2023-04-21 Section A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #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.