You get a bonus - 1 coin for daily activity. Now you have 1 coin

System Software and System Programming

Lecture



System software — a set of programs that manage the components of a computer system, such as the processor, main memory, input/output devices, and networking hardware, acting as an «interlayer interface» with hardware on one side and user applications on the other. Unlike application software, system software does not solve specific practical problems; it merely enables other programs to run by providing them with service functions that abstract away the details of the hardware and firmware implementation of the computing system, and it manages the computing system's hardware resources.

System programming — the creation of system software.

System programmer — a programmer who specializes in system programming.

The main distinctive feature of System Software is that it is common to everyone who shares the computer's technical resources. System programs are used by everyone both for developing and creating their own application programs and for organizing the execution of existing programs.

Classifying a given piece of software as system software is a convention and depends on the agreements used in a specific context. As a rule, system software includes operating systems , utilities programming systems , database management systems[⇨], and a broad class of middleware.

System Software and System Programming
The place of system software (highlighted in green) in the multilevel diagram of a computing system

System programming (or systems programming) — a subfield of programming that consists of working on system software.

The term «system» emphasizes the fact that the results of this kind of programming substantially change the properties and capabilities of the computing system. At the same time, it remains indisputable that, to a certain extent, this result occurs with the use of any programs executed on a computing system. Therefore, there is no clear boundary between «system» and «non-system» (application programming") programming.

A computing system has a hierarchical structure that can be represented as a set of nested layers, with application programs on the outermost layer and the computer hardware on the innermost. The conventional degree of system-ness increases with programming that affects ever more internal levels of the system.

System Software and System Programming

The goals of studying the "System Programming" course are: to study the general principles of building and operating system programs, as well as methods of programming in machine-oriented languages. To gain skills in assembly language programming through the example of constructing typical elements of system programs. The course is regarded as an introduction to the study of computational processes at the level of the machine codes of a von Neumann architecture computer.

Purpose of the course: to provide specialized training for computer engineering specialists in the field of developing system software tools and analyzing the interaction of software with computer hardware, and a knowledge base for mastering the specialized courses of the "Computer Engineering" professional field, along with sufficient depth of mastery of the core engineering disciplines across all specializations of the professional field.

System Software and System Programming

Fig. BLOCK DIAGRAM OF AN INTEL MICROPROCESSOR

System Software and System Programming

Fig. BLOCK DIAGRAM OF A PERSONAL COMPUTER

Computer architecture is an abstract representation of a computer that reflects its structure, circuit design, and logical organization. Knowledge and understanding of it (in addition to knowledge of operating systems) is also necessary for mastering system programming skills

The concept of architecture includes:

  • • the computer's block diagram;
  • • the means and methods of accessing the elements of the block diagram;
  • • the organization and bit width of the interfaces;
  • • the set and availability of registers;
  • • the organization and methods of memory addressing;
  • • the methods of representation and data formats;
  • • the set of machine instructions;
  • • the formats of machine instructions;
  • the handling of exceptional situations
  • Operating systems

An operating system — a set of system programs that extends the capabilities of a computing system, manages its resources, loads and executes application programs, and handles interaction with users. In most computing systems, the operating system is the main, most important (and sometimes the only) part of the system software.

Functions of operating systems

Basic functions (of the simplest operating systems):

  • Loading applications into main memory and executing them.
  • Standardized access to peripheral devices (input/output devices).
  • Management of main memory (allocation among processes, virtual memory).
  • Management of access to data on non-volatile storage media (such as hard disks, compact discs, etc.) organized in one file system or another.
  • User interface.
  • Network operations, protocol stack support.

The concept of an operating system

There are two groups of definitions of operating systems: «a collection of programs that manage the hardware» and «a collection of programs that manage other programs». Both have their own precise technical meaning, which, however, becomes clear only upon a more detailed examination of the question of why operating systems are needed at all.

There are applications of computing technology for which operating systems are superfluous. For example, embedded microcomputers are found today in many household appliances, cars (sometimes a dozen in each), cell phones, and so on. Often such a computer continuously runs only a single program that starts up when powered on. And simple game consoles — which are also specialized microcomputers — can do without an operating system, launching upon power-on a program recorded on a «cartridge» or compact disc inserted into the device. Nevertheless, some microcomputers and game consoles still run under their own special operating systems. In most cases, these are UNIX-like systems (the latter being especially true of programmable switching equipment: firewalls, routers).

The basic ideas of operating systems

The predecessors of operating systems should be considered utility programs (loaders and monitors), as well as libraries of frequently used subroutines, which began to be developed with the advent of general-purpose first-generation computers (late 1940s). Utility programs minimized the operator's physical manipulation of the equipment, while libraries made it possible to avoid repeatedly programming the same actions (performing input/output operations, computing mathematical functions, etc.).

In the 1950s—1960s, the basic ideas defining the functional capabilities of operating systems were formed and implemented: batch mode, time-sharing and multitasking, separation of privileges, real time, file structures, and file systems.

Embedded programs : Firmware

Embedded programs, or firmware — are programs «hardwired» into digital electronic devices. In some cases (for example, the BIOS of IBM-PC compatible computers) they are essentially part of the operating system stored in read-only memory. In sufficiently simple devices, the entire operating system can be embedded. Many devices in modern computers have their own «firmware» that manages these devices and simplifies interaction with them.

Utilities

Utilities (English utility or tool) — programs designed to solve a narrow range of auxiliary tasks. Sometimes utilities are classified as service software.

Utilities are used to monitor sensor readings and hardware performance (for example, monitoring the temperature of the processor or video adapter), to control hardware parameters (limiting the maximum rotation speed of a CD drive; changing fan rotation speed), to verify metrics (checking referential integrity; the correctness of data recording), and to extend capabilities (formatting or repartitioning a disk while preserving data, irrecoverable deletion).

Types of utilities

  • Disk utilities
    • Defragmenters
    • Disk checking — searching for files and disk areas that were written incorrectly or corrupted in various ways, and their subsequent removal for efficient use of disk space.
    • Disk cleanup — deleting temporary files, unnecessary files, and cleaning out the «recycle bin».
    • Disk partitioning — dividing a disk into logical disks, which may have different file systems and be perceived by the operating system as several different disks.
    • Backup — creating backup copies of entire disks and individual files, as well as restoring from these copies.
    • Disk compression — compressing information on disks to increase the capacity of hard disks.
  • Registry utilities
  • Hardware monitoring utilities
  • Hardware tests

Programming systems Development software

This category includes system programs designed for software development:

  • assemblers — computer programs that convert a program in the form of source text in assembly language into machine instructions in the form of object code;
  • translators — programs or hardware that perform the translation of a program;
    • compilers — programs that translate the text of a program in a high-level language into an equivalent program in machine language.
    • interpreters — programs (sometimes hardware) that analyze the commands or statements of a program and execute them immediately;
  • linkers (link editors) — programs that perform linking — they take one or more object modules as input and assemble an executable module from them;
  • source preprocessors — these are computer programs that take data as input and produce data intended as input for another program, such as a compiler;
  • debuggers (English debugger) — modules of a development environment or standalone programs designed to find errors in programs;
  • text editors — computer programs designed for creating and modifying text files, as well as viewing them on screen, printing them, searching for fragments of text, and so on;
    • specialized source code editors — text editors for creating and editing the source code of programs. A specialized source code editor can be a standalone application or be built into an integrated development environment;
  • subroutine libraries — collections of subroutines or objects used for software development;
  • graphical interface editors.

Database management systems DBMS

A database management system (DBMS) — a specialized program (more often a set of programs) designed to organize and maintain a database.

Since database management systems are not a mandatory component of a computing system, they are often not classified as system software. DBMSs often perform only a service function in the operation of other kinds of programs (web servers, application servers), so they cannot always be classified as application software. Therefore, DBMSs are sometimes classified as middleware.

Basic functions of a DBMS

  • management of data in external memory (on disks);
  • management of data in main memory using a disk cache;
  • logging of changes, backup, and recovery of the database after failures;
  • support for database languages (data definition language, data manipulation language).

Classification of DBMSs by method of access to the database[

  • File-server systems, in which data files are located centrally on a file server, while the software implementation of the DBMS resides entirely on each client computer. Data is accessed over a local network. Synchronization of reads and updates is carried out by means of file locks. The surge in popularity of file-server database management systems dates to the late 1980s — early 1990s.
  • Client-server DBMSs consist of a client part (which is part of the application program) and a server (see Client-server).
  • Embedded — software libraries that make it possible to store large volumes of data on the local machine in a uniform manner.

See also

  • Low-level programming language
  • Machine code
  • [[b8596]]

See also

created: 2021-06-19
updated: 2026-03-08
179



Was this answer useful?
Choose a quick rating so we can improve the next answer for you.
How satisfied are you?


Comments

To leave a comment

If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Lectures and tutorial on "Software and information systems development"

Terms: Software and information systems development