From 8efda574e0fa1aba6bcfb8fc7f396b4b0d40c2a2 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 6 May 2025 16:47:09 -0400 Subject: update readmes --- README.md | 19 +++++++++++++++++++ docs/README.md | 12 +++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f35833..469ac15 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ Comus is a kernel! +## Dependencies + +To build comus, a c11 compiler is required, along with the gnu assembler +and linker. + +To build the boot iso for qemu, `grub-mkrescue` is needed from grub. + ## Build Run `make build` to build the kernel. @@ -16,6 +23,18 @@ Run `make qemu-gdb` to build and run in qemu with gdb debugging. Run `make gdb` to start the gdb debugger. +Run `make fmt` to format the source code. + +## Nix + +For development on NixOS run `nix develop` in the source directory. + +## UEFI + +Add `UEFI=1` as an argument to the makefile to build and run in UEFI. + +Requires the nix flake. + ## Docs See `docs/` diff --git a/docs/README.md b/docs/README.md index 6cf4375..3c4f052 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,6 +20,12 @@ amd64 Multiboot (Legacy / UEFI) -## Moduels - -See MODULES.md +## Startup + +1. Multiboot loads kernel into either `_start` or `_start_efi` + - Kernel identity maps during legacy boot (`_start`) +2. Kernel loads GDT, and far jobs into `main` +3. `main` loads the modules `cpu`, `mboot`, `memory`, `drivers`, `fs`, `pcb` in order. + - See MODULES.md +4. Kernel loads init process (`bin/init`) +5. Init loads user programs (sendoff!) -- cgit v1.2.3-freya