Surveying the Challenges of Linux On Cortex A9-Based Laptops
Charbax writes "In this video, Jerone Young, lead partner engineer at Canonical, explains some of the challenges facing Canonical and other companies who are part of the new Linaro project, in preparation for the now imminent release of a whole bunch of ARM Cortex A9 Powered laptops and desktops likely to be manufactured by giants of the industry such as HP, Dell, Lenovo, and Toshiba, as well as lesser names such as Quanta, Invetec, Pegatron, and Compal, all of whom have been showing tens of early prototype designs of these ARM-powered laptops at trade shows around the world during the past year and a half. They're working to standardize the boot process, write drivers to use graphics and video hardware acceleration, optimize the web browser (Chrome and Mozilla), and implement faster DDR3 RAM and faster I/O bus speeds, as well as to optimize the software to use the new faster dual core ARM Cortex A9 processors."
Nice to have them with 13.1 14-15 and 17" screens and not just 10 and under.
Here we go again. I'm getting an "Internal Server Error", but who knows exactly why the page is down.
Coral Cache link is here,, and it'll theoretically work, well, that is if I can ever get the page to load...
Too bad about RTFA, I guess, for once it looks like I can base my post solely on the summary and not feel an ounce of guilt. Let's see...I don't know much about Pegatron, but if their laptops don't come with a pair of wings and a horse head attached I think I'm going to feel let down.
coding is life
As their main webserver quietly melts in the background, please direct your attention to a video here (Coral Cache) that has the exact same title as the url in this article.
This link/video mentions Jerone Young, one of the "main engineers at Canonical" responsible for ARM development.
coding is life
as well as lesser names such as Quanta, Invetec, Pegatron, and Compal
They may not be household names but I would hardly call them lesser names. In fact I would be shocked if hp's Slate offering wasn't built by Quanta.
Quanta Computer Incorporated (TWSE: 2382) is a Taiwan-based manufacturer of notebook computers and other electronic hardware. It is the largest manufacturer of notebook computers in the world.[1] Its customers include ACER, Alienware, Apple Inc., Cisco, Compaq, Dell, Fujitsu, Gateway, Gericom, Hewlett-Packard, Lenovo, Maxdata, MPC, Sharp Corporation, Siemens AG, Sony, Sun Microsystems, and Toshiba. It was founded by Barry Lam in 1988. Lam continues to head the company.
Compal is the second largest notebook manufacturer in the world
3 January 2008: Asus formally splits into three companies: ASUSTeK, Pegatron and Unihan
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
AMD Geode is a series of processor models implementing the x86 architecture. ARM is a whole architecture with multiple manufacturers and a bazillion different models. ARM CPUs tend to be extremely power efficient, so they are the natural choice for mobile and many other classes of computers.
Escher was the first MC and Giger invented the HR department.
A few reasons: With Geode, you have your choice between the two main branches of the family: the original Geodes, descendants of the embedded x86 line that AMD bought from National Semiconductor; and the AMD-designed Geode, which is basically their 32 bit athlon design with some modifications to make it embedding friendly.
The first are genuinely low power and heavily integrated; but those suckers are slow. The second are pretty zippy by embedded standards; but only low-power by the standards of the desktop/laptop athlons they were derived from(ie. not very). Neither is an especially compelling choice. The former is slow enough that x86 compatibility doesn't really help you in the consumer market(virtually nothing remotely modern will run fast enough, and if you are going to roll a custom ultra-zippy OS and application suite, x86 isn't a huge feature) and the latter is power hungry enough that you can't really get it into anything smaller than a netbook(where, if it weren't for the fact that it tends to get paired with a fucking SiS chipset, it would actually be OK).
Second, "ARM" gets to piggiback on development work done for contemporary high-end smartphones. The board going into a "smartbook" will be virtually identical to that going into a high end smartphone, just with a bigger screen, battery, and keyboard, and quite possibly some bumped clock speeds made possible by the larger battery and greater heat-dissipation capacity of the form factor.
Because it's been winning the battle since the Psion 5 came out. Or the Apple Newton came out. It beat MIPS and SH3 and SH4 before Palm switched from Dragonball CPUs.
And in the past few years, it's because it's licensable, cheap, can be integrated with other components in your own SoC, works well, has a nice ISA, has the features that you need for a mobile platform, doesn't have cruft like x86, didn't need x86 compatibility anyway, etc, etc.
I did use a Geode based tablet back in 2000 or so. It was running QNX. Rubbish.
These are ARM based platforms, but unlike the PC, there's not one single platform.
On a PC, you know where everything is - and if not, the BIOS helps you. A lot of basic peripherals are at well-known locations (serial ports, keyboards, mice, etc). And for PCI, it exists in a well-known location as well. The BIOS does offer a memory map, but it's just to map physical RAM (which also exists at a well known location - it starts from 0).
If you wanted to write a basic OS, you can accomplish a lot since you know RAM starts at 0, BIOS puts tables at well-known locations (ACPI, memory, etc), and where to expect a video adapter (already set up for you by BIOS), serial port, basic I/O. Add in a little code to do a little PCI probing to discover other adapters (mass storage, USB, etc), but that can wait since the basics are there. Heck, you can often guess a network controller might be placed at IO 0x300.
On ARM, there's no such thing. You can't buy an "ARM Processor" - they don't really exist except as SoCs with onboard memory controllers, display controllers and other peripherals. And each chip can have different addresses for them. And while the ARM cores start at well-known location (0 - reset vector), there's often ROM there that does security boot, or just boot from NAND/SD/etc. And each peripheral exists in a different location - serial ports may be at 0x80000000 physical on one SoC, 0x80108000 on another, etc. RAM isn't based in any standard location - 0x40000000, 0x80000000, 0xC0000000 or other locations are possible. Ditto a PCI(e) bridge - it's somewhere in the memory map, but where you need to read the SoC manual to find out. End result is the OS has to be customized per-SoC and per-hardware because people can put things anywhere (for Linux, this just means the kernel since the POSIX abstraction layer hides the rest - provide a nice userspace and devices don't care).
We don't think of it much, but the PC hasn't differed that much since IBM released their version of a desktop nearly 30 years ago. Heck, Intel's Pine Trail isn't PC-compatible, but it's an x86-based platform. Which is why Linux runs, but not Windows (desktop - you can probably get Windows CE running on it).
That itself is a huge challenge. It's akin to consoles - all three consoles currently out (PS3, Xbox360, Wii) all have PowerPC processors inside them, but you can say none are compatible with each other, even though the lowlying ISA is the same.
A previous poster already answered, on a nice manner. But to make things clear, x86 is a bad architecture, and to make it run any fast, you need to create a very power hungry chip. ARM is a much better architecture, leading to smaller and less power hungry cores.
There is also a problem of scale here. It is cheaper to make an ARM that everybody uses than to make a x86 that will fit only a ninche. But that doesn't completely apply to the current situation, since the A9 is also ninche. (For the A8 things are different.)
Rethinking email
10 hours is already more time than I know what to do with with my netbook
Not traveling much, are you? A flight from Los Angeles to Sydney takes 14-15 hours.
"You can't allow somebody to commit the crime before you detain them." [Condoleezza Rice]
I'd like to see this in an open source hardware project to create what we all thought was going to be the crunchpad. This would be so cool.
Unfortunately, the hardware is just a part of the equation. The other side is really solid, touch-capable software. And, despite being a Linux user for, oh, 15 years now, there's one thing I can say about the open source community: in the 15 years I've been involved with Linux, OSS developers still can't seem to get a handle on building intuitive, user-friendly, clean, fluid user interfaces.
After the recent release of Ubuntu I have much more faith in there engineering team. Canonical is definitely showing promise in being the #1 desktop Linux distro.
http://www.thetechnologygeek.org
Instead of chasing every new fad device, why doesn't Ubuntu focus more resources on QA of existing hardware support? Three of the four WiFi cards I have don't work with Ubuntu 10.04. And they aren't broken due to some manufacturer's folly: the drivers to make the work exist, they are just compiled with the wrong options by Ubuntu.
Ubuntu needs to spend those resources on TESTING their new software to make sure it works with common hardware before it is released.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
Becvause it's embedded, so each manufacturer has a different way of doing things that they feel is "better". It's why there's no standard for network cards - Intel, Broadcom, Marvell and the like all have differing ideas on how to do things that they feel will give them the edge.
Compatibility itself was never a consideration for embedded - at best you had source code compatibility, and some SoCs maintained memory maps for next-gen chips (so developers of previous-gen chips can reuse stuff like drivers). Intel's StrongARM and PXA25x chips come to mind (and Marvell has continued, which results in oddball placement of registers in the memory map these days, and things like "compatible small memory" and "large memory" maps when things have to be moved around).
And in embedded systems, since the OS and applications (even if they run Linux) tend to be heavily customized anyways, the real need for cross-SoC compatibility is pretty minimal. The customer says they want an Samsung processor in their device (because they have a good deal with Samsung, for example), you use a Samsung processor. Next guy wants a Marvell one, you use Marvell. Third guy wants Freescale, etc.
There's just very little reason to do it. Consider the modern PC. Consider that it won't boot if you don't have an archaic PCI bus and legacy peripherals. Consider that well before the 4GB memory limit was hit, the 4GB addressing limit was really hampering the OS due to the fact so many memory address spaces are "reserved" for peripherals that may or may not be there.
There is a lot of waste in the PC from a hardware/software standpoint all in the name of conforming to this "standard way of doing it" that dates back 30 years. I doubt you want this in your cell phone.
ARM has been able to evolve significantly due to this level of flexibility. The AMBA system bus itself has almost kept pace with the rate of CPU speed increases. Not only that but a lot of SoC vendors use their own proprietary bus architecture depending on the application. A company named Sonics provides packet-style memory access IP for SoC vendors that allows highly efficient memory bandwidth sharing amongst multiple heterogeneous cores. You'll never see this in a PC.
But to make things clear, x86 is a bad architecture
Isn't it odd how the Mac platform jumps from CPU to CPU and somehow ended up on x86. If we could get the PC to jump just once, we'd be so much better off (and the Mac would be kinda screwed).
I'm not going to say that it was good; because it was "built right down to price" back when good hardware cost a lot more than it does today; but the Geode's virtualized hardware was actually rather clever.
It's a sordid tale going back to the Cyrix MediaGX(a cost and heat-optimized cutdown of the already cheap-seats Cyrix 6x86 line). The MediaGX creatively abused x86 System Management Mode to emulate the presence of a hardware VGA and sound card that did not actually exist. Working in concert with a specially modified BIOS, the chip would drop into SMM whenever the VGA or sound hardware was supposed to be active, do the job on the CPU, and then pop back into normal execution mode. The fake VGA also used system memory rather than dedicated video RAM, just to keep things even cheaper.
You have to admire the pluck and creativity of this approach; but not the performance it resulted in.
When Cyrix was sold to National Semiconductor(their designs went to Nat Semi, their trademarks to VIA), the MediaGX became the National Semiconductor GeodeGXm. Traces of the MediaGX design persisted through the GXLV and GX1. The GX2 might have been a clean break.
Then AMD took over. They issued the GeodeGX and GeodeLX, both of which were direct descendants of the National Semiconductor designs, though the LX was speed boosted a fair bit. Because this was insufficiently confusing, the GeodeNX appeared, which was derived from the Athlon XP-M. To complete the confusion, the GeodeNX 2001 was, in fact, just an Athlon 2200+ with a different label.
Is Android OSS enough for you? People seem to like its user interface.
Since I'm currently running Ångström linux on a brilliant cortex A8 machine (the pandora) - and yes, it runs chrome and ff3.6 no problem and has 3d drivers that make Quake 3 perform really well - I can't believe that these 'challenges' are going to be insurmountable.
Nah, if it's truly a better platform then Apple will jump again. They've spent quite a bit of effort / time / money in the processes needed for this type of switch and performed very well in their previous jump. If anything Microsoft will have a far harder time doing this because of the backwards compatibility needs.
I wonder if Apple patented any of the central ideas needed for this when they did Rosetta. It's pretty transparent the way it works under OS X -- I'm using Tiger (soon to be upgraded) and there are several PPC processes running right now.
There seems to be a very common notion that the study and implementation of usability is for wimps and people who should have kept out of science, real nerds/geeks don't need no stinkin' GUI, user testing is boring and expensive, you see where this is going. And the really sad thing is that managers don't care much either, as long as the result is below their personal pain threshold. So we end up with interfaces which are barely usable to computer literates, and thus unusable to anyone with less experience. This has nothing to do with OSS, it's an industry thing.
But how soon can i buy these laptops?
It's all well and good talking about it and showing prototypes, but i want to buy one of these ARM based laptops... The only ARM based laptops i see for sale right now are older models, usually running windows ce with very little memory or storage and pitiful battery life (usually because of a tiny battery rather than inefficient design)...
I have an EEE901 right now, 2gb ram, solid state 20gb drive, 9" screen... something with similar power to this, but significantly better battery life and perhaps a little thinner/lighter would suit me just fine.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Anyone who's seen an iPhone and an Android phone side-by-side will tell you that the Android interface, while okay, pales beside the iPhone. The latter is just far cleaner and smoother. The touch interface is more responsive. The browser works better. It's just a far better experience. Of course, the iPhone has a ton of other problems (not the least of which is Jobs' intention to keep the software ecosystem a walled garden), but as a general rule (save for a few places, like the alerts system), the UI is not one of them.
Besides which, Android, while its source is open, is not what I would call an open source project. It's developed primarily by a single company paying their developers to build Android full time. And yet it's still behind iOS in terms of usability.
A number of airlines actually do have limited in-flight power in economy these days, such as Delta and Continental. A good website for finding out which airlines have this feature on which equipment is SeatGuru.
Just to amplify that, there is no acid test for when a gui is a good gui. In addition, what's a good gui for a novice is not necessarily a good gui for an experienced person. The only way to get a good gui is to do user testing, and not just any group of users will do. So a company either whacks together something an engineer thought was a good gui, or relies on a gui guru who knows how past guis work so the next one must be just like the others.
Add to those problems that a good gui can easily take over 50% of your development time. And it won't really work unless the underlying system it is abstracting is already there. So you can spend more time doing a Potemkin village for your gui developers so they aren't waiting for the underlying system developers to finish. But now you have the problem of combining the underlying system with the gui using more time. The consequence is the system gets drawn up first, and now it is time to draw up the gui. But Sales is climbing on your back saying they need it yesterday because they've already sold one. So system developing starts up before the gui gets drawn up. By the time the gui is being developed, time is already short and so anything that half-way works get shoved out the door.
While this may be true on older Android phones, I've just had the opportunity to use a HTC Incredible side by side with an iPhone 4.
There is no difference in UI responsiveness.
The browser on Android is at least on par with the one on the iPhone. The screen flipping is clearly faster on the Incredible, and the iPhone's multitasking is no match vs Android. I'd be hard pressed to find things where the iPhone offers a "better experience".
Of course that's just my personal experience as of yesterday. Best go and see for yourself.
The issue is that the SoCs have different internal components for which there is no standardized interface. The SoC is a complete system, but the definition of what a 'complete system' is depends entirely on the feature set -- the feature sets vary from manufacturer to manufacturer and even chip to chip for a single manufacturer as the SoC solutions are tailored for specific applications, the memory maps change based on what features are available which are in a lot of cases just 'cut and pastes' of system components on the chip.
Some SoCs have real time clocks built in, some don't but provide external connections, some SoCs have not only a full ARM processor but also a dedicated DSP chip (TI OMAP-L137). The ethernet device for a SoC varies from mfg to mfg because it's their own device on die.
Most of this never becomes a problem for end-users of embedded systems as any system producer that utilizes SoCs will have to build a custom u-boot that kickstarts the chip and starts the components in the correct order, then you need Linux kernel drivers for each of the features.. It's a pain in the butt if you're a company developing a custom SoC based product (I work for one and had to do u-boot and kernel porting for two ARM chips now, and it's not fun)
The awesome fall-out of this is that u-boot essentially replaces BIOS, so there's no need to plumb for what devices are part of your system, so you can get insane boot times (1 second from power up to login prompt) if you do it right.
People like choice. There is room in the market for iOS, Android, Blackberry, Symbian, and the list goes on. I'm not even sure what point you are trying to make.
Then go re-read my post, as clearly your reading comprehension is failing you.
I stated that OSS projects build shitty UIs.
The responder said "Hey look, Android is awesome and it's OSS."
I responded with "And yet the UI pales compared to a closed-source project like iOS, and it's still a single company driving development, unlike your average OSS project, so it's not even that good an example."
Do you get it now? Do I need to use smaller words?
This is just pure FUD.
No it's not. I invoked no fear, created no uncertainty, nor implied any doubt.
Aside from the kernel (which has fuck-all to do with the UI), does android have a large community of volunteer developers? No. It's no different than, say, Java: virtually all development is done by a single, commercial organization, that then releases their work for free. That's extremely commendable, and I would never claim it's a problem. But it does mean that most of the development is being done by a focused group of paid developers, directed by a company with a unified vision, and that makes it *very very different* from a traditional OSS project like, say, Gnome or KDE. As such, Android can achieve, in the UI, what a typical OSS project seems incapable of.
Now, please, Android-fanboy, leave me alone. This discussion was never meant to be focused on Android versus iOS, it was simply an example, and one I didn't even bring up. It's a broader discussion about the drawbacks of the open source software development model, *specifically in the area of UI development*. If you can't handle that, move on, I have better things to do than deal with the hate-on you have for Apple and the woody you get from Android.
I responded with "And yet the UI pales compared to a closed-source project like iOS, and it's still a single company driving development, unlike your average OSS project, so it's not even that good an example."
Do you get it now? Do I need to use smaller words?
Why use small words when I can sum up my thoughts in 2 letters? Here they are:
bs
This is just pure FUD.
No it's not. I invoked no fear, created no uncertainty, nor implied any doubt.
Yawn. You said Android isn't an open source project. It is. Look up the word uncertainty.
Aside from the kernel (which has fuck-all to do with the UI), does android have a large community of volunteer developers?
Unbelievable. Yeah, aside from that kernel that has been continuously developed and refined for almost 2 decades and has had billions of dollars pumped into it, Android is just pure Google. I'm sure it took much more effort to come up with the DalvikVM and bionic than that one little kernel. It's just out of the kindness of their hearts that they decided to go with Linux rather than just whip up their own in their spare time.
No. It's no different than, say, Java: virtually all development is done by a single, commercial organization, that then releases their work for free.
See my previous statement.
Now, please, Android-fanboy, leave me alone.
Wow. Name calling. Your arguments just get better and better.
The soylentnews experiment has been a dismal failure.
That's okay... Neither can the closed-source world.
As a counter-example, I submit MPlayer. And I don't mean the GUI that comes with it (though it doesn't affect the point). With MPlayer, if I want it to go full-screen, I hit "f". If I want to pause, I hit "p". If I want to seek forward, I hit the right-arrow key. If I want to seek backwards, left-arrow key. Mute: "m". Quit: "q". Audio-sync delay: "+" and "-". How dammed simple is that?
With Windows Media Player, Full-screen is "ALT-Enter". Forward-seek is something like right-bracket. Quit needs Alt+F4 or similar. et al.
And sadly, it's not just Microsoft's media player. Just about all use similarly obtuse keys for their functions. And don't get me started on the user-unfriendly implications of media players that support encoding and playback of several codecs and container formats, (eg. MPEG-4 audio/video) but ONLY in specific combinations of codec and container, and NOT in any others (eg. AVI). It makes no sense on either a user-interface or technical level.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant