well, we have read many definitions of operating systems based on its role.
one, as a "facilitator" for applications development.
two, as a "manager" of hardware, core routines(processes/daemons,and hence software), imposing security/protection of itself and the hardware it manages.
here is one definition where the OS is defined based on its objective. Its from the Project Oberon notes...
"The fundamental objective of an operating system is to present the computer to the user and to the programmer at a certain level of abstraction."
phew!!! this one defines the complexity, role and the objective of an OS. This definition also gives the implementer freedom to design his OS the way he wants to, based on wat level of abstraction he wants to give his "user and programmer". Nice place to start building one!