/joh'liks/ n.,adj. 386BSD

Porting Unix to the 386: A Practical Approach



William & Lynne Jolitz


Our Symmetric 375 was close but not identical to a 386 - its National 32000 series microprocessor was different. Yet it was a good choice for cross host in a cross development environment.




Choosing a Sensible Cross-Host
Our ad hoc modifications of GCC resulted in a cross-compiler that would provide a considerable amount of language support, but it had limits. We also needed to consider the following: include file differences, byte sex, floating point format, inline assembly code, table generation programs, hardware page size, and object libraries. Some of these areas were so pervasive and important that they were primary considerations when we selected our cross-host.

By selecting an appropriate cross-host, we minimized a number of problems, including compatible byte sex, structure data alignment, program size, and existing tool set. Floating point data format turned out to be a minor concern because few programs in the early utilities group require it. Thanks to the IEEE floating point standard, this becomes easy as most post-VAX period processors support the same format (modulo byte order). Obviously, our job would have been simpler if we already had 386BSD up and running and then had to port it, so what we looked for in a cross-host was something very similar. Oddly enough, a C compiler hides most of the native machine's instruction set, so the least important part is the cross-host's processor architecture. Operating system version and program development tool similarity count for much more.

Those more dogmatic, gutsy, or energetic might say that we simply avoided the hard parts. They are quite correct. What hardships we did endure in cross-tools were more than enough for us.


<<BACK NEXT >>



Copyright 1990, 2006 TeleMuse Partners, William Jolitz and Lynne Jolitz