Lemoncake

About

Lemoncake is an OS written in Rust, and was created by SniverDaBest.
It was originally called Lemonade, but because of changes in the Rust programming language, I had to restart the entire project.
The OS uses a monolitic kernel design. It tries to have things like drivers, and filesystem management done in the kernel.
It's licensed under the BSD 2-clause license, to let anyone possibly fork, and contribute. Maybe even make their own OS based off of this one!

Contact

If you need to contact me, my email is 󰇮 sniverdabest@proton.me, and my Discord is  sniverdabest.

Help

Running the VM

If you're having trouble running Lemoncake in a VM (or don't know how to) then follow these steps.

Install Rust
You can do so by going to the official website's download page and following the instructions for your specific operating system.
IMPORTANT: If you're on Linux, do NOT use your distro's package manager to install Rust. It will most likely not work!
Clone the GitHub repository
Run git clone https://github.com/SniverDaBest/lemoncake && cd lemoncake in your commandline.
TIP: If you don't want to install git, you can download it from GitHub's website.
Run the utility script
Type in (or copy and paste) to your terminal python3 utils.py
If you don't have Python installed, you will need to install it. Linux users should already have it installed, and Windows users can install it from the official website.
Compile and/or Run the OS with Qemu
To compile the OS and run it with Qemu, you can type in cargo run. However, if you just want to compile the disk image, you can run cargo build.
TIP: The built image is copied to target/uefi.img

Compiling for BIOS

WARNING: Using the BIOS version of Lemoncake may not work correctly. UEFI support is more important to focus on, since BIOS is legacy, and very few modern computers don't have UEFI.

Follow instructions 1-3 of the Running the VM section. Once you complete them, open the src/main.rs file with a text editor. (TIP: This is not to be confused with kernel/src/main.rs)
Then, modify line 7 from let uefi = true; to let uefi = false;
Now, complete step four of the Running the VM section. You have now ran Lemoncake as BIOS.

Optional Features

As of 8/2/25, Lemoncake has three optional features.

serial-faces
When the system panics or faults, a sad face will appear through the serial terminal. This is togglable, as it may not render in every single terminal, and may lead to confusion.
A picture of the sad face appearing when the OS panics or faults.
status-faces
When something is logged, it is shown as one of following by default: (o_o) [INFO ]: info, (0_0) [WARN ]: warning, (X_X) [ERROR]: error, or (-_-) [TODO ]: todo. You can disable the emoticons by disabling this feature.
clear-on-scroll
Instead of scrolling down when there is too much text on the screen to fit, it will clear the entire TTY.
NOTE: This feature is NOT enabled by default!

Known bugs

TTY won't clear on real hardware.
For some reason, when testing on real hardware, the TTY didn't seem to clear when scrolling, or with the clear-on-scroll feature enabled.