Operating systems come with cultures as much as codebases. I was forcibly reminded of this fact over the holidays when several family members and neighbors press-ganged me into troubleshooting their Windows computers. Although none of us had any formal computer training, and I know almost nothing about Windows, I was able to solve problems that baffled the others -- not because of any technical brilliance, but because the free software culture in which I spend my days made me better able to cope.

The origins of these cultures are more or less obvious. Windows and other proprietary software are the products of a commercial software market. In this culture, information flows mainly in one direction -- from the manufacturer -- and companies' obsession with so-called intellectual property and vendor lock-in encourages them to force users into the role of unquestioning consumers.

True, end-users are unlikely to be interested themselves in the freedoms to study or improve the program. But the availability of these freedoms for developers conditions everybody's expectations. Moreover, the freedoms to run and redistribute programs relieve everyone of some of the more unwelcome aspects of proprietary culture. At any rate, together these sources create a more active, more demanding set of users than is found in proprietary software.

Unsurprisingly, these differences in origins lead to entirely different sets of expectations. Exceptions do occur, of course, and, the more expertise users have, the less pronounced the differences are. Moreover, free software like FireFox and OpenOffice.org are becoming more commonplace on proprietary platforms. And, similarly proprietary culture is seeping into free software as it becomes big business.

Still, for the most part, you can expect free software users to differ from proprietary in a number of fundamental ways. Furthermore, whether you are aware of these differences can have considerable impact in your success when marketing or developing software.

1) Free software users expect open licenses and no activation methods

Proprietary vendors like Adobe and Xara who have experimented with GNU/Linux versions of the software usually conclude that free software users will not buy commercial software. However, as companies such as Mandriva and Red Hat have proved, such conclusions are more of a failure to conceive of alternative business methods than an observation of reality. If nothing else, business users will often buy commercially in order to have the comfort of a traditional relationship with a vendor.

However, given any sort of chance, free software users do reject proprietary licenses or activation methods that restrict their freedom to copy and redistribute software. Some may endure proprietary licenses if comparable functionality is unavailable elsewhere. Others may accept a proprietary license for non-essential software like games. But, at the first sign of an alternative, they will abandon a proprietary product. And many, of course, will not even accept these temporary compromises.

If you want to sell to the free software community, forget about making money on the software and see what services you can develop around the software. Or do you think it's an accident that file-sharing and free culture have roots in the free software community?

2) Free software users expect regular upgrades and patches

Free operating systems are set up for instant gratification. You want a piece of software? Switch to the root account, and in five minutes you have it installed and ready to use without rebooting.

This daily functionality results in the same high expectations for upgrades and patches. In free software, upgrades and patches are not a once yearly event complete with beta versions and release candidates. They are closer to a daily occurrence. Project maintainers take this responsibility so seriously that many have been known to take personal time from work in order to get a bug or security patch out as quickly as possible.