@MarioJP: The major reason why Linux has such a small desktop market share is simply because "Content is King". There is a lot of good software for Linux but there is also a lot missing. If I could play all DirectX games, use all Adobe and Autodesk products on Linux and all drivers were as smooth and well optimized as under Windows I would throw that freaking thing from my computer and switch to Linux long time ago.
But I think that more and more software will be available for Linux eventually and I think we will live to see better hardware support as well. I'm not sure though whether this is the right forum to discuss the details.
I'm not going to deny that Linux has a steep learning curve if you really want to learn the inner works of that operating system. It is not as messed up as Windows but there is a jungle of packages that are anything but intuitive to understand. Also the window managers such as Gnome, KDE et al are good at managing windows but when it comes to adjusting hardware settings and understanding the inner workings of Linux they indeed leave one h3ll of a lot to wish for.
If there is any operating system to look up to it should actually be AmigaOS. Within AmigaOS there is something called intuition. This basically means that even the innards of the operating system was designed so that they should be easy to understand at a first glance without having to read the manual. It has a very clear directory structure and files have very clear and descriptive names. Libraries are stored in Libs:, device drivers in Devs:, command line executable in C:, startup scripts in S: (that are most commonly located in SYS:libs, SYS:devs, SYS:c, SYS:s,..) and so on. For example a library that contains routines for handling jpegs is called jpeg.library or jfif.library and a device driver for the mouse may be called logitechX100.device and so on. Block devices are not mounted as A:, B: C:, instead you are free to choose any name such as DVD: HD: or Sysdisk: or whatever. The disk that you boot from can always be accessed as SYS:, from its device name: or from its label name:. There are powerful tools to trace problems and it doesn't take long before you become an expert user if you have that aspiration.