According to Etymonline.com
kernel
O.E. cyrnel, from P.Gmc. *kurnilo- (cf. M.H.G. kornel, M.Du. cornel), from the root of corn "seed, grain" (see corn) + -el, dim. suffix. Figurative sense of "core or central part of anything" is from 1550s.
and
core (n.)
late 14c., probably from O.Fr. coeur "core of fruit, heart of lettuce," lit. "heart," from L. cor "heart," from PIE base *kerd- "heart" (see heart).
So, to get to the heart of the matter here, the core meaning of kernel is that it is a "core" of something, and "core" comes from a word meaning "heart" — which is another way of referring to the center of something. Nevertheless, kernel apparently has its origins in grain, while core was used first with fruit. Either way, there is no clear distinction to draw between the two except in IT, where core has come to refer to a discrete CPU within a larger CPU cluster, and kernel has come to refer to that irreducible piece of core software that comprises an operating system, without which it could not operate.