Kernel project
My first os built from scratch
Contributors are welcome
LICENSE
TODO
- GDT
- IDT
- PS2 Keyboard
- PS2 Mouse
- PIT
- RTC
- Initrd
- Drawing on framebuffer
- Serial debugging
- VFS
- PMM
- VMM
- Heap
- ACPI
- Shutdown
- Reboot
- PCI
- AHCI
- Real filesystems (ext2, fat...)
- Multithreading
- TSS
- Userspace
- System calls
- POSIX
- ELF execution
- Port libc (Newlib)
- Port apps
- FUSE
- Sound
- Network
- USB
- USB Keyboard
- USB Mouse
- GUI (Window manager)
Building And Running
Make sure you have following programs installed:
- GCC
- G++
- Make
- Nasm
- Qemu x86-64
- Xorriso
- Wget
- Tar
-
Download the toolchain from releases page
-
Extract it in /opt directory with:
cd /opt && sudo tar xpJf <Downloaded toolchain.tar.xz>
(bin directory should be /opt/x86_64-pc-elf/bin/) -
Add this line to your ~/.bashrc:
export PATH="/opt/x86_64-pc-elf/bin:$PATH"
-
Run
source ~/.bashrc
-
Clone this repo with:
git clone --single-branch --branch master https://github.com/ilobilo/kernel
-
Go to kernel directory and run:
make
For UEFI
make bios
For BIOS
This command will download limine installer, compile it, build the kernel, create iso file and run it in qemu.
Discord server
Resources used:
- Printf: https://github.com/eyalroz/printf
- Osdev wiki: https://wiki.osdev.org/
- Osdev discord server: https://discord.gg/RnCtsqD
- PonchoOS: https://github.com/Absurdponcho/PonchoOS
- Poncho discord server: https://discord.gg/N2Dpwpu4qT
- FaruOS (colours): https://github.com/leapofazzam123/faruos
- And of course Google