ARM Is a Promising Platform But Needs To Learn From the PC
jbrodkin writes "Linux and ARM developers have clashed over what's been described as a 'United Nations-level complexity of the forks in the ARM section of the Linux kernel.' Linus Torvalds addressed the issue at LinuxCon this week on the 20th anniversary of Linux, saying the ARM platform has a lot to learn from the PC. While Torvalds noted that 'a lot of people love to hate the PC,' the fact that Intel, AMD, and hardware makers worked on building a common infrastructure 'made it very efficient and easy to support.' ARM, on the other hand, 'is missing it completely,' Torvalds said. 'ARM is this hodgepodge of five or six major companies and tens of minor companies making random pieces of hardware, and it looks like they're taking hardware and throwing it at a wall and seeing where it sticks, and making a chip out of what's stuck on the wall.'"
ARM == shit.
Has this guy never seen the PC hardware section at Fry's?
There's no -1 for "I don't get it."
So Linus is saying that they should have one central authority decide what's right for everyone? ** head asplodes **
Intron: the portion of DNA which expresses nothing useful.
The embedded world doesn't have much trouble with this. For QNX, there's the kernel, which is the same for all CPUs with the same instructions set, and a "board support package", which has the driver programs for a given board or variant.
Linux is a monolithic kernel, and so it has to be hacked all over the place to deal with architecture variations. Linux lacks a clean conceptual model of operating system vs. board support.
They're not trying to cut corners for the hell of it, but for performance, power usage, and other actual engineering reasons.
You just cant build smartphones and tablets with that same common architecture, or else you're adding too many chips and circuits you don't need.
It's no big deal that PC's ship with empty PCI slots and huge chunks of the bios and chipset that are never used but rarely. (Onboard raid, ECC codes, so on and so on), but when you're trying to put together a device as trim and minimalist as possible, you're going to end up with something slightly different for each use case.
Goals for Friday.
1) play all pink floyd albums in a continuous loop.
2) make bubbly gurgle sounds with my "sandwich".
3) contemplate "making a chip out of what sticks on the wall".
Having to work for a living is the root of all evil.
This actually sounds a lot like the comparison between Linux (ARM) and Mac OS X / Windows (Intel CPU).
Companies trying to support Linux with closed-source software struggle with a hodgepodge of distributions, kernels, and compilers.
"ARM should be more like my previous employer Transmeta".
Fandroids hate facts.
Is Linus Torvalds (implicitly, at least) criticizing ARM because it is open and therefore anyone can create their own version of it? As opposed to x86, which has a restricted licensing set (AMD/Intel/Via... Via still exists, right?)? Because that is, AFAICT, exactly why ARM is so varied: anyone can roll their own. With the result that many do.
Kinda ironic (and I do mean *ironic*) that the creator of Linux would be complaining about this. I guess he is finally discovering why, in some cases, a regulated and restricted environment can be good (note: if x86 was a monopoly, I would not be saying that. But AMD and Intel are fierce competitors, so it isn't at all monopolistic). Open environments often become "hodgepodges" and lend themselves to non-standardization. Closed ones don't (well, they can, but generally they don't. Definitely not as fast as an open one) and can be easily standardized (witness how Intel accepted AMD's x86-64 set for consumers over their own I64 system). The result is, in the case of CPUs, good for consumers.
Note: I am note proclaiming the virtues of proprietary systems, or claiming they are better than free and open ones. Just pointing out the irony of the situation.
"None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
The reason why x86 is so unified is because they're all in PCs. You only have the one form factor to shoot at. So of course the CPUs will be highly similar.
ARM fills a different niche. You see ARM chips in tablets, phones, industrial control, routers...all over the place. Of course ARM chips will vary more wildly. They're trying to hit more targets. And those targets have unique and tightly defined parameters. That will put them at odds with other designs.
I mean hell, if the x86 has it all figured out so well, then why isn't your cellphone using one?
Weaselmancer
rediculous.
Yawn
More coding, less jabbering, linux dude !!
There's up-sides and down-sides. Diversity brings resilience in the face of software threats since you don't have homogeneous systems capable of executing the same malware payload code. The downside is exactly per article - support becomes much harder. I'd like to think if we had one CPU in the world then it would be rock-solid and extremely well tested because more eyes are looking at it. On the other hand it's a buisiness objective to "get it to 75% and ship it" so that one processor would probably just suck as much as any other hardware/software system out there but would cost 20x as much. You can't just say "open-source it" either because we all know how they love to fork everything to death. It's just the price of progress. Look on the bright side though, at least ASCII hasn't changed so our 7th grade poetry still loads even on these new-fangled iPads.
later seen in from one folder on population as well start a holy war to this. For legitimise doing time I'm done here,
So I wish I could agree. But ARM is following the same diversity explosion and darwinian selection as FOSS, and for the same reasons. Out of this chaos comes the wonderful bounty of choices in our modern digital buffet. PCs have become stagnant. If you want one they are still available, but don't really do anything more than they did 15 years ago.
Help stamp out iliturcy.
You know what we got with a single consistent architecture for PC CPUs? The need to use ARM chips.
For years there have been more promising options for instruction sets, and even the basic design of the chips. None of them were taken seriously because we were stuck with a standard.
Now, let's keep our standard, it's good for many things. But ARM is meant to solve some of the problems that it created, so why the hell would we want to give it the same problems?
throwing it at a wall and seeing where it sticks, and making a chip out of what's stuck on the wall.
... is this different than how Linux and OSS in general have progressed?
I hope by that he doesn't mean "unprofitable and get bought for pennies on the dollar" like Transmeta.
ELOI, ELOI, LAMA SABACHTHANI!?
it looks like they're taking hardware and throwing it at a wall and seeing where it sticks, and making a chip out of what's stuck on the wall.
They can't do that! I have the patent!
Who would win this election: Andrew Weiner vs Andrew Weiner's weiner.
One of the reasons ARM has succeeded over Intel in the embedded platform is exactly because it's a hodgepodge in terms of implementation.. Arm just designs the chip, they don't make it, they leave that up to others, who then in turn support their own chips by providing kernel patches - which has been amazingly successful for Linux (and incidentally the non-linuxy iPhone as well)
Not to talk trash, he definitely understands the kernel and software but the nuances of hardware development and what makes hardware successful or unsuccessful aren't in his core skill set. After all, way back when he could have picked any position anywhere he picked Transmeta.
A lot has changed since then but ARM has done nothing but help Linux. If your chip vendor has a poopy Linux implementation they'll sell less. If they have a great one (and great documentation) they'll sell more. TI's a pretty good example of an awesome ARM / Linux implementation, and.. there are less awesome examples..
What this needs is for Microsoft to work with an ARM SoC vendor to come up with a platform architecture for an ARM-based server running Windows. It's in Microsoft's best interests (being that Windows is a pay-for OS) to take the lead here and I expect they would do a damn fine job.
With an architecture in place and a single vendor building to that specification, other ARM SoC manufacturers who want to play at the Windows table will have to conform. This would be the start of a common ARM platform. It may not be perfect, but it would be common.
Hate on MS all you like, but they could own the shit out of this.
Can someone give me an example of the kind of non-compatible functionality you'd get with a desktop ARM versus a mobile version.
It seems in my eyes they should implement all the features for great cross compatibility, but just make them slower if need be. I doubt it would up much more die space...
I really dislike fragmented environments, and at most, we should have 2 ARM versions, preferably one, and not for example 20000.
Why OpalCalc is the best Windows calc
Translation: "I'm irked that Apple has the best ARM silicon, followed closely by the Tegra and the Snapdragon, and all the other players are mostly just experiments which will fade away, which means the majority of the ARM market is not reachable with the Linux kernel."
Suggestion: If your interest is mass market appeal, then just focus on the 2 or 3 best pieces of silicon, and forget about the rest. Optimize the kernel for performance on those.
In other markets, ARM chips are widely differentiated for a reason, they target countless embedded systems, something the "PC" has never been good at. Either do the work to support all the different flavors, or stop worrying about it. I think ARM is successful specifically because it's the anti-Intel platform.
linus's views sound very similar to what i've written about, at some length on this subject: https://lkml.org/lkml/2011/7/1/473
the thing is that absolutely nobody has come up with any solutions. the only solution i've heard is the one that i recommended, and there's been no reaction or response to it, as of yet.
the problem is the sheer overwhelming diversity. therefore, the solution is to prioritise linux kernel patches that come from hardware syndicates or specifications that cover more than just the one hardware device. for example, a patch to add in ARM USB3 support would instantly be accepted, because it covers multiple hardware devices. for example, a reference board would be instantly accepted, because it allows companies plural to develop platforms based around it.
what people are forgetting is that because there is no BIOS in the ARM world and no "common hardware platform" (PCI, PCIe, Northbridge, Southbridge - in most cases all of those things are gone. ARM CPUs with PCIe are exceptionally rare). and often there are massive differences between CPUs even on a minor upgrade from the same manufacturer, each hardware device has to have a custom-tailored device layout, and that means a custom-tailored linux kernel.
That should sell in the dozens.
Help stamp out iliturcy.
First arm only does the cpu, everything that it is around it (timer, interrupt controller, memory controller, uart ,...) can be anything.
And there is no easy way to discover them (like pci bus, acpi, ...). That what device tree want to do. ...), and this make the number of driver very big. ...
But that won't really solve the code size. Embedded company want to reduce cost and often design simple soc block (gpio, uart,
Also there no standard interface like ehci, ahci,
Even the same vendor can change the controller across the chip generation.
So I think it will be very difficult to unify things. What the advantage of arm for soc maker. There are free to do what they want.
The PC is a dead architecture that died when Packard Bell brought one of the first Pentium chips to consumers (70MHz) , with the help of the microprocessor fab's, isolated the PC from it's stable legacy conduct into the
new bussing and expansion interconnects.
PC was an open standard only durring the 286, 386 and 486 eras, when Microsoft actually had it's own Unix flavor called XENIX. Seriously, there is no analogy to make: PC is general-purpose architecture that was made into something else by Intel. Everyone else just followed the lead of Intel in hopes their chips and hardware could work in parallel.
Anyone in computing that was productive, either used a DEC Alpha or Amiga. You only find so-called Desktops of Intel or AMD builds in the trash -- never do you find an actual computer in the trash.
let me expand this, saying I have linux on an arm cpu is similar to saying I have a 6052 running basic. In reality it means nothing because each arm setup is totally different outside of its core. just like every computer from the 80's had a specialized basic custom tailored setup
ARM is a bunch of different companies all contributing code to make their own device work. The problem is that very little effort is being spent to extract all the common bits, so you end up with many slightly different implementations of the same thing.
I fail to see where the news is here...
the PC rules !!! Long live the PC !!! Stick your ipad up your arse. It's just a big iphone.
No, not really everywhere. Not nearly as everywhere as 68K (still). No where nearly as everywhere as ARM.
x86 is not really appropriate to embedded and real time. If the other processors which are tend to get tuned, well, x86 in embedded is going to tend to get even more special hardware.
Not the same x86, however, and that's really the problem we're trying to talk about here. (And failing.)
We need a whole bunch of co-existent forks.
And some way to manage them all.
That's the whole point here, I think.
Time to call out an ARM manufacturer.
We recently got a Freescale i.mx53 Quickstart Board. Nice piece of kit they just released. Seems good for many of the applications we're thinking of.
Problem: It ships with 2.6.35, more than a year old. With 505 patches. And proprietary graphics.
We really want the 3.0 kernel, because it's supported by the -rt patches.
Freescale, Freescale, Freescale! PLEASE make more of an effort to mainline your changes! And use a graphics core that has drivers that can be recompiled, even if it's the NVIDIA model.
Standard platforms are okay, but eventually we need to start working on tools to deal with the complexity.
Linux is written primarily in C. The reason for this is that C was designed from the very beginning to be ported to new technologies.
Help stamp out iliturcy.
ARM is this hodgepodge of five or six major companies and tens of minor companies making random pieces of hardware, and it looks like they're taking hardware and throwing it at a wall and seeing where it sticks, and making a chip out of what's stuck on the wall.
I'm not sure whether this vision is more hilarious than deep or vice versa. Maybe both.
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
www.bestgpsx.com.best gps http://www.bestgpsx.com