[Simh] Adding storage to vax running 4.3BSD

Johnny Billquist bqt at softjar.se
Thu May 11 18:17:42 EDT 2017


On 2017-05-11 23:02, Bob Eager wrote:
> On Thu, 11 May 2017 22:37:59 +0200
> Johnny Billquist <bqt at softjar.se> wrote:
>
>> On 2017-05-11 15:34, Paul Koning wrote:
>>>
>>>> On May 11, 2017, at 9:24 AM, Jason Stevens
>>>> <jsteve at superglobalmegacorp.com> wrote:
>>>>
>>>> Ah now that makes more sense!
>>>>
>>>> On May 11, 2017 5:11:34 AM GMT+08:00, Alan Perry
>>>> <aperry at snowmoose.com> wrote:
>>>>
>>>> Problem solved. Apparently this kernel doesn't know about RA82s. I
>>>> changed them to RA81 and it worked fine.
>>>>
>>>> alan
>>>
>>> Yikes.  The whole point of MSCP was to make the software not care
>>> about device sizes or geometry.  It's amazing to see Unix get it so
>>> badly wrong.
>>
>> True. However, it isn't actually the geometry that cause the Unix
>> messup here, but the fact that Unix divided disks into partitions. So
>> it needed to know where each partition started. And before
>> disklabels, it was hardcoded per disk type.
>
> The origin of the partitioning goes back to the introduction of the
> RP03.
>
> UNIX had been written as a 16 bit system, and when we got ours (1975)
> it was on RK05s, which only had about 5000 blocks. We moved on to
> RP02s, which were again OK, as they were only about 40,000 blocks, and
> that number fitted into a 16 bit unsigned integer.
>
> All of UNIX was built round 16 bit values, and it was a major change to
> adapt to anything larger. But then the RP03 arrived - around 80,000
> blocks; too big.
>
> The solution - minimal work - was to partition the disk into two fixed
> pieces (virtual RP02s if you like) at the driver level, and present the
> pieces as separate disks to the rest of the system. Very little else
> needed modification, although the whole disk was exposed as another
> device.
>
> One thing that did have to be fixed was the 'seek' system call, which
> couldn't seek over the whole disk as it only handled 16 bits. This was
> needed for low level operations on the disk. The solution was to have a
> 'long seek' system call, which took a bigger offset value. That
> survives to this day as 'lseek'.
>
> This kludge was 'justified' as a good way to divide functionality of
> the disk, but it was really a kludge!

Right. But that in the end still means that the problem was the 
partitioning, not the disk geometry abstraction, layout and size, which 
is what MSCP addressed.

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Simh mailing list