I think there are several major barriers.
First, users tend to stick with defaults rather than seek out, download, and install alternatives. That's how Microsoft killed Netscape, by pre installing Internet Explorer. Although this barrier isn't impermeable (otherwise iTunes and Chrome couldn't survive) it's a major one. If applications don't get replaced, most people aren't replacing their built-in OS for an alternative.
Two, manufacturers are unlikely to make Linux their pre installed default. Windows is the "safer" choice given the consumer brand recognition, the corporate support from Redmond, and the broad hardware and software compatibility.
Three, offering Linux as an option is unlikely to succeed on a mass market basis without a major marketing push, robust tech support, and either FSF level purity (for a privacy and trust pitch) or compelling value (lower retail price and/or very substantial performance improvements such as those offered by ChromeOS).
Four, technical glitches, sometimes caused by hardware makers refusing to cooperate with the FOSS community, continue to plague Linux, including broken or inferior functionality with Wi-Fi, video cards, touch pads, and sleep / hibernate. This can lead a newbie, even one trying a more mainstream distro like Ubuntu, Mint, Fedora, or PCLinuxOS, to give up in frustration.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.