I’ve only been using Linux seriously for the last couple of years.
The way I see it, Linux is a kernel AND drivers, GNU is code that can be compiled to build a toolset used to daily-drive the kernel and a distribution is a assembly of kernel, drivers, tools and software (apps).
I’m sure that’s wrong but it makes sense to me.