# 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. # Commands - CAT : outputs the contents of the file. - LS: outputs a list of files on the system . - CLEAR: clears the screen. - REBOOT: reboots the system, this can also be done with [esc]. - BAS : runs a basic script. # 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. # BASIC development Please refer to the [MikeOS BASIC documentation](https://mikeos.sourceforge.net/handbook-appdev-basic.html)
docs on writing BASIC code. In order to create new
files, place them in the /data/ directory, note the file
names are limited to 11 characters due to FAT12 limitations
(8 for the name and 3 for the extension).