Skip to content
Snippets Groups Projects
Commit a4e4ea0c authored by Hazal2.Veziroglu@live.uwe.ac.uk's avatar Hazal2.Veziroglu@live.uwe.ac.uk
Browse files

Update 7 files

- /Worksheet2_1/source/link.ld
- /Worksheet2_1/iso/boot/grub/menu.lst
- /Worksheet2_1/iso/boot/grub/stage2_eltorito
- /Worksheet2_1/Makefile
- /Worksheet2_1/README.md
- /Worksheet2_1/loader.asm
- /Worksheet2_1/loader.o
parent 18880762
No related branches found
No related tags found
No related merge requests found
ASM=nasm
CC=gcc
QEMU=qemu-system-i386
GENISO=mkisofs
SRC_DIR=source
ISO_DIR=iso
BUILD_DIR=$(ISO_DIR)/boot
KERNEL=kernel.elf
ISO=os.iso
all: build run
build: $(KERNEL) iso
$(KERNEL): loader.o
$(CC) -nostdlib -o $(KERNEL) loader.o -Wl,-T,$(SRC_DIR)/link.ld
loader.o: loader.asm
$(ASM) -f elf loader.asm
iso: $(KERNEL)
mkdir -p $(BUILD_DIR)/grub
cp $(KERNEL) $(BUILD_DIR)
cp $(ISO_DIR)/boot/grub/menu.lst $(BUILD_DIR)/grub/
cp $(ISO_DIR)/boot/grub/stage2_eltorito $(BUILD_DIR)/grub/
$(GENISO) -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 \
-A os -input-charset utf8 -quiet -boot-info-table -o $(ISO) $(ISO_DIR)
run: build
$(QEMU) -nographic -boot d -cdrom $(ISO) -m 32 -d cpu -D logQ.txt
clean:
rm -f *.o $(KERNEL) $(ISO)
rm -rf $(BUILD_DIR)
.PHONY: all build iso run clean
# Worksheet 2 Part 1 - Tiny OS
## Structure
default=0
timeout=0
title os
kernel /boot/kernel.elf
global loader
MAGIC_NUMBER equ 0x1BADB002
FLAGS equ 0x0
CHECKSUM equ -MAGIC_NUMBER
section .text
align 4
dd MAGIC_NUMBER
dd FLAGS
dd CHECKSUM
loader:
mov eax, 0xCAFEBABE
.loop:
jmp .loop
File deleted
ENTRY(loader)
SECTIONS {
. = 0x00100000;
.text ALIGN (0x1000) : {
*(.text)
}
.rodata ALIGN (0x1000) : {
*(.rodata*)
}
.data ALIGN (0x1000) : {
*(.data)
}
.bss ALIGN (0x1000) : {
*(COMMON)
*(.bss)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment