Welcome, Guest. Please login or register.

Author Topic: One unified OS for the future?  (Read 36166 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« on: November 24, 2014, 12:56:31 AM »
Quote from: kolla;778102
Endianess is important for handling data in memory, with a bigendian architecture native programs and programs running under emulation can all read and write the same data. Not so if emulation is bigendian and native is little-endian, then there is need for byte-order switching, and a can of worms is opened.


A cross platform (and endianess) program can access memory with either big endian or little endian but only a byte at a time without byte order swapping. Without hardware byte swapping, cross platform (and endianess) programs can run significantly slower than endian specific programs that work with 4 bytes at a time using a 32 bit CPU.

x86 is little endian while ARM is at least bi-endian but it has better support for little endian (default). PPC is bi-endian but has better support for big endian (default). The 68k is big endian. PPC is the best candidate for the Amiga, judging by endianess, then ARM.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #1 on: November 24, 2014, 02:10:27 AM »
Quote from: amigadave;778107
I thought this discussion was about the (impossibility) possibility of a single OS that could unify the Amiga community, not the pros and cons of which hardware to use for any OS?  What ever, carry on........ but some of these statements are seeming fairly useless to me.  I hope we are not creeping back toward any kind of discussion that start pointing fingers and claiming which choices are the RIGHT choices, and everything else is the wrong choice.


The hardware choice plays a factor on how easy it is to move on. Moving to little endian hardware means updating old code which can be a big task depending on the software. Executables are even more difficult with an emulator and possibly some kind of sandbox necessary. The important AmigaOS structures become incompatible with little endian. Look at AROS x86 where the executables and AmigaOS are not compatible. There are still open endian issues with back porting from x86 to 68k. It's a pain to deal with cross endian issues. This leaves Amiga users behind dividing the Amiga community instead of unifying it. It makes a lot of sense to have 68k for the low end and PPC for high end Amigas. Programming for both wouldn't be too difficult if both were supported with similar shared APIs and software. The only way for this to happen is for one of the PPC platforms to share more software with the 68k (it's in their best interest as it furthers their API's and more software is written for both) or for AROS PPC to gain support and overtake AmigaOS 4 and MOS (it has the advantage of being free but it has catching up to do). My perspective may have changed more from a user to a programmer but it is what it is. I'm a 68k classic owner and programmer with no PPC hardware. I was never against PPC but the reason I didn't move to PPC is the attitude of some of the developers and companies. Some of the NG people have been snobbish, with completely closed software and development, yet expect me to pay up for more of the treatment? No thanks. The 68k Amiga is easier and more fun to use and program anyway.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #2 on: November 24, 2014, 03:40:04 PM »
Quote from: biggun;778119
Since ages (since the 486) the x86 support single instruction 32bit byte swapping to process Big Endian data.

A CISC CPU can do an operation instead of a BYTESWAP if the endianess is the same. The x86 BSWAP is to a register only so there is 1 additional instructional and an extra 4 bytes per memory access. CISC can normally do:

Code: [Select]
  OP.L mem,Rn
   OP.L Rn,mem

with the x86 BSWAP instruction and memory using the wrong endianness this becomes:

Code: [Select]
  MOV.L mem,Rn
   BSWAP Rn
   OP.L Rn
   OP.L Rn
   BSWAP Rn
   MOV.L Rn,mem

RISC may not have any other penalty beyond their load/store penalty. However, both PPC and ARM have disadvantages when in their non-native endian mode. It's not optimal to have memory in the opposite endianess of data needs.

Quote from: Thomas Richter;778120
Actually, no. Introducing a sandbox is necessary anyhow, unless you are willing to carry on with the AmigaOs un-protected memory access. You would be ill-adviced if so. Once you have a sandbox, there is no necessary relation between legacy structures used with a 68K emulation sandbox and the structures of the outside Os, and if you have to emulate 68K - believe me - the endian swap is your least problem. xUAE isn't slow because of the endian swap. It is slow because it tries to emulate all features of the hardware for those applications that bypass the Os.

Partial memory protection is possible on the Amiga without compatibility problems and without a sandbox. Shared memory for message passing and AmigaOS structures has as many advantages as disadvantages so I would keep it. Programs should protect private data and code with memory protection using a common API including new protection flags in executable formats like Amiga hunk or ELF.
« Last Edit: November 24, 2014, 04:55:59 PM by matthey »
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #3 on: November 25, 2014, 03:03:35 AM »
Quote from: Blinx123;778170
4GB clearly isn't enough. Especially in modern times.
My laptop only has 4GB RAM and it really can become an issue. Especially when reclaiming memory takes too long, there are memory holes in a piece of software like Flash Player or without cache optimization.

Then you have the wrong OS and the wrong processor for a laptop. A 32 bit x86 with 2GB of memory and a little older OS is very happy for most uses needed for a laptop. I like your pic but I think that guy may have something to do with the problem.

Quote from: Blinx123;778170
It's actually less of a problem for most 32 bit OS', since they usually assume that there's less RAM available. However, that isn't too say 32 bit systems can't be starved.

The 68020 has about 10-20% better code density (code size) than the x86. The x86_64 is 10-20% worse code density by some estimates than the x86 (plus much more memory needed for stack and data alignment). We can make the 68k 5-15% better code density. That means our new 68k ISA programs could use 40% less memory than a x86_64. Better 68k compilers (I'm working on it) could save up to another 40% in code size. Caches can be this much smaller or have this percentage more code in them. Processors are cheaper to make with fewer caches. The i7 now has more caches than most Amigas have for main memory. Do we want to go bigger and more costly or do we want to go cheaper and more efficient? Some people may need the bigger and more costly so that is a good reason to have PPC for the high end and 68k for the low end with one unified AmigaOS API that makes programming easier.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #4 on: November 25, 2014, 03:53:02 AM »
Quote from: TeamBlackFox;778180
AmigaOS does in fact have several performance bottlenecks, discounting hardware completely, the OS is cooperatively multitasked, similar to Mac OS pre X, so a task that  demands CPU time gets it, with no way for the user to interact with and kill the task. Similarly, the OS is lacking a thread implementation, which spells to me NOT-THREAD-SAFE. I have seen a few userspace implementations of a ptheads-type model, but this is insufficient in most cases. This means AmigaOS, bare metal, runs everything in its own process, which increases memory requirements, wastes CPU time and makes the OS feel slower.

The Amiga has used preemptive multitasking from day one. It has lots of different processes and tasks. Almost everything including most of AmigaOS works in user space which is much faster than switching to supervisor mode for everything. It's not as secure or crash proof because of it but it is fast and it works well enough when programs don't misbehave.

Quote from: TeamBlackFox;778180
4GB RAM is not sufficient in many cases, either. If I am rendering something in lightwave on my Octane, I am limited to using slower rendering techniques that conserve memory, simply because my Octane has only 2GB RAM. If I had 8, the max, I would not have to be as careful. Even if I were to to take the Origin and hook it up to a  G-Brick, which can have over 8 times the RAM of the Odyssey GPU, with only 4GB between four 64-bit CPUs, is going to have issues. Before you call a false analogy and say that IRIX is bloated, I have many times the power of the most-decked out Classic Amiga, and MIPS R10000 CPUs and derivatives are in a class above any G4-based Mac, and if I had a quad 800MHz Tezro with DCD and 8GB RAM I would go toe-to-toe with a quad G5 Mac in benchmarks and expect comparable performance, for a similar reason that the Amiga edged out PCs in the early 1990s: the central CPU didn't have to be fast because the GPU was able to pick up the slack, combined with a DMA design based on, and designed with, networking in mind.

MIPS has the worst code density of any modern processor. The code size is more than twice that of 68k code. I can understand why you need more memory. Can you even boot your Octane with the same amount of memory as the Amiga 3000? My Amiga 3000 came with 2 (or 3 MB?) of memory and I could do a lot with it. I have a 3000T with a little over 100MB of memory with RTG gfx and I can do just about anything I need to with that while multitasking. I can't imagine 1GB of memory not being enough for 95%+ of users on an Amiga.

Quote from: TeamBlackFox;778180
The fact is you can't brush off hardware advancement like its nothing at all - you have to adapt and advance with it. 64-bit is becoming the norm in the open source world - PC-BSD, DragonFlyBSD, Ubuntu and a lot of other players are dropping 32-bit support, it is a DEAD-END. Even ARM has the v8 specification now, a 64-bit architecture is upon us. I love my Beaglebone Black, but sooner or later I will sell it, and cope with the fact that 32-bit in the consumer and hobbyist market is running out of petrol and circling the drain.

The 64 bit hype sells computers. Bloated software sells computers. The desktop computer seems to be disappearing though. I wouldn't say 32 bit is dead for embedded and electrical devices. I know a 68k Amiga could do everything a pad and lower end laptop could do with less memory. Most powerful 68k Amiga computers have 64 or 128 MB of memory with happy Amiga users and you are saying that 4GB of memory is not enough for an Amiga? Maybe it wouldn't be for a MIPS Amiga or even a PPC (has good code density for RISC) Amiga but I can only dream of powerful enough apps for a 68k Amiga with 2GB of memory to ever run out of memory.
« Last Edit: November 25, 2014, 04:30:59 AM by matthey »
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #5 on: November 25, 2014, 04:23:46 PM »
Quote from: paolone;778193
Great. You summarize in a few lines of text what I actually hate about retrocomputing-minded people like you, here and on other IT fora. Your absolute knowledge about other people's needs about hardware specs and computer uses. Your "for most uses" clearly don't fit the needs of the person you're talking with, and, for your info, they don't fit mine either. My laptop, which incidentally is the machine I use to develop and build Icaros Desktop, is a 8-GB 64-bit Windows 7 PC hosting the Ubuntu Linux virtual machine I use to develop and all needed target AROS guests. Ubuntu VM takes 2 GB of RAM and every AROS VM at least 512-1024 MB each one. For my main job, however, I need Windows. Current 8 GB are fine, but I had to add 4 GB to the ones I got with the laptop at the beginning, since 4 GB only were plain not enough to perform similar tasks.

I talked about the choice of 32 bit 68k for the low end and 64 bit PPC for a high end Amiga with one unified API. Let's let the consumers choose:

1) 68k laptop Amiga for $1000
 o CPU speed of a Raspberry Pi or better
 o 1GB of memory
 o 40GB SSD
 o SAGA gfx with chunky
 o supports most 68k Amiga software
 o battery life of 16 hours

or

2) PPC laptop Amiga $7000
 o CPU speed of an i3 or better, 64 bit, 2-4 cores, virtualization support
 o 8GB of memory
 o 1TB hard drive
 o integrated modern gfx card
 o 68k software is sandboxed, PPC AmigaOS support is possible, no virtualization software
 o battery life of 4 hours

Like Olaf said, it's not just about wants (or even needs in this case) but what is realistic. We could probably realistically have option 1 as it would sell in the thousands. Option 2 would have a few hundred buyers and not enough high end Amiga software to take advantage of it.

I have been programming, debugging, using a web browser and transferring files with SMBFS on my Amiga for the last few weeks with several days of uptime. I have done up to 32 bit gfx editing for a web site using TVPaint, ImageFX and PPaint. I can do a lot with 128MB on a 68k classic Amiga. I could use more speed and a little more memory would be nice but I can't see any way that I would use more than 1GB of memory with current Amiga apps.
« Last Edit: November 25, 2014, 05:42:19 PM by matthey »
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: One unified OS for the future?
« Reply #6 on: November 27, 2014, 03:29:44 AM »
Quote from: amigadave;778351
I would not want to add any new ideas or demands to delay your Phoenix accelerator projects, but it sure would be great if the Apollo Team, or someone else that has the engineering and design talent, would take the next step and create an FPGA based 68k Amiga laptop.  It is one hole in our available hardware that is only filled by AROS and MorphOS users, and at least for me, a portable system is much more useful to most peoples lifestyles these days, more than a desktop system, though I am not advocating that everyone switch to using laptops or tablets (personally don't like tablets myself), or abandoning the creation of Phoenix accelerators for all or most models of the original Commodore Amiga computers.  After production and sales of Phoenix accelerators, and maybe even stand alone desktop systems, it just would be great to have a laptop option available.

A 68k laptop is my dream but it is quite a bit more work to make with quality and it really needs high enough production numbers to make it worthwhile. A small tower board makes more sense although it may be possible to make it in a shape that would fit in an existing laptop shell. My point with the laptops in general was to show how much more difficult and costly it would be to make a modern competitive laptop compared to a fun but still useful 68k netbook/laptop.

Quote from: amigadave;778351
Your cost estimates are impressive and admirable, but don't under estimate hidden costs.  It is better to estimate the costs a little higher than actual and then be able to deliver a product at a lower than anticipated price, instead of giving the impression that a lower price will be possible, and then having to raise the actual selling price to an amount that is higher than your original estimates and be criticized for making the original low estimates.

I think Gunnars estimates may be a little low but not that far off by looking at the Mist and fpga Arcade. I wish these boards would put more memory on board.

Quote from: TeamBlackFox;778352
Amigadave,
My comments are more to people who think, in an asinine manner, that the AmigaOS can be satisfactorily used as a daily driver without serious limitations. I looked into it years ago, when I had my 3000UX ( Amiga UNIX is a pile of garbage, in retrospect ) and discovered that there is a tone of poorly written implementations out there of various programs, so one has to spend a lot of time auditing, writing dirty hacks and modifying the machine's underlying OS. Which I'll admit, is fun at time, but to use the now antique computers as daily drivers of any kind is pretty asinine. The only reason I can still run IRIX for example is because the UNIX APIs for a lot of things are cross platform, and one can replace old, proprietary libraries and OS parts with new equivalents that are open source. Also since IRIX is almost 10 years ahead of AmigaOS in terms of development, since OS 3.x ground to a halt ~2000-ish while IRIX still was regularly patched until the SGI bankruptcy in 2009-10.

My 3000T with CSMK3 68060@75MHz, Mediator with Voodoo 4 and ethernet and mostly standard AmigaOS 3.9 feels like it's almost as fast as my older 2.3GHz Pentium M laptop with Windows XP. My Amiga doesn't pause for several seconds with low CPU usage and in general feels more responsive. The laptop is faster after it gets up to speed but I would be quite happy with the speed and memory of my 68060 Amiga in a laptop. The worst problem is not the AmigaOS which is quite useable even today but rather the lack of more modern apps. My Amiga is stable which is different than secure, cooperative or not. Yes, programs have to cooperate in behaving but I simply stop using what doesn't. It's not that big of a handicap. I would like to see partial memory protection as we could have most of the benefits of memory protection with the speed of shared message passing. A 68k compatible Amiga will never be a high security OS necessary for servers and workstations but most users don't need it. Users seem to like the idea of security until they realize they lose freedom and end up with Windows Vista annoyances. I prefer a fun computer to be on the freedom end of the freedom vs security scale. I wouldn't mind having a more secure high end Amiga for more serious work but it would be a lot more effort to create. My laptop analogy was to show how much more effort this would be. I believe it would be better to sell fun computers to the masses instead of high end computers to the classes. If Amiga APIs were more similar then expanding the Amiga to the masses would help the classes with their lack of software problem.
« Last Edit: November 27, 2014, 04:27:12 AM by matthey »