what is layered approach design?what are its main advantage and disadvantage ?

It's a Os design techniques in which OS is broken up into a number of layers (or levels),each built on top of lower layers.The bottom layer is the hardware; the highest layer is the user interface. The main advantage is that ayers are selected such that each uses funtions or operations and services of only lower-level layers.the first layer can be debugged without any concern for the rest of the system.If any errror is found during the debugging of a particular layer,the error must be on that layer ,because the layers below it are already debugged. The disadvantage involves the careful definition of the layers, because a layer can use only those layers below it.For example ,the device driver for the disk space used by virtual-memory algorithms must be at a level lower than that of the memory -management routines,because memory management requires the ability to use the disk spaces.