A simple POSIX-based operating system for 64-bit computers
Go to file
apio 6443ec77f8
kernel/ATA: Add support for regular ATA drives (non-ATAPI)
Don't know why this took so long to figure out, I just had to pass the right value to select().
2024-03-29 12:11:39 +01:00
.gitea/workflows CI: Don't install fakeroot as a dependency 2024-02-11 13:45:20 +01:00
.vscode libos: Document it entirely using Doxygen comments =D 2023-06-09 22:45:06 +02:00
apps apps: Add run 2024-03-20 19:58:45 +01:00
base wind: Add a second unix socket for privileged clients which need to be in a different group 2024-02-01 21:57:40 +01:00
docs/screenshots Update README.md 2023-09-20 21:07:37 +02:00
initrd/sys initrd: Remove unused stray script file 2023-10-13 22:12:18 +02:00
kernel kernel/ATA: Add support for regular ATA drives (non-ATAPI) 2024-03-29 12:11:39 +01:00
libc libc: Add support for POSIX timers 2024-01-05 22:15:06 +01:00
libluna libluna: Assert some unreachable conditions 2024-03-07 23:10:35 +01:00
libos launch: Add support for PATH searching 2024-03-20 19:57:43 +01:00
libui wind+libui+taskbar: Add a request for setting special window attributes 2024-02-04 13:35:50 +01:00
ports ports: Build gcc without --enable-checking 2024-03-07 22:33:17 +01:00
shell shell: Allow running as interactive even if not running in a TTY 2023-09-20 07:05:58 +02:00
terminal libui+apps: Change ui::App::init() to take the socket path directly instead of command-line arguments 2024-02-01 21:15:31 +01:00
tests run-tests: Avoid starting a shell to spawn test processes 2024-03-14 12:37:59 +01:00
tools tools: Allow building as root for CI 2024-02-11 13:39:51 +01:00
wind wind+libui+taskbar: Add a request for setting special window attributes 2024-02-04 13:35:50 +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 Update gitignore rules 2024-01-06 17:31:00 +01:00
CMakeLists.txt all: Bump release version to 0.6.0 and start calling it "Andromeda" 2023-09-20 20:56:59 +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 Update README.md 2024-03-28 22:37:16 +01:00

Luna

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

Another UNIX clone?

Yes, another UNIX clone.

Features

Screenshot

Screenshot as of 0.6.0

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

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.