240 karma · joined May 6, 2015
Replacing large linked lists with arrays is rarely an actual win. With an array, insertion and deletion become far more expensive, virtual memory is more likely to become fragmented or grow monotonically, and the cache misses avoided are almost certainly irrelevant to total performance.
Kernel data structures could end up on a pagecache page: all it takes is a reference counting bug and the page could be reallocated in the kernel heap, which is directly mapped by user space. Keeping user-mapped pages and pagecache pages distinct makes this less likely.
I am otherwise not convinced that there is an actual problem with OpenBSD's coherency plan.
What is the problem with OpenBSD's plan for coherency? Why is the burden of explicitly calling msync(2) too much?
Isn't seL4's multicore support either unverified or limited (i.e. shared memory is forbidden)? Is your platform single-threaded then?
In practice though, it seems easier just to run separate instances of Paxos.
I completely agree. The difference in the quality of manpages between OpenBSD and Linux alone is enough for me to prefer OpenBSD.
2. GC performance would be basically unaffected by paging, since kernels don't page their own heaps out to disk and thus a kernel heap access would never have to wait for a disk IO. Or maybe you had something else in mind?
0xffffffff % 7 = 3, but (0xffffffff + 1) % 7 = 0.
Is your answer to my question: "Modern UNIX OSes cannot take advantage of said ideas because they are POSIX compatible."?
> What we really need are OSes that take the ideas from human-computer interaction from Xerox PARC and Viewpoints Research Institute and take them further into mainstream, using safe languages in the process.
How are modern OSes prevented from using said ideas (which ideas exactly?) simply because they are a UNIX implementation?