mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-09-05 13:11:44 +00:00
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:
committed by
Will Deacon
parent
07f9d0dbf9
commit
3d2312e507
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user