Linked by paolone on Mon 27th Feb 2017 00:10 UTC
Amiga & AROS

After many years of active development, AROS finally seems to be able to 'evolve' the now 30+ years old architecture of the Amiga API. The original Amiga computers from Commodore brought to home users and professionals the first pre-emptive, window based operating system at affordable prices, although its kernel was tailored to the single Motorola 68000 CPU mounted on the machines. After Commodore's demise in 1994, a long debate started about the evolution of the Amiga platform and, although many announcements were made, current AmigaOS 4.1 is still a 32bit-based, single-core oriented operating system, and the same is true for Amiga-like alternatives MorphOS and AROS.

Things, however, are changing. In his weekly survey about AROS progress on AROS-EXEC.org and Amigaworld.net, Krzysztof Smiechowicz talked about "Work on handling additional CPU cores in x86_64 AROS kernel", adding "Initial version of SMP scheduler has been introduced in AROS i386/x86_64 kernel" just a week later. In the following weeks, a screenshot from coder Nick Andrews and a video on Youtube showed a 64-bit version of AROS, runnning on multicore AMD and Intel processors, handling 4 and 8 cores correctly.

SMP is being added to AROS by experienced coders Nick Andrews and Michal Schulz, and while it is not available in public nightly builds just yet, there is finally the chance to see an Amiga-like operating system handling modern CPUs properly.

Order by: Score:
15 years late
by unclefester on Mon 27th Feb 2017 00:55 UTC
unclefester
Member since:
2007-01-13

This should have been done in the early 2000s when x86-64 became the de facto standard.

Reply Score: 2

RE: 15 years late
by bugjacobs on Mon 27th Feb 2017 01:21 UTC in reply to "15 years late"
bugjacobs Member since:
2009-01-03

Yeah but AROS was mostly not around at the time and had to reverse engineer the whole OS first and that takes time ... !

Reply Score: 3

RE[2]: 15 years late
by jockm on Mon 27th Feb 2017 04:08 UTC in reply to "RE: 15 years late"
jockm Member since:
2012-12-22

Yeah but AROS was mostly not around at the time


The first release of AROS was in 1995

Reply Score: 2

RE[3]: 15 years late
by Yasu on Mon 27th Feb 2017 19:54 UTC in reply to "RE[2]: 15 years late"
Yasu Member since:
2014-05-15

The first release of AROS was in 1995


Which barely counted as an OS. It wasn't until mid to late 2000 it was at all usable.

Reply Score: 3

RE: 15 years late
by vezhlys on Mon 27th Feb 2017 06:38 UTC in reply to "15 years late"
vezhlys Member since:
2005-08-19

I wouldn't say that amd64 became a de facto standard in early 2000s. It was more at the end of that decade. Before that most of the people didn't even know about that or still used 32 bit systems even with 64 bit capable CPUs (Intel released first CPU with these instructions in June 2004 only according to wikipedia). But it may have made sense to do earlier during this decade (though it wasn't a purpose of this OS I guess).

Reply Score: 3

RE: 15 years late
by tidux on Mon 27th Feb 2017 06:57 UTC in reply to "15 years late"
tidux Member since:
2011-08-13

SMP and 64-bit support on an Amiga-like has literally never been done before even on AmigaOS 4 or MorphOS. Even the AmigaOne X1000 could only use one core of its PowerPC chip under AmigaOS 4 and shipped with a Debian-ppc dualboot so that users could have an SMP capable system. This is even more impressive given that MorphOS and AmigaOS 4 sacrificed AmigaOS 1.x-3.x API compatibility and AROS has not.

Hell, in the entire history of 80s microcomputer OSes, NONE of them got SMP. OS X and NT are descended from minicomputer OSes dressed up to look like their extinct relatives.

Reply Score: 4

RE[2]: 15 years late
by daedalus on Mon 27th Feb 2017 08:58 UTC in reply to "RE: 15 years late"
daedalus Member since:
2011-01-14

This is even more impressive given that MorphOS and AmigaOS 4 sacrificed AmigaOS 1.x-3.x API compatibility and AROS has not.


Have they? That's strange, because I do a lot of my OS3.x development under OS4 and MorphOS, and I haven't noticed any API changes that have stopped me doing that.

Reply Score: 2

RE[2]: 15 years late
by kalamatee on Mon 27th Feb 2017 16:29 UTC in reply to "RE: 15 years late"
kalamatee Member since:
2017-02-27

Well its unfair to imply it should've been done the second a 64bit CPU showed face - when it has taken Linux and windows a large part of the time since to get their operating systems taking advantage of it, or persuade users of the benefits/reasons. You could probably argue they are still fine tuning how they run in SMP environments.

AROS is developed by a handful of devs at most times, as a hobby, and they don't all necessarily have the skills to work on the kernel/exec/low level hardware. It has taken a while to get the pieces in place to even tackle it, especially when there are so many other things in AROS that also get worked on.

Reply Score: 3

RE[3]: 15 years late
by leech on Mon 27th Feb 2017 17:21 UTC in reply to "RE[2]: 15 years late"
leech Member since:
2006-01-10

Well its unfair to imply it should've been done the second a 64bit CPU showed face - when it has taken Linux and windows a large part of the time since to get their operating systems taking advantage of it, or persuade users of the benefits/reasons. You could probably argue they are still fine tuning how they run in SMP environments.

AROS is developed by a handful of devs at most times, as a hobby, and they don't all necessarily have the skills to work on the kernel/exec/low level hardware. It has taken a while to get the pieces in place to even tackle it, especially when there are so many other things in AROS that also get worked on.


Actually Linux pretty much had support as soon as the cpus were available in a decent supply. Not all distributions had a multi-arch setup like they do now, though the RHEL based ones certainly did.

These days the only thing I've seen that has to be 32bit are some emulators that have been coded so tightly to work in 32bit land that they need large amounts of coding to make work with 64bit, and for the most part it'd bring no performance advantage.

Reply Score: 3

RE[4]: 15 years late
by ssokolow on Tue 28th Feb 2017 10:11 UTC in reply to "RE[3]: 15 years late"
ssokolow Member since:
2010-01-21

These days the only thing I've seen that has to be 32bit are some emulators that have been coded so tightly to work in 32bit land that they need large amounts of coding to make work with 64bit, and for the most part it'd bring no performance advantage.


Don't underestimate the amount of closed-source code that's not going to get ported, such as Windows applications which require a 32-bit WINEPREFIX to function properly.

Reply Score: 2

RE[2]: 15 years late
by Yasu on Mon 27th Feb 2017 19:57 UTC in reply to "RE: 15 years late"
Yasu Member since:
2014-05-15

Not true. AROS still has API compatability with AOS 3.1 as it's main guideline. Which is why it hasn't had multicore support until now.

Reply Score: 3

RE: 15 years late
by paolone on Tue 28th Feb 2017 09:05 UTC in reply to "15 years late"
paolone Member since:
2007-09-24

> "This should have been done in the early 2000s when x86-64 became the de facto standard."

Two considerations:

1. AROS is not as famous and as popular among users and companies like Linux was in early 2000s, when AMD presented the Athlon64 and already provided all necessary tools to develop software for it.

2. 64-bit version of AROS is now about 10 years old. It has never been kept under consideration by users for the very simple reason there is no software for it (as I've always said, a bigger address space ALONE is not a fancy feature for people who like to use "ancient" software written for an aged API)

The real news here is about SMP.

Reply Score: 2

If only.
by MarkHughes on Mon 27th Feb 2017 07:43 UTC
MarkHughes
Member since:
2013-11-14

This is what 4.1 should have had on the X1000. I sold mine and got out of the Amiga scene but AROS may bring me back if they keep up this kind of work. Always looking for a viable alternative to Windows and Linux.

Reply Score: 1

RE: If only.
by paolone on Mon 27th Feb 2017 14:05 UTC in reply to "If only."
paolone Member since:
2007-09-24

Hello, there's no need to give up completely. Icaros Desktop can run hosted and native on real hardware or, for your convenience, in a cosy virtual machine. You can try it from time to time and keep an eye on its developments. AROS is always looking for people willing to do something (any kind) to help.

Reply Score: 2

RE[2]: If only.
by MarkHughes on Mon 27th Feb 2017 14:27 UTC in reply to "RE: If only."
MarkHughes Member since:
2013-11-14

I already downloaded it to see what it's like, I'm a coder so might be able to make myself useful... Though time is often hard to come by ;)

Reply Score: 1

RE[3]: If only.
by kalamatee on Mon 27th Feb 2017 16:17 UTC in reply to "RE[2]: If only."
kalamatee Member since:
2017-02-27

That's the problem our small band of devs all have sadly, so we try to do as much in that time as we can ;D
If you have any queries though I would suggest registering on the mailing list and asking there.

Reply Score: 1

Looks like it doesn't support SMP?
by Megol on Mon 27th Feb 2017 12:04 UTC
Megol
Member since:
2011-04-11

SMP means _symmetric_ multi-processing - a multi-processing system where processors are treated the same. However this design is obviously _not_ symmetric: "... my goal is to have the scheduler running on all the cores, and able to run tasks on them (if they _specifically_ are created to run on other cores) but normal tasks will still be assigned to the boot core" (Kalamantee @ Aros-exec.org)

Adding MP (note no S) to AmigaOS isn't a problem and nobody claim it have ever been a problem. But it isn't SMP and it isn't transparent to user programs.

Reply Score: 2

paolone Member since:
2007-09-24

Technically it may not be symmetric, but I'd wait for the final implementation before commenting. Please remember that the AmigaOS API was not designed for multi-core processor, nor software has ever been written with this chance in mind. Probably adding MP would have never been a problem, but reality is no one ever did. AROS taking the lead to this milestone, however, should finally help Amiga naysayers that its open source development model *IS* an advantage.

Reply Score: 1

kalamatee Member since:
2017-02-27

Its not SMP because we don't automatically run everything on any core - even though the scheduling runs on all the cores and runs available tasks that are allowed to run on the specified cores based on their affinity masks? Hmm yeah. So as soon as I tell a task to stop using other cores on windows and Linux, they are no longer SMP OS'es?

P.S - you cant just remove "S" from SMP, "MP" is memory protection, though I get the feeling you like to invent your own descriptions of what things mean.

Edited 2017-02-27 15:03 UTC

Reply Score: 2

tidux Member since:
2011-08-13

It would be SMP if you automatically removed the affinity for the boot core and let processes float.

Reply Score: 1

Megol Member since:
2011-04-11

Its not SMP because we don't automatically run everything on any core - even though the scheduling runs on all the cores and runs available tasks that are allowed to run on the specified cores based on their affinity masks? Hmm yeah.


The question isn't about that, the question is if the design is symmetric - can all tasks run on all processors using the standard API for synchronization between tasks? If yes, it is SMP. If no it isn't SMP (but multiprocessing - still a huge advantage over other Amigoid systems). If it requires a new API then it could still be SMP _however_ not as commonly defined in discussions of SMP in Amiga systems.


So as soon as I tell a task to stop using other cores on windows and Linux, they are no longer SMP OS'es?


SMP support means that the system support SMP. If you then choose to disable that functionality it is still there.


P.S - you cant just remove "S" from SMP, "MP" is memory protection, though I get the feeling you like to invent your own descriptions of what things mean.


Yes I invented things before I was born (no I'm not young). Is this the quality of discussion you want to have?
There's a reason I questioned if this really was SMP and that is that it is "known" that AmigaOS-compatible systems can't be made to run as SMP with the original ABI (note I'm not convinced of that myself). The quote seems to indicate that this system require programs to be written to support multiprocessing hinting at not being SMP but multiprocessing. Is that a reason to try to insult me?

BTW: Most TLAs are have multiple meanings and that applies to shorter ones too.

Reply Score: 2

kalamatee Member since:
2017-02-27

http://searchdatacenter.techtarget.com/definition/SMP
what you want to add to the definition by way of what tasks and such are running is your prerogative but the definition is pretty clear.

ps. TLA means literally "Three letter acronym" so you cant apply it to any old combination. Like SMP having a pretty clear definition, so does TLA, and MP.

Reply Score: 1

Megol Member since:
2011-04-11

http://searchdatacenter.techtarget.com/definition/SMP
what you want to add to the definition by way of what tasks and such are running is your prerogative but the definition is pretty clear.


I prefer technical rather than popular definitions of terms. That is popular - doesn't really define SMP, doesn't really say what differentiates it from other types of multiprocessing. The wikipedia page is much better, a relevant quote "... where two or more identical processors are connected to a single, shared main memory, have full access to all I/O devices, and are controlled by a single operating system instance that treats all processors equally, ..."


ps. TLA means literally "Three letter acronym" so you cant apply it to any old combination. Like SMP having a pretty clear definition, so does TLA, and MP.


So you can't read. TLAs and shorter -> ?
So you can't reason. TLAs and shorter (acronyms) have multiple meanings -> ?

I'll note that you haven't actually tried to respond to my question instead trying to attack me. I'll make it easy for you:

. Can all core operating system code run on any processor?
. Can device drivers run on any processor?
. Can things like interrupt handling etc. run on any processor?
. Can tasks on arbitrary processors communicate with each other using the standard Amiga API?
. Can tasks on arbitrary processors synchronize using the standard Amiga API?

Because all processors being treated the same by hardware and operating system is what makes the system symmetric.

Reply Score: 2

Brendan Member since:
2005-11-16

Hi,


SMP means _symmetric_ multi-processing - a multi-processing system where processors are treated the same. However this design is obviously _not_ symmetric: "... my goal is to have the scheduler running on all the cores, and able to run tasks on them (if they _specifically_ are created to run on other cores) but normal tasks will still be assigned to the boot core" (Kalamantee @ Aros-exec.org)


SMP means that all CPUs are the same, which is a hardware characteristic. For software, "SMP support" just means that the software supports "hardware where all CPUs are the same"; and it doesn't mean that software uses the CPUs in the same way.

The opposite is AMP (asymmetrical multi-processor), which means that some CPUs are different to others. An example of this might be Cell (where there's some major differences between "PPEs" and "SPEs").

MP is just a less specific term. CPUs must either be the same or different (and can't be "same and different") and "MP" doesn't specify which. The only other possibility is "only one CPU" (not MP, and therefore not SMP or AMP).

AROS supports "hardware with 2 or more CPUs that are the same", therefore MP and SMP are both correct, and SMP is more specific.

- Brendan

Reply Score: 4

lproven Member since:
2006-08-23

It sounds to me like you are confusing 2 different things:

* OS designs which treat all processors identically and can distribute any task to any core. This is symmetric multiprocessing and it has nothing to do with the hardware design of the processors.

* Computer designs where there are multiple processors or cores in a single machine, but they are dissimilar.

For instance, ARM's big.LITTLE design:

https://en.wikipedia.org/wiki/ARM_big.LITTLE

Or the Acorn RISC PC with a PC 2nd processor:

http://chrisacorns.computinghistory.org.uk/docs/Mags/PCW/PCW_Jun95_...

The Taos operating system was able to run on both ARM and x86 cores simultaneously and migrate its (processor-neutral) tasks between them.

Taos was discussed on OSnews back at the time:

http://www.osnews.com/comments/743

Reply Score: 0

lproven Member since:
2006-08-23

BTW -- a fascinating discussion of Tao, Taos, Elate/Intent and more on HackerNews:

https://news.ycombinator.com/item?id=9806607

Perhaps the single most impressive OS technology I have ever seen in the last 40 years.

Reply Score: 1

Megol Member since:
2011-04-11

It sounds to me like you are confusing 2 different things:


No.


* OS designs which treat all processors identically and can distribute any task to any core. This is symmetric multiprocessing and it has nothing to do with the hardware design of the processors.


YES IT HAS! One can't do SMP if the hardware isn't symmetric - that processors have the same kind of connection to all resources. The defining feature of SMP is that it is symmetric in that all processors are equal peers in all ways in hardware and software.


* Computer designs where there are multiple processors or cores in a single machine, but they are dissimilar.

For instance, ARM's big.LITTLE design:

https://en.wikipedia.org/wiki/ARM_big.LITTLE


Which is essentially a virtualized processor containing one faster and one slower. I'd call that SMP still as it run the same code, using the same ISA and have the same access to resources as a homogeneous processor would have. It is mostly transparent with hardware supported hand-off when switching processor type.


Or the Acorn RISC PC with a PC 2nd processor:

http://chrisacorns.computinghistory.org.uk/docs/Mags/PCW/PCW_Jun95_...


A co-processor design.


The Taos operating system was able to run on both ARM and x86 cores simultaneously and migrate its (processor-neutral) tasks between them.

Taos was discussed on OSnews back at the time:

http://www.osnews.com/comments/743


Yes it was interesting in many ways (but limited). Don't see what it have to do with this article?

Reply Score: 2

lproven Member since:
2006-08-23

Can you try to be a bit less dogmatic and a bit more open to discussion?

SMP does _not_ require identical processors. It is a _software_ architecture. I provided multiple examples in my reply.

ARM setups with dissimilar cores which only share an instruction set, with different hardware designs running at different speeds, in the interests of better power management.

Yes, it is SMP, but the cores are not identical. This invalidates your argument.

SMP is *not* about hardware.

Yes, the Risc PC was a coprocessor design. The point here being that with suitable software, a coprocessor setup can actually act like an SMP system with identical processors, even, in this unique example, with different CPU architectures.

Taos, the relevance of which you appeared not to understand. The relevance being that it could move tasks between an ARM and an x86 chip.

Other examples include NUMA machines and compute clusters.

As I said: you appear to be conflating 2 different things, and this is both incorrect and unhelpful.

Reply Score: 1

JLF65 Member since:
2005-07-06

Sorry, but you're COMPLETELY wrong on this. Please learn a bit more before talking about things you know nothing about. Start here: https://en.wikipedia.org/wiki/Symmetric_multiprocessing

That has a good explanation that's not too technical for you non-engineers (and you're clearly not an engineer).

Reply Score: 2

Megol Member since:
2011-04-11

Can you try to be a bit less dogmatic and a bit more open to discussion?

SMP does _not_ require identical processors. It is a _software_ architecture. I provided multiple examples in my reply.
<snip>


It requires processors that are symmetric in the way used in the SMP definition. That is that all resources should be equally accessible from all processors, if not one can't start program X on an arbitrary processor N. So SMP is linked to the actual hardware (but see below).

I agree that Elate VPs (Virtual Processors - as it is yet again an acronym with a huge amount of different uses) or similar could be used to implement a SMP system, don't know if they ever did.

However even in that case the OS presents a virtual system where processors (VPs) execute the same code and have a common message passing interface for communication. In that way the system is symmetric.
IIRC one could use shared memory between tightly coupled processors as an optimization, if so (and shared memory not being emulated* between loosely coupled processors) that means it isn't a SMP system as it isn't fully symmetric.

(Actually didn't get what you meant with the Taos reference - my bad)

(* emulating shared memory would most likely use the VM support to detect modifications, Taos/Elate didn't support that AFAIK which would mean a very slow check-every-memory-reference design would be the only choice)

Reply Score: 2

Intuition Member since:
2013-05-28

We've had multiprocessing for over 20 years, it just isn't SMP.

http://powerup.amigaworld.de/index.php?lang=en&page=15

Reply Score: 1

lproven Member since:
2006-08-23

Don't invent new terms when there are existing ones.

Multiprocessing that is not symmetrical is called asymmetric multiprocessing or AMP:

https://en.wikipedia.org/wiki/Asymmetric_multiprocessing

Reply Score: 1

Megol Member since:
2011-04-11

Don't invent new terms when there are existing ones.

Multiprocessing that is not symmetrical is called asymmetric multiprocessing or AMP:

https://en.wikipedia.org/wiki/Asymmetric_multiprocessing


*SIGH* I know the terms and multiprocessing is a term. Asymmetric multiprocessing is mostly a creation after SMP was use to describe a subset of multiprocessing systems. There are other subtypes too but I don't know if I dare to spell it out without a bunch of know-it-all popping up? E.g. master slave systems have many other names, I suggest you look it up and maybe learn something new.

A system that isn't asymmetric but not symmetric is possible to create. Think about it.

How about you people that accuse me of inventing things read some relevant literature before assuming you know it all?

Reply Score: 3