You have asked some very poignant questions about the very essence of open source software and about nature of Linux distributions. I'll try to briefly address each of your questions.
First let me express a concern. I hope that this isn't a homework assignment. The questions sound a bit like homework. Asking people to do homework without clearly stating that it is homework is a violation of the LQ rules.
Quote:
Originally Posted by JimHughen
When I write an application and distribute it, I believe that a binary for this new application is only for ONE type of Linux implementation.
|
So, as you say at the bottom of your post, implementation is intended to mean the hardware platform. We refer to this as the architecture. Applications that are compiled into binaries are restricted to the hardware platform, or architecture, for which the binaries were compiled. This is also true of Windows and every other operating system. On the other hand if you create an application from interpreted scripts then these should run unchanged on different architectures. Scripts can be written in any of several languages including but not limited to bash, csh, tcsh, Python, and Perl. The code from these languages is 'compiled' at run time one line at a time. Each line is executed as soon as it is compiled, then the shell reads and compiles and executes the next line in the script.
Quote:
Originally Posted by JimHughen
It is possible to build various binary versions for various implementations. That seems to complicate the release and distribution process.
|
This is the way of the computer world. There are emulators that attempt to create the illusion of a hardware platform so that you can run, for example, software written for Atari computers on a new Intel based computer. However software developers generally release a separate version of their product for each architecture that they want to see their product run on.
Quote:
Originally Posted by JimHughen
Are Linux applications distributed with source so that users can build a version for their own particular implementation?
|
Google the phrase "open source". There is a mountain of information about the intended goals of the open source software movement.
In general the typical end user will not have the skills to read source code, much less to customize it.
Quote:
Originally Posted by JimHughen
If a Linux applications is distributed closed source, how do various different implementations get the correct binary?
|
The answer here is the same as how the end user gets the correct version of Linux for their architecture. When you visit a Linux mirror site you will see a separate installation kit for each of the supported architectures.
Quote:
Originally Posted by JimHughen
What are the usual considerations about this?
|
The only considerations are in cases that a given hardware platform will run several different binary versions of the product. For example, in Linux you will see installation kits intended to run on 32 bit Intel CPUs and other installation kits intended to run on 64 bit Intel CPUs. The 32 bit installation will work on a 64 bit machine so the end user has to decide which installation kit to use.