VU-Kernel
is a small kernel written in C.
The current target architecture is i386
(32 bit version of the x86 ISA).
Currently implemented features:
- Printing to the screen
- Getting keyboard input
- GDT and IDT are set up
- Paging
- Memory Management (allocation/deallocation)
- ATA Driver
- Start of a VFS, with support for FAT12
- Shell-like REPL called
Chell
A number of programs must be installed before VU-Kernel
can be run:
- make
- Version 4.1
- Used to easily compile and run the kernel
- gcc
- Version 7.3.0
- Used to compile the
.c
files
- nasm
- Version 2.13.02
- Use to compile
.nasm
files
- binutils
- Includes
ld
which links.o
files
- Includes
- qemu
- Version 2.11.1
- System Emulation, that runs the
VU-Kernel
image
Running VU-Kernel
is as simple as typing:
make qemu
This will create a bootable .iso
file, used by qemu
.
- kernel
- Builds the
VU-Kernel
binary, located atvu-kernel/kernel
- Builds the
- qemu
- Builds the
VU-Kernel
binary and runs it in qemu
- Builds the
- iso
- Builds a bootable iso image, with
VU-kernel
as the boot image
- Builds a bootable iso image, with
Chell
is a shell-like REPL.
The loop of Chell
is shown below:
Some commands include:
- ls - list the files located on the atteched ATA drive
- pci - print information about any connected PCI devices
- logo - print the
Chell
logo
- Bootstrapping
- Printing to the screen
- Reading from the keyboard
- Setting up the Global Descriptor Table
- Print Multiboot Information on startup
- Interrupt Handling
- Physical Memory
- Virtual Memory
- ATA Driver
- FAT12
- VFS