As an end user consumer, most users don't really care at all what internal architecture there computer uses. Especially in todays day and age where computers are "fast enough", people will care less and less about internal architecture.
I have no idea what CPUs are running inside of my Jeep, as an example. Or my refrigerator. Or my stove, or TV, or thermostat. Boxes with lights and buttons that I hope simply continue to work.
The Windows eco-system is pretty much "hard coded" to the x86 architecture. For good and ill, they're pretty much stuck with it. For a short while, Windows NT was dabbling with other processors families (notably the Alpha), but that didn't really last.
Apple is less so. Being based on NeXTStep, Mac OS has been multi-architecture to its core since the mid-90's. If Apple decided to, it could readily come out with a new CPU platform, such as an A9 (One of Apples recent ARM based CPUs) based Laptop. Does the existing software work on it? No, it does not. But for most software, it's a re-compile away (plus testing, naturally), and the platform readily handles "fat" binaries that support multiple architectures, so distribution is basically painless for vendors. Apple already promotes "architecture free" development practices throughout it's tool stack. If you're following Apple's guidelines, the port process should be straight forward as a developer.
The Linux and BSDs are cross architecture today already, much software has been ported to several CPUs. The only thing really keeping the OSS systems from running alternative architectures is readily available hardware, and then drivers on top of that. GPU acceleration always being the bug-a-boo plaguing open systems.
Android is mostly architecture agnostic, since the primary development environment is VM based. Sure some code out there is written to the underlying CPU, but the bulk of it is not. Android is not really on the desktop per se yet. But Chrome OS on Chromebooks will be running Android apps very soon.
Finally, with more and more development being done at the higher level, using high level architectures like the Android VM or environments such as Javascript, plus the litany of other scripting languages, the dependency on the CPU is getting less and less and less. Most server side developers already "don't care" about what CPU they're using.
The large internet companies would switch architectures in a heartbeat if there was a discernible benefit to doing so. If Facebook felt that ARM was going to be providing a 10% boost in energy efficiency over the long term compared to Intel, they'd get boards designed, built, and would start porting their back end over. (I'm not suggesting ARM can do that.)
The large AMD ARM servers seem to be pointing to the energy conscious market. The raw truth is that for a large amount of use cases, raw performance is not necessarily the first consideration in decision making, and in those scenarios, perhaps a 1000 ARM cores in a server is more useful than some monster Intel chips.
But this is why you want multiple architectures to be viable in the market, especially the consumer market. You need diversity to avoid a monoculture. You need diversity to encourage competition. To hold Intel's feet to the fire. Intel needs that for it's own sake.
It would be great to see some more CPUs in the mobile space. Something besides ARM. Especially since Android can in theory support this already, let the foundries and designers work their magic to make a better mobile CPU. Apple brought it in house simply so they could scale their production better, get exactly what they wanted for their use cases. But in the end, they're still ARM chips inside.
Non x86 based PC for everyday usage
Re: Non x86 based PC for everyday usage
Bregalad wrote:
ARM also have a "thumb" mode where instructions are 16-bit making code much smaller.
Quote:
On the Game Boy Advance platform, it's common for games to be written ~98% in Thumb and only tight optimized programs to be written in ARM (since the ROM has a 16-bit port anyway, executing ARM code needs 2 cycles per instructions, which is uneffective - so only code loaded in RAM is potentially worth being written in ARM).
Quote:
I love the old Windows, but I hate the new ones.
I had a poor opinion of PCs in general throughout the 80s, where machines like the Atari ST and Commodore Amiga beat the pants off of any PC. But then things got better. And better. By the early 90s it was foolish to ignore what Microsoft and Intel were doing. I went through my "Microsoft is evil" phase. Now I've got work to do (and games to play).
Quote:
Most modern software I use are GNU programs that I stay up to date, and I can have the exact same on Linux. The only reason I still use Windows is that I have a large pool of extremely old software that I cannot or do not want to part with.
Quote:
I will have no reason to use Windows any more, especially not with ****ty graphical interfaces and MS spying issues.
Quote:
Quote:
Other product groups historically used other architectures, such as PowerPC, [...] but have in recent years transitioned over to x86... which now hit the size, power and thermal targets whilst delivering much more horsepower and, to cap it all, bring along the x86 ecosystem.
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Non x86 based PC for everyday usage
BigEd wrote:
BDD develops microprocessor systems and does other engineering consulting. Probably he's not running Steam or Photoshop.
As far as getting away from the x86 machinery, that's tough to do in the business world. Everyone is riding the x86 bus and no one else seems to be building a bus that is just as powerful and cheap, and can carry as many passengers. Most of us have more computing power sitting by our desks than my employer in the 1980s had in their S370 mainframe. So x86 it is, even though I would love to use POC for something other than a desk ornament.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Non x86 based PC for everyday usage
For my own part, I spend the bulk of my computer usage in a browser - and that needs to be a modern browser with fast JavaScript, which restricts me to the mainstream and with plenty of RAM. The other large application I sometimes run is the Xilinx toolchain, which means x86 again (or, theoretically, an emulation of that!)
As it happens though, the three main machines in the house, including two on desks, are all laptops. I've never really had need of the desktop form factor, not having multiple hard drives or fancy GPU cards. Oh, except one desktop was useful because it had a parallel port.
As it happens though, the three main machines in the house, including two on desks, are all laptops. I've never really had need of the desktop form factor, not having multiple hard drives or fancy GPU cards. Oh, except one desktop was useful because it had a parallel port.
Re: Non x86 based PC for everyday usage
I use an Amiga 2000 for everyday use. I do have a Pi running a VNC server for 128-bit encrypted websites, though.
But most of what I use it for runs natively on the 68060.
Sooner or later I'll put my A3000UX back together and I won't need the Pi. (Well not for that anyway...)
But most of what I use it for runs natively on the 68060.
Sooner or later I'll put my A3000UX back together and I won't need the Pi. (Well not for that anyway...)
Re: Non x86 based PC for everyday usage
whartung wrote:
The Windows eco-system is pretty much "hard coded" to the x86 architecture. For good and ill, they're pretty much stuck with it. For a short while, Windows NT was dabbling with other processors families (notably the Alpha), but that didn't really last.
Apple is less so. Being based on NeXTStep, Mac OS has been multi-architecture to its core since the mid-90's.
Apple is less so. Being based on NeXTStep, Mac OS has been multi-architecture to its core since the mid-90's.
Believe it or not, folks have thought that MS ditched support for microkernel OS architecture years ago, but their recent demonstration of running Bash natively on Windows 10 clearly shows they have not. NT is still just as capable of running OS/2, Windows 16-bit, and other platforms from ages ago. The only thing that MS did was remove the unused components from the distribution. But the APIs are still there, and are still used to run Win32 and/or Win64 and WinRT themselves.
Re: Non x86 based PC for everyday usage
As far as non-X86 platforms for desktop computing, the best bet is the AmigaOne series. They'll come equipped with AmigaOS 4.x of some flavor, but the hardware is usually quickly dual-booted into a Linux environment as well. They use PowerPC motherboards.
Re: Non x86 based PC for everyday usage
kc5tja wrote:
Windows NT, from 3.1 all the way up to Windows 10, rides the same basic kernel architecture, and is every bit as multi-architecture as NeXTStep, MacOS, and even Linux. Microsoft has demonstrated this effortlessly, with both ARM, PowerPC, and x86 versions of their operating system platform (what do you think runs in the X-Box series of game systems? Yep, Windows NT. That includes their PowerPC hardware X-Boxes).
I'm talking about the eco-system, the development environment, and the underlying philosophies of the OS and, by projection, the community.
NT has no "fat" binary structure. It's conceptually not there. NeXTStep (and now MacOS) has had this since the early 90's. It still has it, they still use it. It's core to the architecture of the system. Philosophically, Apple promotes developing to this kind of environment. Developers seamlessly ported to the ARM environments of the portable devices, and the build chain supports this as well.
If Apple were to introduce an ARM based Macbook, the support for that platform would grow very quickly, as most developers would need to simply click a check box and rebuild their code with little actual interruption to their normal workflow. And once done, all of their supply chain would Just Work. However they were shipping their programs before, they would still use. They wouldn't have to flag their software in any special way, save some marketing to let customer know that they support the new architecture. Consumers would have no problems with installing the software, downloading the wrong version, for the wrong architecture, etc. (assuming they get "the latest"). Developers get all of that "for free".
I have PowerPC apps on my machine at home -- they don't work. They have a nice little circle/slash icon over them because I can't run them. Again, the OS and environ solve this problem, and have for some time.
Support for the Alpha and other NT architectures were slim to none. Most folks code wouldn't "just port" easily to the new architectures, the code wasn't written with it in mind. Objective-C is written at a higher level than normal C or C++. Part of that mandated that coders adopt different idioms during development that fosters portability. The elements existed on Window, for sure, but it was very easy to simply not follow them, there was no repercussion. In the Obj-C environ, you pretty much were forced to use them -- so portability came "for free".
So, this is why Apple can remain more agnostic. Apple can offer different ARM builds on their phones, and they can have the development tools target different processors if they like. You even upload a fat binary to the app store, and the app store could deliver the properly trimmed binary to the device (dunno if they do do this, but they trivially can), again transparent to the consumer and the developer.
Apple is much farther along in this space than other.
Android punts on it all by targeting the VM (which is clearly another technique).
Re: Non x86 based PC for everyday usage
whartung wrote:
They've ported the kernel. I never said anything about the kernel.
I'm talking about the eco-system, the development environment, and the underlying philosophies of the OS and, by projection, the community.
I'm talking about the eco-system, the development environment, and the underlying philosophies of the OS and, by projection, the community.
NT has no fat binary structure; you're right. That's because it doesn't need one. But then again, neither does Linux, which is undeniably the most ported operating system on the planet to date, running on everything from "wristwatches to supercomputers".
Quote:
Developers seamlessly ported to the ARM environments of the portable devices, and the build chain supports this as well.
Quote:
...as most developers would need to simply click a check box and rebuild their code with little actual interruption to their normal workflow.
Code: Select all
$ MARCH=doohickey make blah
Quote:
They wouldn't have to flag their software in any special way,
Quote:
Developers get all of that "for free".
Quote:
Objective-C is written at a higher level than normal C or C++.
Quote:
Part of that mandated that coders adopt different idioms during development that fosters portability.
Maybe you're talking about something else, more in the middle of the software stack? Or, maybe it's just an artifact of the app approval process for iPhone and MacApp stores. But, I'd argue this is a social incentive, not a technical incentive.