Specific kinds of system software include operating systems, device drivers, compilers, assemblers, linkers, and utilities. Software libraries that perform generic functions also tend to be regarded as system software, although the dividing line is fuzzy; while a C runtime library is generally agreed to be part of the system, an OpenGL or database library is less obviously so.