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

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

Системне програмування(абопрограмування систем) - рід діяльності, що полягає в роботі над системним програмним забезпеченням.

Основна відмінність системного програмування в порівнянні з прикладним програмуванням полягає в тому, що результатом останнього є випуск програмного забезпечення, що пропонує певні послуги користувачам (наприклад, текстовий процесор). У той час як результатом системного програмування є випуск програмного забезпечення, що пропонує сервіси взаємодії з апаратним забезпеченням (наприклад, дефрагментація жорсткого диска), що передбачає сильну залежність таких програм від апаратної частини. Зокрема виділимо таке:

  • програміст повинен враховувати специфіку апаратної частини та інші властивості системи, в якій функціонує програма, використовувати ці властивості, наприклад, застосовуючи спеціально оптимізований для даної архітектури алгоритм.
  • зазвичай використовується низькорівнева мова програмування або такий діалект мови програмування, який
  • дозволяє функціонування серед з обмеженим набором системних ресурсів.
  • працює максимально ефективно та має мінімальне запізнення за часом завершення.
  • має маленьку бібліотеку часу виконання (RTL) або її взагалі.
  • дозволяє пряме управління (прямий доступ) до пам'яті та логіки, що управляє.
  • дозволяє робити асемблерні вставки в код.
  • налагодження програми може бути утруднена при неможливості запустити її у відладчику через обмеження на ресурси, тому може застосовуватися комп'ютерне моделювання для вирішення цієї проблеми.
  • Системне програмування суттєво відрізняється від прикладного, що зазвичай призводить до спеціалізації програміста в одному з них.

    Часто для системного програмування доступний обмежений набір коштів. Використання автоматичного складання сміття досить рідкісне явище та налагодження зазвичай складне. Бібліотека часу виконання, за її наявності, часто менш здатна і здійснює меншу кількість перевірок. У зв'язку з цими обмеженнями зазвичай застосовують під час моніторингу та запису даних — операційні системи.

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

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

    Термін "системне програмування" безпосередньо пов'язаний з терміном "системний програміст". Це програміст, що працює (що створює, налагоджує, діагностує і т. п.) над системним програмним забезпеченням.