The Internet is full of free software that is normally distributed in source form. That can
be a problem in itself: the way from the source archive that you get free from the Internet
to the finished, installed, running program on your machine—normally called porting—
can be a long and frustrating one. See my book Porting UNIX Software for more details
of the porting process.