7dc6e56e16966f383aae31571e0337dee95d77ea
x86 Bare Metal Examples
Hello world programs that run without an operating system.
Getting started
sudo apt-get install build-essential gnu-efi qemu nasm xorriso
Emulator
Run the default program on QEMU:
make run
Run a given program:
make run RUN=min
make run RUN=bios_one_char
Tested on Ubuntu 14.04 AMD64.
Real hardware
Insert an USB, determine its device (/dev/sdX) with:
sudo lsblk
sudo fdisk -l
Pick the .img file that you wan to run and:
sudo dd if=bios_hello_world.img of=/dev/sdX
Then:
- insert the USB in a computer
- during boot, hit some special hardware dependant key, usually F12, Esc
- choose to boot from the USB
Tested on: ThinkPad T400.
Big image
Create a big.img that contains all examples that can be booted from GRUB:
make big-img
Now if you do:
sudo dd if=big.img of=/dev/sdX
you can test several examples with a single USB burn, which is much faster.
Description
Languages
Assembly
64.3%
C
27.6%
Makefile
6.8%
Shell
1.2%