UCore-OS实验Lab0

实验内容:搭建ucore-os的实验环境

实验准备内容:vmware虚拟机,ubuntu22.04镜像,qemu7.0.0源码

ucore代码地址 GitHub - chyyuu/os_kernel_lab at x86-32

实验步骤:

  1. 在vmware中安装ubuntu,因为我个人喜欢用最新版,所以选用了22.04,如果到了2024年时就会用24.04了

  2. 安装好ubuntu后,准备编译安装qemu7.0.0,在编译之前,需要做一些准备工作安装一些软件,安装命令如下,根据qemu的wiki

    bash 复制代码
    sudo apt-get install build-essential git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build
    
    sudo apt-get install git-email libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libbz2-dev libcap-ng-dev libcurl4-gnutls-dev libgtk-3-dev libibverbs-dev libjpeg8-dev libncurses5-dev libnuma-dev librbd-dev librdmacm-dev libsasl2-dev libsdl2-dev libseccomp-dev libsnappy-dev libssh-dev libvde-dev libvdeplug-dev libvte-2.91-dev libxen-dev liblzo2-dev valgrind xfslibs-dev 
    
    sudo apt-get install libnfs-dev libiscsi-dev
  3. 在安装完上述依赖之后,进行编译安装,我喜欢全部安装,所以安装命令相对简单

    我选择安装在opt目录下,所以现在opt目录下新建qemu文件夹

    bash 复制代码
    sudo mkdir /opt/qemu

    之后,在qemu的代码解压后,在代码目录新建build文件夹,如下是build文件夹的位置

    继续在build文件夹中执行编译命令,因为要安装到 /opt/qemu 目录,所以加上prefix参数

    bash 复制代码
    ../configure --prefix=/opt/qemu
    make -j 4
    sudo make install

    在安装后,设置环境变量,否则无法在命令行使用qemu,在 /etc/profile 文件中最后加上一行export PATH=$PATH:/opt/qemu/bin之后重启虚拟机,再进入命令行执行

    bash 复制代码
    qemu-system-i386 --version

    看到下图中显示的版本信息,确定qemu安装完毕

  4. 下一步,调整gcc版本,因为gcc版本过高会导致编译的qemu内存排列错误,所以要降低qemu版本

    首先添加ubuntu16.04的源

    bash 复制代码
    deb https://mirrors.aliyun.com/ubuntu/ xenial main universe

    在/etc/apt/source.list中添加即可,接下来执行

    bash 复制代码
    sudo apt update
    
    # 如果报错"NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32"执行下边三条命令
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
    sudo apt update
    
    # 加入16.04的源后,安装gcc-5
    sudo apt install gcc-5
    sudo apt install g++-5
  5. 接着,在lab1_result修改ucore的makefile,将gcc修改为gcc-5,然后执行make qemu,能得到如下的运行,并且不会出现qemu弹窗闪屏,说明环境搭建完毕

相关推荐
开开心心就好21 分钟前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
无证驾驶梁嗖嗖34 分钟前
用Plex打造随身私人影院告别影音杂乱,必须加上cpolar突破地域限制!
ubuntu
予枫的编程笔记1 小时前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun1 小时前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
Tfly__1 小时前
在PX4 gazebo仿真中加入Mid360(最新)
linux·人工智能·自动驾驶·ros·无人机·px4·mid360
陈桴浮海1 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
生活很暖很治愈1 小时前
Linux——环境变量PATH
linux·ubuntu
?re?ta?rd?ed?1 小时前
linux中的调度策略
linux·运维·服务器
深圳市九鼎创展科技1 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
hweiyu001 小时前
Linux 命令:tr
linux·运维·服务器