operating system structure