Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ISTE.doc
Скачиваний:
617
Добавлен:
08.02.2016
Размер:
3.81 Mб
Скачать

2.4. Ліцензування програмного забезпечення

У європейській культурі довго вироблялися правила власності по відношенню до матеріальних цінностей. Логічним є те, що ці правила розповсюдилися і на нематеріальні цінності, зокрема і програмні продукти (коли вони почали представляти самостійну цінність). Однак у програмних продуктів є принципова відмінність від матеріальних об’єктів – їх можна легко копіювати. Створення ж копії матеріального продукту часто майже рівноцінне затратам на створення оригіналу. Із-за вказаної відмінності для програмного забезпечення не діє принцип „користуватися однією річчю одночасно може тільки одна людина“ (і її використання кимось іншим автоматично наносить шкоду власнику із-за неотримання блага від неї). Тому спроба закріпити право використання програми за однією людиною інтуїтивно сприймається як така, що протирічить природі речей. Не дивно, що при такому штучному, силовому насадженні виникає багато неузгоджень, які приходиться вирішувати штучними, а часто і протиприродними методами.

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

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

Однак з часом ситуація змінилася і програмне забезпечення стало товаром. У ситуації, коли програмне забезпечення є об’єктом продаж, на нього розповсюджуються не тільки закони наукової розробки, а й властивості матеріальних предметів, якими можна торгувати, обмінюватися, право володіння і використання яких потрібно охороняти законодавчо. Так програмне забезпечення потрапило до розряду інтелектуальної власності: вихідний текст програми став розглядатися як твір, об’єкт застосування авторського права. Для захисту своїх інтересів виробники комп’ютерів та програмного забезпечення використовують ліцензії – вид договору між власником авторських прав та користувачем (покупцем) програмного забезпечення. Питання ліцензування програмного забезпечення, що використовується на підприємствах та в організаціях останнім часом набуває все більшого значення. Це, в першу чергу зумовлено значними зусиллями, які роблять державні органи влади для боротьби з використанням піратського програмного забезпеченням. Також важливого значення набуває широке розповсюдження безкоштовного програмного забезпечення, яке в багатьох випадках може повноцінно замінити комерційні аналоги програм. Усі форми розповсюдження програмного забезпечення можна умовно поділити на ряд великих груп: комерційне програмне забезпечення, вільне програмне забезпечення, напіввільне програмне забезпечення, пропрієтарне програмне забезпечення, відкрите програмне забезпечення. Хоча такий поділ є досить умовним і багато програм можуть одночасно входити до кількох із цих груп.

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

Багато людей помилково вважають комерційне та вільне програмне забезпечення протилежностями. Проте відмінності між цими двома видами розповсюдження програмного забезпечення не настільки критичні, як може здатися на перший погляд. Адже вільним програмне забезпечення вважається з того моменту, коли автор надає права на вільну модифікацію, розповсюдження та отримання прибутку від свого продукту. З цього слідує, що вільні програми можуть бути і комерційними продуктами. Гарним прикладом комерційних програм, що відносяться до розряду вільних є операційні системи на основі GNU/Linux.

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

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

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

Demoware (trialware) – демонстраційна версія комерційного програмного забезпечення, яке розповсюджується безкоштовно і має певні обмеження функціональності, порівняно з основною версією.

Найчастіше такі програми мають наступні обмеження:

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

  • обмеження функціональних можливостей, порівняно з повноцінною версією;

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

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

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

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

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

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

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

Як уже зазначалося раніше, з самого початку все програмне забезпечення було відкритим, але з часом воно стало товаром. Така ситуація не подобалася одному із співробітників Масачусетського технологічного інституту, Річарду Столману. Він вважав недопустимим порушення відкритого наукового процесу розробки програмного забезпечення. Задля пошуків однодумців Річард Столман створив некомерційну організацію „Фонд вільного програмного забезпечення“ [79], основною задачею якого стало збереження програмного забезпечення, процес розробки якого завжди буде гарантовано відкритим, а вихідні тексти завжди доступними. Більш масштабною задачею фонду є розробка операційної системи, яка повністю складається з відкритого програмного забезпечення. Фонд вільного програмного забезпечення ділить не вільне програмне забезпечення на напіввільне (таке, яке відрізняється від вільного тільки забороною на комерційне використання) та пропрієтарне (яке не має усіх свобод, навіть якщо дозволене комерційне його використання.

Для збереження моделі наукового співробітництва між розробниками необхідно було забезпечити щоб вихідні тексти програм, написаних розробниками, залишалися доступними для читання і критики усьому науковому суспільству із збереженням авторства. Для цього Річард Столман сформулював поняття „вільне програмне забезпечення“, в якому відобразилися принципи відкритої розробки програм в науковому суспільстві, які склалися в американських університетах в 1970 роки. Столман явно сформулював ці принципи, які іще називають критеріями вільного програмного забезпечення. Ці критерії обумовлюють ті права, які автори вільних програм передають будь-якому користувачу [Error: Reference source not found]:

  • програму можна вільно використовувати з будь-якою метою („нульова свобода“);

  • можна вивчати як працює програма і адаптувати її для своїх цілей („перша свобода“). Умовою цього є доступність вихідного тексту програми;

  • можна вільно розповсюджувати копії програми („друга свобода“);

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

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

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

Відкритий доступ до вихідних текстів програм є ключовою ознакою вільного програмного забезпечення. У зв’язку з цим запропонований дещо пізніше Еріком Реймондом [Error: Reference source not found] термін “open source software” (програмне забезпечення з відкритим вихідним текстом) іноді вважається навіть більш вдалим, ніж запропонований Столманом “free software”.

Після декларації критеріїв вільного програмного забезпечення, члени фонду вільного програмного забезпечення стали розповсюджувати свої програми відповідно до цих принципів, ніяк не оформляючи це документально: спочатку вільні програми розповсюджувалися взагалі без ліцензії. Проте прецедент, який відбувся з самим Річардом Столманом запевнив його у тому, що документальне оформлення є необхідним для вільного програмного забезпечення. Річард Столман займався розробкою текстового редактору Emacs на основі вихідних текстів Джеймса Гослінга. Тоді Гослінг вільно роздавав свої вихідні тексти усім зацікавленим. Проте в якийсь момент Гослінг продав права на розповсюдження Emacs компанії UniPress після чого компанія попросила Столмана припинити розповсюдження його версії Emacs, оскільки права належать їй. Цей інцидент вимусив Столмана переписати заново ті частини вихідного тексту Emacs, які тепер належали UniPress, після чого він розробив власну ліцензію на своє програмне забезпечення.

Ліцензія, сформульована Столманом, повинна була працювати так само, як і ліцензії на не вільне програмне забезпечення: це типовий договір автора програми (власника авторських прав) з користувачем, у якому автор, крім іншого, обумовлює права користувача по відношенню до програми. На відміну від типової ліцензії, ліцензія Столмана надає користувачу права, які є критеріями вільної програми: отримувати вихідні тексти програм, змінювати їх, розповсюджувати змінені та не змінені версії. Пізніше ліцензія Столмана отримала назву GNU General Public License, скорочено GNU GPL або просто GPL [Error: Reference source not found]. Термін GNU є рекурсивним акронімом (GNU is Not Unix).

В цій генеральній ліцензії обумовлюється також принципова для Столмана захисна умова розповсюдження вільного програмного забезпечення: ні один користувач, який створив модифіковану версію вільної програми не має права розповсюджувати її не дотримуючись усіх принципів вільного програмного забезпечення – робити модифікацію вільної програми не вільною. Для того, щоб підкреслити відмінність такої ліцензії від звичайних ліцензій на не вільне програмне забезпечення на противагу терміну copyright було придумано термін copyleft – гра слів, що базується на значеннях англійських слів right та left. Дія copyleft базується на тому, що похідні роботи в більшості випадків наслідують ліцензії своїх складових. Якщо в програмі використовується невелика частина стороннього коду під GPL, то вся програма і її похідні повинні розповсюджуватися під GPL. При цьому в ліцензії GPL є розділ, який дозволяє вимагати збереження в коді імен усіх авторів, забороняти використання цих імен в рекламі, попереджувати про зареєстровані товарні марки і т.п., що дозволяє комбінувати роботи під GPL з роботами під багатьма вільними, але не copyleft ліцензіями (наприклад, деякими із ліцензій BSD), не створюючи значних обмежень, і не порушуючи ліцензії – але похідні від результату, які є похідними від GPL, уже не можуть (без окремого дозволу правовласників) розповсюджуватися на умовах не copyleft ліцензії без дотримання умов GPL – в тому числі і як невід’ємна частина не вільного програмного забезпечення. З цієї причини прихильники не вільного програмного та інші противники copyleft-ліцензії, подібні GNU GPL, називають також „вірусними ліцензіями“: вони немов би „заражають“ програму, стаючи її невід’ємною частиною.

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

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

Користувач вільно розповсюджуваної програми не отримує разом з нею ніяких гарантій: автор зробив її вихідний код відкритим для суспільства, але при цьому не взяв на себе обов’язків пояснювати усім як працює програма. Хоча заради справедливості слід зазначити, що будь-яка не вільна програма в 99% випадків також надається без гарантій. Оскільки співтовариство користувачів більшості програм розподілене по всьому світі, для організації взаємодії в ньому найактивніші користувачі організовують списки розсилки, форуми та інші засоби спілкування в Інтернет.

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

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

Для простого і впорядкованого прийому та перенаправлення повідомлень про помилки використовуються служби відслідковування помилок (Bug Tracking System), найвідоміші з яких розроблені учасниками великих проектів для себе, а завдяки вільним ліцензіям використовуються повсюдно, наприклад: GNUTS (розроблено в GNU), Bugzilla (Mozilla Foundation), JitterBug (проект Samba), Debian BTS. Більш ранні версії систем відслідковування помилок орієнтувалися на електронну пошту, а більш пізні зазвичай використовують Web-інтрефейс.

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

Пересилати автору виправлений повний текст програми непрактично: він може бути дуже великим і автору буде складно розібратися у внесених змінах. Для полегшення і автоматизації процесу внесення виправлень, в 1984 році Ларрі Уолл розробив утиліту patch („латка“) [Error: Reference source not found], яка у формалізованому, але добре зрозумілому людині вигляді описує операції редагування, які потрібно здійснити для отримання нової версії тексту програми. З появою цієї утиліти користувач, який виявив і виправив помилку у програмі, міг прислати автору невеликий файл, за яким автор міг зрозуміти які ж зміни пропонуються і автоматично застосувати їх до свого проекту. З появою утиліти patch значно більше користувачів стало включатися в розробку програм із доступним вихідним текстом. Файли-латки з виправленням є обов’язковим атрибутом сучасної розробки вільних програм.

Якщо користувачу програми не вистачає у ній якоїсь функції, то при відповідній кваліфікації він повністю може запрограмувати її сам і включити у вихідний текст програми, або замовити цю роботу іншому. Зрозуміло, що йому вигідно, щоб це доповнення потрапило в авторський варіант програми (його називають upstream) і з’явилося в усіх наступних версіях. Для цього створене доповнення можна так само оформити у вигляді patch і вислати автору. Такої можливості не має користувач не вільної програми, навіть якщо він є достатньо кваліфікованим. Єдиним способом включити в програму потрібну йому функцію є звертання до виробника з відповідним проханням і надіятися, що виробник згодиться з тим, що запропонована функція є дійсно необхідною.

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

Написати велику програму одному розробнику досить складно і навіть не завжди можливо, особливо якщо автор займається цим у вільний від основної роботи час. Більшість сучасних вільних програм створюється групою розробників. Навіть якщо програму починала писати одна людина, і вона виявилася цікавою, до розробки можуть приєднатися активні користувачі. Для того, щоб вони могли не тільки вносити окремі виправлення, а й вести спільну розробку, потрібні спеціальні засоби. Крім утиліти patch для організації спільної розробки програмного забезпечення застосовуються системи контролю версій. Функції системи контролю версій полягають в тому, щоб організувати доступ до вихідних текстів програми для кількох розробників і зберігати історію усіх змін у вихідних текстах, дозволяючи приймати та відміняти зміни. Перша система контролю версій, RCS використовувалася ще на зорі розвитку вільного програмного забезпечення абонентами мережі Usenet, потім їй на зміну прийшла більш розвинута CVS, але сьогодні і вона вважається застарілою і все частіше заміняється Subversion, GNU Arch та іншими [80].

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

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

Місце вільних програм на сьогоднішньому ринку програмного забезпечення є дуже значним, і багато комерційних та державних організацій використовують вільне програмне забезпечення прямо чи опосередковано. Власне, опосередковано усі користувачі Інтернет використовують, наприклад, вільну програму BIND, що надає службу DNS. Багато організацій, зокрема ті, що надають послуги через мережу Інтернет, використовують вільний Web-сервер Apache, від роботи якого безпосередньо залежить їх прибуток, не говорячи уже про сервери на платформі Linux. Вигода від використання вільного програмного забезпечення є очевидною: за нього не потрібно платити, а якщо приходиться – воно коштує значно дешевше комерційних аналогів. Головним недоліком з точки зору комерційного користувача є те, що розробники вільних програм не несуть ніякої відповідальності за якість програми, крім моральної. Тому сьогодні великі корпорації, наприклад, Intel чи IBM, вважають за необхідне підтримувати проекти з розробки вільного програмного забезпечення, оплачуючи роботу співробітників, які працюють в рамках цих проектів.

Відкрите програмне забезпечення (open source software) – це програмне забезпечення з відкритим вихідним кодом.

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

Термін Open Source запропоновано в 1998 році Еріком Реймондом та Брюсом Персеном, які стверджували, що термін free software в англійській мові є неоднозначним і відлякує комерсантів [Error: Reference source not found]. Open Source є торгівельною маркою організації Open Source Initiative. Існує спеціальний комітет, який вирішує чи може ліцензія носити ім’я Open Source. Визначення відкритого та вільного програмного забезпечення не повністю співпадають одне з одним, але вони є близькими і більшість вільних ліцензій відповідає обом визначенням. Відмінності між відкритим та вільним програмним забезпеченням в основному лежать у пріоритетах. Прихильники терміну “open software” наголошують на ефективності відкритих вихідних текстів як методу розробки, модернізації та супроводу програм. Прихильники ж терміну “free software” вважають, що саме права на вільне розповсюдження, модифікацію та вивчення програм є головною перевагою вільного відкритого програмного забезпечення. Існують програми, які підпадають під поняття відкритих, але не є вільними, наприклад, UnRAR – розпаковщик RAR-архівів. Його вихідний код є у відкритому доступі, але ліцензія забороняє використовувати його для створення RAR-сумісних архіваторів [81].

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

Adware (advertisement – реклама; software – програмне забезпечення) – вид програмного забезпечення при використанні якого користувачу примусово показується реклама.

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

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

Термін було введено Джоном Брістором в 1987 році [82]. З того часу з’явилося досить багато варіантів ліцензії beerware.

Careware (care – турбота; software – програмне забезпечення) – вид умовно-безкоштовного програмного забезпечення, автор якого вимагає, щоб оплата за нього йшла на благодійність.

Для такого типу ліцензування іноді використовують термін charityware (charity – доброчинна діяльність). Автором концепції careware є Поль Лютус [83].

Donationware (donation – пожертвування) – модель ліцензування при якій користувачу надається повнофункціональне програмне забезпечення з можливістю зробити пожертвування розробнику.

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

Пропрієтарне програмне забезпечення (proprietary software) – програмне забезпечення, яке є приватною власністю авторів чи правовласників і яке не відповідає критеріям вільного програмного забезпечення (мова іде саме про свободу, а не про відкритість програмного забезпечення) і, з позиції Фонду вільного програмного забезпечення, при цьому не є напіввільним програмним забезпеченням [84].

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

Технічно термін „пропрієтарне“ означає програмне забезпечення, що має власника, який здійснює контроль над програмним забезпеченням. Таким чином, цей термін може бути використано стосовно усього програмного забезпечення, яке не перебуває у суспільному використанні. Фонд вільного програмного забезпечення використовує цей термін для виділення того, що власник є основним фактором, на відміну від вільного програмного забезпечення, де цим фактором є свобода комп’ютерних користувачів.

Не вільне програмне забезпечення, яке дозволяється практично необмежено використовувати, розповсюджувати та змінювати (в тому числі і з розповсюдженням змінених версій) з некомерційною метою, Фонд вільного програмного забезпечення називає напіввільним [Error: Reference source not found]. Як і Open Source Initiative, Фонд вільного програмного забезпечення вважає такі умови неприйнятними для вільного програмного забезпечення, але відрізняє напіввільне програмне забезпечення від пропрієтарного. Пропрієтарне програмне забезпечення та напіввільне програмне забезпечення разом називають не вільним програмним забезпеченням.

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

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

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

  • Обмеження на розповсюдження. Цей вид обмежень зазвичай супроводжує великі програмні проекти, коли правовласник вимагає оплати за кожну копію програми. Зазвичай з таким обмеженням використовуються програмні продукти, орієнтовані на вузький „професійний“ сегмент ринку та програмні продукти, які потрібні великій кількості користувачів. Прикладами можуть бути більшість програмних пакетів компаній Microsoft, Adobe тощо.

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

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

Безкоштовне програмне забезпечення (freeware) – це програмне забезпечення, ліцензійна угода якого не вимагає будь-яких виплат правовласнику.

Freware зазвичай розповсюджується у бінарному вигляді, без вихідних кодів і є пропрієтарним програмним забезпеченням. Важливо відрізняти freeware від вільного програмного забезпечення, яке надає кожному користувачу крім права на використання програмного забезпечення право на модифікацію та ряд інших прав [Error: Reference source not found]. На відміну від умовно-безкоштовного програмного забезпечення, freeware не передбачає ніякої оплати розробнику і, відповідно, ніяких додаткових послуг типу покращених версій тощо. Багато публікацій на тему програмного забезпечення пишуться англійською мовою, в якій терміни „вільне“ та „безкоштовне“ звучать однаково “free”, що часто приводить до плутанини у найменуваннях. Для вирішення цієї проблеми було введено термін freeware, а для іменування вільного і відкритого програмного забезпечення – термін Free and Open Source Software (FOSS). Проте Фонд вільного програмного забезпечення рекомендує іменувати вільне програмне забезпечення free software.

Легалізація програмного забезпечення – це відмова від „піратського“ програмного забезпечення, перехід від незаконного використання програмного забезпечення до використання програм з усіма необхідними ліцензіями, дозволами, правами.

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

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

Актуальність проблеми легалізації програмного забезпечення визначається рівнем „комп’ютерного піратства“. У зв’язку з цим легалізація програмного забезпечення є специфічною для країн, в яких з тих чи інших причин широко розповсюджене масове використання пропрієтарного комерційного програмного забезпечення без придбання відповідних ліцензій. До таких країн, на жаль, відноситься поки й Україна. В той же час слід розуміти, що країн, де 100% програмного забезпечення використовується легально взагалі не існує. Навіть у США біля 20% програм використовується незаконно [85]. У зв’язку з цим проблема легалізації програмного забезпечення є важливою і актуальною для усіх країн світу.

Легалізація програмного забезпечення до недавнього часу не була самостійною формою розповсюдження програмного забезпечення, а зводилася до використання чи комбінування уже відомих на ринку форм та способів. Ситуація змінилася після того, як деякі виробники почали пропонувати пакети легалізації, призначені для виконання ліцензування програм, що використовуються незаконно, без їх перевстановлення на комп’ютері. Зазвичай такі пакети легалізації доступні тільки у країнах з високим рівнем „комп’ютерного піратства“. Незважаючи на це, після появи таких пакетів стало можливим обґрунтовано говорити про легалізацію, як нову форму легітимного розповсюдження програмного забезпечення.