It seems to be a very famous question : how can free software developers make money to live. They spend a lot of time and effort on something that they'll never sell..
This is the main dilemma between proprietary software and free software. The problem was dealt in the REVOLUTION OS documentary that we previously recommended to watch. Actually, the documentary stated the Bill Gates's open letter where he critics amateur developers and he wonders how can a professional work -as coding complexed piece of software- be free! He stated that this kind of work will lack quality and good technical support.
Time goes and days have proved that Gates was wrong!
I don't want to compare MS products to OpenSource products because Windows is enough to prove that Bill Gates was wrong but let's discuss the money part ...
First of all Open Source developers are development lovers. Nobody forced them to code for free.. They're just looking for the honor of contributing on the Open Source community and of course they're trying to satisfy their need by coding a good piece of software. An Open Source developer is an unsatisfied user so he try to fix the code to satisfy his needs and share it with the community.
In addition, they could be paid in many other ways. For example through paid technical support. Which is The " Cygnus " firm case. It was the first firm that made a respectable revenue from selling technical support. How does it get costumers ? Some firms won't just wait an answer in a forum to know how to install Linux on their servers.It will recruit professional Linux users to install it on its device and assume the responsibility if anything gets wrong..
There another way of monetization. It's called paid documentation. If we make a web tour we will find many paid ebooks about Linux hacks and written by some linux experts.
We have also to mention that we have to be careful and not to mix the Free software concept and the free of charge meaning because Free software can be sold and bought and there are many paid linux distributions as RedHat and OpenSuse... So we have to stop mixing the term of "Free software" to "poor developers" because being a Linux savvy and an Open Source developer is very important on the professional scale and it will allow you get an important job someday!
Now I want you to read this interview with Linus Trovalds made by "First-Monday" and these are some quotes of what Linus said about what motivates an Open Source developers to code for free. ( From First-Monday)