Compare commits
2 Commits
cfe570c531
...
7eea8d0ce1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7eea8d0ce1 | ||
|
|
249e02efe3 |
57
README.md
57
README.md
@@ -1,3 +1,54 @@
|
|||||||
Kernel written in Assmebly<br/>
|
# What is this?
|
||||||
I'm using a modified JazzOS Bootloader<br/>
|
This is a simple implementation of a computer kernel<br/>
|
||||||
And the MikeOS BASIC Interpreter<br/>
|
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<br/>
|
||||||
|
more about kernels and low level system functionality.<br/>
|
||||||
|
In order to help with comprehension, there are a lot<br/>
|
||||||
|
of inline comments descibing what each part does.
|
||||||
|
|
||||||
|
# Commands
|
||||||
|
- CAT <filename>: 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 <filename>: runs a basic script.
|
||||||
|
|
||||||
|
# Running it
|
||||||
|
In order to build this project on a Linux system run<br/>
|
||||||
|
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<br/>
|
||||||
|
contains optical and floppy images that can be ran in a<br/>
|
||||||
|
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<br/>
|
||||||
|
hardware.
|
||||||
|
|
||||||
|
# Development
|
||||||
|
In order to run this project in testing mode you can use<br/>
|
||||||
|
The 'test-linux.sh' bash script which will assemble and<br/>
|
||||||
|
boot the virtual machine (QEMU) for testing purposes.<br/>
|
||||||
|
```
|
||||||
|
./test-linux.sh
|
||||||
|
```
|
||||||
|
This will dump the contents of memory in /dev/shm/qemu-ram<br/>
|
||||||
|
To allow for easier debugging.
|
||||||
|
|
||||||
|
# BASIC development
|
||||||
|
Please refer to the [MikeOS BASIC documentation](https://mikeos.sourceforge.net/handbook-appdev-basic.html)<br/>
|
||||||
|
docs on writing BASIC code. In order to create new<br/>
|
||||||
|
files, place them in the /data/ directory, not the file<br/>
|
||||||
|
names are limited to 11 characters due to FAT12 limitations<br/>
|
||||||
|
(8 for the name and 3 for the extension).
|
||||||
|
|||||||
Reference in New Issue
Block a user