I'll answer the specifics of the .bin format, check the Wiki for broader info about the Kindle OS (basically, it's a bare Linux OS with a java framework on top).
The .bin files are files used by Amazon's update system. They're essentially just a scrambled tarball with a control file. That control file will tell the update system which files are a script, the updater will then run each of these script in alphabetical order. Official updates use these to apply delta binary patches, update the kernel, add new files, remove old files, & co. We use them to inject new stuff in the rootfs, which is temporarily mounted rw during the course of the update process

.
With the K4, Amazon introduced an update to the header of this .bin format. The most interesting part of this update was the ability to target multiples devices with a single .bin file. The older format only supported *one* device code, that's why we had to have a .bin for each Kindle model, even if the content of the tarball was identical. (And this device code is one of the first things checked by the Kindle, we can't spoof it [in the .bin file, I mean, we could theoretically NOP this check on the Kindle side], if a device doesn't find its device code in the update file header, the 'Update Your Kindle' link won't be enabled).
Check
this specific part of the Wiki for more info about the tools we use (and used) to play with this file format

.