2.6.35 simply relate to the kernel version, but it sounds that 28 is added by canonical, what does that means? What kind of changes occurs between 27 and 28?
The "28" from your example is added by Canonical's Ubuntu Kernel Team, as a way to track the version of the Application Binary Interface (ABI). When a kernel update requires that internal structures change, modules will no longer run correctly and must be recompiled. This is true for both Ubuntu kernel modules in other packages, and for third party modules.
Note that even though it's the 4th number in a set of numbers near the kernel version, it does not have anything to do with the "bug fix" serial number used by the upstream version. To see which "bug fix" serial number a given Ubuntu kernel is based on, see the contents of
In this case, it is upstream's 18.104.22.168 kernel, with Ubuntu patches. It is the Ubuntu kernel's 30th ABI revision, and 59th upload of the 2.6.32-based upstream kernel.
To see the changes between kernel (or any) package versions, see