Add a simple "kernel" binary that can be used for testing

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
This commit is contained in:
Pekka Enberg
2015-06-01 16:39:38 +01:00
committed by Will Deacon
parent 07f9d0dbf9
commit 3d2312e507
3 changed files with 44 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
NAME := kernel
BIN := $(NAME).bin
ELF := $(NAME).elf
OBJ := $(NAME).o
all: $(BIN)
$(BIN): $(ELF)
objcopy -O binary $< $@
$(ELF): $(OBJ)
ld -Ttext=0x00 -nostdlib -static $< -o $@
%.o: %.S
gcc -nostdinc -c $< -o $@
clean:
rm -f $(BIN) $(ELF) $(OBJ)
.PHONY: clean
+16
View File
@@ -0,0 +1,16 @@
Compiling
---------
You can simply type:
$ make
to build a 16-bit binary that uses the i8086 instruction set.
Disassembling
-------------
Use the "-m i8086" command line option with objdump to make sure it knows we're
dealing with i8086 instruction set:
$ objdump -d -m i8086 i8086.elf
+8
View File
@@ -0,0 +1,8 @@
.code16gcc
.text
.globl _start
.type _start, @function
_start:
# "This is probably the largest possible kernel that is bug free." -- Avi Kivity
1:
jmp 1b