2 ms·
V7 supported hardware segmentation registers. Look at sureg() in usr/sys/sys/ureg.c [1]. What it didn't support was pages. That came with 3BSD [2]. [1] https:/
by CalChris 5y ago
V7 supported hardware segmentation registers. Look at sureg() in usr/sys/sys/ureg.c [1]. What it didn't support was pages. That came with 3BSD [2].
[1] https://github.com/v7unix/v7unix/blob/master/v7.tar.gz https://github.com/v7unix/v7unix/blob/master/v7.tar.gz
[2] https://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution https://en.wikipedia.org/wiki/History_of_the_Berkeley_Softwa...
BTW, I think by far the main reason that V7 matters is that it was (somewhat) portable. That begat the workstation boom.
- monocasa 5y agoThey call them segmentation registers in the source, but it's really paging hardware in the modern parlance. The estabur function in your citation can be seen iterating over the whole virtual address spaces (one each for I and D), and setting the permissions for each 8KB page. It's not super clearly written code, but those ap and dp variables are pointers to PTEs. The hardware they're programming against is a KT-11D (compatible) MMU. Here's it's user guide: http://www.bitsavers.org/pdf/dec/pdp11/1140/KT11D_UsersMan.pdf http://www.bitsavers.org/pdf/dec/pdp11/1140/KT11D_UsersMan.p...