在WIN11 23H2上搭建哈工大操作系统实验 Hit-oslab 环境指南

在WIN11 23H2上搭建哈工大操作系统实验 Hit-oslab 环境指南

前言

​ 本文为网易云课堂李治军老师操作系统系列课程实验的在Windows11 23H2中文家庭版上的本地环境搭建指南

操作系统之基础 - 网易云课堂

​ 如果网易云上的课程无法查看,也可以看 Bilibili 上的 操作系统哈尔滨工业大学李治军老师

背景介绍

操作系统原理与实践 - 实验楼

​ 网易云课堂上这门课配套的实验环境是在蓝桥云课上的,它的在线环境虽然用起来非常方便,但是非会员环境只能保存一个小时,不适合较复杂的实验。所以我决定在本地搭建实验环境。由于Ubuntu 22.04 LTS 是64位系统,没有32位运行库,而且Linux 0.11 不能在gcc 4.x以上编译,因此会遇到了各种各样问题,好在网上有解决方案可以搜索借鉴,在此先表示感谢!后面会附上链接参考。

搭建环境
一、安装Ubuntu 22.04 LTS

​ 1.在Windows环境中,按win+R,在打开的【运行】窗口中直接输入“optionalfeatures”按确定,打开【Windows 功能】对话框。选择适用于“Linux的Windows子系统”和“虚拟机平台”,按确定,然后重启系统。

​ 2.在Windows中,点开始选Mircosoft store,在搜索框输入Ubuntu,选Ubuntu 22.04.3 LTS获取。等安装完成后,打开Ubuntu,在Ubuntu窗口中输入新的UNIX用户名,为了和实验环境一致,我就建了个shiyanlou的用户,其实可以随便起名。

二、准备工作
1.WSL libcuda.so.1 is not a symbolic link 的解决方法
sudo rm -f /usr/lib/wsl/lib/libcuda.so.1
sudo ln -s /usr/lib/wsl/lib/libcuda.so /usr/lib/wsl/lib/libcuda.so.1
sudo ldconfig
2.加载32位库,因为bochs模拟器和linux 0.11 是32位的
sudo dpkg --add-architecture i386
sudo apt update && sudo apt upgrade -y
sudo apt install lib32z1 libsm-dev:i386 libx11-6:i386 libxpm4:i386 libstdc++6:i386 -y
3.安装低版本gcc编译器(gcc-3.4),因为Linux-0.11不能在gcc 4.x以上版本编译

官方仓库

​ 将官方的仓库下载到本地,然后解压并安装gcc-3.4

cd
git clone https://github.com/hoverwinter/HIT-OSLab.git
cd HIT-OSLab/Resources/
sudo apt-get install binutils
tar zxvf gcc-3.4-ubuntu.tar.gz
cd gcc-3.4
sudo ./inst.sh amd64 # 32位的Ubuntu系统将amd64改为i386
4.安装运行gcc-3.4和bochs所需的其他依赖
sudo apt-get install bin86
sudo apt-get install build-essential
sudo apt-get install gcc-multilib
sudo apt-get install build-essential
5.设置gcc默认运行版本

​ 先查看系统中安装的gcc版本

ls -l /usr/bin/gcc* -11

​ 显示如下:

lrwxrwxrwx 1 root root    21 May  9 09:53 /usr/bin/gcc*
lrwxrwxrwx 1 root root    23 May 13  2023 /usr/bin/gcc-11 -> x86_64-linux-gnu-gcc-11*
-rwxr-xr-x 1 root root 91920 Oct 23  2008 /usr/bin/gcc-3.4*
lrwxrwxrwx 1 root root     9 Aug  5  2021 /usr/bin/gcc-ar -> gcc-ar-11*
lrwxrwxrwx 1 root root    26 May 13  2023 /usr/bin/gcc-ar-11 -> x86_64-linux-gnu-gcc-ar-11*
lrwxrwxrwx 1 root root     9 Aug  5  2021 /usr/bin/gcc-nm -> gcc-nm-11*
lrwxrwxrwx 1 root root    26 May 13  2023 /usr/bin/gcc-nm-11 -> x86_64-linux-gnu-gcc-nm-11*
lrwxrwxrwx 1 root root    13 Aug  5  2021 /usr/bin/gcc-ranlib -> gcc-ranlib-11*
lrwxrwxrwx 1 root root    30 May 13  2023 /usr/bin/gcc-ranlib-11 -> x86_64-linux-gnu-gcc-ranlib-11*
-rwxr-xr-x 1 root root 16020 Oct 23  2008 /usr/bin/gccbug-3.4*

​ 说明系统中gcc-11和gcc-3.4新旧两个版本,需要设置优先级,优先级可按自己想法随意设置

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 30
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 70

​ 切换gcc版本为3.4

sudo update-alternatives --config gcc

​ 显示如下:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-11    70        auto mode
  1            /usr/bin/gcc-11    70        manual mode
  2            /usr/bin/gcc-3.4   30        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/gcc-3.4 to provide /usr/bin/gcc (gcc) in manual mode
三、搭建OSLab环境

​ 回到~/HIT-OSLab/Resources目录,解压hit-oslab-linux-20110823.tar.gz

cd ~/HIT-OSLab/Resources
tar zxvf hit-oslab-linux-20110823.tar.gz
cd oslab
四、编译内核

​ 进入目录linux-0.11,并编译内核,出现sync提示即编译成功

cd linux-0.11/
make all
五、测试运行

​ 返回目录oslab,运行run

cd ../oslab
./run
参考文献:

1、Oldlinux.org – Linux plinux - Early Linux Kernel Analysis and Comments

2、https://blog.csdn.net/sykongdl/article/details/126993644

3、如何修复 Ubuntu 上的“E Unable to locate package package_name”错误_e: unable to locate package tunctl-CSDN博客

4、WSL libcuda.so.1 is not a symbolic link 的解决方法 | ✨kiraの博客 (kira-96.github.io)

5、https://askubuntu.com/questions/815309/how-to-install-libsm6i386-on-14-04-lts-64bit

6、Ubuntu18.04将高版本gcc7.5降低为低版本gcc3.4

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值