3 ms·
> Another notion that I find interesting is one-address space. ... Supporting virtual memory is extremely expensive Would it be possible to make linux work wit
by josephg 4y ago
> Another notion that I find interesting is one-address space. ... Supporting virtual memory is extremely expensive
Would it be possible to make linux work with one address space? It seems like that should be a reasonably easy thing to do given how many different hardware platforms linux runs on. And it'd be interesting to know how much performance uplift you get from not flushing as much during context switches.
Or are there more complex interactions with different parts of the kernel that I'm missing?
- FullyFunctional 4y agoI didn’t assume Linux binaries would work and I don’t see how to make that work, but general application that doesn’t depend on mmap or the Linux ABI can work.
- Findecanor 4y ago> Would it be possible to make linux work with one address space? Not without major changes to programs' ABI. On Linux with an address space per process, programs depend on having their private resources on fixed addresses. The upcoming/vaporware The Mill CPU offers only a single address space, and emulates fixed addresses by aliasing a fixed part of each process' address space to somewhere else — in hardware. In software, the ABI would have to pass a pointer to each callee's context when calling them. This is e.g. what you did in AmigaOS when you called a library function. But not all functions can be this way. You don't want all "function pointers" to be fat: function and context. For those to work, dereferenced functions would need to either belong to the program binary only, be "pure" (not access any global variables) or use a system service (on a fixed address..) to look up its context.