A simple POSIX-based operating system for 64-bit computers
Go to file
apio 773cd576d1
Some checks failed
Build and test / build (push) Failing after 1m41s
tools: Print clang-format version
2024-12-23 23:12:57 +01:00
.gitea/workflows CI: Automatically check formatting 2024-12-23 23:05:04 +01:00
.vscode libos: Document it entirely using Doxygen comments =D 2023-06-09 22:45:06 +02:00
base gui+su+base: Store hashed passwords and use those to log in 2024-12-14 12:48:13 +01:00
docs docs: Add clang-format dependency 2024-12-23 22:59:57 +01:00
gui gui+su+base: Store hashed passwords and use those to log in 2024-12-14 12:48:13 +01:00
initrd/sys initrd: Remove unused stray script file 2023-10-13 22:12:18 +02:00
kernel tools: Update sources list and run clang-format 2024-12-23 22:56:56 +01:00
libc tools: Update sources list and run clang-format 2024-12-23 22:56:56 +01:00
libluna tools: Update sources list and run clang-format 2024-12-23 22:56:56 +01:00
libos libluna+libos+libui: Move Action to libluna and make it usable in the kernel 2024-10-19 21:25:17 +02:00
ports ports: Add cbench to the ports list 2024-12-13 21:39:47 +01:00
shell shell: Split code into multiple files, add the "echo" builtin, and add support for a .shellrc file 2024-04-20 17:17:31 +02:00
system init: Avoid "No child processes" error spam 2024-12-14 12:19:13 +01:00
tests tests: Add tests for SHA256 2024-07-20 16:34:31 +02:00
tools tools: Print clang-format version 2024-12-23 23:12:57 +01:00
utils gui+su+base: Store hashed passwords and use those to log in 2024-12-14 12:48:13 +01:00
.clang-format Update .clang-format 2022-12-21 20:22:44 +01:00
.gdbconf Make GDB use the correct kernel file 2022-12-03 17:34:14 +01:00
.gitignore taskbar: Make taskbar entries configurable 2024-04-10 21:42:21 +02:00
CMakeLists.txt all: Update release to 0.7.0 "Pulsar" 2024-09-07 17:17:08 +02:00
LICENSE Update LICENSE 2024-01-04 11:24:48 +01:00
luna.json tools: Make the Ext2 partition bigger (32M) 2023-07-22 16:11:34 +02:00
README.md Fix a couple of Markdown links 2024-12-19 21:15:22 +01:00

Luna

A simple POSIX-based operating system for 64-bit computers, written in C++.

Another UNIX clone?

Yes, another UNIX clone.

Features

Screenshot

Screenshot as of 0.6.0

System requirements and dependencies

Read docs/dependencies.md for the full information. In short, all modern Unixes should work, provided the dependencies are available.

Setup

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

There is a script provided for this. Run tools/setup.sh to build the toolchain.

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

Running

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 manually since run.sh does it for you.

Login UI

For development convenience, the system automatically starts a GUI session as the default user, without prompting for a password.

Despite this, Luna does have a login window built-in. If you'd like to try this feature out or start a GUI session as a different user, you'll need to edit base/etc/loginui.conf and change the line that says Autologin=true to Autologin=false.

Prebuilt images

Prebuilt ISO images for every release version can be found at pub.cloudapio.eu.

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.