A simple POSIX-based operating system for 64-bit computers
Go to file
apio b09226b8ba
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
gol: Use the windowing system
2023-09-20 20:17:11 +02:00
.vscode libos: Document it entirely using Doxygen comments =D 2023-06-09 22:45:06 +02:00
apps gol: Use the windowing system 2023-09-20 20:17:11 +02:00
base taskbar: Add a button to open terminal instead of gclient 2023-09-20 07:05:59 +02:00
initrd kernel+apps+base+tools: Use Ext2 for the root partition file system 2023-07-10 13:05:06 +02:00
kernel kernel: Increase the OOM threshold to 4 MiB free 2023-09-20 19:58:26 +02:00
libc libc: Add pseudoterminal-related functions 2023-09-20 07:06:00 +02:00
libluna libluna: Add assignment operators to Buffer 2023-09-20 07:05:49 +02:00
libos libui+wind+libos: Move shared memory handling code to os::SharedMemory 2023-09-20 07:05:57 +02:00
libui libui: Allow specifying the color of Labels, and use that in about 2023-09-20 19:45:19 +02:00
ports ports: Port required libraries to build GCC 2023-08-08 19:51:45 +02:00
shell shell: Allow running as interactive even if not running in a TTY 2023-09-20 07:05:58 +02:00
terminal terminal: Fix certain keys being incorrectly inputted 2023-09-20 19:43:53 +02:00
tests libc: Add putenv 2023-08-11 17:59:04 +02:00
tools libui: Add a GUI and graphics library 2023-09-20 07:05:48 +02:00
wind wind+taskbar: Improve the dark color scheme 2023-09-20 19:45:01 +02:00
.clang-format Update .clang-format 2022-12-21 20:22:44 +01:00
.drone.yml Update drone.yml 2023-07-21 14:11:44 +02:00
.gdbconf Make GDB use the correct kernel file 2022-12-03 17:34:14 +01:00
.gitignore base: Actually add the start icon to source control 2023-09-20 07:05:55 +02:00
CMakeLists.txt apps: Add basic terminal app 2023-09-20 07:05:58 +02:00
LICENSE Update year range in LICENSE :) 2023-01-02 13:08:42 +01:00
luna.json tools: Make the Ext2 partition bigger (32M) 2023-07-22 16:11:34 +02:00
README.md README: More features 2023-08-08 16:19:38 +02:00

Luna

A simple POSIX-based operating system for personal computers, written in C++. Build Status

Another UNIX clone?

Yes, another UNIX clone.

Features

Setup

To build and run Luna, you will need to build a cross-compiler and cross-binutils for x86_64-luna.

For this, you should start by installing the required dependencies.

Then, run tools/setup.sh to build the toolchain.

Please beware that building GCC and Binutils can take some time, depending on your machine.

Running

To run Luna in a virtual machine, you should have QEMU installed.

Additionally, the build process needs some extra dependencies to run: cmake, ninja, nasm and genext2fs.

tools/run.sh is the script you should use in most cases. It will build changed files, install, make an ISO image, and run Luna in QEMU.

If you have no toolchain set up, run.sh will build it automatically, which means that you don't necessarily have to run setup.sh since run.sh does it for you.

Prebuilt images

Prebuilt ISO images (numbered) for every version can be found at pub.cloudapio.eu.

These images are built manually whenever a new release is created, and thus don't reflect the latest changes on the main branch.

Every hour, this server pulls the latest commits on main and builds an hourly ISO image. The ten most recent ones can be found in the hourly directory, and Luna-latest.iso should always be symlinked to the newest one.

These images do reflect the latest changes on the main branch, but are obviously less stable. Additionally, an hourly image will be skipped if building the latest commit of the project fails.

Is there third-party software I can use on Luna?

Yes! A ports system is in place, and you can use the build scripts to add some ports to your image. More information in the Ports page.

License

Luna is open-source and free software under the BSD-2-Clause License.