Системное программирование
Систе́мное программи́рование, раздел программирования, в котором сочетаются исследования новых архитектур, алгоритмов, структур данных и др. и деятельность по проектированию, разработке, тестированию и сопровождению (поддержке) системного программного обеспечения (системного ПО), т. е. для создания новых информационных технологий.
Системное ПО является фундаментом, на котором базируется всё программное обеспечение (ПО) компьютеров. Различают системное ПО машинно-зависимое (предназначено для использования в семействах компьютеров с одной и той же системой команд) и переносимое, которое используется на компьютерах с разной архитектурой. Системное ПО применяют для управления ПО компьютеров и сетевыми коммуникациями, а также для поддержки выполнения прикладных программ. К системному ПО относятся операционные системы (ОС), программные средства организации компьютерных сетей и управления ими, системы управления базами данных (СУБД), средства промежуточного ПО (предоставляют выделенному классу приложений набор услуг, напрямую не предоставляемых ОС), инструментальные средства разработки и анализа программ, поддержки информационной безопасности и др. При разработке системного ПО используются методы программной инженерии; особое внимание уделяется качеству кода (включает минимизацию числа ошибок, простоту понимания и сопровождения, хорошую документированность и т. п.), надёжности и безопасности программ.
Системное программирование появилось в 1950-х гг., когда были созданы первые ОС, ассемблеры и компиляторы для мейнфреймов. Важным этапом стало появление системного ПО, создаваемого некоммерческими сообществами системных программистов и распространяемого вместе с текстами программ (ОС FreeBSD и Linux, СУБД PostgreSQL и MySQL и др.), что позволило многочисленным пользователям освободиться от зависимости от производителей коммерческого системного ПО.
Литература
- Харт Д. М. Системное программирование в среде Windows. М. [и др.], 2005.
- Молчанов А. Ю. Системное программное обеспечение. 3-е изд. СПб., 2010.
- Таненбаум Э. С., Бос Х. Современные операционные системы (4-е издание), 2015.
- Cristiano Giuffrida, Calin Iorgulescu, Giordano Tamburrelli, Andrew S. Tanenbaum Automating Live Update for Generic Server Programs. IEEE Trans. Software Eng. 43(3): 207–225 (2017).