[General Topics] micksh:
This post is inspired by Nook Color thread here http://xdaforums.com/showthread.php?t=1005633

It's not limited to Nook so I just wanted to share info. It's about people trying to run OS from SD card and having problems, probably generic issue..

This issue is actually very old. I can recall some background. There is not much practical information in my post. Just some theoretical discussion.

I'm writing for somebody who is interested in knowing the root cause of this issue and it's just my observations.

The issue goes back as far as year 2004, when Dell Axim x50 series PDA were released (it's just an example). Remember PDA, or pocket PC? Toshiba, HP, Dell made pocket PCs with VGA screen many years before iPhone with half-VGA screen was introduced.

Anyway, in 2004 there was no issue yet. But then it comes 2005 when Microsoft released Windows Mobile 2005 OS. It introduced swapping memory to flash, the same concept we know from Windows desktop OS for a long time, when OS has a swap file on disk.

Dell (among probably others) released WM5 upgrade for its customers who ran WM2003 SE on Axim X50 series, original shipped OS. What happened was that customers complained about degraded performance (it was a paid upgrade, $20 as I remember).

At that point or a bit earlier in 2005 Axim X51 PDA series were released. They ran WM5 naturally just fine.

The difference was that x51 series had faster flash memory than x50s, particularly in random access performance. Good random read/write speed allowed to run the same OS smoothly.

Then it comes Windows Vista with ReadyBoost that has specific random access requirements:

The device must be capable of 2.5 MB/s read speeds for 4 KB random reads spread uniformly across the entire device, and 1.75 MB/s write speeds for 512 KB random writes spread uniformly across the device.

The requirements were there for a reason.

Then it comes first batches of SSDs based on JMicron JMF602 controller and people reported stuttering issues in Windows, it froze OS for a second or more. It's because JMF602 controller had poor random access speed.

Then it comes Windows Phone 7 OS that could spread OS partition from build-in memory to microSD. People tried to replace microSD and got issues, here:

http://www.engadget.com/2010/11/17/windows-phone-7s-microsd-mess-the-full-story-and-how-nokia-ca/

the big issue is random access performance -- a figure that isn't taken into account in a card's class rating. Ironically, Microsoft discovered in its testing that cards with higher class ratings actually performed worse on Windows Phone 7 because the tweaks card manufacturers make to achieve high sequential throughput can actually hurt random access times.

Then it comes people trying to run custom Android builds from microSD. It will never work well if SD card has poor random access performance.

All these issues have the same root cause.

Good internal flash memory and some Sandisk cards have like 1.0+ MB/s 4k random write speed. Regular consumer (micro)SD cards have like 0.05 MB/s speed. At least 20 times slower by tests, in reality, it's more significant difference. If there is a delay in 100ms as opposed to 0.1ms on normal memory it may render different path in your code.

Partially it's about rare race conditions that are difficult to test. There are like thousands of test cases that needed to be done on decent phones that run OS from internal memory.

It will not become better with Android ROMs as it didn't improve with commercial OS'es. I think, it's just too expensive for developers to take into account slow consumer cards in development process.

That's the way developers write and test their code. Don't blame them because they are too busy implementing real functionality as opposed to testing stuff on crappy consumer SD cards.

You can be genius programmer and be able to write a code that takes care of all possible memory response timings but at some point it just becomes too expensive to support it. Especially if no commercial OS is able to achieve smooth operation on such memory.

SD cards are meant to store your JPEGs and other media files. Running OS from it is a different story, for that more expensive controllers are built, that are found in SSDs.

For now, Sandisk cards seem to be OK, they may work fine (card that I bought was worse than best cards in original thread), but in future next card you buy may not be as good because random access performance was never guarantied.

So it's simple. No good random access speed - no smooth running OS from SD. Random speed is not reflected in SD class rating. Manufacturers have no interest in improving SD card random speed. It may degrade in future as they try to reduce cost.

Post card speed ratings while there are decent cards available.