• old-0.14 da41784183

    apio released this 2022-11-09 16:23:07 +00:00 | 1737 commits to main since this release

    Uploading this and removing previous tags/releases.

    This was the last """"stable"""" release of the previous version of Luna, before it was completely rewritten and made 1000% better.

    All old releases can be found as tags named 'old-0.*'

    Release text for old releases:

    Version 0.14

    Well, this update was a big one... 201 commits between 0.13 and 0.14!

    Most notable changes:

    • New ports: nasm, gmp, mpfr, mpc, but most notably binutils.
    • Lots of new functions and APIs implemented in libc, like qsort() or bsearch().
    • The kernel got more robust, with better userspace memory management. Most likely, the switch from user_refs and physical addresses to copy_to_user() and copy_from_user(), which is still in progress.
    • Argument passing support in the kernel and C Library (argv, argc)!! Environment variables are not there yet, but they should be a breeze to implement now that the basic framework is already there.
    • The framebuffer is now available as a device in the /dev filesystem! ioctl() was also added, and for now it can only be used to get framebuffer information. We use this for a little screen utility, which outputs your screen resolution =D

    Version 0.13

    This one got a lot of changes :)

    First of all, a keyboard interface for userspace, which made a command-line shell possible.

    The getdents() system call and dirent.h, which is necessary for ls-like utilities.

    A test system, with some tests, got added.

    A ports system, with one port (bc), got added. bc may be janky on Luna, but it is a piece of third-party software running on the system!

    Overall, 120 commits were made since the previous version, and we reached the 600th commit :)

    Version 0.12

    0.12: A working fork(), finally! As well as /dev/random, and quite a few more libc functions.

    Version 0.11

    0.11: More VFS stuff, as well as some multitasking improvements, such as multiple address spaces so there can be multiple tasks in parallel + an exec() syscall. Once fork() is implemented, we'll have basic process management!

    Version 0.10

    0.10: the great VFS update!! we now have a virtual file system which enables us to mount the initrd as filesystem root, but overlay other filesystems on top of it, such as a device filesystem...

    This version was the one with the greatest number of commits between the previous version and this one, it seems. 78 commits!!

    Downloads