One of the central ideas of this world view is that, by owning the means of production, whether that's machinery, knowledge or anything else, the upper classes are able to exploit the lower; without owning the means of production, workers must 'voluntarily' work for a wage in order to buy all the things needed to survive: shelter, clothes, food and entertainment. They can't really choose to work, and they can never have much of a say over their wages or the distribution of the profits.
One of the most enduring ideas of Marx was his hope that this situation could be fixed, with workers gaining their freedom, in a classless society in which the means of production are held in common.
Since, in the modern world, one of the key means of production is computer software, free software fits in to Marx's system quite nicely. The code is effectively held in common. All are free to read it, to study it, to share it and to rebuild and alter it. As such, it's impossible for workers to be locked in by those above them in the class system, since at any time they can choose to put the means of production, the code, to use for their own ends.
Freedom of thought
Eben Moglen argues for the impact that common ownership of code can have on our society in a keynote speech at the Wizards of OS 3, called "Die gedenken sind frei: free software and the struggle for freedom of thought".
In the speech, he argued that "the perpetuation of ignorance is the perpetuation of slavery" (he really knows how to turn a phrase!). His point is that without knowledge of economics, without knowledge of engineering, of culture and science - all the things that make the world turn - the lower classes can never hope to improve their situation, can never hope to take possession of the means of production.
What free software has done, along with free hardware, free culture and free spectrum, is unleash the means by which freedom of thought, of information, is near, if not already achieved.
Web servers aren't restricted only to those who own the means of production, because the code is free, and so anyone can share any cultural artefact they wish. Maybe it's just a song, but maybe its the means to create a global, decentralised currency, as in Bitcoin, or the plans for all the machines necessary to build your own small town, as in the Global Village Construction Set.
What matters is that all this has been enabled by common ownership of code.
Free software does feel like something that Marx might be able to get behind, then, so you might be surprised to learn that you can make a strong argument that it's a pretty good model for the free market, that thing so loved by capitalists and detested by Marxists and anti-globalisation protesters the world over. Well, maybe not free markets, but at least for one of the driving ideas behind them, spontaneous order.
One of the key ideas of the free market is that, as if guided by some invisible hand, price movements co-ordinate individual efforts in a manner that promotes the public good. As an idea, it's closely associated with Adam Smith and Freidrich von Hayek, who used the term "spontaneous order" to describe this, but it actually originates with David Hume, one of the great philosophers of the Scottish Enlightenment.
Hume believed that in the absence of a central authority, conventions and traditions emerge to minimise and resolve conflicts, and to organise social activities. Unlike Smith and Hayek, however, Hume believed humans have more passions than just profit, and that order and conventions could arise out of love for other things.
How does this relate to free software? Well, it's obvious, isn't it? Free software is an example of spontaneous order, in the way Hume understood it. While there's little profit for many people who work on it, and since it's given away for free, there aren't really any price signals, in free software communities of people freely associate and work together to create software that society as a whole finds valuable.
There are some signals that likely influence what projects developers decide to work on, however. For instance, if the users of a piece of free software find a better equivalent, they'll probably move on. The developers, not wanting to write software that's not going to be used by anyone, may well also look elsewhere for new projects to work on that people will find more useful.
In this way, and without price signals, free software developers actually target their efforts on those areas that will be of most use to the greatest number of people, that is of the greatest good to society as a whole.