[TUHS] Commercial UNIX was other stuff before

Larry McVoy lm at mcvoy.com
Mon Feb 4 07:17:33 AEST 2019


On Sun, Feb 03, 2019 at 03:58:39PM -0500, Clem Cole wrote:
> On Sun, Feb 3, 2019 at 2:59 PM C??g <ca6c at bitmessage.ch> wrote:
> 
> > [Hockey Pucks and AIX are alive, Wikipedia says.
> > The problem could be that neither support amd64 and/or
> 
>  Be careful.  The history of proprietary commercial UNIX implementations is
> that they were developed by HW manufacturers that had proprietary ISAs.  So
> that fact that UX was Itanium and AIX was Power (or Tru64 in its day was
> Alpha) should not be surprising.  It was the way the market developed. Each
> vendor sold a unique ecosystem and tried very hard to keep you in it.
> Portability was designed as an >>import<< idea, and they tried to keep you
> from exporting by getting you to use 'value add.'

Not on Sun's.  I personally wrote lint libraries for other OS's, BSD,
strict POSIX, System V, etc.  Had a huge fight with Gingell to get
them included in SunOS 4.something (he didn't want to give up 40KB
of extra files in the install; I threatened to quit if they didn't
go in - I won).

My theory was Sun was the most liked development platform, I wanted
to keep that going.  The idea was make it so you could develop for 
any major target on Suns.  Yeah, I wanted the devs to be on Suns but
be able to deploy on whatever you had to. 

> Linux running on VMs.  But a huge issue was code reuse.   To reuse, Henry's
> great line about BSD, Linux is just like Unix; only different.

That's because people are sloppy and don't code to a standard.  If you
look through the BitKeeper code you'll find our own libc that is portable
across pretty much every major commercial Unix, Linux (at one point on
Alpha, PPC, MIPS, SPARC, x86, x86-64, even whatever the IBM mainframe
Unix), BSD, MacOS and Windows.

The hardest part was fork(2), we didn't figure out a way to emulate that
so we redid windows spawn() style on Unix.  I have typed out 

	switch (pid = fork()) {
		...
	}

in decades.

Yeah, we have a few #ifdefs but the libc interface our code uses is 
quite clean and portable.

So it is possible to have code that runs everywhere but you have to
get disciplined about it.

Other than those quibbles, I agree with Clem.


More information about the TUHS mailing list