Is my understanding of kernels correct?
Right as far as it goes, but the differences aren't that clear cut. E.g. in Linux (quite monolithic) you'll find FUSE (Filesystems in USErspace). In Unix (monolithic) the graphics system is X, and that one (while userspace) is (or was) granted direct access to interrupts and I/O under Linux at least. It is quite common to have IPC in userspace, while in Windows (was once a microkernel, now a strange hybrid) it is completely part of the sort-of microkernel.

Just for laughs, a while back the "monolithic" Linux kernel was smaller than the Mach "microkernel" alone...