System programming

As a systems programming is known to create software components that are part of the operating system or the need to communicate as closely as possible with the operating system or with the underlying hardware.

System-related software serves as an abstraction layer between an application and the operating system. This layer facilitates access to the operating system functions very simply held. For performance and security reasons, access to the operating system to the bare essentials is limited. The programmer has to take care (eg using semaphores or shared memory ) and interprocess communication itself to synchronization. The programming at the operating system level is thus cumbersome and error -prone.

In contrast, application developers prefer interfaces that are fast to use, fault tolerant and easy. That is, for the application programmer is the functionality in the foreground, while a system programmer must take into account aspects such as efficiency and robustness especially. All high-level languages ​​encapsulate the functions of system programming, which enables an effective application programming with a high level of abstraction, however, is not effective in the field of low-level programming.

Another example of system-related applications are database management systems. Databases need very fast access to hardware resources. The detour on the development APIs is not only an additional cost. Such APIs are also unsuitable for the needs of specific applications. Implementations of databases, therefore, preferable even to communicate directly with the system.

System programming is often carried out in relatively minimalist languages ​​such as C or even assembler. The other extensive high-level languages ​​such as C or Pascal often lead to large and inefficient programs that are unsuitable for systems programming. Exceptions include some embedded systems that can be programmed directly in Java. Although C is itself a high-level language, but it offers the possibility to include assembler instructions about inline assembler directly into the high-level language program and, for example, to query variables directly with their symbolic names that need to be passed otherwise cumbersome on the stack.

  • Programming
  • Operating system
758603
de