我有这个简单的 C 代码: 编译为: 并执行为: 印刷: 为什么不打印yyy ? 通过减少问题,我发现: 对于strcpy GCC 生成的代码不是“调用 strcpy”(见下文) ldr q1, [x0]导致不打印yyy 。 这是foo的生成代码: 如果我将ret放在ldr q1, [x0]将打 ...
我有这个简单的 C 代码: 编译为: 并执行为: 印刷: 为什么不打印yyy ? 通过减少问题,我发现: 对于strcpy GCC 生成的代码不是“调用 strcpy”(见下文) ldr q1, [x0]导致不打印yyy 。 这是foo的生成代码: 如果我将ret放在ldr q1, [x0]将打 ...
我想在 qemu-system-mipsel 上为 MIPSEL 运行一个 Linux 根文件系统。 使用“firmware-analysis-toolkit”(firmadyne)从固件中提取根文件系统。 但是,根据需要构建根文件系统后,运行时遇到错误运行 qemu 的脚本是: 如果我使用 fi ...
qemu 5.1.0-dirty 和 qemu 5.1.0 版本的行为是否不同? 没有错误发生,但它使用 qemu 5.1.0-dirty 版本而不是 5.1.0 启动。 可能是什么问题呢? 两个版本使用相同的命令行,但仅从 qemu 5.1.0-dirty 版本启动。 在无法启动的 qemu 5 ...
我试图从 scrath 编写一个简单的操作系统,但我遇到了一个问题。 我编写了一个简单的程序,它运行一个字符串并将其打印在屏幕上。 我将它包含在主文件中。 但出于某种原因,而不是打印Hello, World. This is a test. Hello, World. This is a test ...
我在 QEMU 6.2.0 上模拟了 4 个核心 ARMv8A (Cortex-A53)。 主要代码 (CPU#0) 正在运行,我可以使用 GDB 对其进行调试。我想启动其他内核。 为此,我使用了以下 GDB 命令。 从进行的不同实验中,我的结论是只有 CPU#0 在运行,所有其他 CPU 从未启 ...
我正在尝试模拟一个处理器,该处理器由每个内核具有不同最大频率的处理器内核组成,例如 ARM 处理器或更新的 Intel 处理器,它们具有几个性能内核和效率内核。 我用 Qemu 试过了,但没走多远,我唯一发现的是qemu-system-aarch64 ,你可以在其中使用 nema 配置每个芯片的内核 ...
我正在尝试使用 QEMU 模拟 Arm 皮质 M33,使用 an505 model。我使用这个git 存储库作为起点。 我已经成功地构建了这个项目,甚至设法对其进行了调试,但是现在我想测量消耗的 cpu 周期——没有任何运气。 首先,我尝试像这样访问 DWT 寄存器: 但是 ARM_CM_DWT_C ...
我想试验英特尔间接分支跟踪 (IBT),这是英特尔 CET 控制流完整性增强方法的一个组成部分。 gcc 当前默认生成与 IBT 兼容的代码(注意endbr64指令)。 但是,我认为我没有一台机器和/或 Linux 发行版可以在用户区使用 IBT。 似乎连 Qemu 7.2.0 也不支持 IBT。 ...
这是我的代码(从 UTM 导入,已损坏): 错误显示 -spice:无效选项。 我尝试重新安装 qemu。 我希望虚拟机能够启动 ...
我正在学习mit6.858 。 在 Lab1 中,我需要使用 qemu(自制软件安装的 7.2.0 版本)在我的 M2 Mac 上设置实验室环境。 我按照实验室提示的说明使用此 shell 脚本运行VM Image 课程:#!/bin/bash if ! command -v qemu-syst ...
我正在尝试在 ARMv8A(QEMU 版本 6.2.0 上的 Cortext A53)上实现一个最小的管理程序。我在 EL2 中编写了一个最小的管理程序代码,Linux 在 EL1 中成功启动。 现在我想启用 stage-2 MMU。 我已经在 stage2 中编写了基本页表(只有必要的页表条目到 ...
我有这个问题,我创建了一个 QT 控制台程序 C++ 并将该项目移动到我的元层并为其创建了一个 .bb 文件,我希望这个程序在我运行 qemu 时自动启动但由于某种原因它没有这是我的食谱: 刚刚添加到我的 do_install 并将程序设置为在特定的 initrun 级别运行 即使我发现文件安装在 ...
我正在 AArch64 model 下的 ARM(针对 Raspberry Pi 3b+)编写一个业余操作系统。 在启动过程的早期,我们正在设置堆栈指针以准备跳转到我们的kernel_main function。执行似乎 go很好但是当在 QEMU 下使用 GDB 进行调试时,调试器会在我加载时跳过 ...
我已经设置了一个 QEMU 虚拟机 (VM),试图在我的 lubuntu VM(在 VirtualBox 上)上模拟 ARM Cortex-A9 cpu。 使用本文的 kernel、initrd 和图像,我像这样启动 QEMU: 启动后,我在来宾上配置了一个 static IP。 修改路径/etc ...
使用 EDK2 正确构建 OVMF x64 后,命令: 提供以下消息 这对我来说毫无意义,因为使用 qemu 的 -help 命令声明“-pflash 文件使用‘文件’作为并行 flash 图像”,其中没有文件格式参数。 我的操作系统是 Windows WSL Ubuntu 22.04.1 LTS ...
我想通过使用 qemu 进行仿真来 demontsrate kernel 在树莓派上的利用。 当我使用vexpress-v2p-ca9.dtb它工作时,kernel 想要执行用户空间代码,但是当我尝试为 raspi 机器使用另一个 dtb 时,它是bcm2709-rpi-2-b.dtb它不会工作并 ...
出于某种奇怪的原因,ESXi 6.5 root 密码在新安装中不起作用。 我什至尝试通过修改影子文件(按照本指南)来删除密码,但它仍然不允许我使用空白密码登录。 知道新安装可能有什么问题吗? 我正在尝试使用 Qemu 运行 ESXi。 我已将密码设置为password 但是在登录时它说密码无效。 ...
我正在执行一项任务,以便能够在另一台服务器和位置备份 VM 映像卷,问题是,我不想每次开始备份作业时都复制整个映像文件,我想备份整个图像只有一次,然后每次我想从虚拟机进行备份时增量备份。 有没有办法做到这一点? 我不想使用快照,因为当快照数量增加时,它会对卷性能产生影响。 如果有其他方法或者有更有效 ...
我尝试使用 QEMU 为具有服务核心的多核 CPU 建模。 例如,一个 3 核 CPU,其中 Linux 在 2 个内核上运行,而 RTOS 在第 3 个内核上运行。 通信应该基于共享内存。 目前我可以分别启动每个操作系统。 ...
一段时间以来,我一直在用 Rust 从头开始编写内核,并从 8 月开始开源它,同时试图修复一些与 AHCI 驱动程序写入尝试相关的问题。 我似乎根本找不到解决方案的一个问题是: IDT 的长度应该只有 256 个条目。 因此,为什么在条目 302 处需要一个处理函数,它比合法可能的 IDT 条 ...