An operating system communicates with hardware parts such as processors, registers, memory, etc. and at the same time can host and communicate with multiple software components such as application programs and system programs. Hence, OS shares characteristics with both hardware components.