【QEMU系统分析之启动篇(十九)】

系列文章目录

第十九章 QEMU系统仿真的加速器上电后设置分析



前言

本文以 QEMU 8.2.2 为例,分析其作为系统仿真工具的启动过程,并为读者展示各种 QEMU 系统仿真的启动配置实例。
本文读者需要具备一定的 QEMU 系统仿真使用经验,并对 C 语言编程有一定了解。


一、QEMU是什么?

QEMU 是一个通用且开源的机器模拟器和虚拟机。
其官方主页是:https://www.qemu.org/


二、QEMU系统仿真的启动分析

1.系统仿真的初始化代码

QEMU 作为系统仿真工具,其入口代码在 system/main.c 文件中,初始化函数 qemu_init() 的实现在 system/vl.c 文件中,在完成 QEMU 虚拟机导出信息的设置,接下来将处理设置的后续工作,本篇文章将完成以下代码部分的分析。

2.主循环数据初始化

这部分代码在 system/vl.c 文件中,实现如下:

void qemu_init(int argc, char **argv)
{
   
   
...
    os_setup_post();
...
}

3. os_setup_post()

函数 os_setup_post() 根据宿主机系统不同而不同,

Windows 系统 os_setup_post()

在 Windows 系统上此函数在 /include/sysemu/os-win32.h 文件中,定义如下:

static inline void os_setup_post(void) {
   
   }

这是一个空语句,表示在 Windows 平台上不需要做额外操作。

POSIX 系统 os_setup_post()

在 POSIX 系统上此函数在 /os-posix.c 文件中,定义如下:

void os_setup_post(void)
{
   
   
    int fd = 0;

    if (daemonize) {
   
   
        if (chdir("/")) {
   
   
            error_report("not able to chdir to /: %s", strerror(errno));
            exit(1);
        }
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值