Theseus: A modern experimental OS written from scratch in Rust
141–150 of 153 posts
Re: Theseus: A modern experimental OS written from scratch in Rust
#142Earlier quoted context omitted.
Thank you for the link! EDIT: End to end we do not give enough information from the application to OS to the hardware for perfect optimizations. We do not start with enough information and we lose too much down the stack. Especially around concurrency. I think that at the end of the day there is some atomic information needed by hardware and OS to make optimizes about all code running on the system. I see the approac…
I can't recall the details or find them searching online, but I recall reading back in around 2000 about an emulator that was actually faster than bare metal when emulating its own hardware. I think maybe it was a Sun Microsystems project, but I'm not sure. Does anyone else recall this?
Is that a reflection of the quality of the software implementation? Or is it a reflection of the hardware it’s trying to implement? Or perhaps it’s related to the hardware the emulator is running on?
Or did the emulator emulate the hardware while running on /that/ hardware? Did it pull efficiency gains out of seemingly thin air?
Re: Theseus: A modern experimental OS written from scratch in Rust
#143Earlier quoted context omitted.
Yeah totally valid implementation of which there have been a great many attempts, far too many to list here. Precisely none of them in 3-5 decades has managed to deliver on the promise of microkernels prompting the question: "Were huge microkernel advantages actually greatly oversold, is posix a massively debilitating factor that prevents microkernel based systems from delivering on their raison d'etre or was every s…
The POSIX layer of QNX is almost exclusively a (collection of) optional services or wrappers in userspace. In what way is it a failure or a poor implementation of a microkernel?
Re: Theseus: A modern experimental OS written from scratch in Rust
#144Re: Theseus: A modern experimental OS written from scratch in Rust
#145Earlier quoted context omitted.
It was almost definitely HP Dynamo. (Edit: if you combine ideas from HP Dynamo, SafeTSA JIT-optimized bytecode, and IBM's AS/400's TIMI/Technology Independent Machine Interface, you get a better version of the current Android Run Time for bytecode-distributed apps that compile ahead of time to native code and self-optimize at runtime based on low-overhead profiling.) The really nice thing about Dynamo was that it was…
This project grew into an insanely powerful tool. It's called DynamoRIO and is still under active development and use today. It's one of the coolest technologies I've ever worked with. It's used by the winafl fuzzer to provide basic block coverage for black box binaries. https://dynamorio.org
There doesn't appear to currently be a turn-key solution similar to the original Dynamo. DynamoRIO could be used to put a small conditional tracing stub at the start of every basic block at application startup time, and then do some binary rewriting, similar to the original Dynamo, but it doesn't seem there are downloadable binaries that currently do this.
This dynamic optimization would be much easier and lower overhead (but less general) with cooperation from the compiler.
Re: Theseus: A modern experimental OS written from scratch in Rust
#146Earlier quoted context omitted.
z/OS is a full blown, certified UNIX. WSL1 makes NT a unix kernel if they wanted to get the certification. And redox goes beyond them in that the only user mode env it supports is posix with some extensions. But how is this line germane to the original point again? That somehow being a microkernel means that it can't be a unix like design OS?
Certified UNIX means having a userspace POSIX library, completely unrelated to kernel architectures. So if Microsoft bothers to certify WSL2 then Windows is now UNIX?!?
Of course, the WSL2 layer would be UNIX. There is more than it so calling Windows exclusively unix would be wrong (in the same way that running Windows under a VM, or Winde, on an unix system doesn't make it Windows.
Re: Theseus: A modern experimental OS written from scratch in Rust
#147Earlier quoted context omitted.
Since you ignored my question, I'll ask it again. > But how is this line germane to the original point again? That somehow being a microkernel means that it can't be a unix like design OS?
Please provide an example of an UNIX descendant from Bell Labs implemented microkernel. POSIX userspace doesn't count, by that measure even an Amiga OS is sundenly an UNIX kernel. Also a reference CS book in UNIX microkernels architecture would be welcomed. Even Tanebaum doesn't call Minix 3 a UNIX, rather UNIX inspired.
Re: Theseus: A modern experimental OS written from scratch in Rust
#148We will know that Rust has succeeded when people no longer feel the need to remark on it in the title.
Re: Theseus: A modern experimental OS written from scratch in Rust
#149Earlier quoted context omitted.
The POSIX layer of QNX is almost exclusively a (collection of) optional services or wrappers in userspace. In what way is it a failure or a poor implementation of a microkernel?
It's an inferior implementation of posix that does not display all those wonderful microkernel os benefits. If it did, we'd hardly be using competing OSes that are insecure, unstable, big-ridden etc. etc. I've never heard of a webserver running on QNX with an enhanced security benefit as a result, have you?
Re: Theseus: A modern experimental OS written from scratch in Rust
#150The concept of state spill also explains why OOP code bases are often a nightmare of complexity, despite pervasive modularization and encapsulation.