Major issues in Operating Systems
structure -- how is an operating system organized?
sharing -- how are resources shared among users
naming -- how are resources named (by users or programs)
protection -- how is one user/program protected from another
security -- how to restrict the flow of information
performance -- why is it so slow?
reliability and fault tolerance -- when something goes wrong
extensibility -- how do we add new features?
communication -- how and with whom can we communicate (exchange information)