Особливості ліцензування програм
Перероблений текст, виправлені помилки
Введення в GNU / Linux
Як поширюються програми
Комп'ютерні програми створюються за допомогою різних мов програмування, які в даний час розвинені настільки, що нагадують природні. Програма такою мовою недоступна для "розуміння" апаратним забезпеченням комп'ютера (залізом). Тому для кожної мови програмування існують спеціальні програми - транслятори - здійснюють переклад тексту програми з мови програмування, на якому вона була написана програмістом, на мову обчислювальної машини. Команди, які розуміє і пише програміст, називаються вихідним кодом; команди, які видає транслятор, і які здатний виконати комп'ютер, називаються виконуваним (машинним) кодом.
З вищесказаного випливає, що програми можуть поширюватися в двох видах: у файлах з вихідним кодом і в файлах з виконуваним кодом. Для кінцевого користувача останній варіант може бути навіть більш зручним, тому що йому не треба встановлювати на комп'ютер спеціальну програму-транслятор і переводити код з одного виду в інший. Однак для інших програмістів може бути цікавий саме вихідний код. Вони можуть, вивчивши його, навчитися чомусь новому, поліпшити програму, запозичити частину коду для своєї програми і т.д. Ще років 30-40 тому, коли комп'ютери зустрічалися досить рідко, були великими і користувалися ними майже виключно фахівці, обмін вихідними кодами був переважним способом поширення програмного забезпечення (ПО).
Програмне забезпечення з закритим вихідним кодом
У процесі розвитку людського суспільства відкриття і розробки спочатку з'являються, а потім починають поширюватися по всій цивілізації. Поширенням нової технології займаються люди і організації, котрі переслідують ті чи інші цілі, найчастіше комерційні. Поширення технології повинно сприяти розвитку суспільства в цілому і цієї самої технології зокрема. Однак буває так, що комерційні інтереси починають переважати над загальнолюдськими. В такому випадку розвиток технології може штучно гальмуватися.
З початком широкого поширення комп'ютерів в 80-х роках, потреба в програмному забезпеченні різко зросла. З'явилося безліч постачальників ПО, бажаючих мати переваги один перед одним. «Як зробити так, щоб програми купували саме у нас?» Очевидно, треба робити хороші програми, в яких люди потребують. Але можна зробити акцент на тому, щоб зменшити ймовірність того, що хорошу, необхідну суспільству програму зробить інший. Перебільшуючи, можна уявити внутрішній діалог деяких організацій таким чином: «Якщо у мене є деяка програма, то я її нікому не покажу. Поки я буду її повільно і сяк-так покращувати, іншим фірмам потрібен час, щоб написати схожу. А ось якщо я всім покажу вихідні коди своєї програми, то раптом інша організація зробить мою програму краще і продасть більше. Мені невигідно і прикро. »Мабуть виходячи з таких міркувань і була сформована бізнес-модель, яка забороняє поширювати вихідні коди програм. Поширювалися тільки виконувані файли. Програмісти перестали ділитися між собою вихідними кодами (за власним бажанням або за наказом організації, де працювали). Зрозуміло, що закритість кодів гальмує розвиток ПО, і негативно відбивається на всьому суспільстві в цілому (ви не можете користуватися супертекстовим процесором сьогодні, хоча він міг би вже бути); але для окремої фірми або людини закритість кодів може забезпечити більшу вигоду.
Звичайно, фірми, що закривають коди своїх програм, зробили і хороше. Напевно, не тільки ці фірми, але вони в першу чергу активно вивчали ринок. Щоб продати більше, вони стежили за виникаючими в суспільстві потребами і швидко реагували, робили програми зручними і простими у використанні для непрофесіоналів.
Комп'ютерна програма - не матеріальний ресурс
Але вміле приховування коду - це навіть не проблема для фірм, що намагаються отримати вигоду будь-яким доступним способом. Є те, з чим вони боротися майже не в силах. Будь-яка комп'ютерна програма, по суті, є інформацією зі слабким матеріальним втіленням. Порівняйте. Щоб скопіювати реальний стіл, потрібно затратити стільки ж зусиль, скільки на конструювання оригіналу. Ніхто не буде, купивши стіл, копіювати його для одного. Простіше послати останнього в магазин. Виробник столів задоволений. З програмами все по-іншому. Отримавши копію навіть виконуваного файлу, людина може встановити його на сотні комп'ютерів, передати сотням людей, багато з них теж виявляться дуже добрими. А комп'ютерній фірмі не вигідно. Люди не купують у неї програми, а просять один у одного. Тому організації, що займаються розробкою пропрієтарного програмного забезпечення, паралельно з цим створюють ліцензії, що обмежують права користувача. Продаються саме ліцензії, а не ПО. Недотримання цих ліцензій є правопорушенням. Наприклад, купивши пропрієтарних комп'ютерну гру, зазвичай ви не маєте права встановлювати її на кілька комп'ютерів.
Часто в Web можна зустріти таке порівняння: комп'ютерна програма - це знання. Передача знань не може бути заборонена в суспільстві, т. К. Є важливим механізмом його існування. Наскільки правильно порівнювати програму зі знанням можливо покаже час. ПО зародилися не так вже давно, і можливо ми зараз переживаємо лише період його становлення.
Програми з відкритим вихідним кодом
Природно, коли ПО початок закриватися і заборонятися до поширення, з'явилися незгодні. Найвидатніший приклад, це Річард Столлман. Багато програмістів не ліцензували свої твори паперами, які забороняють їх поширення, і спокійно надавали вихідні коди спільноті. Такі програми ставали суспільним надбанням. Кожен міг взяти їх і використовувати на свій розсуд: для поліпшення, створення на їх основі чогось нового. Змінена поліпшена версія також могла стати суспільним надбанням, а могла і не стати. Людина, яка взяла за основу чиюсь програму, з відкритим вихідним кодом, внісши зміни, міг "закрити її від читання і поширення" який-небудь ліцензією. Це погано. Виявилося, що відкритості та свободи потрібен захист не в меншій мірі, ніж закритості та обмеженості. Отже, повинні були з'явитися ліцензії охороняють програмне забезпечення від перетворення його в закрите і невільний.
Найвідомішим прикладом копілефтной ліцензії є GNU GPL (GNU General Public License - Універсальна громадська ліцензія Гну). Ця ліцензія була розроблена в рамках GNU-проекту Р. Столлман.
Розробникам, що випускають свої програми під GNU GPL (як напевно і будь-яким іншим копілефту), гарантується, що
Переваги відкритого і вільного ПЗ
Можна відзначити наступні переваги програм, які розповсюджуються з відкритим вихідним кодом: