[TUHS] Porting 2.11 BSD
downing.nick at gmail.com
Wed Nov 25 22:01:07 AEST 2015
Yeah, I would definitely go for 4.3bsd using scc in that case. The 64 kbyte
limitation of 2.11bsd using cc will cause continual hassles, even with
split I/D which relaxes things a bit (for example the issue of linking big
executables and the workarounds employed by 2.11bsd "ld"). You might also
consider 4.4bsdlite if you want to be able to release your work, you could
grab any missing pieces that aren't in assembly from 386bsd etc.
On 25/11/2015 10:51 PM, "Oliver Lehmann" <lehmann at ans-netz.de> wrote:
> Hi Nick,
> Nick Downing <downing.nick at gmail.com> wrote:
> According to this:
>> You could use only segment 0 and program the code MMU to point segment 0
>> some physical address and the data and stack MMUs to point segment 0 to
>> some other physical address and you have a split I/D system capable of
>> running 2.11bsd assuming the compiler knows nothing of segments as you
>> said. Or, as outlined in my previous posts you can use a compiler that has
>> 23-bit pointers and understands how to output the high 7 bits as the
>> segment and the low 16 bits as the logical address each time it
>> dereferences a pointer (if such a compiler exists) and port 4.3bsd.
> I have two compilers ;)
> One compiler which creates "unsegmented binaries". The assembler code which
> is generated only uses 16bit pointer addresses (r0-r15) and only works on
> segment 0.
> This compiler is for example used to compile the boot loaders and
> utilities iirc and other "small" binaries on my SYSIII.
> There is also a "segmented compiler" which uses the 32bit registers
> to store the pointer adresses.
> It is currently used for compiling the SYSIII kernel (which is much bigger
> the 2.11 BSD kernel I saw) and all other "to big" binaries.
> And this would mean that "such a compiler exists" (referencing to your
> mail) and I could or should port 4.3 BSD?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the TUHS