There are many different models for the distribution and licensing (et cetera) of a program, but I guess it could be argued that they can be roughly divided into two overall groups; OpenSource and ClosedSource. OpenSource software tends to allow people to peruse and use the source code for the program, ClosedSource software tends not to.
This is a simplistic view of it, but CocoaDev isn’t exactly the place to get into a real discussion of it; there are other forums available for that (though I sure don’t know where they are).