The modular kernel approach is similar to the layered kernel approach in both allow subsystems to communicate with each other through narrower constructed interfaces.
However, if one imagines the kernel approach as a ball surrounded by a larger, shielding, ball, and layering as a multitude of protective membranes, the differences become apparent.
The layered kernel does not permit lower-order subsystems to interact with higher-order subsystems, whereas with the modular kernel, all sub-systems are able to communicate with each other at all times.
The advantage of the layered kernel method is that it makes systems easier to debug, as any bugs are limited to one particular layer of the system, rather than any possible part of the system, as is the case with the modular kernel. This also makes the layered system easier to modify.
In addition, the layered kernel is easier to design and test, due to the separation of mechanism and policy. The modular kernel is more unwieldy in this regard, but does possess executable format filing.
If this sounds complicated, don't worry, there's help available on YouTube, with video tutorials explaining systems operations in more details, such as this one: