Services at lower level provides more specific functionality down to fundamental utility services such as
I/O services, transaction, scheduling, security services, etc.
Middle layers provide more domain dependent functions such as
Business logic, core processing, etc.
Upper layers provide more abstract functionality in the form of user interfaces such as
Command line interpreter, GUI, Shell programming
Plus Point:
Any changes to a specific layer may affect only its adjacent upper layers.
So, no ripple effects of change