Commit graph

45 commits

Author SHA1 Message Date
919fba989e mm: add page-granular kmalloc/kfree heap over the PMM 2026-10-07 16:29:34 +02:00
Pierre-Emmanuel Gob.
5077695c70
Merge pull request #7 from Plexi09/feature/pmm-e820
E820 memory map + bitmap PMM + timestamped klog
2026-10-05 18:19:51 +02:00
78f71e8d14 build: compile klog.o and pmm.o 2026-10-05 18:12:36 +02:00
60d06afc58 kmain: switch to klog and init PMM with stats 2026-10-05 18:12:30 +02:00
b0e7856e3f core: add timestamped klog logger on VGA console 2026-10-05 18:12:19 +02:00
d14465458d mm: add bitmap PMM over E820 usable frames 2026-10-05 18:12:11 +02:00
36fa8d7655 link: add __kernel_start/__kernel_end symbols 2026-10-05 18:12:04 +02:00
51b654d5e3 entry: copy staged E820 map into .bss memmap_* 2026-10-05 18:11:57 +02:00
2a7e411175 boot: query E820 map and stage at 0x5000/0x5020 2026-10-05 18:11:47 +02:00
Pierre-Emmanuel Gob.
9ad501d068
Merge pull request #6 from Plexi09/fix/issue-3-cursor-position
fix: cursor position says fixed in the console (#3)
2026-09-19 23:24:27 +02:00
Pierre-Emmanuel Gob.
c0473e2709
Refine comments in console.c 2026-09-19 23:22:57 +02:00
d84131de74 Merge origin/main into fix/issue-3-cursor-position 2026-09-19 23:21:16 +02:00
75c2b200d8 fix: cursor position says fixed in the console (#3) 2026-09-19 23:14:18 +02:00
Pierre-Emmanuel Gob.
dcb393f307
Merge pull request #5 from Plexi09/refactor/clean-code
docs: removed unceccessary comments
2026-09-19 23:10:35 +02:00
650266b3af docs: removed unceccessary comments 2026-09-19 23:07:45 +02:00
591c57c8f8 Updated documentation 2026-09-19 22:44:59 +02:00
Pierre-Emmanuel Gob.
b010c43dab
Include AI usage section in README 2026-09-18 21:15:18 +02:00
d74cd9edd1 docs: Updated README.md 2026-09-18 21:08:49 +02:00
Pierre-Emmanuel Gob.
3868884e3c
Merge pull request #4 from Plexi09/feature/full-interrupts-time-input
io.h (inb/outb/io_wait), 8259 PIC remap IRQ 0–15 → vectors 32–47, pic_eoi/mask/unmask, 16 IRQ gates + irq_dispatch/irq_register_handler in isr.asm/idt.c. Exceptions 0–31 untouched.

8254 PIT ch0 mode 3 @100hz on IRQ0, volatile tick counter, pit_sleep hlt-loop.

COM1 38400 8N1 polling log (serial_ok open-bus check), PS/2 set-1 IRQ1 driver (128-entry ring, Shift/Caps XOR, E0/release handling, \b/\n passthrough).

init order idt_init → pic_remap → idt_install_irqs → serial → pit → keyboard → unmask(0,1) → sti, then hlt loop with uptime S.Ts ~1/s + keyboard echo (VGA + serial mirror). \b erases via console_putchar.
2026-09-18 21:04:34 +02:00
5c93703cec fix: backspace behavior 2026-09-18 20:38:45 +02:00
06d63769ad Updated Makefile 2026-09-18 20:38:22 +02:00
0727a2c1d4 fix: backspace behavior 2026-09-18 20:38:04 +02:00
a60338054a Added missing vectors 2026-09-18 20:32:05 +02:00
830613ccb6 Added missing vectors 2026-09-18 20:31:46 +02:00
29c79f20c2 Nadir x86 port I/O primitives 2026-09-18 20:30:26 +02:00
5d5f89d08e Nadir PS/2 keyboard driver 2026-09-18 20:29:30 +02:00
b1b78bb5b9 Nadir 8259 PIC driver 2026-09-18 20:26:10 +02:00
6ee1900c1a Nadir 8254 PIT timer driver 2026-09-18 20:21:25 +02:00
47e83cf795 Nadir serial COM1 polling driver 2026-09-18 20:17:35 +02:00
Pierre-Emmanuel Gob.
7ee953925a
Merge pull request #2 from Plexi09/feature/idt-base
Installs an exceptions-only IDT base: 32 CPU-exception gates (interrupt gates, DPL 0, selector 0x18) with NASM stubs + a C exception_handler that prints vector/error/RIP/CS/RFLAGS and halts. kmain calls idt_init() early, so faults print diagnostics instead of triple-faulting. PIC remap + IRQs are intentionally left for a follow-up
2026-09-18 12:17:01 +02:00
5df4353d40 Wire IDT objects into Makefile 2026-09-18 12:05:21 +02:00
13f38eb739 IDT base: 32 CPU-exception gates + fault printer 2026-09-18 12:04:19 +02:00
d4b9c8763d Include idt_init 2026-09-18 12:03:06 +02:00
e95bdb55cd exception stubs 2026-09-18 12:02:27 +02:00
a8d11e5a35 Wrote Nadir interrupt IDT + CPU exception entry points 2026-09-18 12:01:24 +02:00
c002e8b250 Removed uneccesary documentation 2026-09-18 11:17:27 +02:00
577d28cd2e Added documentation to console.c 2026-09-17 22:44:16 +02:00
Pierre-Emmanuel Gob.
8c46ac48d9
Merge pull request #1 from Plexi09/boot-to-c
Makes the main bootloader functional. Instead of a real mode "hello world" sector, the boot chain now loads the kernel from disk, switches through 32-bi protected mode into 64-bit long mode, and runs C code (kmain) that prints to the VGA console and halts. Old root boot.asm removed and replaced by kernel/arch/x86_64/boot.asm.
2026-09-17 22:25:08 +02:00
2b81747922 Align CI and docs with nadir.img artifact name 2026-09-17 22:20:34 +02:00
7d736cd76d Boot to C in 64-bit long mode 2026-09-17 22:07:47 +02:00
53f1295927 Added .github 2026-09-17 21:26:55 +02:00
7f91a9586a Added contributing reglementation 2026-09-17 21:14:45 +02:00
7990a5396b Changed the boot message 2026-09-17 21:14:23 +02:00
398f0b9881 Added license details 2026-09-17 21:00:30 +02:00
8b9c578e8f Initial commit 2026-09-17 20:53:27 +02:00