The operating system acts as an interface between the hardware and the programs requesting I/O. It is the most fundamental of all system software programs.
Responsibilities of the OS include:
- Hiding the complexities of hardware from the user.
- Managing between the hardware’s resources which include the processors, memory, data storage and I/O devices.
- Handling “interrupts” generated by the I/O controllers.
- Sharing of I/O between many programs using the CPU.
- Operating systems are designed to provide uniform abstraction across multiple applications: fair sharing of resources
- General purpose OS like Solaris in wizard.cse.nd.edu – Mail, web, samba server, telnet, emacs – Memory fs, afs, ufs … – Fibre channel devices, floppy disks …
- Create multiple virtual machines that each user can control all to themselves – IBM 360/370
- Monolithic kernel: Linux – One kernel provides all services. – New paradigms are harder to implement – May not be optimal for any one application
- Microkernel: Mach – Microkernel provides minimal service – Application servers provide OS functionality
- Nanokernel: OS is implemented as application level libraries