Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Системное программирование или системное программирование - это деятельность по программированию [1] программного обеспечения компьютерной системы . Основная отличительная черта системного программирования по сравнению с прикладным программированием состоит в том, что прикладное программирование направлено на создание программного обеспечения, которое предоставляет услуги пользователю напрямую (например, текстовый процессор ), тогда как системное программирование направлено на создание программного обеспечения и программных платформ, которые предоставляют услуги другому программному обеспечению, ограничены производительностью или и то, и другое (например, операционные системы , приложения для вычислительной техники , игровые движки , промышленная автоматизация, и программное обеспечение как сервисные приложения). [1]

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

Обзор [ править ]

Следующие атрибуты характеризуют системное программирование:

  • Программист может делать предположения об аппаратном и других свойствах системы , что программа работает на, и часто будет использовать эти свойства, например , с помощью алгоритма , который , как известно , чтобы быть эффективным при использовании конкретного оборудования.
  • Обычно используется низкоуровневый язык программирования или диалект языка программирования, чтобы:
  • Часто системные программы невозможно запустить в отладчике . Иногда для уменьшения этой проблемы можно использовать запуск программы в смоделированной среде .

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

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

Реализация определенных частей в операционных системах и сетях требует системного программирования, например, реализации подкачки ( виртуальной памяти ) или драйвера устройства для операционной системы.

История [ править ]

Первоначально системные программисты неизменно писали на ассемблере . Эксперименты с аппаратной поддержкой языков высокого уровня в конце 1960-х годов привели к появлению таких языков, как PL / S , BLISS , BCPL и расширенный ALGOL для больших систем Burroughs . Форт также имеет приложения в качестве системного языка. В 1970-х годах C стал повсеместным, чему способствовал рост Unix . Совсем недавно подмножество C ++, называемое Embedded C ++ , нашло некоторое применение, например, оно используется в драйверах набора ввода-вывода для macOS . [2]

Альтернативное использование [ править ]

По историческим причинам некоторые организации используют термин « системный программист» для описания должностных функций, которые можно было бы более точно назвать системным администратором . Это особенно верно в отношении организаций, в компьютерных ресурсах которых исторически преобладали мэйнфреймы , хотя этот термин даже используется для описания должностных функций, не связанных с мэйнфреймами. Такое использование возникло из-за того, что администрирование мэйнфреймов IBM часто связано с написанием специального кода ассемблера ( IBM's Basic Assembly Language (BAL)), который интегрирован с операционной системой, такой как OS / MVS , DOS / VSE или VM / CMS.. Действительно, некоторые программные продукты IBM внесли значительный вклад в код со стороны программистов-заказчиков. Этот тип программирования становится все менее распространенным, но термин « системный программист» по-прежнему остается фактическим названием должности для сотрудников, непосредственно управляющих мэйнфреймами IBM.

См. Также [ править ]

  • Дихотомия Остерхаута
  • Язык системного программирования
  • Язык сценариев
  • Обработчик прерывания

Ссылки [ править ]

  1. ^ a b «Панель: Системное программирование в 2014 году и далее» . Microsoft . Дата обращения 4 декабря 2015 .
  2. Apple Inc (14 августа 2009 г.). «Рекомендации по проектированию драйверов устройств набора ввода-вывода» . developer.apple.com . Apple , Inc . Проверено 16 сентября 2014 года .

Дальнейшее чтение [ править ]

  • Программирование системы с помощью John J. Donovan