Provides an interface between the user or application program and the computer hardware