I've been so pained to get all this out- especially now that we stand at the beginning of a next generation of consoles...
Linux is starting to win support for games. The traditional argument has been Linux will never earn support due to the small user base- but why does it take any work to port something to Linux at all? In fact, most of the time the Linux community works hard to port what is out there already, just look at WINE.
At their heart, consoles are computers. The games are made on computers using code that can be run on the console. It could be C,C++,or C#. In any case, games aren't made when a programmer hooks up his/her keyboard to a Playstation and starts typing in code. It is something peculiar about the console that makes the code written on the computer unable to work on any normal PC, whether you run Windows, Linux, or OS X. The hardware in the console, the GPU itself supports a certain framework for the code. The framework is a proprietary one, you aren't allowed to have it anywhere but that console. It demands certain things, and doesn't allow others.
Why would it do this? Well, Microsoft wants you to use their DirectX and Direct3D technology, they want you to pay for the development tools. Well, you don't pay for them- the developer does, but you can be sure as hell this is running up the cost of game development and therefore placed on your lap eventually. Nintendo might not force you to use DirectX, but they're just as guilty for their incompatible development framework, the last thing they want you to do is be able to play a game on an emulator. Regardless of how unique Nintendo states their innovative hardware makes gameplay, how much they state using a tablet controller is the best way to play their games, they are endlessly terrified that people will prefer to get a mouse and keyboard and play Super Mario Wii U on an emulator.
This is absolute madness. Making it so all games can be cross platform does not diminish competition. It simply moves the console debate from which console has the best games to which console plays the game best. Boasting that exclusives make a console is childish and needs to stop. The underlying context is, this game is better because other people without the console I have can't play it. Consoles should be defined by what they have, and how well they work with what they have, not on what others don't have.
The solution is support for open standards. Dump DirectX and Direct3D, go to OpenGL and SDL, or any other open API. A game console, even if supporting these standards, is bound to have certain peculiarities that require porting, so not every game is going to be playable on all consoles. But it means every game can potentially be played on any console, with less effort in the porting.
I love diversity in our console market, and console wars can be good if it means competition, but current console wars don't seek to compete, they seek to monopolize. It does not benefit Nintendo, Microsoft or Sony to continue these practices- they are under the old assumption that for them to succeed, the other must fail. Apple succeeded when it realized it didn't need to beat Microsoft, it just needed to be great at being Apple. Linux might never get dominance on the desktop, but it has acknowledged this and chosen to remain a great platform for smartphones and servers. Should every company specialize only on an area entirely unique to it? Once again, no, competition is always good, but these companies need to realize that without some cooperation towards open standards, competition leads to the ruin of the loser.
I would say this is inevitably what must happen, given the history that shows a favor of standards that encourage cooperation, while preserving healthy competition. Microsoft's word format moved to the more open and compatible .docx format, because they wanted other services such as Google to support theirs. Oracle worked towards making Java and open source language, when they saw it was either that, or lose out to more open platforms. However, if consoles still have not shown any progress towards this, it may be indicative of a deeper problem preventing this from ever happening. Perhaps our best hope is brute force- bring the open development standards of the PC to the console space. If they won't adapt amongst themselves, introduce a new player in the game that will force them to.
I have high hopes for the new line of PC-console hybrids, such as the SteamBox to get the console makers to realize the madness of the current state of their industry.