Live data from Hacker News

Single Address Space Operating System

c2.com

1–10 of 53 posts

Re: Single Address Space Operating System

#3
Jeff Chase (http://www.cs.duke.edu/~chase/) was one of the authors on the 'Architectural Support for Single Address Operating Systems' paper in '92. I read that when I was at Sun and thought it was pretty amazing. It shaped a lot of my thinking about what the world would look like when we got to ubiquitous 64 bit address spaces.

That change is coming. You can statically link to addresses in that world. It makes for some really interesting optimizations in terms of code which falls through into optimizations in terms of JITs.

Re: Single Address Space Operating System

#4
post #3

Jeff Chase ( http://www.cs.duke.edu/~chase/ ) was one of the authors on the 'Architectural Support for Single Address Operating Systems' paper in '92. I read that when I was at Sun and thought it was pretty amazing. It shaped a lot of my thinking about what the world would look like when we got to ubiquitous 64 bit address spaces. That change is coming. You can statically link to addresses in that world. It makes for…

Do you have any insight for what the security implications would be (if any) for an OS like this?

Re: Single Address Space Operating System

#5
The Apple Newton did this; used a single address space and some fine-grain protection capabilities of the MMU to get proper security. It was . . . okay, but it's unclear what the performance hit would have been if we had run out of hardware-level protection IDs (there were 15 or 16 domains, IIRC). ARM later deprecated the MMU features that we used (and properly so, I think).

There's a 1994 COMPCON paper on it.

Re: Single Address Space Operating System

#6
post #4
post #3

Jeff Chase ( http://www.cs.duke.edu/~chase/ ) was one of the authors on the 'Architectural Support for Single Address Operating Systems' paper in '92. I read that when I was at Sun and thought it was pretty amazing. It shaped a lot of my thinking about what the world would look like when we got to ubiquitous 64 bit address spaces. That change is coming. You can statically link to addresses in that world. It makes for…

Do you have any insight for what the security implications would be (if any) for an OS like this?

Security is pretty solid in terms of things like libraries where every library entry point is a call to a particular address. That eliminates a number of dynamic linking vulnerabilities. Every process can have its own memory prefix (rather than everybody thinking they are at 0) which gives better visibility to memory incursion and excursions. Kernel space is distinct address from non-kernel space etc (this got really challenging on non-64 bit machines at the end of their reign)

Is it a net win? I think so, there would clearly be new ways in which it would be a challenge but you can make some useful reasoning about validity of addresses with a numerical compare that isn't nearly as efficient in a variable address OS.

Re: Single Address Space Operating System

#7
post #2

Amiga was fun. I still miss Marble Madness and Hole-in-one Miniature Golf. And Tom Rokicki was a god.

I thought that at first too, but the link isn't about architectures like the Amiga or Mac OS 9 that ran without any memory protection from other processes. Memory is still virtualized and protected like modern systems, but it also gives every process a unique address space, so that pointers are unique across the system.

Kind of an interesting idea. Seems like it would pair well with the NixOS way of doing things…

Re: Single Address Space Operating System

#8
post #5

The Apple Newton did this; used a single address space and some fine-grain protection capabilities of the MMU to get proper security. It was . . . okay, but it's unclear what the performance hit would have been if we had run out of hardware-level protection IDs (there were 15 or 16 domains, IIRC). ARM later deprecated the MMU features that we used (and properly so, I think). There's a 1994 COMPCON paper on it.

Not only that, but the early ARM architecture was terrible at running unix or other non-single address space OS's.

If I remember correctly, the caches were virtually tagged, even on the StrongARM, making context switching on linux very expensive.

Re: Single Address Space Operating System

#9
post #2

Amiga was fun. I still miss Marble Madness and Hole-in-one Miniature Golf. And Tom Rokicki was a god.

I thought that at first too, but the link isn't about architectures like the Amiga or Mac OS 9 that ran without any memory protection from other processes. Memory is still virtualized and protected like modern systems, but it also gives every process a unique address space, so that pointers are unique across the system. Kind of an interesting idea. Seems like it would pair well with the NixOS way of doing things…

There are at least a couple of AROS developers that wants to retrofit some level of memory protection onto AROS (which is API compatible with AmigaOS), while remaining single address space.

Re: Single Address Space Operating System

#10
post #5

The Apple Newton did this; used a single address space and some fine-grain protection capabilities of the MMU to get proper security. It was . . . okay, but it's unclear what the performance hit would have been if we had run out of hardware-level protection IDs (there were 15 or 16 domains, IIRC). ARM later deprecated the MMU features that we used (and properly so, I think). There's a 1994 COMPCON paper on it.

The very first versions of the Linux kernel (i386) did it too. Each process got 64MB of address space with a limit of 63 processes. It made task switching really fast since it was just twiddling some MMU related pointers.
Post reply on HN