首页 > 其他分享 >MIT——6.828:操作系统工程——第-1章:环境配置

MIT——6.828:操作系统工程——第-1章:环境配置

时间:2022-12-16 12:44:54浏览次数:64  
标签:操作系统 -- 安装 make 6.828 usr qemu MIT

MIT——6.828是一门操作系统课程,课程在6.828
这里记录一下自己所学的东西,这一章主要介绍环境配置。

1. 硬件环境

VMware 15 + debian 8.x

2. 编译器工具链

编译工具链是一个工具集包括c编译器,汇编编译器,链接器。执行命令

gcc -m32 -print-libgcc-file-name

输出

/usr/lib/gcc/i486-linux-gnu/version/libgcc.a

或者

 /usr/lib/gcc/x86_64-linux-gnu/version/32/libgcc.a

则不需要构建自己的编译器工具链了。
否则执行
sudo apt-get install -y build-essential gdb
进行安装。
在64位的机器上还需要安装32位支持库
sudo apt-get install gcc-multilib
否则后面make的时候可能会出现"__udivdi3 not found"或者"__muldi3 not found的情况。

3. qemu

qemu是一款虚拟机,我们采用该课程的补丁版本
执行命令

git clone https://github.com/mit-pdos/6.828-qemu.git qemu
cd qemu
./configure --disable-kvm --disable-werror --prefix=你想要安装的路径 --target-list="i386-softmmu x86_64-softmmu"
make
make install
sudo ln -s 你想要的安装目录/bin/qemu-system-i386 /usr/bin/qemu

3.1 编译过程中出现的问题:

问题一

ERROR: Cannot use 'python', Python 2.4 or later is required.
       Note that Python 3 or later is not yet supported.
       Use --python=/path/to/python to specify a supported Python.

./configure不支持python3,解决方法是安装python2,调整命令行为

./configure --disable-kvm --disable-werror --prefix=你想要安装的路径 --target-list="i386-softmmu x86_64-softmmu" --python=/usr/bin/python2

问题二

Disabling libtool due to broken toolchain support

ERROR: glib-2.12 gthread-2.0 is required to compile QEMU

解决方法安装依赖 libglib2.0-dev
问题三

ERROR: pixman >= 0.21.8 not present. Your options:
         (1) Preferred: Install the pixman devel package (any recent
             distro should have packages as Xorg needs pixman too).
         (2) Fetch the pixman submodule, using:
             git submodule update --init pixman

解决方法安装依赖 libpixman-1-dev
问题四

LINK  qemu-ga
/usr/bin/ld: qga/commands-posix.o: in function `dev_major_minor':
/home/kali/qemu/qga/commands-posix.c:633: undefined reference to `major'
/usr/bin/ld: /home/kali/qemu/qga/commands-posix.c:634: undefined reference to `minor'
collect2: error: ld returned 1 exit status
make: *** [Makefile:288:qemu-ga] 错误 1

解决方法在qga/commands-posix.c文件中加上头文件<sys/sysmacros.h>。

4. 实验代码

执行命令

git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab

下载课程实验代码
开始编译安装

cd lab
make
make qemu

出现
图片描述
编译成功

4.1 编译过程中出现的问题

问题一

+ as kern/entry.S
kern/entry.S: error: STABS debugging information is obsolete and not supported anymore [-Werror]
cc1: all warnings being treated as errors
make: *** [kern/Makefrag:56:obj/kern/entry.o] 错误 1

在GNUmakefile中添加

CFLAGS += -Wno-error

标签:操作系统,--,安装,make,6.828,usr,qemu,MIT
From: https://www.cnblogs.com/w-a-n-s-d-j/p/16987070.html

相关文章

  • iNeuOS工业互联网操作系统,面向4个领域颁发第一批技术认证资质
    iNeuOS工业互联网操作系统面向:仪器仪表、双碳环保、核能科学与工程和钢铁冶金领域颁发第一批技术认证资质,一共21名同志在项目实施过程中表现突出,从iNeuOS......
  • TIL:Git Squash Commits
    背景比如开发某个feature,可能需要好几天,但是每天都需要提交代码(只是假设)那commit的粒度如何控制,可以看看这个讨论:https://www.v2ex.com/t/623219可是每天提交的信息好......
  • 计算机和操作系统基础知识
    计算机和操作系统基础知识  1、操作系统(OperatingSystem,简称OS),是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石 操作系统需要处理如管理与配置......
  • mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
    前言常见的抓包工具有fiddler和charles,这些工具都是需要安装本地客户端,python版的抓包工具可以用mitmproxy。mitmproxy相比Charles、fiddler的优点在于,它可以命令......
  • Twincat3在64位操作系统运行,报错 VT-X extension not enabled或在VMWare虚拟机上运行
    1、首先,在64位的操作系统当中运行TC3PLC,必须要进到BIOS当中使能VT-x.因为TC3说明书中明确提到64位系统要运行TC3,VT-X是必须要支持的。2、[可选]在【控制面板】......
  • Linux中的limits.conf配置文件解析
    一、引言----为何需要文件描述符资源问题:节约内存资源。在服务器上,每个打开的文件都需要消耗内存来管理。安全问题:如果不限制的话,有可能启动一个进程就是无限的创建和打开新......
  • Git提交代码报错husky > pre-commit
    在接触了Git版本控制之后,很长一段时间里就只使用commit、pull、push这三个命令,并没有进行深究。而早上在用commit代码提交前端代码的时候出现了报错信息husky>pre-commit......
  • HDMI设计3--HDMI 1.4/2.0 Transmitter Subsystem IP
    Reference: https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/v_hdmi_tx_ss/v3_2/pg235-v-hdmi-tx-ss.pdf 对于支持4K视频的HDMI......
  • k8s合理设置 Request 与 Limit
    生产90%设置的都不合理你信吗​​如何为容器配置Request与Limit?这是一个即常见又棘手的问题,这个根据服务类型,需求与场景的不同而不同,没有固定的答案,这里结合生产经验......
  • omitjs简单使用
    欢迎关注前端早茶,与广东靓仔携手共同进阶​前端早茶专注前端,一起结伴同行,紧跟业界发展步伐~1、omitjs干什么用的返回一个没有列入排除key属性的对象。其中,参数object为JSON......