OK , thanks for all the information!

Hopefully I'll catch on to Linux administration , eventually.
I've been reading
The Linux Programming Interface by Michael Kerrisk and from what I understand most versions of Linux adhere to a certain standard ( a general set of API calls and system standard limits , etc ) so I would have guessed software could be moved from version to version of the operating system. What accounts for the applications not being portable ( small changes in the operating system itself ? ) ? Thanks for any information!