Pineapple is a work-in-progress Lua-based fantasy operating system for Raspberry Pi. It utilizes Circle and circle-stdlib to create a minimal bootable system. In other words, it runs "bare metal" and does not use Linux. Pineapple is inspired by and partially based on LUPOS.
Due to being a work-in-progress project, no stable builds will be provided for now. However, automated builds are provided for Pi 1 models, see the Actions tab for downloads.
I realize that this is a strange name for it. However, I don't consider this to be a true fantasy computer or console due to the fact that it runs on a real hardware platform. I also don't consider this to be a "real" operating system due to the fact that all of the low level details are taken care of by Circle, I am simply coupling the Lua interpreter to it. So, "fantasy OS" it is!
First, ensure you clone this repository with --recursive
in order to clone all of the required submodules. Then run the applicable commands below. If booting on a real Raspberry Pi, copy the contents of the root
folder to your SD card, along with the firmware files downloaded by the command below.
This has only been tested on a Raspberry Pi 1 B+. It should run on any model that Circle is compatible with, which at the time of writing is all models up to the Raspberry Pi 5, but I can not guarantee that.
To build Circle, circle-stdlib, and Pineapple:
./configure -r 1 # replace 1 with your Pi model, only needed for the first build
make libs # only needed for the first build
make
To download the needed firmware to boot on a real Raspberry Pi:
make -C circle-stdlib/libs/circle/boot/
To boot in QEMU: (note that you will need a patched build of QEMU, available here)
make qemu
This would not be possible without the work of Rene Stange (Circle), Stephan Mühlstrasser (circle-stdlib), philanc (Pure Lua Editor), et al. Thank you so much!
Due to the fact that this links with Circle and circle-stdlib, this project is licensed under the GPL-3.0 license. See the LICENSE file for details.