This is a really impressive project, but I wish the Github page had more information about the design of the system, e.g
1. Is it intending to be a unix-like system?
2. is libc supported? I see that you have XECLib which looks like a custom libc impl?
3. What are the principles behind IPC? I see that there's "PostBox IPC" and that's how windows communicate with the window manager, but from a quick glance I'm not sure how the window manager communicates with the video driver.
4. What's the object format? I see there's docs for XELoader but it doesn't get into how it works or how the linker produces the object files that it loads.
This clearly took a ton of effort and it's a cool project!
Hello, thank you for reaching out! Yes, the GitHub repository has limited information currently, but we are working on the documentations.
- Xeneva is not intending to be Unix like, but some core principles of Unix are followed.
- Xeneva has its own libc implementation called XECLib that are attached to Xeneva's own system call interface.
- Xeneva supports IPC via shared memory, IPC via socket and IPC via its own message based communication called PostBox IPC. Xeneva currently use framebuffer for Graphics Output, no working video driver is implemented. The framebuffer is mapped onto Windows Managers address space and the Windows Manager composes the final image to framebuffer by writing to that mapped virtual address.
- Xeneva uses PE format for executable,no doubt ELF support can be implemented. XELoader is a dynamic linker and loader process which is responsible for resolving running processes symbols by linking it to its specific shared library. Whenever a new process get spawned,and an executable is loaded, the XELoader loads all required shared libraries and link them to the process.
You can refer to our website - getxeneva.com to get a hint of our future goals and vision.
Thank you, Team XENEVA.
The website instantly provides information that is missing from both the documentation and the github page: what is xeneva for? Now I know that it's "designed to power the next generation of modern computing across multiple platforms—from traditional systems to cutting-edge AR/VR/XR devices. We're redefining what an operating system can achieve in an era where computing extends beyond screens into spatial environments." Up till then, I had guessed it might be a hobby project, an academic learning exercise, or a playground for new OS concepts.
I still don't know what it is after reading that. What does it solve that other OS don't?
Edit: other comments seem to suggest 1.) it abandons support for older hardware and focuses on modern hardware, 2.) it's supposed to allow 3D UI, 3.) it has minimal software abstractions for performance.
I guess I can understand #1, but I'm not sure why existing OS wouldn't be able to handle #2. I'm not sure how #3 works in practice if there are a lot of different hardware architectures to support.
Thank you for commenting. We believe there does exist a market gap in places that one quickly doesn't notice. We'll drop one instance here, look at the AR/VR market. It's quite possible that AR devices will be the future so of course good software would be needed there. Apple has it's VisionOS which is decent but that will forever be limited to Apple products only. There is no proper alternative to that as of yet, although Google and Android are working on soon releasing AndroidXR. But even that is essentially just based on top of the AndroidOS. We're trying to create a robust kernel and a dedicated platform for such devices.
We also aim to work on RISC-V architecture as well so helps us cater to more utility.
Please Email us at hi@getxeneva.com to communicate further.
Thanks, Team XENEVA.
The linux kernel essentially provides everything a modern operating system needs, including all the necessary device drivers. Unless you offer a significant selling point, something radically different, or a substantial improvement over, say, Linux or FreeBSD, I don't see a compelling use case for Xeneva OS. That said, don't get me wrong, I think it's a great project to experiment with and take my upvote.
You could have made the same point for early Linux
Early Linux was a university student having fun in his apartment learning 386 assembly, and everything onward from there was earned by merit (it just was that good). This is boasting to be "modern computing reimagined", "the future of computing", "revolutionary operating system", "designed to power the next generation of modern computing", "redefining what an operating system can achieve". Burden of proof is on a slightly different level.
Being an Open-Source, free OS was the Linux selling point, over commercial Unixes and Windows. That was the open lane with relatively little competition. Now that Linux and BSDs are there, it's no longer an empty lane but a tough one to compete in.
Granted FreeBSD could have picked up more instead, but it was almost as young and not to be due to a series of 90s decisions (BSD court case; Linux name being catchy; Linux running a bit better on 386 PCs?; GNU tools being the default?; IBM deciding to invest in Linux).
Thanks for the explanation and further background! I appreciate it. I'm still a little confused why custom OS is needed for a headset. I would have guessed you'd just need another...I forget the term for it, but on Linux you have like XFCE, Cinnamon, and KDE like GUI skins on top of the core functionality.
Reading between the lines, it sounds like they can get better performance on the target hardware with a purpose-built design. It is about more than the GUI.
> Is it intending to be a unix-like system?
It is not even using regular names for the tools such as "clear" to clear the screen, so I dunno.