Что такое системное программирование
Перейти к содержимому

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

  • автор:

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

Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 14 мая 2011.

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

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

Вычислительная система имеет иерархическую структуру, которую можно представить в виде набора вложенных слоев, на внешнем из которых находятся прикладные программы, а на самом внутреннем — аппаратура компьютера. Условная степень системности нарастает при программировании, затрагивающем все более внутренние уровни системы.

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

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

    Подводя итог, можно утверждать, что СИСТЕМНЫМ следует называть подраздел программирования как вида инженерной деятельности, в котором программист использует специфические и часто уникальные свойства и возможности ВНУТРЕННИХ УРОВНЕЙ вычислительной системы.

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

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

    • Парадигмы программирования

    Wikimedia Foundation . 2010 .

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

    Информационные технологии

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

    Системное ПО является фундаментом, на котором базируется всё программное обеспечение (ПО) компьютеров . Различают системное ПО машинно-зависимое (предназначено для использования в семействах компьютеров с одной и той же системой команд) и переносимое, которое используется на компьютерах с разной архитектурой . Системное ПО применяют для управления ПО компьютеров и сетевыми коммуникациями, а также для поддержки выполнения прикладных программ. К системному ПО относятся операционные системы (ОС), программные средства организации компьютерных сетей и управления ими, системы управления базами данных (СУБД), средства промежуточного ПО (предоставляют выделенному классу приложений набор услуг, напрямую не предоставляемых ОС), инструментальные средства разработки и анализа программ , поддержки информационной безопасности и др. При разработке системного ПО используются методы программной инженерии; особое внимание уделяется качеству кода (включает минимизацию числа ошибок, простоту понимания и сопровождения, хорошую документированность и т. п.), надёжности и безопасности программ.

    Системное программирование появилось в 1950-х гг., когда были созданы первые ОС, ассемблеры и компиляторы для мейнфреймов. Важным этапом стало появление системного ПО, создаваемого некоммерческими сообществами системных программистов и распространяемого вместе с текстами программ (ОС FreeBSD и Linux , СУБД PostgreSQL и MySQL и др.), что позволило многочисленным пользователям освободиться от зависимости от производителей коммерческого системного ПО.

    Опубликовано 4 июля 2022 г. в 12:07 (GMT+3). Последнее обновление 4 июля 2022 г. в 12:07 (GMT+3). Связаться с редакцией

    Информация

    Информационные технологии

    Области знаний: Системное программирование Область знания: Информационные технологии

    • Научно-образовательный портал «Большая российская энциклопедия»
      Свидетельство о регистрации СМИ ЭЛ № ФС77-84198,
      выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 15 ноября 2022 года.
      ISSN: 2949-2076
    • Учредитель: Автономная некоммерческая организация «Национальный научно-образовательный центр «Большая российская энциклопедия»
      Главный редактор: Кравец С. Л.
      Телефон редакции: +7 (495) 917 90 00
      Эл. почта редакции: secretar@greatbook.ru
    • © АНО БРЭ, 2022 — 2024. Все права защищены.
    • Условия использования информации. Вся информация, размещенная на данном портале, предназначена только для использования в личных целях и не подлежит дальнейшему воспроизведению.
      Медиаконтент (иллюстрации, фотографии, видео, аудиоматериалы, карты, скан образы) может быть использован только с разрешения правообладателей.
    • Условия использования информации. Вся информация, размещенная на данном портале, предназначена только для использования в личных целях и не подлежит дальнейшему воспроизведению.
      Медиаконтент (иллюстрации, фотографии, видео, аудиоматериалы, карты, скан образы) может быть использован только с разрешения правообладателей.

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

    Пожалуйста, улучшите её в соответствии с правилами написания статей.

    • позволяет функционирование в окружении с ограниченным набором системных ресурсов
    • работает максимально эффективно и имеет минимальное библиотеку времени выполнения (RTL) или не имеет её вообще
    • позволяет прямое управление (прямой доступ) к памяти и управляющей логике
    • позволяет делать ассемблерные вставки в код
    • 1 История
    • 2 Драйвер апдейтеры
    • 3 Примечания
    • 4 Литература

    История [ ]

    Драйвер апдейтеры [ ]

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

    Примечания [ ]

    Литература [ ]

    Компьютер Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её.

    de:Systemprogrammierung fr:Programmation système pl:Programowanie systemowe vi:Lập trình hệ thống

    Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.

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

    Целью изучения дисциплины «системное программирование» является ознакомить студентов с возможностями современных операционных систем в плане предоставляемых ими API: многозадачностью, возможностями синхронизации, эффективного управления виртуальной памятью, межпроцессорного взаимодействия и т.д. Для успешного изучения дисциплины требуется: умение программировать на языке среднего уровня (C/C++), знать архитектуру ЭВМ. Полученные знания могут использоваться при подготовке выпускной квалификационной работы, при продолжении образования и в предстоящей трудовой деятельности.

    Цель освоения дисциплины

    Целью дисциплины является формирование компетенций обучающегося в области пограммирования на системном уровне и принципов реализации программ на низкоуровневых и среднеуровневых языках, ознакомление с принципами трансляции исходных программ классическими компиляторами (MinGW и Clang), подготовленных на языках C/С++, и применение полученных знаний для разработки эффективного системного программного обеспечения. В данной дисциплине изучаются основы разработки программного обеспечения, включающего среднеуровневые и низкоуровневые языки программирования, дизассемблирование простых программ, средства межпроцессорного взаимодействия, управление памятью, управление вводом-выводом, многопоточным программам и средствам синхронизации процессов, программирование в операционной среде. В учебном курсе рассматривается разработка программ на среднеуровенвых языках программирование — C/C++ и низкоуровневом языке программирования — Ассемблере (архитектура ARM и x86/x64).

    Планируемые результаты обучения

    Иметь представление в области разработки программного обеспечения для киберфизических систем, архитектуре многопоточных программ, параллельных алгоритмах, процессах и потоках, множественному доступу к разделяемым ресурсам, архитектуре многопоточной программы

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

    Иметь представление в области разработки программного обеспечения для киберфизических систем, реализации языков программирования, общую характеристику языков ассемблера: назначение, принципы построения и использования; структура языка

    Иметь представления об: инструментах создания параллельных программ; основные типы ошибок и проблем в параллельных программах; инструменты отладки параллельных программ. Изучить: инструменты создания и отладки многопоточных программ

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *