Write a simple bootstrap stub

This commit is contained in:
2026-08-25 17:24:39 +03:00
parent 706e5b0127
commit bdb7ada1ed
4 changed files with 48 additions and 1 deletions
+4 -1
View File
@@ -12,8 +12,11 @@ int main(int argc, char **argv) {
Nob_Cmd cmd = {0};
nob_cmd_append(&cmd, "cc", "-Wall", "-Wextra", "-o", BUILD_FOLDER "kernel", SRC_FOLDER "kernel.c");
nob_cmd_append(&cmd, "i686-elf-as", "-o", BUILD_FOLDER "boot.o", SRC_FOLDER "boot.s");
if (!nob_cmd_run(&cmd))
return 1;
nob_cmd_append(&cmd, "i686-elf-gcc", "-Wall", "-Wextra", "-o", BUILD_FOLDER "kernel", SRC_FOLDER "kernel.c");
if (!nob_cmd_run(&cmd))
return 1;
+10
View File
@@ -0,0 +1,10 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
nativeBuildInputs =
with pkgs; [
pkgsCross.i686-embedded.buildPackages.gcc
pkgsCross.i686-embedded.buildPackages.binutils
gdb
];
}
+34
View File
@@ -0,0 +1,34 @@
/* Multiboot header */
.set ALIGN, 1<<0
.set MEMINFO, 1<<1
.set FLAGS, ALIGN | MEMINFO
.set MAGIC, 0x1BADB002
.set CHECKSUM, -(MAGIC + FLAGS)
.section .multiboot
.align 4
.long MAGIC
.long FLAGS
.long CHECKSUM
.section .bss
.align 16
stack_bottom:
.skip 16384 /* 16 KiB */
stack_top:
.section .text
.global _start
.type _start, @function
_start:
mov $stack_top, %esp
/* Initialize processor state here */
call kernel_main
cli /* Disable interrupts */
1: hlt /* Waits for an interrupt */
jmp 1b /* Jump in case an interrupt actually arrives */
.size _start, . - _start
View File