从github上clone源码:
git clone https://github.com/xinu-os/xinu
修改/xinu/compile/Makefile,将第27行出修改为(解决编译器 undefined
reference to __stack_chk_fail 报错):
CFLAGS := -fno-stack-protector
在xinu/compile/platforms/x86/platformVars,在13行插入(修正64位环境下的链接问题):
LDFLAGS += -melf_i386
编辑xinu/loader/platforms/x86/start.S文件,将文件修改为如下:
/** * @file start.S * */ /* Embedded XINU, Copyright (C) 2007.
.text
All rights reserved. */
.align 4 .globl _start
.extern startup
.extern _end
+#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
+#define MULTIBOOT_HEADER_FLAGS 0x00000003
_start:
/* disable any interrupts from coming in */
cli
@@ -22,3 +24,9 @@ _start:
movl %eax, %esp # set stack pointer
jmp startup
+
+ /* Enable multiboot support */
+.align 4
+.long MULTIBOOT_HEADER_MAGIC
+.long MULTIBOOT_HEADER_FLAGS
+.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
修改完成后进入compile执行make命令
使用apt安装qemu-system-x86:
apt install qemu-system-x86
在compile目录下执行如下命令即可启动xinu:
qemu-system-i386 -kernel xinu.elf -nographic