Qemu运行Xinu

运行环境

Ubuntu 20.04.5 LTS

实验记录

一、安装依赖

  1. 更新apt源

    apt update
    
  2. 安装编译C程序必需的依赖

    apt install gcc bison flex
    
  3. 下载gcc-arm-none-eabi

    可以去官网下载,或者点击链接下载。

    将下载好的gcc-arm-none-eabi通过sftp发送到服务器上。

    image-20221024163329717

  4. 将gcc-arm-none-eabi解压:

    sudo tar xjf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C /usr/share/
    
  5. 为解压好的gcc-arm-none-eabi创建如下软链接:

    • arm-none-eabi-gcc

      sudo ln -s /usr/share/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc
      
    • arm-none-eabi-g++

      sudo ln -s /usr/share/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
      
    • arm-none-eabi-gdb

      sudo ln -s /usr/share/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
      
    • arm-none-eabi-size

      sudo ln -s /usr/share/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
      
    • arm-none-eabi-objcopy

      sudo ln -s /usr/share/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy
      

      image-20221024164018783

  6. 安装依赖项libncurses-dev

    sudo apt install libncurses-dev
    

    image-20221024164053315

  7. 创建软链接

  8. 检查一下arm-none-eabi的安装情况:

    arm-none-eabi-gcc --version
    arm-none-eabi-g++ --version
    arm-none-eabi-gdb --version
    arm-none-eabi-size --version
    

    image-20221024164626219

二、运行Xinu

  1. 从github上clone源码:

    git clone https://github.com/xinu-os/xinu
    
  2. 修改/xinu/compile/Makefile,将第27行出修改为(解决编译器 undefined

    reference to __stack_chk_fail 报错):

    CFLAGS := -fno-stack-protector
    
  3. 在xinu/compile/platforms/x86/platformVars,在13行插入(修正64位环境下的链接问题):

    LDFLAGS += -melf_i386
    
  4. 编辑xinu/loader/platforms/x86/start.S文件,将文件修改为如下:

    /** * @file start.S * */ /* Embedded XINU, Copyright (C) 2007.
    
    .text
    
    All rights reserved. */
    
    .align 4 .globl _start
    				.extern startup
            .extern _end
     
    +#define     MULTIBOOT_HEADER_MAGIC  0x1BADB002
    +#define     MULTIBOOT_HEADER_FLAGS  0x00000003
     _start:
            /* disable any interrupts from coming in */
            cli
    @@ -22,3 +24,9 @@ _start:
            movl    %eax,     %esp  # set stack pointer
     
            jmp             startup
    +
    +    /* Enable multiboot support */
    +.align  4
    +.long   MULTIBOOT_HEADER_MAGIC
    +.long   MULTIBOOT_HEADER_FLAGS
    +.long   -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
    
  5. 修改完成后进入compile执行make命令

  6. 使用apt安装qemu-system-x86:

    apt install qemu-system-x86
    
  7. 在compile目录下执行如下命令即可启动xinu:

    qemu-system-i386 -kernel xinu.elf -nographic
    

    image-20221024171705860

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiyiqwq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值