├── .cargo └── config.toml ├── .github └── workflows │ └── check.yml ├── .gitignore ├── .vscode └── settings.json ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── crates └── libxernel │ ├── Cargo.toml │ └── src │ ├── boot.rs │ ├── collections │ ├── mod.rs │ └── ringbuffer.rs │ ├── crypto │ ├── csprng.rs │ ├── fortuna.rs │ ├── mod.rs │ └── primality.rs │ ├── ipl.rs │ ├── lib.rs │ ├── on_drop.rs │ ├── sync │ ├── mod.rs │ ├── once.rs │ ├── rwlock.rs │ ├── spin.rs │ └── spinirq.rs │ └── syscall.rs ├── gdb.sh ├── kernel ├── .gitignore ├── Cargo.toml ├── limine.conf ├── src │ ├── acpi │ │ ├── hpet.rs │ │ └── mod.rs │ ├── allocator │ │ ├── buddy.rs │ │ ├── mod.rs │ │ └── unit.rs │ ├── arch │ │ ├── amd64 │ │ │ ├── apic.rs │ │ │ ├── cpuid.rs │ │ │ ├── gdt.rs │ │ │ ├── interrupts │ │ │ │ ├── idt.rs │ │ │ │ └── mod.rs │ │ │ ├── ioapic.rs │ │ │ ├── lapic.rs │ │ │ ├── mod.rs │ │ │ ├── ports.rs │ │ │ ├── switch.S │ │ │ └── tsc.rs │ │ └── mod.rs │ ├── cpu.rs │ ├── dpc.rs │ ├── drivers │ │ ├── mod.rs │ │ └── ps2 │ │ │ ├── keyboard.rs │ │ │ └── mod.rs │ ├── framebuffer │ │ ├── font.rs │ │ └── mod.rs │ ├── fs │ │ ├── file.rs │ │ ├── initramfs.rs │ │ ├── mod.rs │ │ ├── mount.rs │ │ ├── pathbuf.rs │ │ ├── tmpfs.rs │ │ ├── vfs.rs │ │ ├── vfs_syscalls.rs │ │ └── vnode.rs │ ├── logger.rs │ ├── main.rs │ ├── mem │ │ ├── frame.rs │ │ ├── heap.rs │ │ ├── mmap.rs │ │ ├── mod.rs │ │ ├── paging.rs │ │ └── vm.rs │ ├── sched │ │ ├── context.rs │ │ ├── mod.rs │ │ ├── process.rs │ │ ├── scheduler.rs │ │ └── thread.rs │ ├── syscall │ │ └── mod.rs │ ├── timer │ │ ├── mod.rs │ │ ├── timer_event.rs │ │ └── timer_queue.rs │ ├── userland.rs │ ├── utils │ │ ├── backtrace.rs │ │ ├── defer.rs │ │ ├── limine_module.rs │ │ ├── mod.rs │ │ └── rtc.rs │ └── writer.rs └── uefi-edk2 │ ├── License.txt │ ├── OVMF.fd │ └── OvmfPkg.License.txt ├── logo.bmp ├── rust-toolchain ├── rustfmt.toml ├── status_quo.png └── userland └── init ├── Cargo.toml └── src └── main.rs /.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/.cargo/config.toml -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/.github/workflows/check.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/README.md -------------------------------------------------------------------------------- /crates/libxernel/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/Cargo.toml -------------------------------------------------------------------------------- /crates/libxernel/src/boot.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/boot.rs -------------------------------------------------------------------------------- /crates/libxernel/src/collections/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod ringbuffer; 2 | -------------------------------------------------------------------------------- /crates/libxernel/src/collections/ringbuffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/collections/ringbuffer.rs -------------------------------------------------------------------------------- /crates/libxernel/src/crypto/csprng.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/crypto/csprng.rs -------------------------------------------------------------------------------- /crates/libxernel/src/crypto/fortuna.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /crates/libxernel/src/crypto/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod csprng; 2 | -------------------------------------------------------------------------------- /crates/libxernel/src/crypto/primality.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /crates/libxernel/src/ipl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/ipl.rs -------------------------------------------------------------------------------- /crates/libxernel/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/lib.rs -------------------------------------------------------------------------------- /crates/libxernel/src/on_drop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/on_drop.rs -------------------------------------------------------------------------------- /crates/libxernel/src/sync/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/sync/mod.rs -------------------------------------------------------------------------------- /crates/libxernel/src/sync/once.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/sync/once.rs -------------------------------------------------------------------------------- /crates/libxernel/src/sync/rwlock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/sync/rwlock.rs -------------------------------------------------------------------------------- /crates/libxernel/src/sync/spin.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/sync/spin.rs -------------------------------------------------------------------------------- /crates/libxernel/src/sync/spinirq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/sync/spinirq.rs -------------------------------------------------------------------------------- /crates/libxernel/src/syscall.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/crates/libxernel/src/syscall.rs -------------------------------------------------------------------------------- /gdb.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/gdb.sh -------------------------------------------------------------------------------- /kernel/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/.gitignore -------------------------------------------------------------------------------- /kernel/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/Cargo.toml -------------------------------------------------------------------------------- /kernel/limine.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/limine.conf -------------------------------------------------------------------------------- /kernel/src/acpi/hpet.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/acpi/hpet.rs -------------------------------------------------------------------------------- /kernel/src/acpi/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/acpi/mod.rs -------------------------------------------------------------------------------- /kernel/src/allocator/buddy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/allocator/buddy.rs -------------------------------------------------------------------------------- /kernel/src/allocator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/allocator/mod.rs -------------------------------------------------------------------------------- /kernel/src/allocator/unit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/allocator/unit.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/apic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/apic.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/cpuid.rs: -------------------------------------------------------------------------------- 1 | pub enum CpuFeatures {} 2 | -------------------------------------------------------------------------------- /kernel/src/arch/amd64/gdt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/gdt.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/interrupts/idt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/interrupts/idt.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/interrupts/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/interrupts/mod.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/ioapic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/ioapic.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/lapic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/lapic.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/mod.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/ports.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/ports.rs -------------------------------------------------------------------------------- /kernel/src/arch/amd64/switch.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/switch.S -------------------------------------------------------------------------------- /kernel/src/arch/amd64/tsc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/arch/amd64/tsc.rs -------------------------------------------------------------------------------- /kernel/src/arch/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod amd64; 2 | -------------------------------------------------------------------------------- /kernel/src/cpu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/cpu.rs -------------------------------------------------------------------------------- /kernel/src/dpc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/dpc.rs -------------------------------------------------------------------------------- /kernel/src/drivers/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod ps2; 2 | -------------------------------------------------------------------------------- /kernel/src/drivers/ps2/keyboard.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/drivers/ps2/keyboard.rs -------------------------------------------------------------------------------- /kernel/src/drivers/ps2/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod keyboard; 2 | -------------------------------------------------------------------------------- /kernel/src/framebuffer/font.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/framebuffer/font.rs -------------------------------------------------------------------------------- /kernel/src/framebuffer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/framebuffer/mod.rs -------------------------------------------------------------------------------- /kernel/src/fs/file.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/file.rs -------------------------------------------------------------------------------- /kernel/src/fs/initramfs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/initramfs.rs -------------------------------------------------------------------------------- /kernel/src/fs/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/mod.rs -------------------------------------------------------------------------------- /kernel/src/fs/mount.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/mount.rs -------------------------------------------------------------------------------- /kernel/src/fs/pathbuf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/pathbuf.rs -------------------------------------------------------------------------------- /kernel/src/fs/tmpfs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/tmpfs.rs -------------------------------------------------------------------------------- /kernel/src/fs/vfs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/vfs.rs -------------------------------------------------------------------------------- /kernel/src/fs/vfs_syscalls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/vfs_syscalls.rs -------------------------------------------------------------------------------- /kernel/src/fs/vnode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/fs/vnode.rs -------------------------------------------------------------------------------- /kernel/src/logger.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/logger.rs -------------------------------------------------------------------------------- /kernel/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/main.rs -------------------------------------------------------------------------------- /kernel/src/mem/frame.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/frame.rs -------------------------------------------------------------------------------- /kernel/src/mem/heap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/heap.rs -------------------------------------------------------------------------------- /kernel/src/mem/mmap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/mmap.rs -------------------------------------------------------------------------------- /kernel/src/mem/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/mod.rs -------------------------------------------------------------------------------- /kernel/src/mem/paging.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/paging.rs -------------------------------------------------------------------------------- /kernel/src/mem/vm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/mem/vm.rs -------------------------------------------------------------------------------- /kernel/src/sched/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/sched/context.rs -------------------------------------------------------------------------------- /kernel/src/sched/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/sched/mod.rs -------------------------------------------------------------------------------- /kernel/src/sched/process.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/sched/process.rs -------------------------------------------------------------------------------- /kernel/src/sched/scheduler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/sched/scheduler.rs -------------------------------------------------------------------------------- /kernel/src/sched/thread.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/sched/thread.rs -------------------------------------------------------------------------------- /kernel/src/syscall/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/syscall/mod.rs -------------------------------------------------------------------------------- /kernel/src/timer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/timer/mod.rs -------------------------------------------------------------------------------- /kernel/src/timer/timer_event.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/timer/timer_event.rs -------------------------------------------------------------------------------- /kernel/src/timer/timer_queue.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/timer/timer_queue.rs -------------------------------------------------------------------------------- /kernel/src/userland.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/userland.rs -------------------------------------------------------------------------------- /kernel/src/utils/backtrace.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/utils/backtrace.rs -------------------------------------------------------------------------------- /kernel/src/utils/defer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/utils/defer.rs -------------------------------------------------------------------------------- /kernel/src/utils/limine_module.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/utils/limine_module.rs -------------------------------------------------------------------------------- /kernel/src/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/utils/mod.rs -------------------------------------------------------------------------------- /kernel/src/utils/rtc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/utils/rtc.rs -------------------------------------------------------------------------------- /kernel/src/writer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/src/writer.rs -------------------------------------------------------------------------------- /kernel/uefi-edk2/License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/uefi-edk2/License.txt -------------------------------------------------------------------------------- /kernel/uefi-edk2/OVMF.fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/uefi-edk2/OVMF.fd -------------------------------------------------------------------------------- /kernel/uefi-edk2/OvmfPkg.License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/kernel/uefi-edk2/OvmfPkg.License.txt -------------------------------------------------------------------------------- /logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/logo.bmp -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | nightly 2 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 120 -------------------------------------------------------------------------------- /status_quo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/status_quo.png -------------------------------------------------------------------------------- /userland/init/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/userland/init/Cargo.toml -------------------------------------------------------------------------------- /userland/init/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anubis-rs/xernel/HEAD/userland/init/src/main.rs --------------------------------------------------------------------------------