1fishe2fishe
1fishe2fishe on Hacker News
I hate how there's at least one discussion about how a clinically insane man on a disability check that got hit by a train said the n word and did insane things. I know that and his OS is what's best known about him but I really want people to not think about the former when discussing about the latter. Why would that even matter?
Yeah, I could just use that flag on Linux and let the kernel do more work but I'm afraid I might have to add more logic for looping for a failed mmap only for linux, and more ifdefs usually mean I'm doing something wrong. I'd rather roll with my current strategy (finding a safe pivot and keep bumping without checking anything)
Thanks for the information, I wasn't aware of that! Seems like it's not available on FreeBSD though ;( I want to support as many OS'es as possible, but I'll still add a comment on that for future reference.
It's a great OS to play around with, after all. I know a guy that uses TempleOS to poke around his hypervisor's private internal data that's not exposed in the normal control interface because it's the one of the only "full" OS'es that allows unrestricted access to protected memory and lets you write programs and stuff in it in a relatively familiar language (HolyC).
There were a few candidates for this like "GENESIS - Godly Emulation Not Encountered, System Is Sacred", but that sounded way too biblical (you get my point), or "SANCTUM - Sacred Assembly for Navigating Computing Technology with Unity and Majesty" which was too long and felt almost condescending in a way and both didn't feel like it expressed what EXODUS does clearly enough.
After all, it's EXODUS is an "exodus" of the TempleOS kernel from ring 0 to 3, so I rolled with it.
Sort of a "distro" I guess. It's basically TempleOS as an app.
That was actually a very easy part of EXODUS. Since TempleOS is basically a unikernel, it doesn't need any code for per-process virtual address space.
So I can just map some pages in the host process and the host process' address space becomes the HolyC kernel's entire address space, which is ironic since Terry was always adamant about how he disliked modern isolated per-process address spaces and that turned out to be a key to porting his OS to Ring 3.
I did need some code for "code pages" though - since all function calls in TempleOS use the 32 bit relative call instruction, all compiled HolyC code go in the lower 32 bit address space. Some Linux distros like to map the ELF binary at that address range too, so I have a routine to read /proc/self/maps and avoid mmapping those areas (I was surprised mmap can overlap without any signs).
Posted by
1fishe2fishe on Friday April 12, 2024 @02:57AM
from the show-hn dept.
https://github.com/1fishe2fishe/EXODUS
TempleOS is an experimental OS designed to be simple and self-hosted with a JIT compiler. I was mesmerized by it but didn't like the hassle of using virtual machines to boot it up and move files around from the virtual drive.My project lets you run TempleOS as an app of some sort instead of using a virtual machine to run it - this brings a lot of benefits like speed, seamless filesystem...