Layered Structure: A more complex OS structure implements layers. Each layer uses the services of the layers below it, with the lowest layer (layer 0) interacting directly with the hardware.
Layered operating systems are easier to debug, fix, and therefore implement: each level can be debugged independently of the layers below it.
On the other hand, since the layers must communicate with one another to transfer data and perform services, such communication will incur extra time (also called overhead) besides the actual execution of the function or service.
Microkernel Structure: A microkernel is one that is being removed all non-essential services, which instead are implemented as system applications. This makes the kernel smaller and robust, so, as the OS evolves in the future, no changes are needed in the kernel. However, the frequent system calls create a significant overhead.