|
9 | 9 | :toclevels: 6 |
10 | 10 | :toc-title: |
11 | 11 |
|
12 | | -Dozens of minimal operating systems to learn x86 system programming. Tested on Ubuntu 17.10 host in QEMU 2.10 and <<test-hardware,real hardware>>. Userland cheat at: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly ARM baremetal setup at: https://github.com/cirosantilli/linux-kernel-module-cheat#baremetal-setup |
| 12 | +Dozens of minimal operating systems to learn x86 system programming. Tested on Ubuntu 18.04 host in QEMU 2.11 and <<test-hardware,real hardware>>. Userland cheat at: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly ARM baremetal setup at: https://github.com/cirosantilli/linux-kernel-module-cheat#baremetal-setup |
13 | 13 |
|
14 | 14 | :logo: logo.jpg |
15 | 15 | link:{logo}[image:{logo}[]] |
@@ -125,27 +125,41 @@ TODO: boot sectors that load STAGE2 are not working with the big image chainload |
125 | 125 |
|
126 | 126 | === Getting started with Docker |
127 | 127 |
|
128 | | -If you don't have an Ubuntu box, this is an easy alternative: |
| 128 | +If you don't have an Ubuntu box, this is an easy alternative, for the first run: |
129 | 129 |
|
130 | 130 | .... |
131 | | -sudo docker run -it --net=host ubuntu:14.04 bash |
| 131 | +sudo docker run --interactive --tty --name xbme --net=host ubuntu:18.04 bash |
| 132 | +.... |
| 133 | + |
| 134 | +and the following runs: |
| 135 | + |
| 136 | +.... |
| 137 | +sudo docker start xbme |
| 138 | +sudo docker exec --interactive --tty xbme bash |
| 139 | +sudo docker stop xbme |
| 140 | +.... |
| 141 | + |
| 142 | +and to nuke the container later on: |
| 143 | + |
| 144 | +.... |
| 145 | +# sudo docker rm xbme |
132 | 146 | .... |
133 | 147 |
|
134 | 148 | Then proceed normally in the guest: install packages, and build: |
135 | 149 |
|
136 | 150 | .... |
137 | | -apt-get update |
138 | | -apt-get install git |
139 | | -git clone https://github.com/cirosantilli/x86-bare-metal-examples |
140 | | -cd x86-bare-metal-examples |
141 | | -./configure |
| 151 | +apt-get update && \ |
| 152 | +apt-get install -y git && \ |
| 153 | +git clone https://github.com/cirosantilli/x86-bare-metal-examples && \ |
| 154 | +cd x86-bare-metal-examples && \ |
| 155 | +./configure -y && \ |
142 | 156 | make |
143 | 157 | .... |
144 | 158 |
|
145 | 159 | To overcome the lack of GUI, we can use QEMU's VNC implementation instead of the default SDL, which is visible on the host due to `--net=host`: |
146 | 160 |
|
147 | 161 | .... |
148 | | -qemu-system-i386 -hda main.img -vnc :0 |
| 162 | +qemu-system-i386 -hda bios_hello_world.img -vnc :0 |
149 | 163 | .... |
150 | 164 |
|
151 | 165 | and then on host: |
|
0 commit comments