CheeseOS is a minimalistic operating system built from scratch in Assembly language. It provides basic functionality such as a command prompt, file system simulation, keyboard input handling, and mouse support. CheeseOS is designed for educational purposes to understand the fundamentals of operating system development.
- Bootloader: Loads the kernel from disk and initiates the OS.
- Kernel: Handles system initialization, keyboard and mouse input, command interpretation, and file system operations.
- File System Simulation: Simulates a basic file system structure with support for reading and writing files.
- Command Prompt: Provides a simple command prompt interface for user interaction.
- Mouse Support: Adds basic mouse input handling with a visible cursor.
To run CheeseOS on a virtual machine, follow these steps:
-
Clone the Repository: Clone the CheeseOS repository to your local machine.
git clone github.com/CallenDV/CheeseOS
-
Build the Bootloader: Assemble the bootloader code using NASM.
nasm -f bin bootloader.asm -o bootloader.bin
-
Build the Kernel: Assemble the kernel code using NASM.
nasm -f bin kernel.asm -o kernel.bin
-
Build the Keyboard Handler: Assemble the keyboard handler code using NASM.
nasm -f bin keyboard.asm -o keyboard.bin
-
Build the Mouse Handler: Assemble the mouse handler code using NASM.
nasm -f bin mouse.asm -o mouse.bin
-
Create Disk Image: Create a disk image containing the bootloader, kernel, keyboard, and mouse handlers.
cat bootloader.bin kernel.bin keyboard.bin mouse.bin > os-image.img
-
Run in Virtual Machine: Create a virtual machine using software like VirtualBox or QEMU and boot the OS image (
os-image.img
) as the boot disk.
Once CheeseOS is running, you will be presented with a simple command prompt. Here are some basic commands you can try:
-
echo : Echoes the provided message to the screen.
echo Hello, World!
-
read : Reads the content of the specified file from the simulated file system.
read File1
-
write : Writes to the specified file in the simulated file system.
write File3
-
exit: Exits the operating system and shuts down the virtual machine.
- Basic bootloader and kernel loading
- Command prompt with basic commands
- Keyboard input handling
- Basic file system simulation
- Mouse input handling with a visible cursor
- Enhancing file system capabilities
- Expanding command set
- Improving mouse functionality
- Bug fixes and optimizations
Contributions to CheeseOS are welcome! If you find any bugs or want to suggest improvements, feel free to open an issue or create a pull request.
This project is licensed under the Apache License. See the LICENSE file for details.