2.2 KiB
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
- A modified MikeOS BASIC interpreter
- 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.
![NOTE] The VM setup has only been tested on OpenSUSE and NixOS Linux,
please report any bugs.
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
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).