Batch Processing | Save time for loading the programs and reconfiguring the system each run. Machines were rented and cost of usage was very high. | GM-NAA I/O (1956) |
Resident Subroutines (System Calls) | Save programmers times by reusing code dealing with basic tasks (I/O for example) | GM-NAA I/O (1956) |
Producing Memory Dump For Debugging | Provide programmers with meaningful information in regard to program failure reason. | GM-NAA I/O (1956) |
Multiprogramming | Switch between long I/O operation to facilitate computing power more efficiently | Atlas supervisor (1961) |
Traps | | Atlas supervisor (1961) |
Virtual memory | Save programmers time dealing with secondary storage and managing program overlays. | Atlas supervisor (1961) |
Time Sharing | Provide multi-user access to machine | Compatible Time-Sharing System (CTSS), IBM 709, MIT, Fernando J. Corbato (1961) |
Stack Commands | | Burroughs Large Systems B500 (1961) |
Dynamic Linking | | Multics, GE-645 (1969) |
Hierarchical File System | | Multics, GE-645 (1969) |
Shell Process | | Multics, GE-645 (1969) |
Ring Oriented Security | | Multics, GE-645 (1969) |
Portability, C language | | UNIX Bell Labs PDP-7 (1971) |