forked from evalynOS/evalynOS
A WIP 64 Bit Operating System
- C 94.4%
- Shell 2.6%
- Makefile 1.8%
- Assembly 0.8%
- Python 0.4%
ISO file is generated and works on BIOS machines partly aswell sleep() now properly works and an idle thread has been added |
||
|---|---|---|
| deps | ||
| src | ||
| .clangd | ||
| .gitignore | ||
| .gitmodules | ||
| GNUmakefile | ||
| LICENCE.TXT | ||
| README.MD | ||
EvalynOS
A W.I.P 64 Bit OS Kernel
Compiling & Running
You will need to install the following arch packages to compile (Non inclusive, More testing needs to be done)
- base-devel
- python3
- qemu-desktop
- edk2-ovmf
- limine
- mason
- ninja
- Dependancies for GCC & Binutils
Run the script in /src/libc/build-libc.sh to build libc
Delete the generated dot files to have the script recompile things if needed.
Add /src/libc/toolchain/usr/bin/ to your path aswell for things to compile right
Compile with make
Run and compile with make run
Run and compile and generate symbols (Compiles twice) with make debug
Compile Flags
-DMUTE_KERNEL_PANIC: Disables the 1khz tone played on a kernel panic for when doing active work on the kernel
Add these flags to the GNUmakefile CFLAGS section
Real Hardware
This kernel is designed to be able to run on REAL hardware if it meets the following requirements
- x86-64 CPU
- 512MB Memory
- A 1280x720 or higher monitor (1920x1080 recommended)
- A PS/2 keyboard
- A PC speaker
Flash the evalynOS.iso file to a usb with a command such as dd if=./evalynOS.iso of=/dev/{USB_STICK} and then it can be booted om any system.
Kernel Mode Shell Commands
TEST: Prints a test messageCREDITS: Prints credits.txtCLEAR: Clears the terminal (ALIAS:CLS)MMAP: Prints the memory map provided by the bootloaderSMASH: Smashes the stack to test stack smashing protectionPANIC: Causes a kernel panicFAULT: Causes a Page Fault to panic with extended infoBADAPPLE: Plays the Bad Apple demo inside userspaceDOOM: Starts doom in userspace