Why Linus Torvalds Prefers x86 Over ARM (pcworld.com)
Linus Torvalds answered a question about his favorite chip architecture at the Linaro Connect conference. An anonymous Slashdot reader quotes PCWorld:
People are too fixated with the instruction set and the CPU core, Torvalds said. But ultimately "what matters is all the infrastructure around the instruction set, and x86 has all that infrastructure... at a lot of different levels. It's open in a way that no other architecture is... Being compatible just wasn't as big of a deal for the ARM ecosystem as it has been traditionally for the x86 ecosystem... I've been personally pretty disappointed with ARM as a hardware platform, not as an instruction set, though I've had my issues there, too. As a hardware platform, it is still not very pleasant to deal with."
You can watch the whole half-hour conversation on YouTube. My favorite part is where Linus candidly acknowledges that "sometimes my grumpiness makes more news than my being nice... 99% of the time I'm a very happy manager, and I mentally pat people on the head all the time. That maybe then highlights the times when things don't work so well a bit more."
You can watch the whole half-hour conversation on YouTube. My favorite part is where Linus candidly acknowledges that "sometimes my grumpiness makes more news than my being nice... 99% of the time I'm a very happy manager, and I mentally pat people on the head all the time. That maybe then highlights the times when things don't work so well a bit more."
Old man prefers thing he is most familiar with. News at 9 because he'll be fast asleep by 11.
Well... he has a point on all fronts.
1) x86 is so backward compatible it's... grand. Except for legacy bugs to push forward
2) ARM is, or rather, was, not afraid to put efficiency above complete and total backward compatibility
3) He get's a whole lot of news for being an ass. And that may help /. because I always come here to see the comments after news of a Linus blowup. It's awesome, coming from a multi-disciplinary background where job A's culture is nothing like job B... but oh, would it be great to combine the two! Billion-dollar sovereign debt deals and computer science. I wanna be able to yell at these geniuses like those assholes yell at those assholes. Uh... makes me get all warm down there.
What you are saying here is the rock equivalent Van Halen should fire Eddie Van Halen. Things that just cannot happen. It just wouldn't be right, you know?
ARM is the present. It was the future when I was in school - but that was 26 years ago when we got our first ARM based machines in class (the Acorn Archimedes, and it was great).
You can't fire the dictator.
I prefer MIPS, but still find myself writing for x86 targets most of the time. -PCP
I guess it's fitting that he doesn't realize patting someone on the head is a condescending gesture.
>>his usefulness to the youth movement.
>loving the Party this hard
There is no reason to coddle developers who write shit code.
And make no mistake, ARM driver developers employed by ARM vendors are truly horrifyingly bad programmers.
Fuck you I'm switching to systemd.
...thinks he knows it all. Now move along and don't forget to clean up your toys before your bedtime at 7.
As usual Linus is talking 'general' but thinking focused. :embedded.
What he is actually talking about is high level computers (which these days includes smartphones, tablets, etc however there is a little
more crossover there).
Where he has no knowledge, understanding, or consideration is lower level applications - ie
Arms flexibility, and tendency to closely integrate hardware at the low level makes it is fantastic micro CONTROLLER implementation in general.
The STM32 series are a great example of this, and it is an area that Intel seems to have lost the plot on. Despite Intels gushing money from time
to time into such areas, very very few would touch them with a barge pole. Their IO infrastructure is just TOO complex and unnecessary for such
applications (no one there uses PCIe, etc. Even USB tends to emulate a serial device).
In the mid range - ie: cellphone, tablet, etc ARM Chip sellers integration is great, however their documentation is TERRIBLE, and they do not seem to understand that open hardware specifications are gold (I am looking at you allwinner, rockchip, amlogic, himedia, mediatek, etal) and who dont seem to realise that sharing that knowledge gets a LOT more developers on side (or possibly hide it because of IP fears... who can be sure). There are vendors without
such problems however (generally but not exclusively the non-chinese chip makers).
In the high end - PCs, Servers, etc. well, thats a mess right now. Perhaps AMD etc will help sort it out, or perhaps not.
In the end, ARM makes sense in a whole lot of niches, however not really those Linux focuses on - his primary focus has always been large server and workstation hardware, an area ARM is only just starting to overlap into in a small way.
So, what he says is factual in one area, but that area is a niche to arm, and a stronghold of Intel, so is it really a surprise?
that's how long it takes for someone to master a mnemonic tab
Android suffers this very issue, where you end up needing a bytecode VM (Dalvik) just to ensure compatibility across devices. This doesn't mean that the ARM instruction set isn't a joy to work on though.
He's indeed talking about desktop and mobile devices though, where this is an issue.
Let us all bow our heads for a moment of remembrance for Transmeta.
You can't fire the dictator.
But you can emigrate. "Of course it runs NetBSD!"
there are also really shitty chunks that appear to have been written by people under the influence of [...] -PCP
Indeed.
He's indeed talking about desktop and mobile devices though, where this is an issue.
He is talking about THE LINUX KERNEL which runs on more than desktops and mobile devices
how can you comment on things like this with your deficient ability to comprehend basic information?
Though I'm sure he is talking about PCs exclusively, you're right. I think ARM is absolutely dominating in the microcontroller department.
I see very little reason to go back to 8-bit AVRs.
Louis XVI might beg to differ.
One chip was designed to be very powerful and work well.
Another chip was designed to be new, better, cheaper. The option is to have other closed hardware do graphics, sound and other tasks.
Years later the different design ideas are back on the desktop again.
Do applications want one good chip that is well understood or a cheap chip that locks in a generation to other deeper hardware to get the same performance.
Nice if you have a closed OS, online shop, can alter app code standards and can command developers to accept for profit changes.
Domestic spying is now "Benign Information Gathering"
It is actually also a major problem for many embedded devices. Have you really looked at the DD-WRT project lately? It is completely dead, largely due to the lack of a common platform. My embedded router is in the rubbish heap now, we have switched to an x86 device running normal Linux...
I am probably not the only one that has a drawer full of devices and SOCs with ARM processors on them that I thought would be more useful than they turned out to be. There's nothing wrong with the ARM processor itself, it's just the funky bootloaders and proprietary peripherals with proprietary firmware, and custom kernels that make them a lot less useful to me than if someone made a little x86 SOC with a full complement of I/O pins (including a ADC) with a normal EFI/BIOS.
For some things like my router/firewall, I thought a little ARM-based device would be perfect, but it turned out that a Intel NUC with an micro SD card ended up being easier to deal with (though an order of magnitude more expensive). Easier to keep updated, and can run a stock distro.
I just saw that GlobalScale is producing a new ARM board aimed at networking, which looks interesting, but it's the nearly the same hardware as their old Plug computer products (only 1.2 GHz but with a lot more RAM), married to a 3-port gigabit switch fabric. Still means dealing with a custom/proprietary uboot loader, flashing kernels, etc. Not something I care to deal with anymore.
Of course other devices are different and easy to boot off an SD card. But that's the problem, isn't it. There's no such thing as an ARM version of Debian that runs on all ARM devices. We have to have custom spins for each board. They may as well be their own complete platform, which is impossible for Linus and crew to deal with. So we have to rely on vendors to supply custom versions of the kernel and matching distro.
Anyone can fork Linux.
That said I think a lot of people agree with, and trust Linus: He's not a politician. He's a good engineer.
I have had my experiance with ARM and i have faced some problems in updating the kernel and adding stuff to initrd.
We need ARM boards that have a bot menu and can boot usb cds and have a hdmi or serial ready interface, we need cds that can install a linux distro without any memory manbojambo. We need a boot loader that can be automaticaly updated when you update yor kernel or initrd.
Uboot sucks for anything with user input.
"Have you really looked at the DD-WRT project lately? It is completely dead, largely due to the lack of a common platform."
That's a tiny part of it. The _other_ part of it is that (fancy management GUI aside) OpenWRT kicked the everloving shit out of DD-WRT in terms of capabilities and code quality for _years_. DD-WRT was _dead_ eight years ago... it just couldn't compete with OpenWRT.
I'll never forget the Archimedes - mainly because its users were incredibly obnoxious and lied all the time.
1. They claimed the processor was SUPAFAST and quoted some disk benchmarks. Now, not only was this not a benchmark of the CPU, they used the ancient Arthur filesystem... which was so simplistic if you wanted to store a 1Mb file, you had to have 1Mb contiguous space and run a defrag of the disk if it didn't fit. They quoted spectacular speeds... hardly surprising given the filesystem mde no attempt at even the basic blocking that MSDOS did.
2. They ran a fractal program against FractInt on the PC and proclaimed the Archimedes MUCH FASTER. Well, shame you couldn't zoom in the Archimedes version... it was using a very low precision to look fast.
3. They wrote games that they would claim were written in BASIC, but were BASIC loaders for hand-crafted assembly language.
Real programmers/engineers can switch as markets and realities change. For example, as the PC era is abruptly ending, and Intel's woes grow, it won't really matter how much you prefer x86. That Linus isn't even acknowledging this tell me a great deal about the challenges that Linux could face soon.
Just get emacs to run on top of it, and you'll have a full OS, neatly sidestepping the controversy over Linux vs BSD vs Minix
If you want to use a microcontroller without having to pay for bloat like mbed, you are far better of with AVRs unless you have a lot of experience with exactly the same chip.
For any ARM chip you will spend hours reading documentation just to figure out how they implemented the I/O pin configuration today.
Heck, you probably to start with need a custom linker script for your compiler to make it put the startup address in the right place.
He was guillotined, not fired. Big difference!
So he is the Trump of software?
The 80386 was a piece of crap consumer hardware with an instruction set based on one of the earliest 8-Bit CPUs based on a 4-bit CPU.
But it had a rudimentary 32-bit mode and unbelievably a paging MMU and traps supporting full virtual memory via page faults. On-chip.
In contrast, the 68000 had a full 32-bit instruction set from its inception. But you needed an 68010 for supporting virtual memory via page faults, And the MMU was external, as the 68851, and not really supported untli the 68020.
So people like Linus Torvalds suddenly had a crap consumer CPU capable of supporting and running a modern operating system without extra hardware.
Both Intel and [most of the] ARM [community] are guilty of bundling opaque processor controls, and the i386/ARM architectures cannot be trusted as the opaque components have unrestricted access to networking, memory, and i/o.
It appears that the best "open" CPU architecture is the decade-old SPARC T2 - the full Verilog source for the CPU is provided, and there is no "management engine."
Unfortunately, no "Raspberry Pi" or otherwise reduced form-factor board is available on the market at this time. If you want to run a SPARC T2, you will likely have to purchase a used Netra server.
If you went with all open hardware you wouldn't be needing to dump it. DD-WRT is horribly crappy solution. OpenWRT is a little bit better. LibreCMC is ideal. The difference is that LibreCMC doesn't include any non-free pieces. The devices it runs on are those where even the bootloader code is fully available. Thus the really old stuff is *still supported well*.
There are like... 10 devices on the supported hardware list of those projects. Most of them are painfully obsolete. None of them are open hardware, and they probably run on reverse engineered firmware, and not actual clean open implementations.
Debin will run on almost any normal x86 PC from the past 20 years, and function quite adequately as a router with two NICs.
And the maintainers...