Influx is a x86_64 operation system based on a monolithic kernel.
- 32-bit bootstrap bootable using any multiboot-compliant bootloader (GRUB used)
- Protected mode (32-bit) to long mode (64-bit) + Setup of basic 64-bit paging
- SSE enable
- x86_64 ELF parser and loader (used for kernel executable)
- Multithreaded x86_64 kernel loaded by the bootstrap
- Memory Manager
- Driver Manager
- ATA, PCI, CMOS, PIT, BGA graphics, PS2-Keyboard Drivers
- Scheduler based round-robin scheduling (Full support for userland processes and kernel threads)
- Graphics console based on BGA graphics
- Interrupt and IRQ manager
- TTY manager
- VFS (with support for pipes)
- Read-write ext2 filesystem
- x86_64 ELF parser
- 35 syscalls conforming to Linux and POSIX specification
- Newlib C library with support for 35 syscalls
- Init process used to start userland processes
- Support for creating 64-bit userland processes including arguments and environment variables
- Bash support (WIP)
brew install almogh52/x86_64-elf-toolchain/x86_64-elf-gcc gcc qemu nasm
Compiling grub for macOS is available here. (Compile for target x86_64-elf)
./scripts/compile-binutils-gcc.sh
./scripts/compile-newlib.sh
./scripts/run-qemu.sh
./scripts/clean.sh
./scripts/debug-bootstrap.sh
./scripts/debug-kernel.sh