Execution contexts can be of two types: thread/process context OR an Interrupt context. What this means is that to execute code, one has to be in a thread context or a an Interrupt context. OS code or any code for that matter has no context. It is the execution stream that has a context. So, whenever we are executing OS code, we are doing so on behalf of one of the two contexts mentioned above.
The behavior of the OS is controlled by user requests via system calls, by interrupt requests and by the policy and mechanisms put in place to manage resources, provide protection, etc.

1 User has rated as useful.
Login to rate this answer.
Yes, it is executed by the hardware like any other program. It controls itself.
This is why you have the concept of a kernel, which would be the smallest possible piece of the operating system that generally has to be running before anything else -- with the exception of the boot loader which boots up the machine from a powered-down state, and among various clean-up duties, its only job is to load and execute the kernel.
Login to rate this answer.