├── .env ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── fusion.nimble ├── justfile ├── nim.cfg ├── ovmf ├── OVMF_CODE.fd └── OVMF_VARS.fd ├── screenshots ├── bootloader.png ├── graphics.png └── kernel-booting.png └── src ├── boot ├── bootx64.nim ├── libc.nim ├── nim.cfg ├── uefi.nim └── vmm.nim ├── common ├── bootinfo.nim ├── debugcon.nim ├── guid.nim ├── libc.nim ├── malloc.nim ├── pagetables.nim └── serde.nim ├── include ├── stdio.c ├── stdio.h └── stdlib.h ├── kernel ├── acpi.nim ├── channels.nim ├── con │ ├── console.nim │ ├── font.nim │ └── framebuffer.nim ├── condvars.nim ├── config.nims ├── cpu.nim ├── ctxswitch.nim ├── devmgr.nim ├── drivers │ ├── bga.nim │ ├── kbd.nim │ ├── pci.nim │ └── pit.nim ├── elf.nim ├── elfloader.nim ├── freelist.nim ├── gdt.nim ├── gfxsrv.nim ├── idt.nim ├── ioapic.nim ├── kernel.ld ├── kernel.nimble ├── lapic.nim ├── locks.nim ├── main.nim ├── nim.cfg ├── pit.nim ├── pmm.nim ├── ports.nim ├── prelude.nim ├── queues.nim ├── sched.nim ├── start.nim ├── stopwatch.nim ├── syscalls.nim ├── task.nim ├── taskmgr.nim ├── timer.nim ├── util.nim ├── vmdefs.nim ├── vmmgr.nim ├── vmobject.nim ├── vmpageflt.nim ├── vmpagetbl.nim └── vmspace.nim ├── nimpatches ├── heapqueue.nim └── osalloc.nim ├── syslib ├── channels.nim ├── io.nim ├── os.nim ├── startup.nim └── syscalldef.nim └── user ├── nim.cfg ├── shell.nim └── utask.nim /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/.env -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | build/ 3 | diskimg/ 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/README.md -------------------------------------------------------------------------------- /fusion.nimble: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/fusion.nimble -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/justfile -------------------------------------------------------------------------------- /nim.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/nim.cfg -------------------------------------------------------------------------------- /ovmf/OVMF_CODE.fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/ovmf/OVMF_CODE.fd -------------------------------------------------------------------------------- /ovmf/OVMF_VARS.fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/ovmf/OVMF_VARS.fd -------------------------------------------------------------------------------- /screenshots/bootloader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/screenshots/bootloader.png -------------------------------------------------------------------------------- /screenshots/graphics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/screenshots/graphics.png -------------------------------------------------------------------------------- /screenshots/kernel-booting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/screenshots/kernel-booting.png -------------------------------------------------------------------------------- /src/boot/bootx64.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/boot/bootx64.nim -------------------------------------------------------------------------------- /src/boot/libc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/boot/libc.nim -------------------------------------------------------------------------------- /src/boot/nim.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/boot/nim.cfg -------------------------------------------------------------------------------- /src/boot/uefi.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/boot/uefi.nim -------------------------------------------------------------------------------- /src/boot/vmm.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/boot/vmm.nim -------------------------------------------------------------------------------- /src/common/bootinfo.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/bootinfo.nim -------------------------------------------------------------------------------- /src/common/debugcon.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/debugcon.nim -------------------------------------------------------------------------------- /src/common/guid.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/guid.nim -------------------------------------------------------------------------------- /src/common/libc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/libc.nim -------------------------------------------------------------------------------- /src/common/malloc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/malloc.nim -------------------------------------------------------------------------------- /src/common/pagetables.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/pagetables.nim -------------------------------------------------------------------------------- /src/common/serde.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/common/serde.nim -------------------------------------------------------------------------------- /src/include/stdio.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/include/stdio.c -------------------------------------------------------------------------------- /src/include/stdio.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/include/stdio.h -------------------------------------------------------------------------------- /src/include/stdlib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/include/stdlib.h -------------------------------------------------------------------------------- /src/kernel/acpi.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/acpi.nim -------------------------------------------------------------------------------- /src/kernel/channels.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/channels.nim -------------------------------------------------------------------------------- /src/kernel/con/console.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/con/console.nim -------------------------------------------------------------------------------- /src/kernel/con/font.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/con/font.nim -------------------------------------------------------------------------------- /src/kernel/con/framebuffer.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/con/framebuffer.nim -------------------------------------------------------------------------------- /src/kernel/condvars.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/condvars.nim -------------------------------------------------------------------------------- /src/kernel/config.nims: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/config.nims -------------------------------------------------------------------------------- /src/kernel/cpu.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/cpu.nim -------------------------------------------------------------------------------- /src/kernel/ctxswitch.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/ctxswitch.nim -------------------------------------------------------------------------------- /src/kernel/devmgr.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/devmgr.nim -------------------------------------------------------------------------------- /src/kernel/drivers/bga.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/drivers/bga.nim -------------------------------------------------------------------------------- /src/kernel/drivers/kbd.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/drivers/kbd.nim -------------------------------------------------------------------------------- /src/kernel/drivers/pci.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/drivers/pci.nim -------------------------------------------------------------------------------- /src/kernel/drivers/pit.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/drivers/pit.nim -------------------------------------------------------------------------------- /src/kernel/elf.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/elf.nim -------------------------------------------------------------------------------- /src/kernel/elfloader.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/elfloader.nim -------------------------------------------------------------------------------- /src/kernel/freelist.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/freelist.nim -------------------------------------------------------------------------------- /src/kernel/gdt.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/gdt.nim -------------------------------------------------------------------------------- /src/kernel/gfxsrv.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/gfxsrv.nim -------------------------------------------------------------------------------- /src/kernel/idt.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/idt.nim -------------------------------------------------------------------------------- /src/kernel/ioapic.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/ioapic.nim -------------------------------------------------------------------------------- /src/kernel/kernel.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/kernel.ld -------------------------------------------------------------------------------- /src/kernel/kernel.nimble: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/kernel.nimble -------------------------------------------------------------------------------- /src/kernel/lapic.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/lapic.nim -------------------------------------------------------------------------------- /src/kernel/locks.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/locks.nim -------------------------------------------------------------------------------- /src/kernel/main.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/main.nim -------------------------------------------------------------------------------- /src/kernel/nim.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/nim.cfg -------------------------------------------------------------------------------- /src/kernel/pit.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/pit.nim -------------------------------------------------------------------------------- /src/kernel/pmm.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/pmm.nim -------------------------------------------------------------------------------- /src/kernel/ports.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/ports.nim -------------------------------------------------------------------------------- /src/kernel/prelude.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/prelude.nim -------------------------------------------------------------------------------- /src/kernel/queues.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/queues.nim -------------------------------------------------------------------------------- /src/kernel/sched.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/sched.nim -------------------------------------------------------------------------------- /src/kernel/start.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/start.nim -------------------------------------------------------------------------------- /src/kernel/stopwatch.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/stopwatch.nim -------------------------------------------------------------------------------- /src/kernel/syscalls.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/syscalls.nim -------------------------------------------------------------------------------- /src/kernel/task.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/task.nim -------------------------------------------------------------------------------- /src/kernel/taskmgr.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/taskmgr.nim -------------------------------------------------------------------------------- /src/kernel/timer.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/timer.nim -------------------------------------------------------------------------------- /src/kernel/util.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/util.nim -------------------------------------------------------------------------------- /src/kernel/vmdefs.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmdefs.nim -------------------------------------------------------------------------------- /src/kernel/vmmgr.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmmgr.nim -------------------------------------------------------------------------------- /src/kernel/vmobject.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmobject.nim -------------------------------------------------------------------------------- /src/kernel/vmpageflt.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmpageflt.nim -------------------------------------------------------------------------------- /src/kernel/vmpagetbl.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmpagetbl.nim -------------------------------------------------------------------------------- /src/kernel/vmspace.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/kernel/vmspace.nim -------------------------------------------------------------------------------- /src/nimpatches/heapqueue.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/nimpatches/heapqueue.nim -------------------------------------------------------------------------------- /src/nimpatches/osalloc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/nimpatches/osalloc.nim -------------------------------------------------------------------------------- /src/syslib/channels.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/syslib/channels.nim -------------------------------------------------------------------------------- /src/syslib/io.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/syslib/io.nim -------------------------------------------------------------------------------- /src/syslib/os.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/syslib/os.nim -------------------------------------------------------------------------------- /src/syslib/startup.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/syslib/startup.nim -------------------------------------------------------------------------------- /src/syslib/syscalldef.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/syslib/syscalldef.nim -------------------------------------------------------------------------------- /src/user/nim.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/user/nim.cfg -------------------------------------------------------------------------------- /src/user/shell.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/user/shell.nim -------------------------------------------------------------------------------- /src/user/utask.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaledh/fusion/HEAD/src/user/utask.nim --------------------------------------------------------------------------------