On 24 Jun 2007 at 14:37, Michael B. Brutman wrote:
- The operating system and all user processes share a
single large
address space.
- There is no filesystem: every database table, user profile, etc. is
addressed by a pointer in this very large address space.
I assume that along with this go the usual virtual-memory features as
well as address-space protection. I couldn't imagine this being done
in unprotected non-paged non-virtual memory hardware, but there's a
first time for everything.
OTOH, CDC was doing this on the STAR operating system in the late
60's/early 70's. There's a certain luxury to having a 48-bit
addressing space. Running file I/O through the pager, although easy
to program seemed to me to be less than optimal; fortunately, we also
had traditional double-buffered I/O calls available.
Cheers,
Chuck
This seems insane, but it works. There are a few things that make it
work better:
- database tables, user profiles, etc. are all well defined data
structures. They are referred to 'objects', although I don't really
think it is object oriented.
- There is a lot of pointer checking going on to prevent overruns and
accessing data that isn't yours.
- Pointers are 'tagged' by the operating system to indicate if they are
legitimate (ie: blessed by the OS and secure). If a user somehow
manages to change a pointer in a non-blessed way, the 'tag' is lost.
The old 48 bit CISC architecture (IMPI) was quite a weirdy compared to
modern architectures. The current 64 bit PowerPC based processors are
much more 'normal' looking.
The 'Advanced/36' was the first use of a 64 bit PowerPC based AS/400.
Kind of funny to think about. :-)
Mike