I'm not an expert by any stretch of the imagination, but this is what I've gathered over the years.
1: Executables are generally in the ELF format, and don't regularly get an extension. If you run 'file /usr/bin/<program_name>', chances are that's what it will be reported as.
2: Some people might complain about having them compared to DLLs, but Linux does use shared libraries that provide essentially the same function. Most of them will have an .so extension, which, I believe, specifies libraries for the C program language (but I may be wrong on that point). They're generally stored in /usr/lib and related directories.
3: Certainly Linux has an API. Probably several. Are there any systems that don't? But I have no personal knowledge of what it entails. I can only say that the internals of Linux appear to be much cleaner, and are certainly better documented, than Windows.
I'm sure someone will come along and give more detail presently, and correct me if I'm wrong.