System programming

Missing image
Merge_articles.png


It has been proposed that this article or section be merged with system software.

This request may be discussed on the article's talk page.

Systems programming (or system programming) is the activity of programming system software. The primary distinctive characteristic of systems programming when compared to application programming is that systems programming requires a greater degree of hardware awareness. More specifically:

Systems programming is sufficiently different from application programming that programmers tend to specialize in one or the other.

In system programming, often limited programming facilities are available. The use of automatic garbage collection is not common and debugging is sometimes hard to do. The runtime library, if available at all, is usually far less powerful, and does less error checking. Because of those limitations, monitoring and logging are often used; operating systems may have extremely elaborate logging subsystems.

Originally systems programmers invariably wrote in assembly language. Experiments with hardware support in high-level languages in the late 1960s led to such languages as BLISS and BCPL, but C, helped along by the growth of UNIX, became ubiquitous in the 1980s. More recently C++ has seen some use, for instance in the IOKit drivers of Mac OS X.

See also: System programming, 1960s, 1980s, Application programming, Assembly language, BCPL, BLISS programming language, C Plus Plus, C programming language