Amiga.org
Amiga computer related discussion => General chat about Amiga topics => Topic started by: danbeaver on October 14, 2012, 12:35:39 AM
-
OK,
Here is the thread, so go at it: When you run software written for one computer (let us say an Amiga) on another computer (for instance a PC, MAC, or DEC PDP 11/40), what is it?
-
If it runs well...fun.
-
If it runs well...fun.
"Fun" isn't an option on an Apple or a PC (a PDP 11/40, maybe).
-
What would it be if not emulation?
-
How do you mean? Are you talking about running software in an emulated environment or talking about running that software natively on the hardware?
If your talking about running software natively then it's not emulation as your doing it without any external support. so long as there is a version of the language for the target platform it's all good. Otherwise you would need to port it to a language supported by the target platform.
This is a simplified version so don't shoot me if you feel this is inacruate. but I am on my 5th night shift and I can't be bothered now lol.
-
How do you mean? Are you talking about running software in an emulated environment or talking about running that software natively on the hardware?
If your talking about running software natively then it's not emulation as your doing it without any external support. so long as there is a version of the language for the target platform it's all good. Otherwise you would need to port it to a language supported by the target platform.
This is a simplified version so don't shoot me if you feel this is inacruate. but I am on my 5th night shift and I can't be bothered now lol.
Hi mate are you having some fun with your Stealth Accelerator :)
-
How do you mean? Are you talking about running software in an emulated environment or talking about running that software natively on the hardware?
So, by "natively," you mean PPC opcodes only running on a PPC system.
Yep, that's native.
68k opcodes running on a PPC? There's some level of emulation.
Now, as I've said, if it's done well, it doesn't matter what it's called.
It's very kual. I just think it's very kual emulation. ;-)
desiv
-
Can someone help me? What does it mean "to run software natively?"
WikiPedia: In computing, the "native" adjective refers to software or data formats supported by a certain system with minimal computational overhead and additional components. This word is used in such terms as native mode or native code.
Would not an "API" be an additional component?
-
Hi mate are you having some fun with your Stealth Accelerator :)
It's fun. Makes things zip along until you run into a game that refuses to work properly because of it lol. But then I have a switch that dissables it so no biggie.
So, by "natively," you mean PPC opcodes only running on a PPC system.
Yep, that's native.
68k opcodes running on a PPC? There's some level of emulation.
Now, as I've said, if it's done well, it doesn't matter what it's called.
It's very kual. I just think it's very kual emulation. ;-)
desiv
I suppose natively was the wrong wording. I perceived it that he was wanting to run things that seemed both hardware and OS agnostic. Kind of cross platform stuff. Kind of like how we have several languages that are cross platform.
However, like you stated, if he is wanting to run something that was intended for a 68k system on say x64 hardware then yes a layer of emulation would be be needed. Kind of like when Apple went from OS9 to OSX and they had that compatability layer which was a emulated version of OS9.
-
So, by "natively," you mean PPC opcodes only running on a PPC system.
Yep, that's native.
68k opcodes running on a PPC? There's some level of emulation.
Now, as I've said, if it's done well, it doesn't matter what it's called.
It's very kual. I just think it's very kual emulation. ;-)
desiv
I like the way you said cool as kual. It makes you sound badass.
-
I like the way you said cool as kual. It makes you sound badass.
Only because "RAD" makes me sound too old.. ;-)
desiv
-
It's a spectrum, really. If you have something that runs in binary form on another system of its same processor architecture, and all you need to do is handle its system calls, that's more of a compatibility layer than emulation (though in a sense you are emulating the target OS, but not completely.) If, say, it uses a different ABI for some reason (say, it uses trap instructions instead of subroutine calls for system functions,) and you have to do more lower-level translation, you're inching closer to emulation territory. Then there's situations where, say, the application isn't running natively because it's on a different architecture, but the system is the same, like Mac OS X on Intel running PowerPC software through Rosetta - that's emulation of the code, but the system calls are copied straight across. At the far end is full system emulation, where the whole machine, OS, and application are running in emulation on an entirely different system. Suffice to say that "it's complicated."
If you're running it on a PDP-11/40, what it is is kickass.
-
Uh, does it run in another form than "binary?" Yes, the ENIAC ran in base 10, oh Nevermind...
Excluding programs like JAVA which "aim" to run across platforms from their "inception," running software written for one OS and one "hardware set" is not like recompiling Linux to run on various "hardware sets." The AmigaOS was written poorly at first and "banged the hardware" initially. They then learned to make system calls as the various hardware improved; BUT these system calls were not meant to be to Apple hardware. The AmigaOS was not written to be recompiled to run on Intel or ARM cpu's. From the initial A1000 to the A4000, there is a fundamentally shared set of custom hardware chips that describe an Amiga.
Any secondary level of modification that runs it on other hardware is emulation. Even the folks with the new PPC hardware have the grace to call them "AmigaNG."
-
Uh, does it run in another form than "binary?" Yes, the ENIAC ran in base 10, oh Nevermind...
In this kind of discussion running in "binary" is used to mean running the binary executable natively on the host CPU, as opposed to emulating it...
-
When the system used to run the emulation is significantly more powerful then the original hardware and the emulation runs flawlessly there isn't much to argue against this approach.
Therefore, when I see something running under AmigaForever (often BETTER then it would on some native hardware), or on a PPC based system running AOS4.1 or MorphOS, I get a perverse delight in knowing I can take this stuff to the next level.
After all fire created with a bic lighter is just as useful as fire created by rubbing two sticks together, and much easier to implement.
-
The lighter is emulating two sticks being rubbed together....
-
The lighter is emulating two sticks being rubbed together....
But its doing it much faster and with much less effort, which is all that matters to me.
I'm not into pain.
-
As an aside, I think it's fascinating that IBM basically invented virtual machines in the 1960s; that was when the Hypervisor was first created. Running a copy of the then-new S360 on the S360.
-
When the system used to run the emulation is significantly more powerful then the original hardware and the emulation runs.
Thank you, it is emulation. By the way, you can not argue a point by using a non-comparative example. Fire (except by malfeasance on your systems) is not remotely similar to what is being discussed.
An Amiga running 68K Apple code of a Mac (ShapeShifter or whatever), is emulation of an non-Amiga operating system on dissimilar hardware. The OS I am running (OS 4.1) is emulating a 68K Amiga. It is not a "PPC Amiga," as the Amiga was never designed to use a PPC processor; it might have been in past future connotations... What? I sound like a Dr. Who episode!
In any event, it is emulating an Amiga on an Amiga; as long as it doesn't cross its own timeline, we should be safe. It is like the folks with "OS 4.1 on a Classic Amiga" who get excited about Update 4 & 5's RuninUAE; they miss the Big Picture -- who would emulate an Amiga on an Amiga?
-
As an aside, I think it's fascinating that IBM basically invented virtual machines in the 1960s; that was when the Hypervisor was first created. Running a copy of the then-new S360 on the S360.
Alan Turing has that beat by 30 years, he wrote a virtual computer language without a machine to run it. In fact Charles Babbage beat them both by 200 years by inventing a virtual machine without a virtual operating system.
-
Anything above binary and switch toggling is a virtual machine/ emulator.
-
An Amiga running 68K Apple code of a Mac (ShapeShifter or whatever), is emulation of an non-Amiga operating system on dissimilar hardware.
In the case of 68K Mac OS this isn't completely true, because much of that operating system runs directly on the Amiga's 68K CPU. In fact, it might be the case that all the Aple specific hardware code has been replaced with Amiga equivalents, in which case there isn't any emulation going on at all (but I don't know that).
In fact Charles Babbage beat them both by 200 years by inventing a virtual machine without a virtual operating system.
Don't you mean that Babbage designed the Analytical Engine (first Turing complete computer), which he wasn't able to build due to being unable to raise the finances for it's construction?
-
Well emulation is when you add a layer that translates the code and system calls for another system, so Trance or E-UAE is emulation since it enables non-native programs to run on MOS.
Its not emulation, in my opinion, to run something like WIPEOUT on MOS because 90% of whats going on isn't emulation, its natively running via clever coding of API, which is what makes MOS so unique. Even today there are programs for win9x that don't run 100% on NT windows, because the architectures ARE different. They do work sometimes due to wrappers and such, and that is emulation.
-
In the case of 68K Mac OS this isn't completely true, because much of that operating system runs directly on the Amiga's 68K CPU. In fact, it might be the case that all the Aple specific hardware code has been replaced with Amiga equivalents, in which case there isn't any emulation going on at all (but I don't know that).
Don't you mean that Babbage designed the Analytical Engine (first Turing complete computer), which he wasn't able to build due to being unable to raise the finances for it's construction?
First, the CPU alone does not define the computer; I've got a 68000 CPU stored in a shoe box, that doesn't make the shoe box an Amiga nor an Apple.
B) Alan Turing proposed his design for an instruction set in 1938 long before Bletchley Park and hardware to run it. That is virtual
-
OK,
Here is the thread, so go at it: When you run software written for one computer (let us say an Amiga) on another computer (for instance a PC, MAC, or DEC PDP 11/40), what is it?
It depends. It is either binary compatibility or emulation. There is WINE (Wine is not an emulator) to enable Windows applications on Linux and Mac.
http://wiki.winehq.org/Debunking_Wine_Myths
WikiPedia: In computing, the "native" adjective refers to software or data formats supported by a certain system with minimal computational overhead and additional components. This word is used in such terms as native mode or native code.
Would not an "API" be an additional component?
If the API is not supplied with the OS then it is an additional component. For example Linux cant run Windows binaries natively. But it can run Windows applications without emulation if you add support for Windows binaries and API.
-
An Amiga running 68K Apple code of a Mac (ShapeShifter or whatever), is emulation of an non-Amiga operating system on dissimilar hardware.
Correction: ShapeShifter doesnt emulate Mac OS. It only emulates run time environment for Mac OS so it thinks it is running on a real Mac.
It should be possible re-implement Mac OS API on Amiga and run Mac OS binaries without emulation.
-
First, the CPU alone does not define the computer; I've got a 68000 CPU stored in a shoe box, that doesn't make the shoe box an Amiga nor an Apple.
Of course it doesn't and I never said it does. It's simply a fact that you don't need to emulate an OS if it can run on the CPU directly, as is the case with 68K Mac OS. Only the hardware specific parts would have to be replaced.
B) Alan Turing proposed his design for an instruction set in 1938 long before Bletchley Park and hardware to run it. That is virtual
In his case you're probably right, but I was talking about Babbage, who designed his computer to be built, making it non-virtual, unless every machine design is virtual.
-
Yes!
-
Let me summarize:
Emulation means only one thing: A machine was there before (Amiga) and another machine (PC?) which is different by design(!) tries to do the same things in the same way as the emulated machine.
Java is not emulation. There is no original bytecode machine. An FPGA-Amiga emulates the original 68000 CPU but not the Amiga (which is more than the sum of its part), because it is really a machine that works the same way the original does.
Natively on the other hand just means that you can run it out of the box without adding anything (like a ROM file).
Oh, and WINE is not an emulator, only because it doesn't try to run Windows programs the same way the PC with windows would. It runs them the way linux would. Else it would be an emulator! AROS is similar in a way.
-
If the program runs well without bugs/crashes and it is not a resource hog then it is great program.
Linux is great for reliable use of productivity software. I just found out that Direct 3D is not yet implemented. I need to go back to dual booting for the moment.
Windows is still necessary to play some games. All I do is play games on Amiga.
Since I found out that the x86 core converts things into RISC micro-ops - I could care less about what hardware I'm running on.
I agree with the above. There are several levels of emulation. An FPGA is not original hardware, but if it is programmed well or better than the original - it sounds like an advancement not an emulation.
-
I think everyone is missing 1 important point.... It's not a dilemma.
A dilemma is 2 choices both leading to a bad outcome.
-
I think everyone is missing 1 important point.... It's not a dilemma.
A dilemma is 2 choices both leading to a bad outcome.
Yeah, welcome to human language use where 'can' is often used instead of 'may' and the words 'amateur' and 'professional' are used to imply quality, while those two words have nothing to do with quality at all.
Feel free to add more examples :)
-
"Criticism" does not imply a negative opinion.
-
OK,
Here is the thread, so go at it: When you run software written for one computer (let us say an Amiga) on another computer (for instance a PC, MAC, or DEC PDP 11/40), what is it?
it's an Amiga
If it's Amiga a common motherboard with PowerPC with AmigaOS4, it will be Amiga any platform that run AmigaOS, native or emulation
-
it's an Amiga
If it's Amiga a common motherboard with PowerPC with AmigaOS4, it will be Amiga any platform that run AmigaOS, native or emulation
Nonsense. Amigas are hardware, produced by Commodore and Escom. The software doesn't define what the hardware is, the hardware defines what the hardware is. Or I suppose an Amiga running an MSX emulator is an MSX? Right :rofl:
-
I just found out that Direct 3D is not yet implemented.
http://wiki.winehq.org/WineD3DOnWindows
Not only do they have it, they have ported it back to Windows.. ;-)
desiv
-
Nonsense. Amigas are hardware, produced by Commodore and Escom. The software doesn't define what the hardware is, the hardware defines what the hardware is. Or I suppose an Amiga running an MSX emulator is an MSX? Right :rofl:
This "issue" is pointless if the emulation is flawless.
I don't need an Amiga to run Amiga software.
And I don't need an MSX machine to run MSX software.
Am I then running an Amiga or MSX computer?
Of course not, but regardless of whether or not its via emulation, I am running the software (getting the intended results).
And Mac OS moved across three ISAs, aren't Macs still Macs?
AOS4.1 has more in common withAOS3.1 then OSX does with previous revisions of Mac OS (the API has been preserved).
So yeah, a PPC Amiga is an Amiga.
-
This "issue" is pointless if the emulation is flawless.
I don't need an Amiga to run Amiga software.
And I don't need an MSX machine to run MSX software.
Am I then running an Amiga or MSX computer?
Of course not, but regardless of whether or not its via emulation, I am running the software (getting the intended results).
Of course, but that wasn't what Seiya said.
And Mac OS moved across three ISAs, aren't Macs still Macs?
Yes, they are, because Apple calls their machines Macs, and they get to decide what their machines are called and not anyone else.
So yeah, a PPC Amiga is an Amiga.
I beg to differ, and so do many classic users.
-
Yes, they are, because Apple calls their machines Macs, and they get to decide what their machines are called and not anyone else.
I beg to differ, and so do many classic users.
EXACTLY! The entity assigned the rights to a trademark and related IP gets to control the naming of their product.
So Amiga OS4.1 IS Amiga OS.
And the AmigaOne is an Amiga.
Of course, the problem comes when we consider CUSA.
Unfortunately they fit my definition, because I find myself siding with you and against consideration of their hardware as Amigas.
"I beg to differ"
Entirely your right.
I'm not sure how I can justify my contradictory points of view.
But it is the way I feel about the situation.
And a MorphOS system is not an Amiga, but its a lot closer then a CUSA system.
Completely confusing.
No wonder we have so few new users.
-
This "issue" is pointless if the emulation is flawless.
I agree with that..
(Although I enjoy the technical discussions...)
I mean, in an "emulation turning test," if you put an emulated system into an original case and no one could tell the difference, would it matter?
Of course, it sounds like MorphOS (and others???) have taken it beyond that and improved upon it. So you get improvements because of modernization with very good compatibility.
I think that's really kual ( <--for you Kesa!! ).
Of course, for me, I'm into Amiga for a retro feel and the "I can't believe you can do that with XX year old technology."
But I really appreciate how nice the NGs appear.
(And I reserve the right to get into the NGs at some time in the future.. ;-)
I do think it's funny when I use the word "emulation" and it's taken as a bad thing.
I know sometimes it's used that way by some. But really, I appreciate how seamless this works, and I think it's great...
I also really appreciate WinUAE/AmigaForever. WinUAE is a great "complete emulator" and AmigaForever is a great package for it..
I recommend them a lot. And I use them quite a bit for staging and testing.
But I realize the differences (more so from the information I've gained in these threads) in how the emulation is being used in MorphOS versus some of the other platforms. If anything, it makes me appreciate MorphOS all the more.
desiv
-
Thanks Desiv,
Moving forward is an important issue to me.
On MorphOS and emulation.
Many system calls (essentially all) are native PPC code.
And when running a PPC Amiga title like Heretic or Quake2, virtually everything is native.
Its rare to see an OS so seemlessly suport two ISAs.
Even OSX didn't do this this well with Rosetta.
-
Well some people agree with me; that does not make them "Right or Wrong." I am afraid that "Branding" does muddle the issue, but as I see it a 68K Mac is a 68K Mac produced by Apple and called a "Mac." An Intel Mac, produced by Apple and called a "Mac" is a Mac. Unfortunely (for this discussion), Apple "muddled" this line of thinking, since current "Macs" use a standard "PC" hardware set (of chips).
I stand by what I said/typed earlier, since the Amiga team did not produce a PPC based Amiga, I am using an "Amiga-like" operating system (OS 4.1) on a "modified" Amiga. I also use real Amiga OS on the same hardware; however the OS 4.1 "emulates" a "Classic" Amiga operating system. The "Next Generation" Amigas are a new breed of hardware running an Emulated Amiga Operating System (or EAOS for short). "Its not a question of where he grips it! It's a simple question of weight ratios! A five ounce bird could not carry a one pound coconut."
Non-Amiga hardware running an Amiga-like operating system does not make it an Amiga. It is "Zeros" and "Ones;" major binary here: Software vs Hardware. Amiga software = Amiga Software; Amiga Hardware = Amiga. You cannot dissolve away the Amiga design team; they designed "Amiga Hardare" first; they designed it when they were called, "High Toro," and the hardware was called, "Lorraine." Apple designed the G4 PPC Apple Mac among other "Apple Macs," and like Amiga, Microsoft, et al, they ALL ripped off the Xerox PARC Star GUI of Windows, Icons, Mouse and Pointers. Xerox acted stupidly by not copyrighting their invention, read "Dealers of Lightning" by Michael Hiltzik.
In the end, the Amiga is a designed hardware set, its software is software (yes, binary, zero and ones, blah, blah, blah). If the hardware runs Linux, it does not become "Linux;" Microsoft started out selling software; if the hardware ran it, then the hardware did not become DOS 6.22 or Windows 3.11.
-
Microsoft started out selling software; if the hardware ran it, then the hardware did not become DOS 6.22 or Windows 3.11.
Weirdly they seem to have taken over the term PC (i.e. the "I'm a PC" adverts). Even more odd is that it was Apple that started it with the Get a Mac adverts.
So if it runs Windows then it's a PC, if it runs MacOS then it's a Mac. If it runs Linux, well I'm not sure what it is as Linux runs on my phone, my NAS, my TV but not one computer I own.
Running windows on a macbook air makes it ????
-
(http://imageshack.us/a/img820/5818/semantics.png)
-
So if it runs Windows then it's a PC, if it runs MacOS then it's a Mac. If it runs Linux, well I'm not sure what it is as Linux runs on my phone, my NAS, my TV but not one computer I own.
Running windows on a macbook air makes it ????
How about running Snow Leopard on a system you put together with a Gigabyte motherboard and an i5 processor (and only running Windows under Parallels 7)?
People tend to refer to hacked systems like that as a Hackintosh, but lets face it, its still a PC (not a Mac).
Muddy waters indeed.
This discussion is being to sound like a blues jamb.
-
Weirdly they seem to have taken over the term PC (i.e. the "I'm a PC" adverts). Even more odd is that it was Apple that started it with the Get a Mac adverts.
So if it runs Windows then it's a PC, if it runs MacOS then it's a Mac. If it runs Linux, well I'm not sure what it is as Linux runs on my phone, my NAS, my TV but not one computer I own.
Running windows on a macbook air makes it ????
It looks like you may be unfamiliar with the English I used; I said, "Microsoft started out selling software; if the hardware ran it, then the hardware did NOT become DOS 6.22 or Windows 3.11." In essence for the non-english speaking readers, the hardware defines the computer, not the OS, UNTIL Apple started BRANDING anything THEY SOLD as a MAC. As long as they, Apple, called it a Mac it was a Mac. If it was a computer not sold as a Mac, but ran Apple software, I have no idea what Apple calls it, probably "lost profit." Read the Steve Jobs biography, he sold concepts and looks; he was a marketer; he was not an engineer, hardware nor software; he had no computer science education; he took a high school electronics course. He sold Apple's -- I's, II's, III's, Lisa's and Mac's, Airs Books, and the like. That's all he did, sell concepts and looks and an occasional computer.
That advertisment you reference was an Apple campaign to show that PC's were more like John Hodgman, not like Justin Long. It tried to sell the look of Justin Long versus the look of John Hodgman.
-
Running windows on a macbook air makes it ????
It doesn't make it anything; it's simply a macbook air running a piece of software called Windows. Software doesn't change the hardware into anything, the hardware simply is.
-
Running windows on a macbook air makes it ????
An absolutely fabulous computer.
-
@persia
That's funny because when I run OSX 10.8 on my Dell D630 or my desktop PC, the Apple fanboys call it criminal. I call it damned convenient and flexible.
-
@persia
That's funny because when I run OSX 10.8 on my Dell D630 or my desktop PC, the Apple fanboys call it criminal.
Aye, there's the rub. Because it runs OS X 10.8 does not make it a Mac. Apple changed the way we look at computers and they did it twice; they changed to a new Linux core OS AND changed to a standard industrial based set of hardware known to run the Windows operating system. Now what it that computer now sold by Apple? When they sell it with their OS they call it a Mac; if they sold it with the Windows OS it would still be an Apple in the same way a Dell is a Dell; but it now can be called a Mac too as a simple software install works on the same Apple hardware because it is THEIR standard. Not the world's.
How many Apple engineers does it take to change a light bulb? Only one, but all he has to do is redefine the meaning of darkness and then upgrades the customer.
-
@persia
That's funny because when I run OSX 10.8 on my Dell D630 or my desktop PC, the Apple fanboys call it criminal. I call it damned convenient and flexible.
I stuck with Snow Leopard, but it too runs pretty good on the right PC.
BTW - I think the fanboys might be upset because we're violating Apple's Eula (and maybe because I only had to pay $25 for OSX).
-
@danbeaver
That supports my view that Apple Macs are just the most extreme form of DRM on the planet. They're just one huge hardware dongle to keep Mac users locked into Apple hardware and PC users locked out of OSX.
@Iggy
Yes, and they're also upset when they find out that they overpaid for the hardware to run OSX. I can buy an Acer, Dell or Asus laptop with better specs than most MacBooks at half the price of a MacBook and still run OSX just fine on them. I suppose I'd be upset too if I lost that kind of beer money!
-
Apple changed the way we look at computers and they did it twice; they changed to a new Linux core OS
It's not Linux, it's CMU's Mach kernel plus BSD Unix, with Apple's own custom software and toolkits on top of that.
(I can see where the "include ALL the things" approach would lead you to think it's a Linux distro, though ;P)
I stuck with Snow Leopard, but it too runs pretty good on the right PC.
Admittedly my PowerBook G4 is only a casual-use writing laptop, but I've yet to run into anything that Tiger doesn't do perfectly well on it.
-
and PC users locked out of OSX.
Is that a bad thing?
-
It's not Linux, it's CMU's Mach kernel plus BSD Unix, with Apple's own custom software and toolkits on top of that./QUOTE]
You are missing the forest for the trees, "It's not a question of where he grips it! It's a simple question of weight ratios! A five ounce bird could not carry a one pound coconut." The Mac OS X uses a core from #?nix land to run on Intel hardware; Apple's original core only ran on Motorola based CPUs. Ergo, they changed both the OS and hardware, but because of its "look and feel" Apple stilled calls it a Mac. They may as well buy out Etch-a-Sketch and call it the Mac Air Book Lite.
-
I'm not arguing that point, just that it is not, in fact, Linux.
-
I'm not arguing that point, just that it is not, in fact, Linux.
I am sorry that I said it was; well, now that we've settled the issue of what is and what is not emulation by just correcting my quite serious mistake on the actual non-Linux core of Apple's OS X, I suppose we can close this thread. This i suppose also solves the question of "Life, the Universe and Everything." Oh, thanks for all the fish.
-
Just so long as we're clear on that ;P
-
Yeah, welcome to human language use where 'can' is often used instead of 'may' and the words 'amateur' and 'professional' are used to imply quality, while those two words have nothing to do with quality at all.
Feel free to add more examples :)
A lot of the misuse of English I don't mind. The only 2 that annoy me are Dilemma when there is no di or lemma.
The other is 'could care less'.
-
OK,
Here is the thread, so go at it: When you run software written for one computer (let us say an Amiga) on another computer (for instance a PC, MAC, or DEC PDP 11/40), what is it?
Depends.
If you run software written for Amiga on a Mac using MorphOS, which provides the complete Amiga environment and API's (minus Amiga custom chips etc) fully native on the Mac hardware, then it's not emulation, the software is being run native. The Amiga apps are scheduled by the same scheduler as those compiled directly for MorphOS, they all share the same resources, the same memory space, the same signalling system. There is no difference from an Amiga program and a MorphOS program in the way they are treated/handled, they all have full access to everything, they are both running directly on top of the OS (no layer in between), which is running directly on top of the HW. Everything is fully native!
If you run the Amiga software on a Mac using UAE sitting on top of the native environment, then it will run boxed in an emulated environment. UAE is software that tries to mimic the Amiga hardware, and the Amiga applications are then executed by that piece of SW inside its own box, shielded from the native system that lies underneath it.
On MorphOS you generally don't need to use emulators to run Amiga software. Games/apps that access Amiga custom chips directly (instead of going through the OS) will not run without an emulator like UAE though.
So, by "natively," you mean PPC opcodes only running on a PPC system.
Yep, that's native.
68k opcodes running on a PPC? There's some level of emulation.
PPC opcodes running on a PPC system, is running native.
If you have a 68k program and you recompile it into being PPC instead, then you will have PPC opcodes running on a PPC system, fully native.
Both the above is how MorphOS does it. In other words, fully native.
If you on the other hand constructs a piece of program with the aim to mimic a physical 68k CPU through SW and run 68k opcodes using that, then you would have emulation. Just like a real CPU, it would have a Program Counter pointing to the next in line 68k opcode to be executed, it would have routines to deal with that opcode and all the others (instruction set), it would have the D0-D7 data registers and the A0-A6 address registers to be used by these opcodes, it would have the status register (signalling "overflow", etc), and it would have a chunk of "system RAM" allocated in a box where the 68k application(s) and their data resides, that this "CPU" can access. When one opcode is executed, registers are altered, "system RAM" is altered, the Program Counter in this "virtual CPU" increases to point to the next opcode in line. Since it's the 68k opcodes (unchanged) that are actually being executed, by a program that simulates a physical 68k CPU, it is emulation. The emulator itself would run native on the system, but the 68k code inside it would be emulated.
:)
-
From the view of a user it is not so important if it runs "emulated" (UAE) or native. UAE running on modern hardware is pretty fast and you do not have any problems regarding speed. Of course is the integration of 68k in MorphOS (and AmigaOS) a nice thing because you can mix 68k and PowerPC (and add f.e. Arexx what is not possible when running 68k as sandbox). On the other hand it is not possible outside PPC so it is difficult to change the platform and you have to stay on PPC forever. So both concepts have advantage and disadvantages.
-
Sorry, but the hardware has always defined the computer and the owners of said hardware design get to name it. An Amiga is the hardware that Commodore sold. The operating system is superficial. If MorphOS (as in v 1.45) ran on an Amiga, that computer does not become a Morph computer; it is an Amiga running MorphOS.
-
@danbeaver
Then you are saying that C=USA's Amiga is the true Amiga since they have the legal right to name it?
(http://sphotos-b.xx.fbcdn.net/hphotos-ash4/408654_10151197050083006_1048151311_n.jpg)
-
PPC opcodes running on a PPC system, is running native.
If you have a 68k program and you recompile it into being PPC instead, then you will have PPC opcodes running on a PPC system, fully native.
Both the above is how MorphOS does it. In other words, fully native.
Yes, we all know that.. ;-)
If you on the other hand constructs a piece of program with the aim to mimic a physical 68k CPU through SW and run 68k opcodes using that, then you would have emulation.:)
er.. OK.. Not sure why anyone would ever do that .. But thanks for that... :crazy:
The real question is (and as far as I know really has always been the question) how does it run applications designed for the 68k Amiga (not with the aim to "mimic" anything, but with the aim to run on a 68k Amiga, as that's what they were when the software was released).
Obviously, if the option is available to re-compile, that's great. But it's frequently not the option.
However, the question about the different emulation layers in MorphOS has been answered already here..
Thanx,
desiv
-
Sorry, but the hardware has always defined the computer and the owners of said hardware design get to name it. An Amiga is the hardware that Commodore sold. The operating system is superficial. If MorphOS (as in v 1.45) ran on an Amiga, that computer does not become a Morph computer; it is an Amiga running MorphOS.
-
@danbeaver
Then you are saying that C=USA's Amiga is the true Amiga since they have the legal right to name it?
Hmm, BRANDING? Let's use my logic: Did CUSA design their hardware? Uh... No. It is a frickin' Intel based chipset oft called a "PC." Did they buy the name to sell stuff? Uh... yes, I suppose. Is the stuff they sell original. Well they are "copying" the case design one of the previous BRAND name owners. Is their software an emulation? Yep.
And "Native" code? Does the code define the hardware design? Well, which came first the hardware or the code? In the case of an ORIGINAL design, I vote that the hardware came first. Heck, the Amiga team "emulated" Jay Miner's chip design on a Mac to work on the Amiga OS software, only to find that when the actual chips arrived, they did not behave like the "emulated" ones. "Native code" means as much as "binary code." It is a tree that blocks your view of the forest. If "whatever software" runs on the designed hardware, the computer does not become a "whatever software" computer. It doesn't matter were he grips it, the coconut does not become the swallow [vida supra].
P.S., Dilemma from Greek "Di" = two and "Lemma" = assumption, proposition, argument or theme.
-
Hmm, BRANDING? Let's use my logic: Did CUSA design their hardware? Uh... No. It is a frickin' Intel based chipset oft called a "PC." Did they buy the name to sell stuff? Uh... yes, I suppose. Is the stuff they sell original. Well they are "copying" the case design one of the previous BRAND name owners. Is their software an emulation? Yep.
Most of that same argument can be used against Intel Mac's.
Depends.
If you have a 68k program and you recompile it into being PPC instead, then you will have PPC opcodes running on a PPC system, fully native.
Both the above is how MorphOS does it. In other words, fully native.
What MorphOS does for 68k software is emulation, it's not native. Alot of emulators dynamically recompile executables into native code, AFAIK including WinUAE.
-
Dude, I totally agree!
As far as the Apple Mac and Intel... that is what I described earlier as "muddled." I mean to sell a product like a computer for a wider profit margin it makes sense to skip designing your own hardware and use "someone elses" standard platform (I have no idea who defines that standard). This means cutting your R&D hardware staff and their costs. You then just kludge your "Mac OS" to run on the new hardware and now you have a "new Mac." Now any advances (by others) to the hardware becomes YOUR advances; it is now YOUR 16 core 64 Gig USB 5.0 Mac Air_Pro_Heavy computer.
In fact that describes the issue of emulation: the Mac OS is now "emulated" on Intel hardware, just like MorphOS, RuninUAE, WinUAE, et cetera.
-
In fact that describes the issue of emulation: the Mac OS is now "emulated" on Intel hardware, just like MorphOS, RuninUAE, WinUAE, et cetera.
With Intel Mac's the only time emulation comes into it is when running PPC applications. An Intel Mac is a thing in it's own right, it doesn't emulate itself when running applications compiled using the Intel Mac SDK.
-
With Intel Mac's the only time emulation comes into it is when running PPC applications. An Intel Mac is a thing in it's own right, it doesn't emulate itself when running applications compiled using the Intel Mac SDK.
Good Point!
Let's put it the way Apple tried to sue Microsoft over Windows: "You then kludge the 'look and fell' of your operating system to run on whatever is the hardware flavor of the week. Thus 'emulating prior code' to give the consumer the idea nothing has changed; you sell it as just another 'improvement' to the Mac."
-
Sorry, but the hardware has always defined the computer.
You keep saying that as a acticle of faith, but as someone with a background in th design and sales of computers I have a slightly different opinion.
In the early '90s my company was rapidly learning that we would need to design software that worked with an OS' drivers rather then hitting hardware directly.
While the code was still processor specific, everything else could be platform agnostic and still function.
And higher level code itself did not even require CPU specificity.
So no, the hardware does not define the system.
I can claim to have a Linux based system and this will still not describe the hardware.
Your statement is based on ideas that were getting old at the time of Commodore's demise.
They beome less valid each year.
-
Let's put it the way Apple tried to sue Microsoft over Windows: "You then kludge the 'look and fell' of your operating system to run on whatever is the hardware flavor of the week. Thus 'emulating prior code' to give the consumer the idea nothing has changed; you sell it as just another 'improvement' to the Mac."
I'm not sure where you got your quotes from. In terms of Mac and Windows there is no code emulation. The case is all down to look and feel. Apple were upset because they licensed the look and feel from Xerox, while Microsoft developed applications for the Mac and then started working on something similar in secret. Big companies don't make money by being ethical.
If copying someone elses idea is bad then Linux is more evil than Microsoft.
-
Well I'm not sure what an "acticle of faith" is, nor that software has faith (agnostic). But code does not define the hardware, and your non-specific code either worked like Java (JIT compiler) or was written in some binary that at some point reached specific hardware. If your code was not compiled for the hardware, but was interpreted to run on the hardware, by whatever API or "other layer of software," then it was emulated. Prior to compiling, all code is generic (in my experience, and no ASM doesn't need compiling), now whether it has Faith or is Agnostic is not for me to say. But the hardware defines the computer. The software, well just defines the software.
If the designers had made a hardware system and called it "Morph" and the subsequent OS was called "MorphOS," then it would be a Morph Computer. As it is, Apple designed that hardware, Morph designed an "emulation layer," and low, and behold, it ran SOME software marketed for the Amiga (hardware) computer.
-
From the view of a user it is not so important if it runs "emulated" (UAE) or native. UAE running on modern hardware is pretty fast and you do not have any problems regarding speed. Of course is the integration of 68k in MorphOS (and AmigaOS) a nice thing because you can mix 68k and PowerPC (and add f.e. Arexx what is not possible when running 68k as sandbox). On the other hand it is not possible outside PPC so it is difficult to change the platform and you have to stay on PPC forever. So both concepts have advantage and disadvantages.
Well, when all applications are running fully native (both Amiga and MorphOS), driven by the same scheduler, sharing the same memory space and system resources, then you can use tools like Snoopium for instance, data can be shared, and you can have various apps collaborating and working together (ARexx for instance) in a way that is not possible when running the Amiga apps under emulation.
Running the 68k Amiga apps in an emulation sandbox like UAE is faster and easier to implement than having it native though, and UAE emulates the entire Amiga HW which makes it possible to run old apps and games that aren't really system friendly. It's not quite the same though, it's more like having two parallel systems in one.
However, when MorphOS migrates away from the PPC and maybe starts implementing none-Amiga features like true SMP, true MP, true 64-bit, etc, then this approach will probably the the only way.
:)
-
er.. OK.. Not sure why anyone would ever do that .. But thanks for that... :crazy:
Why? Because you for some reason would want to recreate a working model of some hardware using software. Emulation! In this case some kind of a "virtual" 68k CPU.
Obviously, if the option is available to re-compile, that's great. But it's frequently not the option.
That is de-facto what MorphOS does before running an Amiga 68k app (or dynamically while running). Not from sources obviously, but from binaries. No 68k opcodes are being executed, they are all PPC native, running natively on the OS, which runs native on the HW.
However, the question about the different emulation layers in MorphOS has been answered already here..
Indeed, if you want to explore the joys of emulation in MorphOS, you have numerous options; like UAE, C64, Sega systems, MAME, etc, etc.
However, if you just want to run none-HW-banging Amiga apps on MorphOS, then there is no need for emulation.
:)
-
@danbeaver
Somehow I just *knew* that someone would boil the "emulation" issue down to trade marks! :lol:
"If programs are running on an Amiga(TM) gear, it's 'native', if not, it's 'emulated'." :insane:
:lol:
-
That is de-facto what MorphOS does before running an Amiga 68k app (or dynamically while running). Not from sources obviously, but from binaries. No 68k opcodes are being executed, they are all PPC native, running natively on the OS, which runs native on the HW.
No 68k emulator executes 68k opcodes, thats the point. It has to translate them to native opcodes. That is what an emulator does. MorphOS just has a 68k emulator built in.
-
That is de-facto what MorphOS does before running an Amiga 68k app (or dynamically while running). Not from sources obviously, but from binaries. No 68k opcodes are being executed, they are all PPC native, running natively on the OS, which runs native on the HW.
Get an idea.
-
Thank you, you have finally agreed with us! MorphOS is an emulation layer allowing Amiga software to run on non-Amiga hardware.
So are we done?
-
Thank you, you have finally agreed with us! MorphOS is an emulation layer allowing Amiga software to run on non-Amiga hardware.
So are we done?
We should be, since its a premise I've never denied.
But then I consider it a feature I like, so its not a issue with me.
It would be foolish to incorporate backward compatible hardware if this solution is entirely adequate.
-
We should be, since its a premise I've never denied.
But then I consider it a feature I like, so its not a issue with me.
It would be foolish to incorporate backward compatible hardware if this solution is entirely adequate.
I'm sorry you thought this was directed at you, Iggy, but it was not; your position is clear and acceptable; no dilemma there!
-
I'm sorry you thought this was directed at you, Iggy, but it was not; your position is clear and acceptable; no dilemma there!
No, I understand your point of view. I'm just not sure why anyone would question it.
The only time MorphOS is not using emulation is when its running all native code.
We're just lucky that the emulators used in our community are as capable as they are. A lot of work has gone into this stuff and its shows the persistance and commitment Amiga users have to continuing to enjoy their software and even see it continue to expand.
With no major backer, our community still continues to produce new hardware and software as well as modern variants of AmigaOS.
If anything, the size of our community is expanding as old users return and new users explore.
Another post ask where you'd like to be in Amiga history.
Well we know we can't change the past, but right now is one of the more exciting periods I've experienced. We've real hope to see things continue to grow and expand.
I really hope you legacy users take the time to explore the NG offerings.
As we hone emulation of legacy hardware and provide a compatible API for futher development we move the Amiga market forward.
"Amiga", to you its a beloved hardware platform.
To me, its either a much abused trademark or an environment with a specific look, feel, and programming interface.
No, I'm not using an Amiga. I've moved forward.
-
It would be foolish to incorporate backward compatible hardware if this solution is entirely adequate.
Both AmigaOS 4 & MorphOS both require obsolete hardware to run.
Running a PPC emulator on X64 is the best solution. It won't be long before someone emulates the Mac's that MorphOS runs on.
-
Iggy, I like your point of view. I have a Mac-Mini G4 with a registered MorphOS 3.1 version that I used for 2 weeks as part of my curiosity. It is slick, fast and works well for the few applications it has. I had more fun on my A4000T all maxed out and running OS 4.1, so I have the little Mini set out to the side of my office.
For grunt related "work issues" I have a "2 cycle PC" on one wall of my office and by A4000T on the other. I use the term "2 cycle" because I never build a computer within 1 of Moore's Cycles; I found the best price/performance 1.5 to 3 years behind. then every 2 cycles I gut the box and upgrade the motherboard, video and whatever.
When I want real what-you-see-is-what-you-get, I use my Amiga and usually Final Writer or PageStream; there is no equivalent, in my mind, in the Intel world. Don't know about Macs, I can't build them (well maybe now, but then the software costs would kill me). Heck, I use Word '97 on my "PC" along with Acrobat 9.4 and shareware stuff. I bought IRIS OCR and Nitro Pro 8 recently, but I hate software I have to pay to update every year!
Sorry, off thread.
-
I really hope you legacy users take the time to explore the NG offerings.
Not interested at all.
"Amiga", to you its a beloved hardware platform.
Indeed, and that's what I'll stick to, to Amiga.
No, I'm not using an Amiga. I've moved forward.
I use an A1200, but I've moved forward, too: I bought a PC that flies around anything next gen 'Amiga' so fast it ain't funny.
-
Why? Because you for some reason would want to recreate a working model of some hardware using software. Emulation! In this case some kind of a "virtual" 68k CPU.
I'm not sure where you keep getting this idea from?
While I appreciate emulation, especially when done correctly. It's a wonderful technology.
I don't generally use emulation for my Amiga related fun. (Just for some prep and testing)
What I don't understand is why you are so petrified of emulation being tied to MorphOS.
Emulation is a technology. MorphOS uses it when it needs it.
It's very very smart in the way it minimizes it's use, yet leverages it when needed.
I think that's a good thing. Yet you seem to keep being bothered by the thought...
That's interesting...
desiv
-
Correction: ShapeShifter doesnt emulate Mac OS. It only emulates run time environment for Mac OS so it thinks it is running on a real Mac.
It should be possible re-implement Mac OS API on Amiga and run Mac OS binaries without emulation.
Shapeshifter is an interesting case. Back in the day, we called it an emulator because it "emulated" another system but in hindsight, it wasn't that clear cut. In today's parlance, I guess it could be viewed as an example of paravirtualization. Both the guest and host OS is patched in places by shapeshifter in order to make things work, but beyond intercepting traps, hardware calls and some patched guest OS functions, the binary code for both the MacOS and the executables running on it are basically running "natively" on the 68K processor in the Amiga.
If said patching were not necessary, then it would be straightforward virtualization.
-
Both AmigaOS 4 & MorphOS both require obsolete hardware to run.
Running a PPC emulator on X64 is the best solution. It won't be long before someone emulates the Mac's that MorphOS runs on.
Anyone tried PearPC?
-
Not interested at all.
Not a problem, as there are plenty of other more open minded users.
I use an A1200, but I've moved forward, too: I bought a PC that flies around anything next gen 'Amiga' so fast it ain't funny.
I actually downgrade my X86 systems by breaking down and selling the parts of the Socket AM3/Phenom II system I had.
Right now I'm collecting parts for a hackintosh, but my primary X86 system is a lowly Atom based netbook.
So my X86 system doesn't fly circle around my PPC hardware. And I'm exploring ARM (which also isn't that powerful).
What I really like about run MorphOS is the fast boot times and the ability to run some of my older software (with, of course, improved performance)
As far as performance goes, I have a balance that suits my purposes.
Funny, but I find myself agreeing more with danbeaver than those of you who are arguing against his basic proposition.
Frankly, I'd say use what works for you and keeps you happy.
-
Not a problem, as there are plenty of other more open minded users.
It has nothing to do with being closed minded. I like classic Amiga computers and simply don't have any interest in PPC+AOS4/MorphOS, just like I have no interest in graphics and sound cards for classic Amiga computers, or watching professional sports for that matter. Lack of interest doesn't imply closed mindedness.
I actually downgrade my X86 systems by breaking down and selling the parts of the Socket AM3/Phenom II system I had.
And I use my PC as a simple and boring workhorse.
As far as performance goes, I have a balance that suits my purposes.
I don't need the fastest PC either, which is why I didn't spend a lot on mine.
Funny, but I find myself agreeing more with danbeaver than those of you who are arguing against his basic proposition.
Eh, what was that again? Too many posts ;)
Frankly, I'd say use what works for you and keeps you happy.
Always. Clearly there's simply a difference in hobby and needs here :)
-
Apple for years pretended that PPC machines were the hottest thing around and when they finally made to switch to intel and people could see that PPC machines were shi'ite, Apple made a big deal about the increased power. A positive spin make the profit go up.
Good Point!
Let's put it the way Apple tried to sue Microsoft over Windows: "You then kludge the 'look and fell' of your operating system to run on whatever is the hardware flavor of the week. Thus 'emulating prior code' to give the consumer the idea nothing has changed; you sell it as just another 'improvement' to the Mac."
-
It has nothing to do with being closed minded. I like classic Amiga computers and simply don't have any interest in PPC+AOS4/MorphOS, just like I have no interest in graphics and sound cards for classic Amiga computers, or watching professional sports for that matter. Lack of interest doesn't imply closed mindedness.
You're right, that was a cheap shot and I appologize. And I too have little interest in professional sports.
And I use my PC as a simple and boring workhorse.
I don't need the fastest PC either, which is why I didn't spend a lot on mine.
Yeah, they're just tools.
Eh, what was that again? Too many posts ;)
Sorry for the verbose posts.
Always. Clearly there's simply a difference in hobby and needs here :)
Yep, I don't really spend a lot of time on hobbyist oriented stuff outside of MCUs and older processors and hardware (some older then Amiga).
When I use something Amiga or Amiga-like, I want it to do useful work.
-
The only time MorphOS is not using emulation is when its running all native code.
Iggy,
1) Reimplementation != Emulation.
What MorphOS does, is reimplementing the whole Amiga API *natively* on HW that isn't Amiga HW. No need for emulation there. As Itix said, you don't need an emulator to run Windows on Linux through WINE (Wine Is Not an Emulator). It's the same thing here, MorphOS provides its own native Amiga API environment.
2) Recompiling/translating programs != Simulating HW through SW/Emulation.
Big and important difference there.
The 68k Amiga programs are fully translated into native PPC code (which involves more than some 1to1 opcode conversion, it's a lot more complex, programs are de-facto rewritten). Sure, many emulators use opcode translation as part of the package, but that is only one component, and that component isn't emulation although part of an emulator, it's a translator (either JIT or runtime). Emulation is to mimic HW using SW, perhaps with accompanying SW (like ROM's, etc) to make it "run". Recompilation/translation is a different matter, and calling this "it's only about semantics" is to call the difference between apple and oranges "semantic" as well.
3) There is no difference between Amiga programs and what you call "native code on MorphOS", it's *all* equally native when executed, it's all using the native system API, it's all sharing the system resources, all libs, all devices (heck, those devices and libraries could even be "68k"), it's all sharing the messaging system, the scheduler, the memory, there is no difference whatsoever, no "box", no "layer", no emulated hardware. Everything executed is PPC, everything is treated the same, everything is using the same native OS, running natively on the HW. On MorphOS, Amiga applications = MorphOS applications. No difference!
This whole thread stems from another discussion, in which someone said: "MorphOS runs 68k code in an emulation layer just like AROS". This is where this discussion comes from. And it's not true at all.
4) The only time MorphOS *is* using emulation, is when you use UAE to emulate an Amiga (or C64, or whatever). MorphOS itself doesn't emulate an Amiga, it reimplements it at an OS level, providing its own, fully native API environment, and all Amiga/MorphOS applications use that directly, and in exactly the same way; as PPC binaries.
-
Oh thats going to stir this one up.
In my opinion JIT is a form of emulation.
After all, you translating non-native code to PPC instructions.
-
You emulate to give software producers a chance to catch up, then you move on. Unfortunately the Amiga world has so few developers that there's zero chance of moving on and a means to an end becomes an end in itself, stifling future development. More and more goes into maintaining the sandbox and new developments are held back by the necessity to maintain things are they were. The downward spiral continues to suck the life blood out of any real enhancements and the OS becomes a barely living fossil confined to the desktops of a few loyalists.
(http://sphotos-b.xx.fbcdn.net/hphotos-ash4/316467_501216759889307_844191772_n.jpg)
-
Persia, there are many reasons to emulate, you just used Apple's reason for moving the Mac "look and feel" to newer hardware. I use my A4000T with OS 4.1 that uses emulation to give a new appeal to old hardware (and to use a PPC I bought in the 1990's and just sat on my 68060 board). In both high school and college we had to write emulators as part of the course work.
TMHG,
On the other hand, semantics rules many lives and thus ruins many lives. To say that 'X translate software code, but it would never emulate software code' is just pathetic. To use the terms "native and natively" as if this was proof of God's existence in the world of computer science is equally sad; or to call the code "binary." These are silly semantics meant to obscure insecurity. RW Emerson said, "A foolish consistency is the hobgoblin of little minds."
-
Oh thats going to stir this one up.
In my opinion JIT is a form of emulation.
After all, you translating non-native code to PPC instructions.
Its all emulation, as I said earlier. Java "emulates" machine language, which at some point is compiled down to bytecode. Just like C, or even assembly at some level. These are all abstractions on top of the hardware. When mac went PC, did anything really change about the experience or the look and feel? No. The abstractions that made an Apple an Apple were still there, they were just being implemented differently on the hardware. Thats why the morphOS people say its Amiga "done right". They understand that hardware evolves, but the OS can stay similar to previous OSes and still be called what it is. If I run OSX on a hackintosh, I am running a mac. If I run morphOS on a PPC macmini, I am running a next gen amiga-like OS. Similar if I were to run NetBSD on PPC/ARM/IA64/SPARC/X86/X86-64/Amiga/VAX/DEC etc etc etc ad nauseum. These are all emulation layers on hardware architectures. On the way down to the actual logic, you are removing layers of abstraction (layers of emulation) until you finally get to the 3.3 or 5v signals that make up the real computer.
so for the tl/dr crowd: emulation is simply another abstraction layer in a ginormous soup of abstraction layers.
The only thing that runs "natively" is a bitstream.
-
After all, you translating non-native code to PPC instructions.
The "non-native" code (as you choose to put it) is actually built to utilize the native API that is MorphOS (even if the program was compiled in 1995 when MorphOS didn't even exist), the only thing happening prior to execution (no 68k opcodes are being executed, there simply is no emulator present for doing that), is changing its opcode stream into another format which is more like recompiling SW than running a program that mimics HW in SW and having your apps run by that program, inside its emulated box. These are two separate things, and only the first is happening!
Rebuilding one piece of SW into a different piece of SW (that does the same thing, using the same native Amiga API's, but by using a new set of opcodes), is per definition not the same thing as trying mimic HW through a SW emulator. I don't understand why some people are so keen on mixing these two concepts together? Is it because opcode translators can be a component of an emulator package that they get confused?
MorphOS does not emulate an Amiga, it re-implements it, and Trance does not really emulate a 68k CPU, it eliminates the need of one, by recompiling the 68k opcode streams into native PPC ones that can be executed natively on the native OS running natively on the HW, just like any other PPC code running on the OS, with no difference whatsoever. Had an 68k emulator been in MorphOS (which the OS doesn't have), a "virtual CPU" so to say, it would be something in the lines of the bottom paragraphs in post 60 (http://www.amiga.org/forums/showpost.php?p=711541&postcount=60), and then it could only happen if it's run on top of the OS inside an extra "emulation box" of its own and all 68k apps running inside that box (kind of like in UAE), because otherwise it would be like a multi-CPU system and that can't really happen in an good/easy way on Amiga, only in a way similar to PowerUP or AMP, which is kind of ugly. And it's not there in MorphOS anyway. On MorphOS, all applications are run as PPC, sharing the same memory space, the same system resources, the same scheduler, etc. They are all the same.
Trance is not a 68k emulator, it's a 68k eliminator...
-
What MorphOS does for 68k software is emulation, it's not native. Alot of emulators dynamically recompile executables into native code, AFAIK including WinUAE.
Dynamic recompile is not same as emulation. Emulators can utilize dynamic recompilation to gain speed.
If you write .NET applications in C# you dont get native code. The source code is translated to Common Intermediate Language and Windows dynamically recompiles your C# applications when executed. They dont necessarily run on Linux at all if you use Windows API.
You can write applications in C, C++ or AmigaE and compile object code to 68k but still target MorphOS only.
-
Thank you, you have finally agreed with us! MorphOS is an emulation layer allowing Amiga software to run on non-Amiga hardware.
Wrong. It has a compatibility layer to run Amiga software natively.
If you mean there is an emulation layer to execute 68k code then we can agree. This emulation layer is not limited to 68k Amiga software but could be used to implement MacOS compatibility layer or execute 68k software written for MorphOS.
-
MorphOS and AmigaOS better integrate 68k than it is possible using X86 or ARM f.e. and you can add features by adding 68k libraries. On the other hand is a sandbox solution more clean so you can make changes to the OS more easily without breaking 68k compatibility. Both solutions have advantages and disadvantages. From a user point of view (expecially when it is not a hardcore amigian) it is not important if it is emulated (in hardware or software) or not, the user is only interested what programs run on the system and how good is the hardware he/she gets for the money. If I have the choice to have tighter integration but am stuck to aging and expensive hardware platform or have a sandbox solution and modern hardware and a better improvable OS I would clearly take the second.
-
Wrong. It has a compatibility layer to run Amiga software natively.
If you mean there is an emulation layer to execute 68k code then we can agree. This emulation layer is not limited to 68k Amiga software but could be used to implement MacOS compatibility layer or execute 68k software written for MorphOS.
Semantics ....
Yes you could call the emulation code a "compatibility layer;" works fine for me
-
MorphOS and AmigaOS better integrate 68k than it is possible using X86 or ARM f.e. and you can add features by adding 68k libraries. On the other hand is a sandbox solution more clean so you can make changes to the OS more easily without breaking 68k compatibility. Both solutions have advantages and disadvantages. From a user point of view (expecially when it is not a hardcore amigian) it is not important if it is emulated (in hardware or software) or not, the user is only interested what programs run on the system and how good is the hardware he/she gets for the money. If I have the choice to have tighter integration but am stuck to aging and expensive hardware platform or have a sandbox solution and modern hardware and a better improvable OS I would clearly take the second.
I'm confused; are you saying it "is" or, "is not" emulation? We will have to start another thread on the "user experience, sandboxes," and flea collars ;)
-
Shapeshifter is an interesting case. Back in the day, we called it an emulator because it "emulated" another system but in hindsight, it wasn't that clear cut. In today's parlance, I guess it could be viewed as an example of paravirtualization. Both the guest and host OS is patched in places by shapeshifter in order to make things work, but beyond intercepting traps, hardware calls and some patched guest OS functions, the binary code for both the MacOS and the executables running on it are basically running "natively" on the 68K processor in the Amiga.
If said patching were not necessary, then it would be straightforward virtualization.
Good point. As I have understood the definition, a paravirtualization requires support from the guest OS. But there is not much emulation either -- on the other hand MacOS binaries are not executed natively in AmigaOS.
On my XP I have got AROS on Virtual PC and Linux on VMware. Neither systems are emulated but I am not running Linux or AROS executables natively on XP either. After all Shapeshifter is not very far away from a virtual machine.
-
Semantics ....
Yes you could call the emulation code a "compatibility layer;" works fine for me
It is not just semantics. There is no any kind of AmigaOS API emulation. Same API calls are used by MorphOS and AmigaOS. When you call AllocMem() from exec.library all executables call the exactly same vector from exec.library.
-
Thank you, you have finally agreed with us! MorphOS is an emulation layer allowing Amiga software to run on non-Amiga hardware.
Wrong. It has a compatibility layer to run Amiga software natively.
Yes you could call the emulation code a "compatibility layer;" works fine for me
I think a more correct description of "compatibility layer" would be something in the lines of: "A fully native, fully binary-compatible re-implementation of the full AmigaOS 3.1 API with extensions/additions like CGX, MUI, AHI, etc".
In other words: MorphOS.
:lol:
-
@takemehomegrandma
What a surprise... MorphOS? :-)
-
@takemehomegrandma
What a surprise... MorphOS? :-)
:)
-
Watching the arguments about what is Emulation and what isn't, reminds me of the old RISC vs CISC arguments. :lol:
There really isn't a RISC/CISC dichotomy anymore, modern designs have features of both :)
As alluded to earlier in the thread, once we started hitting drivers rather than the actual hardware... The emulation line starts to blur... Modern CPUs "emulate" the ISAs of earlier devices... It's all irrelevant, now... All tht matters is wether your software will run or not.
-
I think a more correct description of "compatibility layer" would be something in the lines of: "A fully native, fully binary-compatible re-implementation of the full AmigaOS 3.1 API with extensions/additions like CGX, MUI, AHI, etc".
In other words: MorphOS.
:lol:
Er yeah, MorphOS includes a 68k emulator and a compatibility layer for mapping the 3.1 API onto MorphOS native API.
It's still emulation & you aren't fooling anyone.
Modern CPUs "emulate" the ISAs of earlier devices... It's all irrelevant, now... All tht matters is wether your software will run or not.
In terms of hardware emulating other hardware, that has been going on for years. It's kinda out of scope for this topic though. Hating all software emulators but loving MorphOS because it doesn't use emulation, is just delusion.
-
a compatibility layer for mapping the 3.1 API onto MorphOS native API.
Pedantic mode on
In MorphOS, AmigaOS 3.1 API calls are not mapped to MorphOS native API. They are same.
In AmigaOS 4, AmigaOS 3.1 API calls are mapped to AmigaOS 4 native API. They are not same.
Pedantic mode off
I know I didnt add any value to this discussion now but hey... ;-)
I brought the compatibility layer to this discussion so it was my fault anyway :-)
-
@Itix
Good that we talk about it :-)
-
Uh...., Itix, "Pedantic?" Could we read the book passage to which you refer?
-
What would it be if not emulation?
Simulation! :laugh1:
-
Simulation! :laugh1:
Immolation? :)
-
Defenestration?
-
In MorphOS, AmigaOS 3.1 API calls are not mapped to MorphOS native API. They are same.
Some of them are mapped. Exec sits on top of quark.
http://en.wikipedia.org/wiki/Quark_(kernel)
Which kinda ends the discussion
"Under the Quark kernel a PowerPC (http://en.wikipedia.org/wiki/PowerPC) native reimplementation of the OS known from the Commodore (http://en.wikipedia.org/wiki/Commodore_International) A1000, A500(+), A600, A2000, A1200, A3000(T) and A4000(T) systems runs as a mixture of a virtual emulation and a driver. This OS driver is called as ABox.
The 68k emulation is written in C (http://en.wikipedia.org/wiki/C_(programming_language)) and uses gcc (http://en.wikipedia.org/wiki/GNU_Compiler_Collection) assembler macros where necessary to speed up certain complex instructions. Even though the emulation is written in C, its structure is on a level where handcoded assembler isn't significantly faster.
A JIT (http://en.wikipedia.org/wiki/Just-in-time_compilation) (Just In Time) engine called Trance (http://en.wikipedia.org/wiki/Trance_JIT) for MorphOS to speed up old 68k programs beyond the current state of the traditional emulation is also available."
-
Reading over the recent posts, I always thought Trance under MorphOS was a hotspot* JIT emulation?
*That is to say, 68K opcodes are executed by an interpretive emulator for code that is not compute bound or needs to react with minimal latency (eg interrupts and the like) and that internal profiling reveals those sections of code which require dynamic recompilation?
Or is all 68K code (re)compiled to PPC and cached as it is encountered rather than just performance critical code?
-
Good point. As I have understood the definition, a paravirtualization requires support from the guest OS. But there is not much emulation either -- on the other hand MacOS binaries are not executed natively in AmigaOS.
Shapeshifter had to patch the host OS to remap the lower 4K but I seem to recall it also patched some parts of the guest OS, depending on the ROM versions in use (I could be wrong about that, it's been a long time) and certain ROM versions wouldn't work well or at all.
On my XP I have got AROS on Virtual PC and Linux on VMware. Neither systems are emulated but I am not running Linux or AROS executables natively on XP either. After all Shapeshifter is not very far away from a virtual machine.
Such virtualization is basically a "new" term for an idea that's been around for a long time. Certainly IBM had it many decades ago. Popek and Goldberg identified the minimal requirements for hardware that could be "virtualized" through the strict separation of instructions into those that are purely user mode and those that can alter sensitive parts of the processor. We were lucky, the vanilla 68000 was close, but the move to/from SR being unprivileged was the killer there. That was fixed in the 68010, along with the ability to relocate the VBR. Those features allow you to write traps for pretty much anything privileged and trick an entire OS into thinking it's running on something it isn't.
-
Psxphill,
I've leaned not to trust WikiPedia entries and when in doubt always try to check their references. I'm afraid I found the following quotes from references 2 and 3:
Ref. (2) David Gerber (2002)
"1 Description of the system
1.1 Introducing MorphOS
MorphOS is the rst successful attempt to run Commodores A1200, A3000 and A4000s operating system on a PPC processor and improved systems free of legacy Commodore hardware. Its based around the Quark microkernel and runs the OS within an emulation box providing a fast 680x0 emulation. A fully PPC native exec replacement provides ways to write native PPC programs running into the emulation box in a mixed mode. For consistency, well call the Commodore system ABox from now on."
---
Ref. (3) MorphOS Full Features List -- v1.1 11/12/02 by the MorphOS team.
"A-BOX Components
Static 680x0 emulator
It emulates 680x0 instructions. All 68881 and 68882 opcodes are supported too.
The most used FPU instructions are replaced with emulation opcodes easier to decode. Some
unused features are not emulated."..."Other filesystems (like PFS3) run emulated"
Well, food for thought.