Re: Subject: Introduction – StarshipOS: A gForth/JVM Hybrid on L4Re

2025-07-12 Thread Paul Boddie

On 2025-07-09 13:56, Robert James wrote:


My name is Rob James, and I wanted to introduce myself and an OS I’ve 
been

developing called **StarshipOS**.


Sorry not to follow up with more encouraging words much earlier!


StarshipOS is a unique hybrid operating system built on top of the L4Re
microkernel framework. It combines:

- A Forth-based core powered by **gForth**
- A lightweight persistent **object memory model** that completely 
replaces

the traditional filesystem
- Embedded **OpenJDK 21** services for high-level logic and tooling

The system is non-POSIX by design. Instead of files, everything lives 
in a
dynamic memory graph of interactive objects. You interact with your 
system
through a Forth-based REPL that evolves and mutates this object 
universe in

real time. No shell scripts, no /etc, no /usr — just memory objects and
messaging.

The ultimate goal is to make the **REPL the new shell**, and the 
**memory

graph the new filesystem**.


This is certainly a different approach, although it is reminiscent of 
various

language-based and/or image-based systems from the past. It would be
interesting to hear more about your choices and what could be regarded 
as an
unusual combination of technologies. It isn't every day Java and Forth 
are

combined prominently in a system, at least not these days.

[...]

I’ve been programming since the 1970s, mostly in userland, and I’m 
diving

deep into kernel space and L4 internals for the first time. I’d love to
hear from others doing low-level work on L4Re, especially anyone who's
extended the build system or tackled non-POSIX boot flows.


I have been experimenting with L4Re components for some time, and I have 
implemented a framework for the demand paging of files residing in 
filesystems, such as those supported by libext2fs, along with the 
execution of program files in customisable filesystem environments. In 
conjunction with hardware-specific support for various single-board 
computers, it is possible to use these components to access filesystems 
and programs stored using memory card devices on "real" hardware.


My efforts have largely been focused on addressing the shortcomings of 
the uClibc-based C library in L4Re and exploring an alternative 
approach, filling out the missing or truncated implementations in L4Re's 
C library in my own library implementation based on Newlib. That might 
lead in the direction of POSIX, but there are some rather undesirable 
characteristics of POSIX that I would rather ignore or replace with more 
ergonomic functionality. Process spawning is one area where the basic C 
library standard is inadequate but where POSIX is baroque and presumably 
unduly influenced by various Unix implementations and their quirks.


It would certainly be of interest to share experiences and techniques in 
this general area. It seems that very little discussion is had in public 
about the development of components for entire systems built with L4Re: 
what people might have called "multi-server" systems a few decades ago. 
Instead, the focus appears to be on hosting Linux and other "rich" 
operating systems, as I believe the prevailing terminology describes 
them. For me, hosting or virtualising Linux is of relatively little 
interest.


It seems to me that regardless of the paradigm, there are still 
underlying "patterns" that need to be understood and introduced in order 
to provide a general-purpose computing environment, with more or less 
familiar concepts and abstractions, using L4Re and other 
microkernel-based systems. More discussion and sharing of such material 
and associated experiences would be very welcome!


Thanks for telling us about your project!

Paul
___
l4-hackers mailing list -- [email protected]
To unsubscribe send an email to [email protected]


Subject: Introduction – StarshipOS: A gForth/JVM Hybrid on L4Re

2025-07-09 Thread Robert James
Hello everyone,

My name is Rob James, and I wanted to introduce myself and an OS I’ve been
developing called **StarshipOS**.

StarshipOS is a unique hybrid operating system built on top of the L4Re
microkernel framework. It combines:

- A Forth-based core powered by **gForth**
- A lightweight persistent **object memory model** that completely replaces
the traditional filesystem
- Embedded **OpenJDK 21** services for high-level logic and tooling

The system is non-POSIX by design. Instead of files, everything lives in a
dynamic memory graph of interactive objects. You interact with your system
through a Forth-based REPL that evolves and mutates this object universe in
real time. No shell scripts, no /etc, no /usr — just memory objects and
messaging.

The ultimate goal is to make the **REPL the new shell**, and the **memory
graph the new filesystem**.

Here’s what’s already in place:
- A full Maven-driven build system that compiles Fiasco.OC, L4Re, OpenJDK,
and gForth from source
- A `starship-maven-plugin` that automates ROMFS image generation and ISO
boot layout

coming soon:
- A sandboxed REPL environment that boots directly into gForth and supports
mounting JVM modules as interactive bundles
- Early support for memory graph ACLs, entropy-based object lifespan, and
“bubbles” — user-defined isolated memory regions

Right now, I’m focused on integration, getting the system to boot into the
gForth REPL with full JVM runtime support, and beginning to layer in
userland services via custom dictionary words.

Source is available (in-progress) here:
👉 **https://github.com/rajames440/StarshipOS**

I’ve been programming since the 1970s, mostly in userland, and I’m diving
deep into kernel space and L4 internals for the first time. I’d love to
hear from others doing low-level work on L4Re, especially anyone who's
extended the build system or tackled non-POSIX boot flows.

Thanks again to everyone who’s contributed to L4Re and Fiasco.OC — it’s a
hell of a foundation to build a new kind of OS on.

All the best,
Rob James
___
l4-hackers mailing list -- [email protected]
To unsubscribe send an email to [email protected]