Використана література. Програмне забезпечення комп'ютера 1 на які типи класифікують програмне забезпечення

Рис. 100.

Програми- це впорядковані послідовності команд. Мета будь-якої комп'ютерної програми – управління апаратними засобами. Склад програмного забезпечення (ПЗ) комп'ютера називають програмною конфігурацією.Між програмами, як і між фізичними вузлами та блоками, існує взаємозв'язок - багато програм працюють, спираючись на інші програми нижчого рівня, тобто ми можемо говорити про міжпрограмний інтерфейс.Рівні програмного забезпечення є пірамідальною конструкцією (рис. 100). Кожен наступний рівень спирається на програмне забезпечення попередніх рівнів.

Розглянемо рівні програмного забезпечення.

Базовий рівень

Найнижчий рівень програмного забезпечення. Воно відповідає за взаємодію Космосу з базовими апаратними засобами. Базові програмні засоби зберігаються у мікросхемах ПЗУ. Програми та дані записуються у мікросхеми ПЗУ на етапі виробництва. У тих випадках, коли зміна базових програмних засобів під час експлуатації є технічно доцільною, замість мікросхем ПЗУ застосовуються перепрограмовані постійно запам'ятовуючі пристрої (ППЗУ - англ. Erasable and Programmable Read Only Memory, EPROM).

Системний рівень

Системний рівень – перехідний. Програми, що працюють на цьому рівні, забезпечують взаємодію інших програм комп'ютерної системи з програмами базового рівня і безпосередньо з апаратним забезпеченням, тобто. виконує "посередницькі" функції. Конкретні програми, відповідальні за взаємодію Космосу з конкретними пристроями, називаються драйверами пристроїв- вони входять до складу програмного забезпечення системного рівня.

Інший клас програм системного рівня відповідає за взаємодію з користувачем. Саме завдяки їм він отримує можливість вводити дані в обчислювальну систему, керувати її роботою та отримувати результат у зручній для себе формі. Ці програмні засоби називають засобами забезпечення інтерфейсу користувача.

Сукупність програмного забезпечення системного рівня утворює ядро операційної системи(ОС) комп'ютера. Наявність ОС - неодмінна умова можливої ​​практичної роботи людини з комп'ютером.

Службовий рівень

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

Прикладний рівень

Програмне забезпечення прикладного рівня є комплексом прикладних програм, з допомогою яких цьому робочому місці виконуються конкретні завдання.

До прикладних програмних засобіввідносять:

  • - текстові редактори- призначені для створення та редагування тексту. Додаткові функції полягають у автоматизації процесу введення та редагування. Як приклад можна навести програму Notepad (Блокнот);
  • - Текстові процесори.Основною відмінністю текстових процесорів від текстових редакторів у цьому, що вони дозволяють як вводити і редагувати тексти, а й впроваджувати у нього графіки, формули, таблиці та інших об'єкти. Класичним прикладом текстового процесора є Microsoft Word;
  • - графічні редактори- призначені для створення або опрацювання графічних зображень.

Розрізняють: растрові редактори, векторні редактори та програмні засоби для створення та обробки тривимірної графіки (ЗО-редактори). Найпростіший приклад растрового графічного редактора,який присутній на кожному комп'ютері – Paint. Растрові зображення мають кілька видів розширення: jpeg або jpg, png, gif, bmp та ін. Другий приклад графічного растрового редактора – Adobe Photoshop. Photoshop має величезний функціонал, підтримку великої кількості плагінів(програмні модулі, що динамічно підключаються до основної програми та призначені для розширення та/або використання її можливостей) та інструментів. Дозволяє працювати в різних колірних моделях та з різними розширеннями файлів.

Векторний графічний редактор CorelDRAW з пакету CorelDRAW Graphics Suite є потужним професійним продуктом для створення різного роду графіки та анімації. Тим не менш, завдяки вбудованій розвиненій системі навчання і довідки програма дуже проста для освоєння навіть новачками в області векторної графіки.

В якості другого прикладу векторного графічного редактора можна навести програму Inkscape, що вільно розповсюджується. Вона має великі можливості для створення високоякісних ілюстрацій або малювання плакатів. Ця програма підійде для створення та обробки векторної графіки як початківцям, так і для серйозної роботи досвідченим користувачам.

Редактори тривимірної графікислужать для створення фільмів, комп'ютерних ігор, графічного дизайну, багатих на анімацію, візуальними ефектами. Широке поширення подібні програми знайшли у галузі машинобудування, архітектури, виробництва споживчих товарів тощо. Як приклад можна навести такі програмні продукти, як Autodesk Maya, Autodesk 3ds Max:

- системи управління базами даних (СУБД)Основними функціями СУБД є: створення незаповненої структури бази даних, надання засобів її заповнення чи імпорту даних із таблиць іншої бази, забезпечення можливості доступу до даних, а такі надання засобів пошуку та фільтрації.

Ухвалено ділити СУБД на настільніі промислові.Прикладом настільних СУБД є: Access, FoxPro. Промислові СУБД орієнтовані створення інформаційних систем, оперують великим обсягом інформації з підвищеним вимогою безпеки, наприклад: Oracle, MS SQL Server:

  • - електронні таблиці- є програмний інструмент, призначений для зберігання різних типів даних, проведення з них розрахунків. Найпопулярніший засіб роботи з електронними таблицями – програма Excel;
  • - системи автоматизованого проектування (САПР)- призначені для автоматизації проектно-конструкторських робіт. Застосовуються у машинобудуванні, приладобудуванні, архітектурі.

Найбільш поширеною САПР у світі є програма AutoCAD (англ. Computer-Aided Design) – дво- та тривимірна система автоматизованого проектування та креслення. Як приклад російської САПР можна навести систему ADEM (англ. Automated Design Engineering Manufacturing), призначену для автоматизації конструкторсько-технологічної підготовки виробництва;

  • - настільні видавничі системи- дозволяють здійснювати електронну верстку широкого спектра основних типів документів: інформаційного бюлетеня, кольорової брошури, каталогу, довідника. Прикладами таких програм є Corel Ventura, Page Maker, QuarkXPress, Frame Maker, MS Publisher;
  • - експертні системи- призначені для аналізу даних, що містяться в базі знань, та видачі рекомендацій на запит користувача.

Експертні системи здатні у складній ситуації (за браком часу, інформації чи досвіду) дати кваліфіковану консультацію (пораду, підказку), що допомагає спеціалісту або менеджеру прийняти обґрунтоване рішення. База знань експертної системи містить відомості про предметну область (медицина, юриспруденція тощо) та правила - набір інструкцій, застосовуючи які до відомих фактів можна отримувати нові факти. Як приклад можна навести програмну експертну систему CLIPS(англ. З Language Integrated Production System);

  • - web-редактори (HTML-редактори)- дозволяють створювати з мінімальними витратами часу прості і складні, красиво оформлені Web-сторінки. Одним із найпопулярніших HTML-редакторів у світі є програма Adobe Dreamweaver;
  • - браузери (оглядачі)- Програмні засоби, призначені для перегляду web-сайтів. Найбільш популярними є Internet Explorer, Mozilla Firefox, Google Chrome, Opera;
  • - бухгалтерські системи (системи автоматизації бухгалтерського обліку)- призначені для автоматизації підготовки бухгалтерських документів підприємства та їхнього обліку, для підготовки регулярних звітів за підсумками виробничої, господарської та фінансової діяльності.

Бухгалтерський облік у великих підприємствах ведеться за допомогою сучасних ERP (Enterprise Resource Planning System – система планування ресурсів підприємства) – систем, що дозволяють автоматизувати не тільки бухгалтерський облік, але й управління виробництвом. З цією метою зазвичай використовуються такі системи, як SAP, Oracle E-Business Suite, 1С:Підприємство, Microsoft Dynamics NAV (Navision), ERP "Галактика" та ін;

- фінансові аналітичні системи- призначені для використання накопичених, перевірених, об'єднаних фінансових показників. При цьому можна виділити кілька базових функціональних можливостей таких програм: систематизація інформації, розрахунок аналітичних показників та коефіцієнтів, формування звітів презентаційної якості.

До фінансових аналітичних систем належать такі програми, як Project Expert, що дозволяє вирішувати завдання розробки бізнес-плану, проектування розвитку бізнесу, аналізу інвестиційних проектів для підприємств будь-якої галузевої власності та масштабів діяльності.

Audit Expert – програма для аналізу фінансового стану підприємства на підставі його фінансової звітності дозволяє здійснювати тимчасовий, структурний, фінансовий аналіз, розрахунок різних фінансових показників, отримання звітів та висновків за результатами аналізу.

До службових програмних засобіввідносять:

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

Типовими представниками цього класу програм є FAR Manager, Total Commander, FreeComander;

- засоби стиснення даних (архіватори)- програми, які здійснюють стиснення даних в один файл архіву для легшої передачі або компактного зберігання.

З-поміж найпопулярніших програм можна назвати: ARJ, РКРАК, LHA, ICE, HYPER, ZIP, РАК, ZOO, RAR;

- засоби діагностики- призначені для тестування комп'ютера чи окремих компонентів. Видають докладну інформацію про його стан, функціональність та можливі програмні та фізичні неполадки.

Діагностика- систематизований спосіб пошуку несправностей з подальшим усуненням. Серед програм діагностики можна виділити SiSoftware Sandra (англ. System ANalyser, Diagnostic and Reporting Assistant) – це інформаційна та діагностична програма. Вона надає практично всю інформацію про апаратне та програмне забезпечення комп'ютера. Інша програма – 3DMark, орієнтована виключно на вимірювання продуктивності відеосистеми;

засоби контролю (моніторингу)- Дозволяють стежити за процесами, що відбуваються в комп'ютерній системі. У разі небезпеки передбачено можливість попередження, вимкнення комп'ютера або зміни режиму роботи деяких пристроїв.

Як приклад можна навести програму MB Probe, за допомогою якої можна знімати температуру від кількох термодатчиків, визначити напруги ядра процесора та материнської плати, тримати під контролем обороти вентиляторів. Температура вінчестера, атрибути внутрішньої системи діагностики S.M.A.R.T., а також напруги датчиків обертів вентиляторів материнської плати можуть бути представлені за допомогою утиліти SpeedFan;

  • - засоби комунікації (комунікаційні програми)- Дозволяють спілкуватися в реальному часі з людьми, що знаходяться на відстані від вас. До комунікаційних програм відносять ICQ, Skype, Yahoo massager, Google Talk та ін;
  • - засоби забезпечення комп'ютерної безпеки- включають антивіруси, міжмережеві екрани (файєрволи), програми для шифрування даних і антишпигуни.

До антивірусного програмного забезпечення цієї категорії відносять Kaspersky Virus Removal Tool - програму розроблену фахівцями лабораторії Касперського для сканування комп'ютера на наявність шкідливих програм. Kaspersky A VP Tool знаходить та ізолює: віруси, трояни, черв'яки, шпигунські та рекламні модулі, всі типи руткітів тощо шкідливі програми. Інша популярна програма Dr.Web Curelt! - безкоштовний антивірус для сканування, виявлення та видалення (лікування) комп'ютерів під керуванням Windows.

Як приклад міжмережевого екрану можна навести таку програму, як Comodo Internet Security – безкоштовний пакет для комплексного захисту комп'ютера від вірусів, троянів, інших шкідливих програм та атак хакерів. Його дія полягає у блокуванні установки вірусів, хробаків, шпигунських програм, модифікації критичних файлів системи, крім того, вбудований планувальник завдань дозволяє проводити сканування за розкладом, є функція щоденного автоматичного оновлення вірусної бази даних тощо.

SUPERAntiSpyware Free - програма для виявлення та видалення шпигунських, рекламних та шкідливих програм, черв'яків, руткітів (програма для приховування слідів присутності зловмисника або шкідливої ​​програми в системі) та іншого підозрілого програмного забезпечення. Цей антишпигун дозволяє проводити повне, сканування жорстких дисків, портативних пристроїв, пам'яті, реєстру, окремих папок і файлів.

Контрольні питання та завдання

  • 1. Що називається програмою? Дайте визначення поняттю програмна конфігурація.
  • 2. Накресліть схему рівнів програмного забезпечення.
  • 3. Дайте характеристику базового рівня програмного забезпечення.
  • 4. Що називається драйвером пристрою? Опишіть призначення програмного забезпечення.
  • 5. Яке призначення утиліт? Поясніть призначення системного рівня. Наведіть приклади таких програм.
  • 6. Перерахуйте програми, які належать до прикладного рівня програмного забезпечення.
  • 7. Які типи програм, що належать до графічних редакторів, ви знаєте?
  • 8. Поясніть основні функції систем керування базами даних. Наведіть приклади програм цього класу.
  • 9. У чому особливості експертних систем?
  • 10. Розкрийте призначення фінансових аналітичних систем. Наведіть приклади програм цього класу.
  • 11. Перерахуйте програми, що належать до службових програмних засобів.
  • 12. Який клас програм дає змогу виконувати основні операції над файлами? Наведіть приклади.
  • 13. У чому відмінність програм, призначених для діагностики та моніторингу комп'ютерних систем?
  • 14. Що стосується засобів забезпечення комп'ютерної безпеки? Перерахуйте та опишіть відповідні програми.
  • 15. Розробте таблицю, яка містить розглянуті види програмного забезпечення, встановлені на комп'ютері.

Що таке програмне забезпечення

Можливості сучасного ПК настільки великі, що дедалі більше людей знаходять йому застосування у роботі, навчанні, побуті. Найважливішим якістю сучасного комп'ютера є його «дружність» стосовно користувача. Спілкування людини з комп'ютером стало простим, наочним, зрозумілим. Комп'ютер сам підказує користувачеві, що потрібно робити в тій чи іншій ситуації, допомагає виходити із скрутних положень. Це можливо завдяки програмному забезпеченню комп'ютера.

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

Вся сукупність програм, що зберігаються на всіх пристроях довгострокової пам'яті комп'ютера, складає програмне забезпечення (ПЗ).

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

Типи програмного забезпечення

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

Програмне забезпечення комп'ютера поділяється на:

Системне ПЗ;
- прикладне ПЗ;
- Системи програмування.
Про системне ПЗ і системи програмування йтиметься пізніше. А зараз познайомимося із прикладним програмним забезпеченням.
Склад прикладного програмного забезпечення
Програми, за допомогою яких користувач може вирішувати свої інформаційні завдання, не вдаючись до програмування, називають прикладними програмами.

Як правило, всі користувачі вважають за краще мати набір прикладних програм, який потрібний практично кожному. Їх називають програмами загального призначення. До них належать:

Текстові та графічні редактори, за допомогою яких можна готувати різні тексти, створювати малюнки, будувати креслення; простіше кажучи, писати, креслити, малювати;

Системи управління базами даних (СУБД), що дозволяють перетворити комп'ютер на довідник з будь-якої теми;

Табличні процесори, що дозволяють організовувати дуже поширені практично табличні розрахунки;

Комунікаційні (мережеві) програми, призначені обмінюватись інформацією з іншими комп'ютерами, об'єднаними з даними у комп'ютерну мережу.

Дуже популярним видом прикладного програмного забезпечення є ігри. Більшість користувачів саме з них починає спілкуватися з ЕОМ.

Крім того, є велика кількість прикладних програм спеціального призначення для професійної діяльності. Їх часто називають пакетами прикладних програм. Це, наприклад, бухгалтерські програми, які здійснюють нарахування заробітної плати та інші розрахунки, що робляться у бухгалтеріях; системи автоматизованого проектування, що допомагають конструкторам розробляти проекти різних технічних пристроїв; пакети, дозволяють вирішувати складні математичні завдання без складання програм; навчальні програми з різних шкільних предметів та багато іншого.

Системне програмне забезпечення

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

Операційні системи

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

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

Існують дві групи визначень ОС: «сукупність програм, керуючих обладнанням» та «сукупність програм, керуючих іншими програмами». Обидві вони мають свій точний технічний сенс, який, однак, стає зрозумілим лише при більш детальному розгляді питання про те, навіщо взагалі потрібні операційні системи.
Є програми обчислювальної техніки, для яких ОС зайві. Наприклад, вбудовані мікрокомп'ютери містяться сьогодні в багатьох побутових приладах, автомобілях (іноді по десятку в кожному), стільникових телефонах і т. п. Найчастіше такий комп'ютер постійно виконує лише одну програму, що запускається після вмикання. І прості ігрові приставки - також спеціалізовані мікрокомп'ютери - можуть обходитися без ОС, запускаючи при включенні програму, записану на вставленому в пристрій «картриджі» або компакт-диску. Тим не менш, деякі мікрокомп'ютери та ігрові приставки все ж таки працюють під управлінням спеціальних власних ОС. Найчастіше, це UNIX-подібні системи (останнє особливо вірно щодо програмованого комутаційного устаткування: файрволів, маршрутизаторів).

Основні ідеї ОС

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

У 1950-60-х роках сформувалися та були реалізовані основні ідеї, що визначають функціональність ОС: пакетний режим, поділ часу та багатозадачність, поділ повноважень, реальний масштаб часу, файлові структури та файлові системи.

Вбудовані програми

Вбудовані програми або firmware – це програми, «зашиті» у цифрові електронні пристрої. У ряді випадків (наприклад, BIOS IBM-PC сумісних комп'ютерів) є, по суті, частиною операційної системи, що зберігається в постійній пам'яті. У досить простих пристроях вся операційна система може бути інтегрованою. Багато пристроїв сучасних комп'ютерів мають власні «прошивки», що здійснюють управління цими пристроями та спрощують взаємодію з ними.

Утиліти

Утиліти (англ. utility або tool) – програми, призначені для вирішення вузького кола допоміжних завдань. Іноді утиліти відносять до класу сервісного програмного забезпечення.
Моніторингу показників датчиків та продуктивності обладнання - моніторинг температур процесора, відеоадаптера; читання S.M.A.R.T. жорстких дисків;
Управління параметрами обладнання – обмеження максимальної швидкості обертання CD-приводу; зміна швидкості обертання вентиляторів.
Контролю показників - перевірка цілісності; правильності запису даних.
Розширення можливостей - форматування та/або перерозмітка диска із збереженням даних, видалення без можливості відновлення.

Типи утиліт

Дискові утиліти
Дефрагментатори
Перевірка диска - пошук неправильно записаних або пошкоджених різним шляхом файлів та ділянок диска та їхнє подальше видалення для ефективного використання дискового простору.
Очищення диска – видалення тимчасових файлів, непотрібних файлів, чищення «кошика».
Розмітка диска - розподіл диска на логічні диски, які можуть мати різні файлові системи та сприйматися операційною системою як кілька різних дисків.
Резервне копіювання - створення резервних копій цілих дисків та окремих файлів, а також відновлення цих копій.
Стиснення дисків - Стиснення інформації на дисках для збільшення місткості жорстких дисків. Утиліти роботи з реєстром
Утиліти моніторингу обладнання
Тести обладнання

Прикладне програмне забезпечення

Прикладна програма або програма - програма, призначена для виконання певних завдань користувача і розрахована на безпосередню взаємодію з користувачем. У більшості операційних систем прикладні програми не можуть звертатися до ресурсів комп'ютера безпосередньо, а взаємодіють з обладнанням та ін. за допомогою операційної системи. Також простою мовою - допоміжні програми.
Класифікація

По типу
програмні засоби загального призначення
Текстові редактори
Системи комп'ютерної верстки
Графічні редактори
СУБД
програмні засоби спеціального призначення
Експертні системи
Мультимедіа програми (Медіаплеєри, програми для створення/редагування відео, звуку, Text-To-Speech та ін.)
Гіпертекстові системи (Електронні словники, енциклопедії, довідкові системи)
Системи керування вмістом
програмні засоби професійного рівня
САПР
АРМ
АСУ
АСУ ТП
АСНІ
Геоінформаційні системи
Білінгові системи
CRM
За сферою застосування
Прикладне програмне забезпечення підприємств та організацій. Наприклад, фінансове управління, система відносин із споживачами, мережа постачання. До цього типу відноситься також відомче ПЗ підприємств малого бізнесу, а також ПЗ окремих підрозділів усередині великого підприємства. (Приклади: Управління транспортними витратами, Служба IT підтримки)
Програмне забезпечення забезпечує доступ користувача до пристроїв комп'ютера.
Програмне забезпечення інфраструктури підприємства Забезпечує загальні можливості підтримки ПЗ підприємств. Це системи управління базами даних, сервери електронної пошти, управління мережею та безпекою.
Програмне забезпечення інформаційного працівника. Обслуговує потреби індивідуальних користувачів у створенні та управлінні інформацією. Це, як правило, управління часом, ресурсами, документацією, наприклад, текстові редактори, електронні таблиці, програми-клієнти для електронної пошти та блогів, персональні інформаційні системи та медіа редактори.
Програмне забезпечення доступу до контенту. Використовується для доступу до тих чи інших програм або ресурсів без їх редагування (проте може включати функцію редагування). Призначений для груп або індивідуальних користувачів цифрового контенту. Це, наприклад, медіа-плеєри, веб-браузери, допоміжні браузери та ін.
Освітнє програмне забезпечення за змістом близьке до ПЗ для медіа та розваг, проте на відміну від нього має чіткі вимоги щодо тестування знань користувача та відстеження прогресу у вивченні того чи іншого матеріалу. Багато освітніх програм включають функції спільного користування та багатостороннього співробітництва.
Імітаційне програмне забезпечення. Використовується для симуляції фізичних чи абстрактних систем з метою наукових досліджень, навчання чи розваги.
Інструментальні програмні засоби в області медіа. Забезпечують потреби користувачів, які виробляють друковані чи електронні медіа ресурси для інших споживачів, на комерційній чи освітній основі. Це програми поліграфічної обробки, верстки, обробки мультимедіа, редактори HTML, редактори цифрової анімації, цифрового звуку тощо.
Прикладні програми для проектування та конструювання. Використовуються при створенні апаратного («Залізо») та програмного забезпечення. Охоплюють автоматизований дизайн (computer aided design – CAD), автоматизоване проектування (computer aided engineering – CAE), редагування та компілювання мов програмування, програми інтегрованого середовища розробки (Integrated Development Environments), інтерфейси для прикладного програмування (Application Programmer Interfaces).
Посилання на використовувані ресурси

Програмне забезпечення- Невід'ємна частина комп'ютерної системи. Воно є логічним продовженням технічних засобів. Сфера застосування конкретного комп'ютера визначається створеним йому програмним забезпеченням. Сам по собі комп'ютер не має знання в жодній галузі застосування. Всі ці знання зосереджені у програмах, що виконуються на комп'ютерах. Програмне забезпеченнясучасних комп'ютерів включає мільйони програм - від ігрових до наукових.

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

Обидва типи програмного забезпечення взаємопов'язані і можуть бути представлені у вигляді діаграми, зображеної на рис.2.1. Як видно, кожна область тісно взаємодіє з іншою. Системне програмне забезпеченнязабезпечує та контролює доступ до апаратного забезпечення комп'ютера. Прикладне програмне забезпеченнявзаємодіє з апаратними компонентами через системне. Кінцеві користувачі працюють з прикладним програмним забезпеченням. Для забезпечення апаратної сумісності кожен тип програмного забезпечення розробляється для конкретної апаратної платформи.


Рис. 2.1.

Системне ПЗ, до складу якого входять операційна система, транслятори мов та обслуговуючі програми, керує доступом до апаратного забезпечення. Прикладне ПЗ, таке як мови програмування та різні користувацькі програми, працює з апаратним забезпеченням через шар системного ПЗ. Користувачі, у свою чергу, взаємодіють із прикладним програмним забезпеченням.

Програмні системи можна класифікувати за різними ознаками. Розглянемо класифікацію, в якій основною ознакою є сфера (область) використання програмних продуктів:

  • апаратна частина автономних комп'ютерів та мереж ЕОМ;
  • функціональні завдання різних предметних областей;
  • технологія розроблення програм.

Для підтримки інформаційної технології у цих галузях виділяють відповідно три класи програмних продуктів, представлених на рис.2.2:

  • системне програмне забезпечення;
  • прикладне програмне забезпечення;
  • інструментальне програмне забезпечення

Системне програмне забезпечення(System Software) – сукупність програм та програмних комплексів, призначена для забезпечення роботи комп'ютера та мереж ЕОМ. Системне програмне забезпеченнявиконує такі завдання:

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


Рис. 2.2.

Цей клас програмних продуктів тісно пов'язані з типом комп'ютера і його невід'ємною частиною. Програмні продукти переважно орієнтовані кваліфікованих користувачів – професіоналів у комп'ютерної області: системного програміста, адміністратора мережі, прикладного програміста, оператора. Однак знання базової технології роботи з цим класом програмних продуктів потрібне і кінцевим користувачам персонального комп'ютера, які самостійно працюють не тільки зі своїми програмами, але і виконують обслуговування комп'ютера, програм і даних.

Програмні продукти цього класу мають загальний характер застосування, незалежно від специфіки предметної області. До них пред'являються високі вимоги щодо надійності та технологічності роботи, зручності та ефективності використання.

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

Встановлення пакетів прикладних програм на комп'ютер виконується системними адміністраторами, системними програмістами, а також (у деяких випадках) кваліфікованими користувачами. Безпосередню експлуатацію програмних продуктів здійснюють, зазвичай, кінцеві користувачі – споживачі інформації, у часто діяльність яких дуже далека від комп'ютерної області. Цей клас програмних продуктів може бути дуже специфічним окремих предметних областей.

Інструментарій технології програмування являє собою сукупність програм та програмних комплексів, що забезпечують технологію розробки, налагодження та впровадження створюваних програмних продуктів.

Інструментарій технології програмування включає спеціалізовані програмні продукти, що є інструментальними засобами розробника. Програмні продукти даного класу підтримують усі технологічні етапи процесу проектування, програмування (кодування), налагодження та тестування створюваних програм. Користувачами технології програмування є системні та прикладні програмісти.

Системне програмне забезпечення(Рис.2.3) можна розділити на базове програмне забезпечення, яке, як правило, поставляється разом з комп'ютером, та сервісне програмне забезпечення, який може бути придбаний додатково.

Базове програмне забезпечення(Base software) – мінімальний набір програмних засобів, що забезпечують роботу комп'ютера. Сервісне програмне забезпеченнявключає програми та програмні комплекси, які розширюють можливості базового програмного забезпечення та організують зручніше середовище роботи користувача.


Рис. 2.3.

В базове програмне забезпеченнявходять:

  • операційна система;
  • операційні оболонки (зазвичай текстові та графічні);
  • мережна операційна система.

Операційна системапризначена для управління виконанням програм користувача, планування та управління обчислювальними ресурсами ЕОМ.

Найбільш традиційне порівняння ОС здійснюється за такими характеристиками процесу обробки інформації:

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

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

Операційні оболонки – спеціальні програми, призначені полегшення спілкування користувача з командами операційної системи. Операційні оболонки мають текстовий та графічний варіанти інтерфейсу кінцевого користувача, а в майбутньому можливі варіанти мовного інтерфейсу та розпізнавання рукописного введення даних. Ці програми значно спрощують завдання керуючої інформації до виконання команд операційної системи, зменшують напруженість і складність роботи кінцевого користувача.

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

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

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

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

І програмні документи необхідні для експлуатації цих програм.

Також - сукупність програм, процедур та правил, а також документації, що належать до функціонування системи обробки даних.

Програмне забезпечення є одним із видів забезпечення обчислювальної системи, поряд з технічним (апаратним), математичним, інформаційним, лінгвістичним, організаційним та методичним забезпеченням

Класифікація програмного забезпечення

Класифікація програмного забезпечення

Програмне забезпечення прийнято за призначенням поділяти насистемне , прикладне іінструментальне, а за способом поширення та використання наневільне/закрите, відкрите івільне . Вільне програмне забезпечення може поширюватися, встановлюватися та використовуватись на будь-яких комп'ютерах вдома, в офісах, школах, вузах, а також комерційних та державних установах без обмежень.

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


Операційні системи

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

Поняття операційної системи

Існують дві групи визначень ОС: «сукупність програм, керуючих обладнанням» та «сукупність програм, керуючих іншими програмами». Обидві вони мають свій точний технічний сенс, який, однак, стає зрозумілим лише при більш детальному розгляді питання про те, навіщо взагалі потрібні операційні системи.

Є програми обчислювальної техніки, для яких ОС зайві. Наприклад, вбудованімікрокомп'ютериутримуються сьогодні у багатьох побутових приладах, автомобілях (іноді по десятку в кожному), стільникових телефонах і т. п. Найчастіше такий комп'ютер постійно виконує лише одну програму, що запускається після вмикання. І прості ігрові приставки - також спеціалізовані мікрокомп'ютери - можуть обходитися без ОС, запускаючи при включенні програму, записану на вставленому в пристрій «картриджі» абокомпакт-диску . Тим не менш, деякі мікрокомп'ютери та ігрові приставки все ж таки працюють під управлінням спеціальних власних ОС. У більшості випадків, це UNIX-подібні системи (останнє особливо вірно щодо програмованого комутаційного обладнання:файрволів, маршрутизаторів).

Основні ідеї ОС

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

У 1950 – 60-х роках сформувалися та були реалізовані основні ідеї, що визначають функціональність ОС: пакетний режим, поділ часу та багатозадачність, поділ повноважень, реальний масштаб часу, файлові структури тафайлові системи.

Функції ОС

Основні функції (найпростіші ОС):

§ Завантаження додатків до оперативної пам'яті та їх виконання.

§ Стандартизований доступ до периферійних пристроїв (пристрої введення-виводу).

§ Управління оперативною пам'яттю (розподіл між процесами,віртуальна пам'ять).

§ Управління доступом до даних на незалежних носіях (таких якжорсткий диск, компакт-диск і т. д.), організованим у тій чи іншійфайловій системі.

§ Користувальницький інтерфейс.

§ Мережеві операції, підтримка стеку протоколів.

Додаткові функції:

§ Паралельне або псевдопаралельне виконання завдань (багатозадачність).

§ Взаємодія між процесами: обмін даними, взаємна синхронізація.


§ Захист самої системи, а також даних користувача та програм від дій користувачів (зловмисних або за незнанням) або додатків.

§ Розмежування прав доступу та розрахований на багато користувачів режим роботи (автентифікація, авторизація).

Вбудовані програми

Вбудовані програми або firmware - це програми, "зашиті" у цифрові електронні пристрої.

Утиліти

Утиліти (англ. utilityабо tool) - програми, призначені на вирішення вузького кола допоміжних завдань.

Іноді утиліти відносять до класусервісного програмного забезпечення.

Утиліти використовуються для:

§ Моніторингу показників датчиків та продуктивності обладнання - моніторинг температур процесора, відеоадаптера; читання S. M.A. R.T. жорстких дисків;

§ Управління параметрами обладнання – обмеження максимальної швидкості обертання CD-приводу; зміна швидкості обертання вентиляторів.

§ Контролю показників - перевірка цілісності; правильності запису даних.

§ Розширення можливостей - форматування та/або перерозмітка диска із збереженням даних, видалення без можливості відновлення.

Типи утиліт

§ Дискові утиліти

¨ Дефрагментатори

¨ Перевірка диска - пошук неправильно записаних або пошкоджених різним шляхомфайлів та ділянок диска та їх подальше видалення для ефективного використання дискового простору.

¨ Очищення диска – видалення тимчасових файлів, непотрібних файлів, чищення «кошика».

¨ Розмітка диска - розподіл диска на логічні диски, які можуть мати різні файлові системи та сприйматися операційною системою як кілька різних дисків.

¨ Резервне копіювання- Створення резервних копій цілих дисків та окремих файлів, а також відновлення з цих копій.

¨ Стиснення дисків - Стиснення інформації на дисках для збільшення місткості жорстких дисків.

§ Утиліти роботи з реєстром

§ Утиліти моніторингу обладнання

§ Тести обладнання

§ асемблери - комп'ютерні програми, які здійснюють перетворення програми у формі вихідного тексту намові асемблерав машинні командияк об'єктного коду .

§ транслятори - програми або технічні засоби, які виконують трансляцію програми.

§ компілятори - Програми, що перекладають текст програми мовою високого рівня, в еквівалентну програму машинною мовою.

§ інтерпретатори - Програми (іноді апаратні засоби), що аналізують команди або оператори програми і тут же виконують їх

§ компонувальники (Редактори зв'язків) - програми, які виробляють компоновку - приймають на вхід один або кілька об'єктних модулів і збирають по ним модуль, що здійсниться.

§ препроцесори вихідних текстів - це комп'ютерні програми, що приймають дані на вході, і видають дані, призначені для входу іншої програми, наприклад, такий, як компілятор

§ Налагоджувач (debugger)- є модулем середовища розробки або окремим додатком, призначеним для пошуку помилок у програмі.

§ текстові редактори- комп'ютерні програми, призначені для створення та зміни текстових файлів, а також їх перегляду на екрані, виведення на друк, пошуку фрагментів тексту тощо.

§ спеціалізованіредактори вихідних текстів- текстові редактори для створення та редагування вихідного коду програм. Спеціалізований редактор вихідних текстів може бути окремим додатком, або вбудований в інтегроване середовище розробки (IDE).

§ бібліотеки підпрограм- Збірники підпрограм або об'єктів, що використовуються для розробки програмного забезпечення.

§ Редактори графічного інтерфейсу

Системи управління базами даних

Система управління базами даних (СУБД) - спеціалізована програма (частіше комплекс програм), призначена для організації та ведення бази даних.

Оскільки системи управління базами даних є обов'язковим компонентом обчислювальної системи, найчастіше їх відносять до системного програмного забезпечення. Часто СУБД здійснюють лише службову функцію під час роботи інших видів програм (веб-сервери, сервери додатків), тому не завжди можна віднести до прикладного програмного забезпечення. Тому СУБД іноді відносять до проміжного програмного забезпечення ( Middleware)

Основні функції СУБД

§ управління даними узовнішньої пам'яті (на дисках);

§ управління даними воперативної пам'ятіз використаннямдискового кешу;

§ журналізація змін, резервне копіюванняі відновлення бази данихпісля збоїв;

§ підтримка мов БД (мова визначення даних, мова маніпулювання даними).

Класифікація СУБД за способом доступу до БД

§ Файл-серверні

У файл-серверних СУБД файли даних розташовуються централізованофайл-сервері . Ядро СУБД розміщується кожному клієнтському комп'ютері. Доступ до даних здійснюється через локальну мережу. Синхронізація читань та оновлень здійснюється за допомогою файлових блокувань. Перевагою цієї архітектури є низьке навантаження на ЦП сервера, а недоліком – високе завантаження локальної мережі.

На даний момент файл-серверні СУБД вважаються застарілими.

Приклади: Microsoft Access, Paradox, dBase.

§ Клієнт-серверні

Такі СУБД складаються з клієнтської частини (яка входить до складу прикладної програми) та сервера

Приклади: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, Лінтер, MDBS.

§ Вбудовувані

Вбудована СУБД -бібліотека яка дозволяє уніфікованим чином зберігати великі обсяги даних на локальній машині.

Приклади: OpenEdge, SQLite, BerkeleyDB , Один з варіантів Firebird , Один з варіантів MySQL, Sav Zigzag, Microsoft SQL Server Compact, Лінтер.

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

До прикладного програмного забезпечення (application software) відносятьсякомп'ютерні програми, написані для користувачів або користувачами, для завдання комп'ютера конкретної роботи. Програми обробки замовлень або створення списків розсилки – приклад прикладного програмного забезпечення. Програмістів, які пишуть прикладне програмне забезпечення називають прикладними програмістами.

Класифікація

По типу

§ програмні засоби загального призначення

§ Текстові редактори

§ Системи комп'ютерної верстки

§ Графічні редактори

§ СУБД

§ програмні засоби спеціального призначення

§ Експертні системи

§ Мультимедіа програми (Медіаплеєри , програми для створення/редагування відео, звуку, Text-To-Speech та ін.)

§ Гіпертекстові системи ( Електронні словники, енциклопедії, довідкові системи)

§ Системи керування вмістом

§ програмні засоби професійного рівня

§ САПР

§ АРМ

§ АСУ

§ АСУ ТП

§ АСНІ

§ Геоінформаційні системи

§ Білінгові системи

§ CRM

За сферою застосування

§ Прикладне програмне забезпечення підприємств та організацій. Наприклад, фінансове управління, система відносин із споживачами, мережа постачання. До цього типу відноситься також відомче ПЗ підприємств малого бізнесу, а також ПЗ окремих підрозділів усередині великого підприємства. (Приклади: Управління транспортними витратами, Служба IT підтримки)

§ Програмне забезпечення забезпечує доступ користувача до пристроїв комп'ютера.

§ Програмне забезпечення інфраструктури підприємства Забезпечує загальні можливості підтримки ПЗ підприємств. Це системи управління базами даних, сервери електронної пошти, управління мережею та безпекою.

§ Програмне забезпечення інформаційного працівника. Обслуговує потреби індивідуальних користувачів у створенні та управлінні інформацією. Це, як правило, управління часом, ресурсами, документацією, наприклад,текстові редактори, електронні таблиці, програми-клієнти дляелектронної поштита блогів, персональні інформаційні системи та медіа редактори.

§ Програмне забезпечення доступу до контенту. Використовується для доступу до тих чи інших програм або ресурсів без їх редагування (проте може включати функцію редагування). Призначений для груп або індивідуальних користувачів цифрового контенту. Це, наприклад,медіа-плеєри, веб-браузери , допоміжні браузери та ін.

§ Освітнє програмне забезпечення за змістом близьке до ПЗ для медіа та розваг, проте на відміну від нього має чіткі вимоги щодо тестування знань користувача та відстеження прогресу у вивченні того чи іншого матеріалу. Багато освітніх програм включають функції спільного користування та багатостороннього співробітництва.

§ Імітаційне програмне забезпечення. Використовується для симуляції фізичних чи абстрактних систем з метою наукових досліджень, навчання чи розваги.

§ Інструментальні програмні засоби в області медіа. Забезпечують потреби користувачів, які виробляють друковані чи електронні медіа ресурси для інших споживачів, на комерційній чи освітній основі. Це програми поліграфічної обробки.верстки , обробки мультимедіа,редактори HTML , редактори цифрової анімації, цифрового звуку та ін.

§ Прикладні програми для проектування та конструювання. Використовуються при створенні апаратного («Залізо») та програмного забезпечення. Охоплюютьавтоматизований дизайн(computer aided design - CAD), автоматизоване проектування (computer aided engineering - CAE), редагування та компілювання мов програмування, програмиінтегрованої(Integrated Development Environments), інтерфейси для прикладного програмування (Application Programmer Interfaces).

Пропрієтарне програмне забезпечення( англ. proprietarysoftware; відproprietary - приватне, патентоване, у складі власності http://ua. Wikipedia. org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0 %BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_ %D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-slov-0 іsoftware - програмне забезпечення) -програмне забезпечення, що є приватною власністю авторів або правовласників та не задовольняєкритеріям вільного ПЗ(наявностівідкритого програмного кодунедостатньо).Правовласникпропрієтарного ПЗ зберігає за собоюмонополію на його використання, копіювання та модифікацію, повністю або у суттєвих моментах. Зазвичай пропрієтарним називають будь-яке невільне ПЗ, включаючи напіввільне.

Невільне ПЗ, яке дозволяє практично необмежене використання, розповсюдження та зміну (у тому числі з розповсюдженням змінених версій) ПЗ у некомерційних цілях.

Вільне програмне забезпечення

Вільне програмне забезпечення (СПО)- широкий спектр програмних рішень, в яких права користувача(«свободи») на необмежену установку, запуск, а також вільне використання, вивчення, поширення та змін(Удосконалення) http://ua. Wikipedia. org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0 %BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81 %D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-gnu. org-0 програм захищено юридичноавторськими правамиза допомогою вільних ліцензій. Зазвичай, СПО доступне без будь-якої оплати, але може мати ціну, наприклад, у формі стягування плати за компакт-диски або інші носії. Щоб розповсюджуване ПЗ було вільним, одержувачам повинні бути доступні його вихідні коди, з яких можна отримати файли, що виконуються, з відповідними ліцензіями.

Рух СПО зародився 1983 року, колиРічард Столлман сформував ідею про необхідність дати програмну свободу (англ. softwarefreedom) користувачам. У 1985 році Столлман заснувавФонд вільного програмного забезпечення, щоб забезпечити організаційну структуру просування своєї ідеї.

Бізнес-моделі СПО зазвичай засновані на принципі розширення можливостей, наприклад нові об'єкти застосування, навчання, інтеграція, налаштування або сертифікація. В той же час, деякі бізнес-моделі, які працюють із пропрієтарним програмним забезпеченням, не сумісні з вільним програмним забезпеченням, особливо ті, що змушують користувачів платити за ліцензію, щоб законно використовувати програмний продукт.

§ Програму можна вільно використовувати з будь-якою метою (« нульова свобода»).

§ Можна вивчати, як програма працює, та адаптувати її для своїх цілей (« перша свобода»). Умовою є доступність вихідного тексту програми.

§ Можна вільно розповсюджувати копії програми – на допомогу товаришу (« друга свобода»).

§ Програму можна вільно покращувати і публікувати свою покращену версію - для того, щоб принести користь усьому спільноті (« третя свобода»). Умовою цієї третьої свободи є доступність вихідного тексту програми та можливість внесення до нього модифікацій та виправлень.

Можливість виправлення помилок та покращення програм - найважливіша особливість вільного та відкритого програмного забезпечення, що просто неможливо для користувачів закритих приватних програм навіть при виявленні в них помилок та дефектів, кількість яких, як правило, невідома нікому.

Тільки програма, що задовольняє всім чотирьом переліченим принципам, може вважатися вільною програмою, тобто гарантовано відкритою і доступною для модернізації та виправлення помилок і дефектів, що не має обмежень на використання та розповсюдження. Потрібно підкреслити, що ці принципи обговорюють лише доступністьвихідних текстів програм для загального використання, критики та поліпшення, та права користувача, що отримав здійсненний або вихідний код програми, але ніяк не обумовлюють пов'язані з розповсюдженням програм грошові відносини, у тому числі не припускають і безплатності. В англомовних текстах тут часто виникає плутанина, оскільки слово «free» англійською означає не лише «вільне», а й «безкоштовне», і нерідко вживається стосовнобезкоштовне програмне забезпечення, яке розповсюджується без стягнення плати за використання, але недоступне для зміни спільноти, тому що її вихідні тексти не опубліковані. Таке безкоштовне ПЗ зовсім не є вільним. Навпаки, вільне ПЗ цілком можна розповсюджувати (і розповсюджують), стягуючи при цьому плату, проте дотримуючись при цьому критеріїв свободи: кожному користувачеві надається право отримати вихідні тексти програм без додаткової плати (за винятком ціни носія), змінювати їх та поширювати далі. Будь-яке програмне забезпечення, користувачам якого не надається такого права, є невільним – незалежно від будь-яких інших умов.

Відкритий доступ до вихідних текстів програм є ключовою ознакою вільного програмного забезпечення, тому запропонований трохи пізнішеЕріком Реймондомтермін «open source software» (ПЗ з відкритим вихідним текстом) деяким навіть більш вдалим для позначення даного феномену, ніж спочатку запропонованийСтоллманом "free software". Столлман наполягає на відмінності цих двох понять, тому що слова «open source» вказують лише на наявність одного, не найважливішого (хоча і необхідного для реалізації двох із чотирьох свобод), на його думку, з властивостей, властивих вільному ПЗ – можливості побачити вихідний код.

Відкрите програмне забезпечення( англ. open-sourcesoftware) - програмне забезпеченняз відкритимвихідним кодом . Вихідний код таких програм доступний для перегляду, вивчення та зміни, що дозволяє користувачеві взяти участь у доопрацюванні самоївідкритої програми , використовувати код для створення нових програм та виправлення в них помилок - через запозичення вихідного коду, якщо це дозволяє сумісність ліцензій, або через вивчення використаних алгоритмів, структур даних, технологій, методик та інтерфейсів (оскільки вихідний код може суттєво доповнювати документацію, а за відсутності Такий сам служить документацією).

Термін opensource(Англ. відкрите програмне забезпечення) був створений разом із визначенням у 1998 році Еріком Реймондомі Брюсом Перенсом , які стверджували, що термін freesoftware (вільне програмне забезпечення ) в англійській мові неоднозначний і бентежить багатьох комерційних підприємців.

Переважна більшість відкритих програмє одночасно вільними. Визначення відкритого та вільного програмного забезпечення не повністю збігаються один з одним, але близькі, і більшість ліцензій відповідають обом.

Відмінність між рухами відкритого ПЗ та вільного ПЗ полягає в основному у пріоритетах. Прихильники терміна «open source» наголошують на ефективності відкритих вихідних джерел як методу розробки, модернізації та супроводу програм. Прихильники терміна free software вважають, що саме права на вільне поширення, модифікацію та вивчення програм є головною перевагою вільного відкритого ПЗ.

Існують програми, що мають відкритий вихідний код, але не є вільними, наприклад UnRAR, розпакувальник RAR-архівів. Його вихідний код знаходиться у відкритому доступі, але ліцензія забороняє використовувати його для створення RAR-сумісних архіваторів. Також існує цілий клас програм, званих комерційним ПЗ з відкритим вихідним кодомабо Open Core, які використовують термін «Open Source» стосовно невільного програмного забезпечення.

Вихідні коди відкритих програм випускаються або як громадські надбання, або за умов «вільних» ліцензій - як, наприклад, GNU General Public License або BSD License . Вільна ліцензіядозволяє використовувати вихідний код програми для своїх потреб із мінімальними обмеженнями, що не суперечать визначенню OpenSource. org. Таким обмеженням може бути вимога посилатися на попередніх творців або вимога зберігати властивість відкритості при подальшому поширенні тієї ж чи модифікованої відкритої програми (копілефт). У деяких випадках (наприклад, Apache або FreeBSD ) ці обмеження дуже малі, в інших (наприклад, GNU General Public License ) достатньо поширювати програмне забезпечення разом з вихідним кодом та текстом ліцензії, не змінюючи її.

Якими б "розумними" не були електронно-обчислювальні машини або персональні комп'ютери, але вони залишаться марним "шматком заліза", якщо в них не завантажено програмне забезпечення. Саме воно змушує їх працювати, виконуючи певні дії: робити розрахунки, виводити на екран текст, картинки та відео, видавати звуки та програвати музику, а також керувати іншими пристроями. Усі дії, які виконує комп'ютер, він виконує за певною програмою, розробленою йому людиною, а сукупність таких програм керувати електронно-обчислювальними засобами і називається програмним забезпеченням.

Концепція програмного забезпечення

По суті, програма складається з кроків, послідовно виконуючи які, ПК робить ті, або інші дії, наприклад, приймає від користувача символи, що вводяться з клавіатури, і виводить їх на екран, змушує принтер друкувати текст на паперовому аркуші тощо. таких кроків кодується спеціальною машинною мовою і називається «командою», а сукупність таких команд - програмним кодом.

Вперше, ідею того, що будь-який, наперед заданий стан системи може бути досягнутий, послідовним виконанням елементарних команд, що перекладає її з одного стабільного стану в інший, запропонував англійський математик на ім'я Алан Т'юрінг. У своєму есе "Computable numbers with an application to the Entscheidungsproblem (Decision problem)"він створив теоретичну модель, що являла собою абстрактну машину (автомат), здатну виконувати елементарні дії та, що переводила її з одного фіксованого стану в інший фіксований стан. В результаті автоматично могли виконуватися найпростіші, рудиментарні операції. Такий автомат, згодом, отримав у літературі назву – «машина Тюрінга». Головна ідея полягала в математичному доказі того, що будь-який, заданий наперед стан цього автомата можна досягти, виконуючи кінцевий набір певних команд, з фіксованого набору (програми). Завдяки цій теорії, згодом, і народилася така (якщо так можна сказати) наука, як програмування.

Таким чином, програмісти – люди, які розробляють програмне забезпечення, по суті, керують персональним комп'ютером за допомогою написаних ними програмних кодів, змушуючи його зчитувати знаки, що вводяться з клавіатури, програвати музику, відтворювати відеофільми і т.п.

Види програмного забезпечення

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

Виникає резонне питання: «Чому ж не можна запустити кожну з програм самостійно, минаючи цю операційну систему, якщо програма – це набір кодів, за допомогою яких можна керувати комп'ютером?»

Насправді - звичайно можна, і таке теж практикується, наприклад, у верстатах з ЧПУ (числовим програмним управлінням), в автоматах на виробництві тощо, але є кілька моментів, через які і були розроблені ці самі операційні системи для персональних комп'ютерів і навіть великих ЕОМ.

Справа в тому, що коли йдеться про стандартний автомат – він виконує набір простих послідовних операцій, наприклад, висунути маніпулятор, взяти заготовку, повернутись, покласти заготовку на потрібне місце. Далі операція повторюється. Весь час автомат виконує одні й ті самі дії по одній і тій самій, одній програмі.

У випадку ж з ПК користувач хоче не тільки, наприклад, малювати в завантаженій програмі, він хоче одночасно з цим слухати музику, бути, як це прийнято сьогодні говорити, «на зв'язку» з близькими та друзями, тобто в один і той а момент часу працювати не з однією, а з кількома програмами одночасно.

Крім цього, є ще один суто практичний момент. Розробляючи програму для ПК, яка могла б працювати самостійно без операційної системи, довелося б усі функції роботи з обладнанням комп'ютера описувати в одній програмі: читання та запис на диск, введення-виведення з клавіатури, роботу з монітором тощо. Великі часові витрати, великий обсяг ПЗ, залежність від апаратної платформи, наявність великої кількості помилок і ще цілий ряд негативних моментів.

Операційна система бере на себе більшість подібних «рутинних» операцій, забезпечуючи при цьому «багатозадачність». Тобто користувач може запустити та виконувати на своєму персональному комп'ютері не одну, а одразу кілька програм одночасно.

Таким чином, все програмне забезпечення можна умовно поділити на три види:

  1. Системне ПЗ;
  2. Прикладне ПЗ;
  3. Інструментальне ПЗ.

Системне програмне забезпечення

Це сукупність програм, які забезпечує управління апаратною частиною ПК: процесором, оперативною пам'яттю, пристроями вводу-виводу, графічними системами, мережевими пристроями і т. д. Зокрема, до такого ПЗ належать:

  • Операційні системи;
  • Драйвери- невеликі за розміром програми, що забезпечують коректну роботу з тією чи іншою частиною обладнання (графічними, мережевими, звуковими платами, контролерами тощо);
  • Додаткові програми, що розширюють можливості операційної системи

Основною відмінністю системного програмного забезпечення від інших його видів є те, що воно не націлене на виконання будь-яких практичних чи специфічних завдань. Воно лише забезпечує правильну роботу інших програм, є своєрідним «прошарком» між обладнанням комп'ютера з одного боку та програмним кодом користувача з іншого, забезпечуючи їхню коректну взаємодію.

Прикладне програмне забезпечення

Цей клас найширший. Саме до нього і належить більшість програм, які ми використовуємо у своєму повсякденному житті. Браузери, програвачі аудіо та відеофайлів, графічні та текстові редактори, антивірусні пакети, бухгалтерські та інші програми, що виконують різні розрахунки та обчислення – все це, як і багато програм, розроблених для виконання конкретних дій, функцій та завдань користувача носить назву прикладного програмного забезпечення.

Інструментальне ПЗ

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

Основною функцією для програм інструментального ПЗ є надання можливості з проектування, створення, налагодження та супроводження програмного коду, тобто по суті - це різні середовища програмування: компілятори з мов високого рівня, відладники, редактори та ін.

Справа в тому, що будь-який комп'ютер, будь-який обчислювальний цифровий пристрій наших з вами слів «не розуміє». Такі пристрої працюють зі своєю «машинною мовою» двійковим кодом. Але програмування безпосередньо в «машинний код» є певними труднощами для написання програм. Тому і було розроблено спеціалізоване програмне забезпечення, яке переводить простіші для розуміння слова програмних «мов високого рівня» в «машинний код». Такі програми отримали назву компіляториі інтерпретатори.

Різниця полягає в тому, що компілятор дозволяє отримати готовий до виконання файл, а інтерпретатор, файл, який можна запустити на комп'ютері лише за допомогою його самого. До речі, написаний текст програми, що містить команди мовою високого рівня, отримав назву "вихідний код"(На комп'ютерному сленгу - "вихідник").

Задля справедливості слід зазначити, що файли програм містять машинний код не в «двійковій», а як правило, в «шістнадцятковій» системі обчислення. А спеціальна системна програма, вбудована в операційну систему - "командний процесор", "переведе" "шістнадцятковий" код в "двійковий". Зроблено це для того, щоб скоротити розмір програмних файлів, тому що «шістнадцяткова» форма запису набагато компактніша.

Поширення програмного забезпечення

Розповсюдження будь-якого програмного забезпечення супроводжують спеціальним документом, в якому чітко обумовлені всі права та обов'язки сторін, які передають та використовують це ПЗ.

За способом використання та розповсюдження всі ПЗ умовно поділяють на:

  1. Безкоштовно поширювані програми. Як правило, їх можна вільно копіювати та розповсюджувати абсолютно безкоштовно. Розповсюджувач при цьому може стягувати плату, але не за саме програмне забезпечення, а, наприклад, за послуги запису на носій, канал передачі даних тощо;
  2. ВО, що вільно розповсюджується. Як і у випадку з «безкоштовним» грошей за такі програми ніхто не стягує, але основною відмінністю від першого є можливість вносити зміни в програмний код і поширювати нові версії отриманого ПЗ разом зі своїми змінами. Таким чином, «вільне» ПО поширюється разом із вихідним кодом;
  3. Відкрите ПЗ. ПО умовам ліцензії обов'язково поширюється з відкритим вихідним кодом;
  4. Закрите ПЗ. Є приватною власністю своїх авторів і поширюється на певних умовах. Це може бути як грошова винагорода, так і інші види винагород не суперечать законодавству, які розробник може вимагати за його використання. Наприклад, це може бути умовно безкоштовне поширення, у якому для можливості використання програми потрібно пройти реєстрацію на сайті. Зазвичай поширюється без вихідних кодів.

Висновок

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

Знання та вміння працювати з ПЗ – обов'язкова умова для будь-якого користувача, в іншому випадку навіть легка проблема, яка вирішується за п'ять хвилин вводитиме в ступор і призводитиме не тільки до втрати часу, але й коштів.