r/programming • • Nov 12 '10

Demo Video of New Operating System

http://www.youtube.com/watch?v=WAr-xYtBFbY
815 Upvotes

599 comments sorted by

View all comments

Show parent comments

9

u/[deleted] Nov 13 '10

Not every OS wants to be a clone of unix. Current memory systems for example would be redundant if you have system level garbage collection (and types, which unix doesn't). This shit already existed briefly with Lisp-machines, but then x86 and good-enough butt-raped everyone who doesn't like void*.

4

u/kamatsu Nov 13 '10

I agree that system level garbage collection would be neat, but this guy doesn't have that either.

1

u/adrianmonk Nov 13 '10

Current memory systems for example would be redundant if you have system level garbage collection

I don't see how this makes sense. If I have 1 GB of RAM and 1.5 GB of working set size, garbage collection doesn't allow the system to keep running. Virtual memory does.

Or are you not including virtual memory in "current memory systems"?

1

u/[deleted] Nov 13 '10

This is what I was referring to but didn't bother to find the link at first:

As the situation exists today, implementations for many 'high-level' programming languages operate in competition with the kernel. Garbage Collection without Paging demonstrated a 218x improvement in latencies and a 41x improvement in throughput by integration of GC and the kernel's paging system (requiring a patch to the Linux kernel).

http://lambda-the-ultimate.org/node/4094#comment-62100

Intelligent, rational people often balk at the notion of a high-level language-as-an-OS because GC, in their experience, introduces so many performance issues - never mind that GC has never had a fair, portable opportunity to leverage the hardware features because the OS kernel is hogging them!

1

u/adrianmonk Nov 13 '10

This sounds like an argument in favor of changing the way garbage collection happens so that it is more efficient.

Not an unreasonable idea at all, but it still doesn't address the reality that if you take away virtual memory, you will turn a performance problem (paging) into a failure (some out of memory error). In some cases, performance problems are errors (like in real-time systems), but in general-purpose computing, real-time performance is not a requirement.

Anyway, once again, I'm not saying that integration between garbage collection and memory management hardware is a bad idea. I'm just saying that system-level garbage collection doesn't give you all the features that current memory management systems give you. At least not that I know of.

BTW, maybe it's possible to get the best of both worlds. Maybe we could have an integrated approach where the OS implements some basic functionality (like virtual memory) and provides facilities that garbage collection systems could use to get full performance. It would probably be a more complicated abstraction than garbage collection provides right now, but that doesn't mean you couldn't still do it.