Chapter 1:部署工作環境 === :::info 這是讀書筆記  作者:鄭鋼 出版社:佳魁資訊股份有限公司 出版日期:2017/05/31 ::: --- # 下載並安裝 Virtualbox https://www.virtualbox.org/ 看你的工作環境是哪個 OS 的,都有相對應的安裝檔。  # 啟動 Linux Ubuntu on Virtualbox ## 下載 Linux Ubuntu https://ubuntu.com/download MacOS 的 Virtualbox 只有 suppport ARM CPU,所以我們只能下載 Ubuntu on ARM CPU,Desktop is for x86, and Server is for ARM. >參考出處:[Install Ubuntu Desktop 22.04 ARM64 on macOS Apple Silicon (M1/Pro/Max) in Parallels](https://askubuntu.com/questions/1405124/install-ubuntu-desktop-22-04-arm64-on-macos-apple-silicon-m1-pro-max-in-parall) 如果你的電腦是 Intel 系列的通常是 AMD64,如果是 Mac 系列的通常是 ARM64。  選錯就會看到 UEFI Shell >[!Caution] UEFI Shell > 由於我的工作環境是 Mac OS 所以就直接選擇 Server 版。  ## 啟動 Linux Ubuntu >[!Warning]啟用 EFI 的選項千萬不能打勾。不然就會 Stuck in UEFI shell  最終的設定。  基本上已經裝好了。  ## ssh 設定 由於我想把 Virtualbox 裡面的 Linux 當成一個 server,這樣就可以沿用原本 Mac OS 的環境。 >參考出處:[Easy way to SSH into VirtualBox machine | Any OS](https://dev.to/developertharun/easy-way-to-ssh-into-virtualbox-machine-any-os-just-x-steps-5d9i) :::success 記得 Linux Ubuntu 要先安裝 ssh server `sudo apt-get install openssh-server` >參考資料:[SSH into VirtualBox on Mac](https://unix.stackexchange.com/questions/231138/ssh-into-virtualbox-on-mac) ::: 成功使用 ssh 連入 Virtualbox 裡面的 Linux Ubuntu。 ``` ssh -p 9527 lukyandy3162@127.0.0.1 ```  :::success 個人習慣使用 tmux >參考資料:[Mac OS 安裝 tmux](https://hackmd.io/@srhuang/r1Xq97ERkx) ::: ## share folder 設定 ### 安裝必要套件 >參考出處:[VirtualBox: mount.vboxsf: mounting failed with the error: No such device](https://stackoverflow.com/questions/28328775/virtualbox-mount-vboxsf-mounting-failed-with-the-error-no-such-device) ``` sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso ``` ### 安裝 Virtualbox Guest Additions. >參考出處:[mount: unknown filesystem type ‘vboxsf’](https://www.imooc.com/article/35527)  ### 執行 vboxsf 指令 ``` sudo mount -t vboxsf bbb /home/lukyandy3162/aaa ```  ### 開機直接 mount >參考出處:[How to mount a VirtualBox shared folder at startup?](https://askubuntu.com/questions/252853/how-to-mount-a-virtualbox-shared-folder-at-startup) ``` sudo vim /etc/fstab bbb /home/lukyandy3162/aaa vboxsf defaults 0 0 ``` :::warning 後來實測證明不需要此步驟,看起來 Virtualbox 會幫你建立好。  ::: ## 啟動 X window ### Ubuntu Linux (Guest OS on Virtualbox) >參考出處:[在 Ubuntu Server 上安裝 ubuntu desktop](https://snippetinfo.net/mobile/media/800) >參考出處:[Ubuntu Server 安裝 Gnome X-Windows 的方法](https://pccicblog.wordpress.com/2022/04/12/ubuntu-server-%E5%AE%89%E8%A3%9D-gnome-x-windows-%E7%9A%84%E6%96%B9%E6%B3%95/) 安裝 ``` sudo apt-get install ubuntu-desktop sudo apt-get -y install xdm ``` 設定 ``` vim /etc/ssh/sshd_config ``` ``` X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes ```  :::warning 啟動(好像不需要此步驟) ``` sudo /etc/init.d/gdm3 start ``` ::: ### Mac OS (Host OS) 安裝 [XQuartz](https://www.xquartz.org/) ``` ssh -X -Y -p 9527 lukyandy3162@127.0.0.1 ``` 設定鍵盤  測試 X11 https://superuser.com/questions/695950/x11-keyboard-utility-to-display-key-presses # 啟動 bochs on Linux Ubuntu [官方網站](https://bochs.sourceforge.io/) [官方下載網址](https://sourceforge.net/projects/bochs/files/bochs/3.0/) >[!Tip]bochs 是專門用來模擬 x86 CPU,如果想模擬 ARM CPU,就必須用 QEMU。 ## 解壓縮 ``` tar zxvf bochs-3.0.tar.gz tar zxvf bochs-2.8.tar.gz ``` ## Compiling Bochs >[參考Tutorial](https://bochs.sourceforge.io/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=https://bochs.sourceforge.io/doc/docbook/user/index.html) ### Configuration ``` sudo apt-get install xorg-dev ./configure --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 ``` >[!Warning]configure: WARNING: unrecognized options: --enable-disasm ``` sudo apt-get install libltdl-dev sh .conf.linux ``` ### Make ``` make ``` ### Make Install ``` sudo make install ``` 看起來沒什麼錯誤。   ## 設定 bochs 這是系統 default 吃的設定檔。  先備份後再修改。 ``` cp .bochsrc .bochsrc.backup ``` ### 關閉 Audio and speaker  ### 設定 Display >[!Caution] 好像不用設定這個  ## 執行 bochs ``` ./bochs ```  直接 enter 選擇 default .bochsrc  執行結果  >[!Tip]這個錯誤是因為我們還沒製作虛擬硬碟。 ## 製作虛擬硬碟 >參考資料:[9.2. How to make a simple disk image](https://bochs.sourceforge.io/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=https://bochs.sourceforge.io/doc/docbook/user/index.html) ``` ./bximage ```  修改 .bochsrc  成功讀到虛擬硬碟。  >[!Tip]這個錯誤是因為我們還沒把這個虛擬硬碟,變成開機硬碟。 下一章將會繼續撰寫 MBR。 ## Cross Compiler 目的是要在 ARM 的機器上 編譯成 x86 相容的執行檔。 https://learn.arm.com/install-guides/gcc/cross/ ``` sudo apt-get install gcc-x86-64-linux-gnu g++-x86-64-linux-gnu ``` https://linux.die.net/man/1/x86_64-linux-gnu-gcc ``` x86_64-linux-gnu-gcc -S -o main.S main.c ``` Build 32 bits ``` x86_64-linux-gnu-gcc -m32 -c -o main.o main.c ``` ## debugger https://bochs.sourceforge.io/doc/docbook/user/internal-debugger.html ## Assembly Tutorial https://www.tutorialspoint.com/assembly_programming/index.htm # Vim ``` vi ~/.vimrc ``` ``` syntax enable set smartindent set tabstop=4 set shiftwidth=4 set expandtab " display line number set number filetype on autocmd FileType make set noexpandtab shiftwidth=4 softtabstop=0 ``` # include file 統一都放在 include folder 下。 
×
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