Live data from Hacker News

Theseus: A modern experimental OS written from scratch in Rust

github.com

141–150 of 153 posts

Re: Theseus: A modern experimental OS written from scratch in Rust

#142
post #18
post #7

Earlier 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?

I’m being somewhat facetious or jocular when I say this—and somewhat serious—but…I wonder:

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

#143
post #106
post #45

Earlier 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?

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

#145
post #102
post #47

Earlier 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

Yes, I have poked around DynamoRIO a few times. It's now geared toward dynamically modifying binaries for various purposes from code coverage to fuzzing to performance and memory profiling.

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

#146
post #97

Earlier 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?!?

> 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

#147
post #130

Earlier 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.

OSF/1 counts I think.

Re: Theseus: A modern experimental OS written from scratch in Rust

#149
post #143
post #106

Earlier 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?

I work at QNX. Of course I've heard of webservers running on QNX with enhanced security as a result. I suspect the lack of widespread use of QNX is because it's a costly, commercial, and not marketed toward personal or cloud computing and not due to technical issues. Marketing trumps technical when it comes to purchasing decisions.

Re: Theseus: A modern experimental OS written from scratch in Rust

#150
I finally finished reading the three relevant papers. This is absolutely brilliant. This isn't my area of expertise, but to me this looks like the future of OS design. I would love to use this as my base OS, if/when it can be brought to the point of being able to run virtualized linux applications.

The concept of state spill also explains why OOP code bases are often a nightmare of complexity, despite pervasive modularization and encapsulation.

Post reply on HN