# 在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,執行應用程式  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作為範例:  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 ``` 執行結果如下:  ## 其他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更新):  * 在/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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.