# 在Windows 10中使用WSL2安裝NachOS WSL2 ver. = Ubuntu 18.0 LTS 64bit ###### tags: `Linux` `作業系統` `系統建置` `NachOS` ## 前言 ### 使用虛擬機器 - 省事的方法 首先參考台大王凡修課學生的[教學網站](https://jeffprogrammer.wordpress.com/2016/10/31/%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1-nachos-%E7%B0%A1%E4%BB%8B/),在Oracle VM VirtualBox中使用ubuntu 14.04 LTS 32位元的環境,此為最省事的安裝方式。 但缺點也顯而易見:使用VM在筆電端使用效能不佳,32位元的系統也不支援VsCode的Romote-SSH功能;因此轉而打算安裝在支援完整linux核心的[WSL2](https://docs.microsoft.com/zh-tw/windows/wsl/compare-versions)中,方便在Windows環境下搭配VsCode使用(可參考[這篇微軟官方教學-使用VsCode整合WSL2](https://docs.microsoft.com/zh-tw/windows/wsl/tutorials/wsl-vscode))。 ## 安裝教學 以下為安裝步驟: 1. 首先在win10啟用WSL2功能,並在商店中安裝ubuntu 18.04 LTS,執行應用程式 ![](https://i.imgur.com/WqaMtEl.png) 2. 進入ubuntu命令列介面後,安裝編譯工具包 ```linux= sudo apt-get install build-essential ``` 3. 檢查系統是否為64位元核心,顯示amd64才可繼續下一步 ```linux= dpkg --print-architecture # 顯示amd64表示distribution為64bit ``` 4. 檢查系統是否支援32bit位元核心 ```linux= dpkg --print-foreign-architectures # 顯示i386表示支援 ``` 5. 啟用32位元支援功能 ```linux= sudo dpkg --add-architecture i386 ``` 6. 安裝 C shell (csh) 、gcc 和 g++: ```linux= sudo apt-get install csh sudo apt-get install gcc sudo apt-get install g++ sudo apt-get update sudo apt-get dist-upgrade //解決相依性問題(有點風險的升級) ``` 7. 安裝C與C++多平台lib ```linux= sudo apt-get install gcc-multilib g++-multilib ``` 8. 安裝32位元內核環境 ```linux= sudo apt-get install lib32ncurses5 lib32z1 #ubuntu 20.04 請改為lib32ncurses5-dev sudo apt-get install zlib1g:i386 libstdc++6:i386 sudo apt-get install libc6:i386 libncurses5:i386 sudo apt-get install libgcc1:i386 libstdc++5:i386 ``` 9. 下載 nachos 4.0 和 mips-x86.linux-xgcc,下指令到王凡老師網站下載 ```linux= wget -d http://cc.ee.ntu.edu.tw/~farn/courses/OS/OS2015/projects/project.1/mips-x86.linux-xgcc.tar.gz wget -d http://cc.ee.ntu.edu.tw/~farn/courses/OS/OS2015/projects/project.1/nachos-4.0.tar.gz #解壓縮 nachos-4.0.tar.gz tar –zxvf nachos-4.0.tar.gz # mips-x86.linux-xgcc 複製到根目錄並解壓縮 sudo mv mips-x86.linux-xgcc.tar.gz / tar –zxvf /mips-x86.linux-xgcc.tar.gz ``` 10. 完成解壓縮所有NachOS檔案到任意資料夾,此處以資料夾ntuNachOS作為範例: ![](https://i.imgur.com/1zgt3iE.png) 11. 修改MakeFile來使用32位元編譯(ref:[此文章](https://www.cxyzjd.com/article/qq_37595769/81872625)) 1. 在/ntuNachOS/nachos-4.0/code/Makefile.common,其中部分程式碼修改如下: ```C= # These definitions may change as the software is updated. # Some of them are also system dependent CPP=/lib/cpp CC = g++ -m32 -Wno-deprecated LD = g++ -m32 -Wno-deprecated AS = as --32 PROGRAM = nachos ``` 2. 在/ntuNachOS/nachos-4.0/code/bin/Makefile,其中部分程式碼修改如下: ```C= # Copyright (c) 1992-1996 The Regents of the University of California. # All rights reserved. See copyright.h for copyright notice and limitation # of liability and disclaimer of warranty provisions. include ../Makefile.dep CC=gcc -m32 CFLAGS=-I../lib -I../threads $(HOST) LD=gcc -m32 all: coff2noff #$(DISASM) ``` 12. 執行make ```linux= #切至 code 資料夾,執行 make cd nachos-4.0/code make ``` 13. 完成上一步後即完成安裝,測試NachOS環境 ```linux= cd userprog ./nachos –e ../test/test1 ``` 執行結果如下: ![](https://i.imgur.com/tZOGZKe.png) ## 其他NachOS來源 ### 如何下載NachOS檔案? 以上的安裝教學參考台大王凡修課學生的[教學網站](https://jeffprogrammer.wordpress.com/2016/10/31/%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1-nachos-%E7%B0%A1%E4%BB%8B/)。 由於我是看清大周志遠老師的作業系統OCW,因此在萬能的github找到歷年學生的作業檔案,可作為日後修改原始碼的參考: * [資料一 shawn2000100/10810CS_342301_OperatingSystem](https://github.com/shawn2000100/10810CS_342301_OperatingSystem) 測試可用,為周志遠105OCW版本,僅需修改一行即可(2022/06/07更新): ![](https://i.imgur.com/q84sFLZ.png) * 在/test資料夾進行make前,<span style="color:red">務必確認將NachOS-4.0_MP1中的usr資料夾複製到根目錄</span> ```linux= sudo cp -r usr / ``` 感謝[此篇](https://wiiwu959.github.io/2019/10/10/2019-10-10-OS_HW1-2019/)的初始作業部份 * [資料二 WendyUsingGithub/NTHU-OS-NachOS-1](https://github.com/WendyUsingGithub/NTHU-OS-NachOS-1) 尚未測試 ## 參考資料 * virtualBox安裝ubuntu14.04相關: * [Systemctl Command Not Found」錯誤](https://snoopy30485.github.io/2018/06/30/VirtualBox%E4%BD%BF%E7%94%A8SSH%E9%80%A3%E7%B7%9A/) * [setup and enable SSH in Ubuntu Virtual Box](https://linuxhint.com/setup-enable-ssh-ubuntu-virtual-box/) * [VirtualBox使用SSH連線](https://snoopy30485.github.io/2018/06/30/VirtualBox%E4%BD%BF%E7%94%A8SSH%E9%80%A3%E7%B7%9A/) * ubuntu 18.04安裝NachOS相關: * [nachos安装 Ubuntu18.04为例](https://blog.csdn.net/weixin_43745072/article/details/105764548) * [nachos学习笔记(一)_数独的博客-程序员宅基地](https://www.cxyzjd.com/article/qq_37595769/81872625) * [Ubuntu 10.10成功安裝Nachos(此方法不適用ubuntu 14.04及18.04!,純紀錄我踩坑的經驗XD)](https://wellbay.cc/thread-840891.htm) * NachOS相關: * [我,傑夫。開發人-[作業系統] Nachos 安裝](https://jeffprogrammer.wordpress.com/2016/10/31/%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1-nachos-%E7%B0%A1%E4%BB%8B/) * [向 NachOS 4.0 作業進發 (1)](https://morris821028.github.io/2014/05/24/lesson/hw-nachos4/#%E4%BB%A3%E7%A2%BC%E4%B8%8B%E8%BC%89) * [wiiwu's blog]( https://wiiwu959.github.io/2019/10/10/2019-10-10-OS_HW1-2019/) * [山东大学操作系统课设实验nachos系统(3)扩展文件系统](https://blog.csdn.net/mottled233/article/details/78389156) * [山東大學作業系統實驗6MIPS交叉編譯](https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/626003/) ## 其他系統版本 - ubuntu 20.04 LTS 若使用系統ubuntu 20.04,請參考[此連結進行系統建置](https://icode.best/i/38006346343146),並參考[stackoverflow此文](https://askubuntu.com/questions/26498/how-to-choose-the-default-gcc-and-g-version)erase the current update-alternatives setup for gcc and g++ > 請參考前文18.04教學並修改makefile,gcc及g++設定為v7(7.5.0)版本 ### 參考 [安裝多個 GCC 版本](https://www.delftstack.com/zh-tw/howto/linux/how-to-install-gcc-compiler-on-ubuntu/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up