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.'"
Don't stick it so far in next time.
Has this guy never seen the PC hardware section at Fry's?
There's no -1 for "I don't get it."
returns value "false"
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.
No, but Slashdot is saying you should practice reading comprehension.
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.
Maybe some coordination to make sure that similar instructions work the same way across all ARM CPUs.
Obama's legacy: (N)othing (S)ecure (A)nywhere and (T)error (S)imulation (A)dministration
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
I'm pretty certain he'd prefer a consortium that produces a common set of standards, but he raises an important point.
Choice costs.
It's wonderful that you have the a massively wide variety of choices, unconstrained by the a central authority, but don't forget that the cost of having that choice is going to be significant. There's a reason that almost all lines of business tend towards either a few big winners or, if the product is essentially identical, commoditization.
It's why I often wonder at why Linux users dream about taking over the desktop. If that did occur, it would mean a drive to lower cost that would result, almost inevitably, in the wholesale adoption of s single choice, reducing all the other choices to total irrelevance.
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.
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
It's why I often wonder at why Linux users dream about taking over the desktop. If that did occur, it would mean a drive to lower cost that would result, almost inevitably, in the wholesale adoption of s single choice, reducing all the other choices to total irrelevance.
But when that choice goes goofy, you can change it quickly. Like the watershead from KDE for a while. Next it will be from Unity and Gnome Shell, for a while. Then the leaders either shape up, or fall aside, like XFree86. http://en.wikipedia.org/wiki/XFree86 You can have a market leader (A good thing for standards) and still have choice. (A good thing for freedom)
That's "Do as I say, not as I do" at its finest. Meanwhile, on the Linux front, choice is great, if you're not happy roll your own, and uniformization is death.
The Cloud - because you don't care if your apps and data are up in the air.
ARM chips sell over 10x IA chip volumes. More volume supports more choices. Linux runs on a good fraction and I'm writing this on one. It appears that the cost to migrate to a new chip is so low that a gang of volunteers can keep up with hundreds of phone and tablet models and deliver rapid platform updates quite swiftly. I don't see a problem.
This is the "beware fragmentation" pitch we laughed at in distros, in Linux apps, in Android phones and tablets. This is absurd and deserves ridicule. Fragmentation is choice. Do we need to cringe in peril when we discover that our corner convenience store's water market is so fragmented that it offers 17 choices in simple, unflavored uncolored water? No. We should ask why the water often costs more than Gasoline, but that is a separate issue.
Help stamp out iliturcy.
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.
I'm not so certain. If the business community settles in on a standard, instead of the Linux community being composed of a dozen different distributions, all of which have roughly equal mindshare among contributors, you end up with only one to which you contribute if you want to be at all relevant, which means the alternatives wither from lack of customer and eventually programmer interest.
My thesis (speculation to be sure, but built on observation), is that you *cannot* sustain that level of choice in a market that is in any way mature.
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.
More like wouldn't it be nice if they would at least occasionally meet, talk shop, and perhaps agree voluntarily to be a bit more compatible. That and don't go making changes for the sake of changes. Pick a design that works and stick with it.
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.
It's why I often wonder at why Linux users dream about taking over the desktop. If that did occur, it would mean a drive to lower cost that would result, almost inevitably, in the wholesale adoption of s single choice, reducing all the other choices to total irrelevance.
I don't understand this logic.if the hardware was standardized, anyone could make the chip and someone would find a way to compete (speed improvements, power consumption, ...)
The whole deal with ARM standards is probably going to be solved with Windows 8 (unfortunately) if it sticks to the promise of running on ARM. Microsoft will step in and say "Here is what we will support" and the chip shops will fall in step.
Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
I don't understand this logic.if the hardware was standardized, anyone could make the chip and someone would find a way to compete (speed improvements, power consumption, ...)
My comment about the desktop was unrelated to ARM. I was trying to point out that if you become a significant player in a market where cost rather than flexibility is the main factor (i.e. the mainstream desktop), you are likely to *lose* a lot of your current choice.
Your point about Windows 8 is a very good one. We may lose a lot of choice because of it. On the other hand, much reduced costs to enter a now much larger market may well boost participation significantly.
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
Microsoft already has two operating systems that run on ARM, Windows CE (aka Windows Mobile) and Windows Phone; so I'm not so sure about that. Besides iOS and Android are the market leaders in the ARM space, that probably isn't likely to change any time soon, and Windows 8 probably won't run on any of those devices.
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.
So far we have POSIX, Linux Standard Base, and the Free Desktop "standards". Standards are always optional, whatever the "business community" says. There are many categories of software, but there aren't terribly many different competing projects per category. As concerns distros, there are the debian-based distros, the fedora/RHEL based distros: everyone else is more or less "niche", and generally not intended for mainstream consumption.
"Relevant" in the FOSS world means your code compiles on new systems and your application does what it says on the tin. TeX and wget are highly relevant but hardly developed at all these days. Your definition of relevancy seems to be a bit more subjective, and betrays a woeful depth of ignorance of the software world.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
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