Системное программирование

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Системное программирование (или программирование систем) — род деятельности, заключающийся в работе над системным программным обеспечением.

Основная отличительная черта системного программирования по сравнению с прикладным программированием заключается в том, что результатом последнего является выпуск программного обеспечения, предлагающего определённые услуги пользователям (например, текстовый процессор). В то время как результатом системного программирования является выпуск программного обеспечения, предлагающего сервисы по взаимодействию с аппаратным обеспечением (например, дефрагментация жёсткого диска), что подразумевает сильную зависимость таких программ от аппаратной части. В частности выделим следующее:

  • программист должен учитывать специфику аппаратной части и другие свойства системы в которой функционирует программа, использовать эти свойства, например, применяя специально оптимизированный для данной архитектуры алгоритм.
  • обычно используется низкоуровневый язык программирования или такой диалект языка программирования, который
    • позволяет функционирование в окружении с ограниченным набором системных ресурсов.
    • работает максимально эффективно и имеет минимальное запаздывание по времени завершения.
    • имеет маленькую библиотеку времени выполнения (RTL) или не имеет её вообще.
    • позволяет прямое управление (прямой доступ) к памяти и управляющей логике.
    • позволяет делать ассемблерные вставки в код.
  • отладка программы может быть затруднена при невозможности запустить её в отладчике из-за ограничений на ресурсы, поэтому может применяться компьютерное моделирование для решения этой проблемы.

Системное программирование существенно отличается от прикладного, что обычно приводит к специализации программиста в одном из них.

Часто, для системного программирования доступен ограниченный набор средств. Использование автоматической сборки мусора довольно редкое явление и отладка обычно сложна. Библиотека времени выполнения, при её наличии, часто менее способная и совершает меньшее количество проверок. В связи с этими ограничениями обычно применяют при мониторинге и записи данных — операционные системы.

История

Изначально, программисты безвариантно писали на языке ассемблера. Эксперименты с поддержкой оборудования в языках высокого уровня (1960-е привели к появлению таких, как BLISS и BCPL. Однако, язык программирования Си, сыгравший значительную роль в создании Unix, завоевал большую популярность и распространился повсеместно к 1980-м годам.

В настоящее время (2006) некоторое применение нашлось для встраиваемого C++. Реализация основных частей в операционной системе и при использовании сетей нуждается в разработчиках системного ПО. Например, реализация постраничности (через виртуальную память) или драйверы устройств.

Термин «системное программирование» непосредственно связан с термином «системный программист». Это программист, работающий (создающий, отлаживающий, диагностирующий и т. п.) над системным программным обеспечением.

Литература

  • Джонсон М. Харт. Системное программирование в среде Microsoft Windows = Windows System Programming. — М.: Диалектика, 2005. — С. 592. — ISBN 0-321-25619-0


de:Systemprogrammierung

en:System programming fr:Programmation système pl:Programowanie systemowe uk:Системне програмування vi:Lập trình hệ thống

Личные инструменты

Served in 0.083 secs.