Unix for Archimedes

chat about arc/risc pc gaming & RISC OS software here (NOT the core OS!)Related forum: adventures


Post Reply
litwr
Posts: 198
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Unix for Archimedes

Post by litwr » Sun Aug 05, 2018 5:09 pm

It is quite possible that somebody could ask this question earlier. However after some browsing I couldn't find any answer. I have found a related subject viewtopic.php?f=3&t=13991&hilit=unix only. So I am very curious why did Unix miss Archimedes in the 80s? It looks like a big mystery for me. There were Unix variants for PDP-11 with 32 KB RAM only, 68000, 8088, 80186, z8000, ... All these listed CPUs don't have MMU or FPU. IMHO Archimedes with Unix was capable to be one of the best Unix PC of the 80s.

RobC
Posts: 2300
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Unix for Archimedes

Post by RobC » Sun Aug 05, 2018 5:14 pm

litwr wrote:
Sun Aug 05, 2018 5:09 pm
So I am very curious why did Unix miss Archimedes in the 80s?
Umm, it didn't: http://chrisacorns.computinghistory.org.uk/Riscix.html

I have a (currently sick :( ) R260. It has 16MB of RAM and an FPU. When it works, it's quite good fun!

I believe there were other Unix-like OSes for the Arc - I've seen mention of Minix, NetBSD and ARM Linux.
Last edited by RobC on Sun Aug 05, 2018 5:15 pm, edited 1 time in total.

User avatar
BigEd
Posts: 2091
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Unix for Archimedes

Post by BigEd » Sun Aug 05, 2018 5:34 pm

That's good to know Rob... but let's not forget the unreleased ARX which was what Acorn intended to use, but which wasn't looking likely to finish in time (or at all), and so ARTHUR was born.
ARX was an unreleased Mach-like operating system written in Modula-2+ developed by Acorn in the UK, and later at Palo Alto, for their new ARM based Archimedes range. It used C and Acorn Extended Modula-2.
ARX was a pre-emptive multitasking, multithreading, multi-user operating system.
The project team, led by Paul Fellows, was given just five months to develop Arthur entirely from the ground up—with the directive "just make it like the BBC micro". It was intended as a stop-gap until ARX could be completed. However, the latter was delayed time and again, and was eventually dropped when it became apparent that the Arthur development could be extended to have a window manager and full desktop environment.
Edit: tidy up wikipedia quotes
Last edited by BigEd on Sun Aug 05, 2018 5:35 pm, edited 1 time in total.

RobC
Posts: 2300
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Unix for Archimedes

Post by RobC » Sun Aug 05, 2018 6:32 pm

BigEd wrote:
Sun Aug 05, 2018 5:34 pm
but let's not forget the unreleased ARX which was what Acorn intended to use, but which wasn't looking likely to finish in time (or at all), and so ARTHUR was born.
Have to admit that I'd forgotten about ARX :oops: Was it Unix like?

There's a list of Acorn's operating systems here. Of course, there were other offerings that were developed outside of Acorn (like some of those I mentioned above). I even remember talk of an Archimedes OS being developed by Computer Concepts - I think this was before Acorn released RISC OS.

litwr
Posts: 198
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: Unix for Archimedes

Post by litwr » Sun Aug 05, 2018 7:21 pm

Thank you very much! :) It is a shame for me that I completely missed this information. R140 has even a MMU. However Wikipedia said that it was a Unix-like system not just Unix... It is also interesting to get some statistics like in an Byte's article https://archive.org/stream/byte-magazin ... 7/mode/2up.

User avatar
paulv
Posts: 3686
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: Unix for Archimedes

Post by paulv » Sun Aug 05, 2018 7:35 pm

These days you can even get RiscIX up and running with the right hardware

https://www.4corn.co.uk/articles/riscix121c/

Paul

User avatar
BigEd
Posts: 2091
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Notes on ARX, not a Unix

Post by BigEd » Sun Aug 05, 2018 7:40 pm

RobC wrote:
Sun Aug 05, 2018 6:32 pm
Have to admit that I'd forgotten about ARX :oops: Was it Unix like?
That's a good question: I think probably not, on the inside. Certainly not derived from Unix. In terms of capabilities, perhaps somewhat: multi user, multi process, pre-emptive. But I'm not sure any ARX materials survive - no wait, someone claims there are sources. It seems Acorn purged Modula-2 from their world, and the ARC (Acorn's PARC) became part of Olivetti.

I did find various pages mentioning ARX, which might be interesting for reference:
http://www.rougol.jellybaby.net/meeting ... ulFellows/
https://everything2.com/title/Acorn+Archimedes
https://www.stairwaytohell.com/articles ... story.html
https://www.chiark.greenend.org.uk/~the ... la2ARX.txt
ARX was written in a variant of Modula-2 called Acorn Extended Modula2
(similar to Modula-2+) which adds support for multithreading and exception
handling to the basic language. The language was ported to the ARM from
the 16032 version used to write Panos. Presumably this means that ARX was
optimised towards the AEM2 runtime requirements. The Modula2 compiler
(and presumably ARX itself) was 'lost' to Olivetti when they took over
sole control of the Palo Alto facility.

The O.S. 'ran in user mode', suggesting that it was microkernel based. The
synchronisation primitives of the original microkernel were sufficiently
slow that the SWP instruction was subsequently added to the ARM ISA to
allow user mode code to implement semaphores without going via the
microkernel.

It ran, but with a big performance hit - possibly as a result of spending
half it's time jumping in and out of superviser mode (I can think of a few
other microkernel based O.S. implementations which are said to suffer from
this).
- Chris Holgate
RobC wrote:
Sun Aug 05, 2018 6:32 pm
an Archimedes OS being developed by Computer Concepts - I think this was before Acorn released RISC OS.
Possibly that was to be called "Impulse" or perhaps "Zebedee" but was "dropped before it was finished."

User avatar
davidb
Posts: 2192
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Unix for Archimedes

Post by davidb » Sun Aug 05, 2018 7:42 pm

Don't forget that 4corn has a collection of resources about Acorn's UNIX.
I also started a thread about alternative 32-bit operating systems for the RISC OS machines. :)

User avatar
BigEd
Posts: 2091
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Unix for Archimedes

Post by BigEd » Sun Aug 05, 2018 7:56 pm

Ooh, nice thread! I see there that it's Jules Richardson who has some ARX source code.

User avatar
davidb
Posts: 2192
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Notes on ARX, not a Unix

Post by davidb » Sun Aug 05, 2018 7:59 pm

BigEd wrote:
Sun Aug 05, 2018 7:40 pm
That's a good question: I think probably not, on the inside. Certainly not derived from Unix. In terms of capabilities, perhaps somewhat: multi user, multi process, pre-emptive. But I'm not sure any ARX materials survive - no wait, someone claims there are sources. It seems Acorn purged Modula-2 from their world, and the ARC (Acorn's PARC) became part of Olivetti.
A post from the BBC Micro mailing list looked promising - Acorn ARX anybody? - but I don't think that anything came from it.
BigEd wrote:
Sun Aug 05, 2018 7:40 pm
RobC wrote:
Sun Aug 05, 2018 6:32 pm
an Archimedes OS being developed by Computer Concepts - I think this was before Acorn released RISC OS.
Possibly that was to be called "Impulse" or perhaps "Zebedee" but was "dropped before it was finished."
I'm going to quote from a mail I received from Charles Moir in 2012 on this subject. Normally I wouldn't quote private mail but I hope nobody minds too much - it's not doing much good sitting in my mail folder.
Anyway we decided what was needed was a 'real operating system' i.e. a modern, properly multi-tasking, multi-threaded, hardware protected memory spaces, type of OS (none of this cooperative multi-tasking) that took advantage of the ARM / MEMC controller chips (which were always designed to support real multi-tasking.)

That was Impulse. We got quite far with it - to the extent it was running and even had the beginning of Windows manager running.
There's a lot more behind that story, including an Archimedes-on-a-card that they couldn't get approved by Acorn.

User avatar
Rich Talbot-Watkins
Posts: 1352
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: Notes on ARX, not a Unix

Post by Rich Talbot-Watkins » Mon Aug 06, 2018 1:59 pm

The O.S. 'ran in user mode', suggesting that it was microkernel based. The
synchronisation primitives of the original microkernel were sufficiently
slow that the SWP instruction was subsequently added to the ARM ISA to
allow user mode code to implement semaphores without going via the
microkernel.
I was aware of this reason for implementing the SWP instruction in hardware, but something else I once read was that LDM or STM instructions had previously been used as a mechanism for implementing mutexes in an atomic way. Anyone got any idea how that would've worked (or even where I read it)?

litwr
Posts: 198
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: Notes on ARX, not a Unix

Post by litwr » Tue Aug 07, 2018 4:36 pm

Rich Talbot-Watkins wrote:
Mon Aug 06, 2018 1:59 pm
I was aware of this reason for implementing the SWP instruction in hardware, but something else I once read was that LDM or STM instructions had previously been used as a mechanism for implementing mutexes in an atomic way. Anyone got any idea how that would've worked (or even where I read it)?
SWP was implemented in 1992. It was surprising at least for me that Intel implemented such kind of instruction useful for mutexes even in 1978 - XCHG. I am a bit curious why to use LDM/STM with single CPU with one core? Are there systems with multiple ARMs before 1992?

RobC
Posts: 2300
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Unix for Archimedes

Post by RobC » Tue Aug 07, 2018 4:52 pm

litwr wrote:
Tue Aug 07, 2018 4:36 pm
SWP was implemented in 1992.
Didn't SWP come in with the ARM3? In which case, I think it would have been 1989.

steve3000
Posts: 1886
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: Unix for Archimedes

Post by steve3000 » Tue Aug 07, 2018 5:05 pm

Both right sort of. Came in with Arm3 in 1989, and with Arm250 in 1992...

litwr
Posts: 198
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: Unix for Archimedes

Post by litwr » Tue Aug 07, 2018 6:55 pm

A Google search has given that SWP appered with ARMv2a and deprecated with ARMv6. However it is not easy to find the exact years. BTW it is possible to implement a mutex without atomic operation, for example, https://en.wikipedia.org/wiki/Peterson%27s_algorithm.
There is something odd around Unix for Archimedes. For example look at https://pdfs.semanticscholar.org/d601/1 ... 10d0fd.pdf - it contains a phrase
The Archimedes received a lukewarm response at its launch because personal computing appeared to be consolidating behind the IBM PC standard while Acorn had introduced a computer with a new processor, a new operating system, and no base of software to provide users with the applications they needed.
This sounds like a remarkable oddity for a Unix-computer.
It is a bit off topic... When was the first co-processor for ARM made? ARMv2 has a lot of instruction to support a co-processor...

User avatar
BigEd
Posts: 2091
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Unix for Archimedes

Post by BigEd » Tue Aug 07, 2018 7:14 pm

Looks like the Archimedes with ARM3 had a socket for a floating point coprocessor, the FPA10 or later FPA11, both from 1993:
In July 1993 Acorn finally released the FPA10 Floating Point Accelerator for the A540, A5000 and R260 which boosted floating point performance by a factor of 50. The Acorn A5000 and A540 FPA upgrade kit installation instructions provides more information about installation and use of the FPA10. The FPA Support disc is available in the Software section.
Last edited by BigEd on Tue Aug 07, 2018 7:15 pm, edited 1 time in total.

steve3000
Posts: 1886
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: Unix for Archimedes

Post by steve3000 » Tue Aug 07, 2018 7:17 pm

First coprocessor was at launch of A440 in 1987/88 I think? It was on a podule card, with full access to address bus via the A440's podule backplane. Later Archie's didn't have this.

User avatar
BigEd
Posts: 2091
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Unix for Archimedes

Post by BigEd » Tue Aug 07, 2018 7:20 pm

A bit later than that, I've just found the R140 from 1989 with a floating point coprocessor (at least as an option?)
Acorn introduced the WE32206 Floating Point Co-Processor at the same time as the R140 Unix Workstation.
http://chrisacorns.computinghistory.org ... CoPro.html

Edit to add, from here:
Acorn AKA20 FP Co-processor
Acorn FP co-processor for R140 and Archimedes A400 series. Only compatible with the ARM 2.
Before developing the FPA11, Acorn's hardware solution to floating point on the ARM was with a custom bridge chip (Acorn FPPC) to convert the ARM's FP instructions to the Western Electric WE32206 FP chip.
Edit to add, from the service manual
• If you have an Archimedes 440, you must return your computer to your supplier for an
internal modification before fitting the co-processor card.
• If you have an Acorn R140, Archimedes 410/1, 420/1 or 440/1 computer (or 440 modified as
mentioned above), install the co-processor in accordance with the following instructions
Last edited by BigEd on Tue Aug 07, 2018 7:29 pm, edited 2 times in total.

Phlamethrower
Posts: 84
Joined: Fri Nov 24, 2017 1:35 pm
Contact:

Re: Notes on ARX, not a Unix

Post by Phlamethrower » Tue Aug 07, 2018 7:28 pm

Rich Talbot-Watkins wrote:
Mon Aug 06, 2018 1:59 pm
I was aware of this reason for implementing the SWP instruction in hardware, but something else I once read was that LDM or STM instructions had previously been used as a mechanism for implementing mutexes in an atomic way. Anyone got any idea how that would've worked (or even where I read it)?
That does sound familiar to me as well, although I've also got no idea where I would have read it. No information in the PRMs on how to implement a mutex/semaphore, so maybe it was from a magazine?

It's reasonable to assume the non-SWP version would have been an implementation of Peterson's Algorithm, but since that doesn't require LDM/STM, maybe the example we're thinking of was actually something different. Or maybe our memories are just bad :)

One benefit of LDM/STM is that (on old architectures) they can atomically read/write multiple words of memory without requiring interrupts to be disabled (useful if you're interacting with user-mode code). (On new architectures, LDM/STM isn't atomic for multi-core use, and may not even be atomic for single-core use - some CPUs have a low-latency option that allows an executing LDM/STM to be cancelled if an interrupt occurs. Once the IRQ handling is complete the instruction will be restarted.)

RobC
Posts: 2300
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Unix for Archimedes

Post by RobC » Tue Aug 07, 2018 7:51 pm

litwr wrote:
Tue Aug 07, 2018 6:55 pm
A Google search has given that SWP appered with ARMv2a and deprecated with ARMv6. However it is not easy to find the exact years.
The ARM3 was ARM v2a and definitely came out in 1989 so I believe that's the earliest date for an available ARM chip with SWP instruction.
litwr wrote:
Tue Aug 07, 2018 6:55 pm
There is something odd around Unix for Archimedes. For example look at https://pdfs.semanticscholar.org/d601/1 ... 10d0fd.pdf - it contains a phrase
The Archimedes received a lukewarm response at its launch because personal computing appeared to be consolidating behind the IBM PC standard while Acorn had introduced a computer with a new processor, a new operating system, and no base of software to provide users with the applications they needed.
This sounds like a remarkable oddity for a Unix-computer.
I think that's a reference to the original Archimedes range launched in 1987 with the Arthur operating system. Acorn didn't release RISCiX until 1988.

steve3000
Posts: 1886
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: Unix for Archimedes

Post by steve3000 » Tue Aug 07, 2018 8:02 pm

BigEd wrote:
Tue Aug 07, 2018 7:20 pm
A bit later than that, I've just found the R140 from 1989 with a floating point coprocessor (at least as an option?)
Ah that's right and makes sense that it came as an option for the RISCiX computers.

litwr
Posts: 198
Joined: Sun Jun 12, 2016 8:44 am
Contact:

Re: Unix for Archimedes

Post by litwr » Sat Aug 11, 2018 6:02 pm

Thanks! :) Archimedes has been among my favorite computers since 1991. However it was very difficult to buy one that time outside the UK. :(

Post Reply