System programming

System programming

Systems programming (or system programming) is the activity of programming system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user (e.g. word processor), whereas systems programming aims to produce software which provides services to the computer hardware (e.g. disk defragmenter). It also requires a greater degree of hardware awareness.

Overview

In system programming more specifically:
* the programmer will make assumptions about the hardware and other properties of the system that the program runs on, and will often exploit those properties (for example by using an algorithm that is known to be efficient when used with specific hardware)
* usually a low-level programming language or programming language dialect is used that:
** can operate in resource-constrained environments
** is very efficient and has little runtime overhead
** has a small runtime library, or none at all
** allows for direct and "raw" control over memory access and control flow
** lets the programmer write parts of the program directly in assembly language
* debugging can be difficult if it is not possible to run the program in a debugger due to resource constraints. Running the program in a simulated environment can be used to reduce this problem.

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.

Implementing certain parts in operating system and networking requires systems programming (for example implementing Paging (Virtual Memory) or a device driver for an operating system).

History

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 by the growth of UNIX, became ubiquitous in the 1980s. More recently Embedded C++ has seen some use, for instance in the I/O Kit drivers of Mac OS X.

Alternate Usage

For historical reasons, some organizations use the term "systems programmer" to describe a job function which would be more accurately termed systems administrator. This is particularly true in organizations whose computer resources have historically been dominated by mainframes, although the term is even used to describe job functions which do not involve mainframes.

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • system programming — sisteminis programavimas statusas T sritis automatika atitikmenys: angl. system programming vok. Systemprogrammierung, f rus. системное программирование, n pranc. programmation système, f …   Automatikos terminų žodynas

  • system programming — sisteminis programavimas statusas T sritis informatika apibrėžtis Programavimas, kurio pagrindinis uždavinys – kompiuterių ↑sisteminės programinės įrangos kūrimas. Sudėtingesnis už taikomosios programinės įrangos programavimą, kadangi sisteminė… …   Enciklopedinis kompiuterijos žodynas

  • System programming language — System programming languages (otherwise known as applications languages) are programming languages that are statically typed, allow arbitrarily complex data structures, compiled, and meant to operate largely independently of other programs.… …   Wikipedia

  • In-System Programming — (abbreviated ISP) is the ability of some programmable logic devices, microcontrollers, and other programmable electronic chips to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to… …   Wikipedia

  • In-System Programming — Programmation in situ La programmation in situ (In System Programming ou ISP) est une fonctionnalité qui permet aux composants électroniques (microcontôleurs en particulier) d être programmés ou reprogrammés alors qu ils sont déjà en place dans… …   Wikipédia en Français

  • In-system programming — Programmation in situ La programmation in situ (In System Programming ou ISP) est une fonctionnalité qui permet aux composants électroniques (microcontôleurs en particulier) d être programmés ou reprogrammés alors qu ils sont déjà en place dans… …   Wikipédia en Français

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Programming paradigm — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concu …   Wikipedia

  • System Management Mode — (SMM) is an operating mode first released with the Intel 386SL and available in later microprocessors in the x86 architecture, in which all normal execution (including the operating system) is suspended, and special separate software (usually… …   Wikipedia

  • system program — system programmer. system programming. Computers. a program, as an operating system, compiler, or utility program, that controls some aspect of the operation of a computer (opposed to application program). Also, systems program. * * * …   Universalium

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”