The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] Weird nix? Regulus
       [not found] <mailman.1029.1505658197.3779.tuhs@minnie.tuhs.org>
@ 2017-09-17 17:27 ` David
  2017-09-17 17:55   ` Ron Natalie
                     ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: David @ 2017-09-17 17:27 UTC (permalink / raw)


What a pain, almost like Unix, and not quite. l It was a clone of Unix for the 68k. The APIs were ever so slightly different because the authors were concerned about copyright infringement. libc calls had different argument orders or types and in general it was just off enough that you wanted to claw at the screen every time something went wrong.

To top it off, the system we were hosting it on was so slow that a full rebuild of our meager (10k lines) software took overnight.

I eventually ported all the software to a SparcStation-2 cross compiling to the 68k target we were embedded on.

> To kick a more relevant thread off, what was the "weirdest" Unix system you used & why? Could be an emulation like Eunice, could  be the hardware e.g NULL was not zero, NUXI byte ordering etc.
> 
> Cheers, Warren



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [TUHS] Weird nix? Regulus
  2017-09-17 17:27 ` [TUHS] Weird nix? Regulus David
@ 2017-09-17 17:55   ` Ron Natalie
  2017-09-17 18:07   ` Derrik Walker v2.0
  2017-09-18 16:41   ` Paul Winalski
  2 siblings, 0 replies; 6+ messages in thread
From: Ron Natalie @ 2017-09-17 17:55 UTC (permalink / raw)


I was involved in a few supercomputer UNIXes.     The one for most obnoxious
for writing applications was the Cray X-MP which had only had one numerical
data size, 64 bits.     The thing had 24 bit pointers.    My attempts to
guess appropriate sizes in our portable application failed (though it
complied).   I had sent a junior programmer over to try the port and it
printed "You've got to be kidding" when it ran.    He calls up and says "I
think that's one of your messages."

The other port I was intimately familiar with having designed some of the
hardware (the I/O system) was the Denelcor HEP.   The US Army BRL had this
thing built to do fluid dynamics problems.   It started out being an analog
computer project and then moved to hybrid and finally to an all-digital
Multi-Instruction Multi-Data parallel process built all out of 10800 MECL.
The neat thing that in addition to running 40 or so concurrent threads it
could also keep track of like 1024 threads that it hardware scheduled.
Each memory word had a "full-empty" bit that it would semaphore instructions
like "Read when Full, Set Empty."

Mike Muuss was the head of our group at the time and when the thing was
destined to be delivered without an OS, he did his usual "We can put UNIX on
it."  The brass took us up on the offer.   We ported 4.2 BSD to the thing
(we'd just come off bringing up a couple of the George Gobel @ Purdue Dual
VAXes so we figured we knew our way around the MP aspects).

The HEP was the first machine we had four different integral sizes: 8, 16,
32, and 64.   We wanted 64 to be the "int" size so we were trying to figure
out what to call the 32 bit type.    Medium was a prime contender.    I
suggested "short long."   We settled for a new int32 (or some variant
keyword).    Anyhow, since I was the linker and I/O guy on the project I
discovered a hideous bug in 4BSD.   The HEP had two addressing modes:
character (which is what you'd expect) and "word".    The word encoded the
word size in the low order bits in an unusual fashion.

0x1000 would be the 64 bit value at 0x1000.
0x1002 would be the 32 bit value at 0x1000.
0x1006 would be the 32 bit value at 0x1004
0x1001,1003,1005, 1007 would be the 16 bit values at 1000, 1002, 1004, and
1006 respectively.
0x1004 gave you a 64 bit value at 0x1000 (for no useful reason).

There was places all over the 4BSD kernel where what I call "conversion by
union" was taking place.    There was a type that looked like this

union any {
      char*    c;
      short * s;
      int *I;
     long *l;
};

And it would store things into one union accessor and retrieve it from
another.    This would end up NOT converting the pointer and fun happens
when the compiler and the hardware were unclear of the actual word size.
I chased down all this nonsense replacing them with void* so that the proper
type conversion could be performed.

Neat thing about this machine is for I/O it had 32 individual Unibuses
gatewayed to it's main memory switch.    Initially, the control logic for
that used a feature very aptly named "the low speed bus" primarily designed
for getting the thing configured to boot up.     After realizing that the
thing was only doing about ten I/O's  a second, we decided we needed to come
up with something better.   HEP designer Burton Smith and I sat down at the
local steak house and literally drew up a new design on the napkins that we
could build out of the spares we had lying around.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [TUHS] Weird nix? Regulus
  2017-09-17 17:27 ` [TUHS] Weird nix? Regulus David
  2017-09-17 17:55   ` Ron Natalie
@ 2017-09-17 18:07   ` Derrik Walker v2.0
  2017-09-18 16:41   ` Paul Winalski
  2 siblings, 0 replies; 6+ messages in thread
From: Derrik Walker v2.0 @ 2017-09-17 18:07 UTC (permalink / raw)


On 09/17/2017 01:27 PM, David wrote:
> What a pain, almost like Unix, and not quite. l It was a clone of Unix for the 68k. The APIs were ever so slightly different because the authors were concerned about copyright infringement. libc calls had different argument orders or types and in general it was just off enough that you wanted to claw at the screen every time something went wrong.
>
> To top it off, the system we were hosting it on was so slow that a full rebuild of our meager (10k lines) software took overnight.
>
> I eventually ported all the software to a SparcStation-2 cross compiling to the 68k target we were embedded on.
>
>> To kick a more relevant thread off, what was the "weirdest" Unix system you used & why? Could be an emulation like Eunice, could  be the hardware e.g NULL was not zero, NUXI byte ordering etc.
>>
>> Cheers, Warren

Mach Ten ... this weird BSD thing that runs on top of Classic Mac OS.  I 
actually have a minivmac image on my Linux box that it boots and runs on!

I used it as my "UNIX workstation" Until I finally got my hands on a 
Sparc in the late '90's.

- Derrik

Derrik Walker v2.0, RHCE
dwalker at doomd.net

"Those UNIX guys, they think weird!" -- John C. Dvorak


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3986 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20170917/7cb41ccc/attachment.bin>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [TUHS] Weird nix? Regulus
  2017-09-17 17:27 ` [TUHS] Weird nix? Regulus David
  2017-09-17 17:55   ` Ron Natalie
  2017-09-17 18:07   ` Derrik Walker v2.0
@ 2017-09-18 16:41   ` Paul Winalski
  2 siblings, 0 replies; 6+ messages in thread
From: Paul Winalski @ 2017-09-18 16:41 UTC (permalink / raw)


On 9/17/17, David <david at kdbarto.org> wrote:
> What a pain, almost like Unix, and not quite. l It was a clone of Unix for
> the 68k. The APIs were ever so slightly different because the authors were
> concerned about copyright infringement. libc calls had different argument
> orders or types and in general it was just off enough that you wanted to
> claw at the screen every time something went wrong.

And the tragic irony is that those sorts of cosmetic tricks don't
shield you from copyright infringement.

-Paul W.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [TUHS] Weird nix? Regulus
  2017-09-18 19:54 Derek Fawcus
@ 2017-09-19 11:53 ` David
  0 siblings, 0 replies; 6+ messages in thread
From: David @ 2017-09-19 11:53 UTC (permalink / raw)


I believe so. Alcyon was the company that made Regulus.

	David

> On Sep 18, 2017, at 12:54 PM, Derek Fawcus <dfawcus+lists-tuhs at employees.org> wrote:
> 
>> What a pain, almost like Unix, and not quite. l It was a clone of Unix for the 68k.
> 
> Funny, I was just poking through some ccpm68k source/tools, which happened to contain
> the Alcyon C compiler source,  and one of the files is:
> 
> $ cat v103/doc/files/Sectioname
> .fo 'REGULUS Reference Manual'- % -'FILES'
> $
> 
> The same system?
> 
> DF



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [TUHS] Weird nix? Regulus
@ 2017-09-18 19:54 Derek Fawcus
  2017-09-19 11:53 ` David
  0 siblings, 1 reply; 6+ messages in thread
From: Derek Fawcus @ 2017-09-18 19:54 UTC (permalink / raw)


> What a pain, almost like Unix, and not quite. l It was a clone of Unix for the 68k.

Funny, I was just poking through some ccpm68k source/tools, which happened to contain
the Alcyon C compiler source,  and one of the files is:

$ cat v103/doc/files/Sectioname
.fo 'REGULUS Reference Manual'- % -'FILES'
$

The same system?

DF


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-09-19 11:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <mailman.1029.1505658197.3779.tuhs@minnie.tuhs.org>
2017-09-17 17:27 ` [TUHS] Weird nix? Regulus David
2017-09-17 17:55   ` Ron Natalie
2017-09-17 18:07   ` Derrik Walker v2.0
2017-09-18 16:41   ` Paul Winalski
2017-09-18 19:54 Derek Fawcus
2017-09-19 11:53 ` David

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).