According to the Free Software Definition free software must fulfill 4 freedoms:
The freedom to run the program, for any purpose
The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help your neighbour
The freedom to improve the program, and release your improvements to the public, so that the whole community benefits . Access to the source code is a precondition for this.
The Open Source definition is similar, but some licences can qualify as open-source and not as free software. This is usually not an issue, because the majority of open source software out there is free as well.
Despite common belief selling free/open-source software is perfectly legitimate. In fact one can charge as much as he pleases for it. Nevertheless, most free software is distributed for free or for very cheaply on the Internet and other mediums. This is due to the fact that its freely distributable nature does not give way much to sale value, so there usually is no point in attempting to mandate a charge for selling it.
Another common misconception is that it sometimes cannot be modified or customised for internal use. In fact, all free software (but not all open source software), can. Only when you wish to distribute it (free of charge or commercially), you may have to distribute your changes. (depending on the licence) The use of open source software to process proprietary content or be processed by non-free programs is also, always available. Thus, an open-source C compiler can be used to compile the code of proprietary programs like the Oracle Database Server.