Chapter 01:部署開發環境 === :::info 在Mac OS 上使用 bochs(發音:box)來模擬 x86 CPU ::: >[time=Tue, Aug 12, 2025 6:37 AM] --- https://youtu.be/EKheOfnACFU <iframe width="560" height="315" src="https://www.youtube.com/embed/EKheOfnACFU?si=uKPTmyvTbxH1jNBh" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> # Virtualbox 官方下載:https://www.virtualbox.org/wiki/Downloads  ## Checkpoint 成功啟動 Virtualbox  # Ubuntu 官方下載:https://ubuntu.com/download 根據你的 CPU 來選擇適合的 Ubuntu。 >[!Note] Virtualbox 並沒有能力支援不同的 CPU 架構。 > 檢查 Type of CPU Architecture ``` uname -m ```  如果選錯,就會無法成功啟動 Ubuntu。  建立虛擬機    記得不要勾這個!   ## Checkpoint 安裝完成  成功登入  # ssh Virtualbox 的設定   Ubuntu 安裝 ssh server ``` sudo apt-get install openssh-server ``` ## Checkpoint Host(mac OS) 透過 ssh 連到 Guest(Ubuntu)。 ``` ssh -p 9527 srhuang@127.0.0.1 ```   # 設定 shared folder >[!Tip] 如要使用 shared folder,需要先在 Guest(Ubuntu) 上安裝 Guset Additions。 Insert Guset Addition CD Image  Guest(Ubuntu) 上安裝 Guest Additions > 參考資料:https://myapollo.com.tw/blog/ubuntu-install-virtualbox-guest-additions/ ``` sudo apt-get install -y build-essential dkms linux-headers-$(uname -r) sudo mount /dev/cdrom /mnt sudo /mnt/VBoxLinuxAdditions-arm64.run ``` ``` lsmod|grep vboxguest ```  Host(mac OS) Virtualbox 的設定  Ubuntu mount shared folder ``` sudo mount -t vboxsf bbb /home/srhuang/aaa ``` 解決資料夾權限的問題 ``` sudo adduser srhuang vboxsf ``` ## Checkpoint 先在 Host(mac OS) 新增 “host” folder,然後在 Guest(Ubuntu) 新增 “guest.c”  # X Window Host(mac OS) 安裝 XQuartz 官網下載:https://www.xquartz.org/  安裝完成  Guest(Ubuntu) 安裝 X-Window > 參考資料:[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 fluxbox x-window-system-core xdm ``` 修改 ssh 設定 ``` sudo vim /etc/ssh/sshd_config X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes ```  ## Checkpoint Host(mac OS) 重新使用 ssh 連上 Guest(Ubuntu)。 ``` ssh -X -Y -p 9527 srhuang@127.0.0.1 ```  > 參考資料:[測試 X11](https://superuser.com/questions/695950/x11-keyboard-utility-to-display-key-presses) ``` xev ```  # bochs >[!Tip] bochs 是專門用來模擬 x86 CPU。 官方網站:https://bochs.sourceforge.io/  >[!Tip] Version 3.0 有些問題,建議使用 Version 2.8。 官網下載 2.8:https://sourceforge.net/projects/bochs/files/bochs/2.8/  在 Host(mac OS)下載完成後,放到 share folder 下。  在 Guest(Ubuntu) 下解壓縮 ``` tar zxvf bochs-2.8.tar.gz ```  安裝必要套件 ``` sudo apt-get install xorg-dev sudo apt-get install libltdl-dev ``` Build bochs ``` cd bochs-2.8 ``` ``` export CONFIGURE_ARGS=" \ --enable-debugger \ --enable-iodebug \ --enable-x86-debugger \ --with-x \ --with-x11 \ " ``` >[!Tip]`.conf.linux` 會吃這個 variable `CONFIGURE_ARGS`。 ``` sh .conf.linux ``` ``` make ``` make 之後長這樣。  ``` sudo make install ``` make install 之後長這樣。  先備份原始設定 ``` cp .bochsrc .bochsrc_backup ``` 關閉 Audio and speaker ``` vim .bochsrc ```  執行 bochs ``` ./bochs ```   ## Checkpoint 恭喜成功!!!  # 編譯環境 >[!Tip] 目的是要在 ARM 的機器上 編譯成 x86 相容的執行檔。 安裝 cross compiler >參考資料:https://learn.arm.com/install-guides/gcc/cross/ ``` sudo apt-get install gcc-x86-64-linux-gnu ``` 安裝 x86 assembly compiler ``` sudo apt install nasm ``` ## Checkpoint ``` x86_64-linux-gnu-gcc -v x86_64-linux-gnu-ld -v nasm -v ```  # Tools ## tmux 安裝請參考這篇文章:https://hackmd.io/@srhuang/r1Xq97ERkx 我的設定:https://github.com/srhuang/tools/blob/main/.tmux.conf  ## vim 我的設定:https://github.com/srhuang/tools/blob/main/.vimrc 
×
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