Тема 4. Програмне забезпечення
Під програмним забезпеченням розуміють просто сукупність програм. В більш широкому розумінні до програмного забезпечення відносять крім програм ще й технічну документацію, що регламентує їх використання.
Програмне забезпечення традиційно поділяють на два основних класи: системне програмне забезпечення та прикладне програмне забезпечення.
Системне програмне забезпечення – це програми, призначення яких – забезпечення функціонування комп’ютера (комп’ютерної мережі) як цілісної системи. До системного програмного забезпечення відносять також засоби розробки програм, так звані інструментальні засоби.
До прикладного програмного забезпечення відносять програми, які призначені для розв’язання конкретних прикладних задач: підготовка текстових документів, проведення математичних, інженерних та економічних розрахунків, переклад текстів тощо.
1. Системне програмне забезпечення
Системне програмне забезпечення поділяють на:
- операційні системи;
- сервісні системи (засоби);
- інструментальні системи;
- системи технічного обслуговування.
Операційні системи
Операційна система (ОС) – це сукупність програм, що забезпечує управління ресурсами комп’ютерної системи (окремим комп’ютером або мережею) і процесами, які використовують ці ресурси при обчисленнях.
Операційна система виконує дві головні задачі: дозволяє користувачу запускати на виконання свої програми і здійснює підтримку виконання програм користувача. Таким чином, ОС є посередником між комп’ютером (його апаратною частиною) та користувачем і його програмами. Способи спілкування ОС з користувачем складають інтерфейс користувача ОС. Аналогічно, способи взаємодії ОС з програмами користувача складають програмний інтерфейс ОС.
Найбільш поширеними в даний час операційними системами є сімейство операційних систем Windows (Windows 95, Windows NT, Windows 98, Windows 2000, Windows XP). Крім Windows, широко використовується сімейство операційних систем Unix (Free BSD, Linux). Операційна система OS/2, розробку якої починали фірми IBM і Microsoft, так і не була завершена в повній мірі. Серед операційних систем, що зникли, слід виділити MS-DOS[1] – праматір Windows 95 і OS/2.
Сервісні системи (засоби)
Сервісними системами (засобами) називають системи (засоби), що розширяють і доповнюють інтерфейс користувача, а можливо, і програмний інтерфейс ОС. Сервісні системи (засоби) за функціональною ознакою поділяють на:
- інтерфейсні системи;
- оболонки ОС;
- утиліти.
Інтерфейсні системи модифікують інтерфейс користувача і програмний інтерфейс, і деколи, реалізують додаткові можливості по розподілу ресурсів комп’ютера. Інтерфейсні системи виступають посередником між операційною системою та користувачем і його програмами. Прикладом інтерфейсної системи є Windows 3.1. Вона є (точніше була) посередником між MS-DOS і користувачем. Windows 3.1 дозволяла одночасно запускати декілька програм[2], використовуючи для цього однозадачну MS-DOS. Операційні системи сімейства Windows мають досить розвинутий інтерфейс, тому потреби в інтерфейсних системах для цього сімейства ОС, взагалі кажучи, немає.
Оболонки ОС модифікують тільки інтерфейс користувача, покращуючи його за рахунок систем меню, використання функціональних клавіш і т.д. Таким чином, оболонка, є посередник між ОС і користувачем, але програми, взаємодіють безпосередньо з ОС. Прикладом оболонок є Norton Commander, Windows Commander, FAR. Оболонки відігравали особливу роль при роботі з MS-DOS, для спілкування з якою користувачу приходилося вводити текст команди. Використання оболонок дозволяло замінити набір команди натисканням на функціональну клавішу або вибором її з меню. Оболонки продовжують використовувати і при роботі з Windows, в силу того, що деякі дії зручніше виконувати саме за допомогою оболонок. Значною мірою це пов’язано також зі звичкою.
Утиліти – це обслуговуючі програми, які надають користувачу сервісні послуги, тобто збагачують інтерфейс користувача. Утиліти забезпечують реалізацію таких функцій, як обслуговування магнітних дисків (форматування дисків в різних режимах, відновлення помилково видалених файлів і т.п.), обслуговування файлів і каталогів, створення та обслуговування архівів, надання інформації про ресурси та їх використання, шифрування інформації, захист системи від комп’ютерних вірусів і т.д. Утилітами також часто називають програми, що поставляються з операційною системою, які не входять в її ядро[3].
Системи технічного обслуговування
Системи технічного обслуговування призначенні для полегшення тестування обладнання і локалізації несправностей. Вони є інструментом для спеціалістів по експлуатації апаратної частини.
Сімейство ОС Windows в значній мірі інтегрувало в собі всі сервісні засоби, а також має ряд засобів для тестування комп’ютера, тому зараз досить важко сказати, де закінчується власне операційна система і починається якась інша.
Нижче розглянемо два різновиди найбільш часто використовуваних утиліт: архіватори і антивірусні програми.
Архіватори
Файли, що містять графіку і звук, є значними за розмірами. Збереження таких файлів потребує багато місця на жорсткому диску, а їх пересилання по мережі – значних витрат часу. Щоби зменшити розміри файлів, їх архівують. Процес архівації полягає в створенні виходячи з заданого файла за допомогою спеціальної програми, яка називається архіватор, нового файла – архіву, який має менший розмір. Степінь стискання (відношення розміру файла до його архіву) залежить від виду даних, що містить файл, який піддається архівації. Архів, не можна безпосередньо використовувати. Перед використанням його потрібно піддати зворотному процесу – розархівації. В результаті, з архіву відновлюється початковий файл. Розархівація виконується також за допомогою архіватора. Суть архівації полягає в заміні ланцюжків з 0 і 1, які часто зустрічаються, на інші, більш короткі.
Найбільш поширеними в даний час архіваторами є WinRar i WinZip. Однією з найкращих програм для стискання зображень є DjVuer Pro. Про можливості цієї програми говорить зокрема те, що за її допомогою можна стиснути відскановані зображення книги в 200 сторінок всього до об’єму 2-3 (приблизно 3 Мбайт) дискет.
Антивірусні програми
З появою комп’ютерів з’явились і програми, призначенням яких є перешкоджання нормальній роботі комп’ютерів, псування на них програм і даних. Оскільки комп’ютери в сучасному світі відіграють все більшу й більшу роль, проникаючи в усі сфери людської діяльності, то кількість таких програм буде неухильно зростати. Протистояння між людьми значною мірою переходить в протистояння між комп’ютерами, точніше між програмами.
Великий клас таких програм складають віруси. Особливостями вірусу, на відміну від інших шкідливих програм, є здатність "розмножатись", тобто, робити інші програми своїми носіями. В більшості випадків, віруси в "чистому" вигляді не існують, а присутні як складові в заражених програмах. При запуску такої програми, управління спочатку отримує вірус, а потім програма-носій. Останнє робиться для маскування вірусу.[4] Час життя вірусу можна поділити на два періоди: пасивний і активний. В пасивному періоді, вірус заражає підходящі програми і відслідковує, чи не настав момент переходу до активного періоду. В активний період, точніше, мить, він виконує свою руйнівну функцію. Наслідки від спрацювання вірусу можуть бути не просто небажаними, а самими катастрофічними.
Для боротьби з вірусами використовують антивірусні програми. Вони перевіряють програми на диску на наявність вірусів та знешкоджують їх. Найбільш поширеними антивірусними програмами є Doctor Web, AVP (AntiViral Toolkit Pro).
Щоби уникнути зараження комп’ютера вірусом, а також наслідків його деструктивних дій, необхідно притримуватись певних правил безпеки:
- не користуватись програмами з невідомих або випадкових джерел (зокрема, програмами з "піратських" дисків);
- перед встановленням програм, перевіряти їх на наявність вірусів;
- робити резервне копіювання інформації;
- розмежовувати доступ до інформації для запобігання її несанкціонованого використання.
Інструментальні системи
До інструментальних систем (деколи систем програмування) відносяться засоби для створення комп’ютерних програм з використанням однієї з мов програмування. Вони в себе включають: редактор для підготовки текстів програм, транслятор, відлагоджувач, бібліотечні модулі.
Транслятор – це програма, яка здійснює переклад (трансляцію) програми, написаної на мові високого рівня, в машинний код. Транслятори за способом перекладу поділяють на два типи: інтерпретатори і компілятори.
Інтерпретатор – це транслятор, який здійснює переклад програми по окремих командах: перекладається перша команда, після чого вона виконується комп’ютером; далі здійснюється переклад наступної команди з послідуючим її виконанням комп’ютером і т.д. Інтерпретатор не запам’ятовує перекладені ним команди, тому всякий раз, при запуску програми, процес покомандного перекладу повторюється. Такий процес трансляції нагадує переклад імпровізованої промови представника іноземної держави: речення говорить іноземець – речення говорить перекладач.
Компілятор – це транслятор, який здійснює переклад програми в машинну мову зразу повністю. Одержаний в результаті файл є виконуваною програмою і для його виконання комп’ютером компілятор вже непотрібний.
Відлагоджувач – це програма для виявлення і локалізації помилок в програмі. Сучасні програми мають значний розмір, тому встановлення місцезнаходження помилок є нелегкою справою. З цією метою і використовують відлагоджувач.
В різних програмах часто застосовуються одні й ті самі елементи. Наприклад, в багатьох програмах потрібно знаходити найбільше чи найменше значення деякої сукупності чисел, організовувати вивід даних на екран в певному стандартизованому вигляді і т.п. Розробники інструментальних систем включають в них засоби (процедури, функції, об’єкти) для виконання дій, які найбільш часто зустрічаються (з точки зору розробників). Ці засоби об’єднуються в бібліотеки, або бібліотечні модулі. Так, стандартний Паскаль не має засобів для роботи з графікою. Розробники компілятора мови Турбо Паскаль включили ці засоби у вигляді бібліотечного модуля, де зібрані процедури і функції, що дозволяють виводити на екран не тільки точки, але й різного роду геометричні фігури – кола, еліпси, дуги, прямокутники і т.д. Включення бібліотек в інструментальні системи дозволяє полегшити розробку програм.
Для створення програм, що працюють в середовищі Windows, існують спеціальні системи програмування, які полегшують створення графічного інтерфейсу програм. До таких систем відносяться Visual Basic, C++, Delphi. Нижче приведено вигляд екрана при роботі в середовищі Visual Basic.
На сьогоднішній день існує досить значна кількість різних мов програмування. Це пояснюється різноманітністю задач, які приходиться розв’язувати. Різні класи задач потребують свого інструментарію. Так, для задач символьних обчислень, розпізнавання образів використовують мови Prolog, Lisp, Smalltalk, а для економічних розрахунків до недавнього часу активно використовували Cobol.