diff --git a/README.md b/README.md
index 644c23e..d365b76 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,40 @@
-Kernel written in Assmebly
-I'm using a modified JazzOS Bootloader
-And the MikeOS BASIC Interpreter
+# What is this?
+This is a simple implementation of a computer kernel
+written in pure x86 assembly with features including
+- Read/Write disk operations
+- The ability to boot from the BIOS using the [JazzOS Bootloader](https://raw.githubusercontent.com/scprogramming/JazzOS/refs/heads/main/src/bootloader/boot.asm)
+- A modified [MikeOS BASIC interpreter](https://mikeos.sourceforge.net/handbook-appdev-basic.html)
+- A functional POSIX inspired CLI
+
+# What is it for?
+This project is aimed at people wanting to learn
+more about kernels and low level system functionality.
+In order to help with comprehension, there are a lot
+of inline comments descibing what each part does.
+
+# Running it
+In order to build this project on a Linux system run
+the following commands.
+```
+git clone https://git.javalsai.tuxcord.net/deadvey/crawos.git
+cd crawos
+sudo make
+```
+This will create a directory called 'disk_images' which
+contains optical and floppy images that can be ran in a
+virtual machine such as QEMU with
+```
+qemu-system-i386 -drive file=disk_images/crawos.img,if=floppy,format=raw
+```
+Or it can be burnt to a physical disk to be booted from
+hardware.
+
+# Development
+In order to run this project in testing mode you can use
+The 'test-linux.sh' bash script which will assemble and
+boot the virtual machine (QEMU) for testing purposes.
+```
+./test-linux.sh
+```
+This will dump the contents of memory in /dev/shm/qemu-ram
+To allow for easier debugging.