Слободна програмска опрема (англиски: free software) — програмска опрема што може да се користи, проучува и изменува без ограничувања, и што може да се копира и редистрибуира во изменета или неизменета форма без ограничувања или со минимални ограничувања, само за да може првичниот автор да биде сигурен дека понатамошните корисници исто така ќе можат да ги прават сите тие работи.
Вовед
Постојат официјални дефиниции за слободен софтвер и софтвер со отворен код (Free Software и open source software).
Сепак пред да ги дадеме дефинициите на слободниот софтвер/отворениот код, прво мало објаснување за компјутерскиот софтвер. Програмерите на софтвер создаваат компјутерски програми со пишување текст наречен 'изворен код' во специјализиран јазик. Овој изворен код најчесто механички се преведува во формат кој компјутерот може да го изврши. Сè додека програмата не треба да се смени (да речеме да поддржува нови потреби или да се користи на понов компјутер), на корисниците не им е потребен изворниот код. Сепак, за да може да се смени она што програмата го прави, потребно е поседување на изворниот код и дозвола да се промени изворниот код. Со други зборови, оној кој легално го контролира изворниот код, контролира што програмата може или не може да прави.
Корисниците кои го немаат изворниот код, не можат да ја променат програмата за таа да ги задоволува нивните (нови) потреби, ниту да исправат евентуални грешки - багови во програмата. Исто така не можат истата да ја пренесат на друг вид на компјутер.
Дефиниции
Дефинирање на слободниот софтвер
Дефиницијата на слободниот софтвер е објавена од Фондацијата Слободен Софтвер на Ричард Сталман. Еве го главниот текст од таа дефиниција:
"Слободниот софтвер" е прашање на слобода, не на цена. За да го разберете концептот треба да мислите на 'слободен говор' не на 'бесплатно пиво'. Слободниот софтвер е прашање на слободата на корисниците да го користат, копираат, дистрибуираат, изменуваат и подобруваат софтверот. Поточно се однеува на четири типа слободи за корисниците на софтверот:
- Нулта слобода: Слободата да го користиш софтверот за било која намена.
- Првостепена слобода: Слободата да го проучуваш работењето на програмата и истата да ја променуваш според потребите. Пристап до кодот е предуслов за ова.
- Второстепена слобода: Слободата да редистрибуираш копии за да му помогнеш на соседот.
- Третостепена слобода: Слободата да го подобруваш програмот, и да издаваш подобрувања во јавноста, со што целата заедница ќе извлече корист. Пристап до кодот е предуслов за ова.
Некоја програма е слободен софтвер ако корисниците ги имаат сите овие слободи. Така ќе бидеш слободен да редистрибуираш копии, со или без модификации, или гратис или по некоја цена, секому и секаде. Да бидеш слободен да ги правиш овие работи, значи (меѓу другите работи) дека не мора да прашуваш или плаќаш за дозвола. Исто така треба да имаш слобода да правиш модификации и да ги користиш приватно во твојата работа или игра, без да споменеш дека истите постојат. Ако ги објавиш твоите промени, не треба да известиш никого на никаков начин. Слободата да ја користиш програмата значи слобода за секоја личност или организација да ја користат истата на каков било компјутер, за секој вид на работа, и без да има потреба да се комуницира со програмерот или било кој друг одреден ентитет.
Тектстот кој го дефинира "слободниот софтвер" всушност е многу подолг и понатаму го објаснува пристапот. Наведува дека 'Слободниот софтвер не значи не-комерцијален. Слободната програма мора да биде достапна за комерцијална употреба, комерцијален развој и комерцијална дистрибуција. Комерцијалниот развој на слободниот софтвер повеќе не е необичен; таквиот слободен комерцијален софтвер е многу важен.'
Дефинирање на отворениот код
Софтверот со отворен код официјално е дефиниран од организацијата Иницијатива за отворен код (Open Source Initiative / OSI). Дефиницијата ја дава во вид на десет критериуми који го дополнуваат основниот предуслув на пристап кон изворниот код. Тие критериуми се:
- 1. Слободна редистрибуција
Лиценцата нема да ограничува никого од продавање или бесплатно делење на софтверот како компонента на агрегатна софтверска дистрибуција која содржи програми од различни извори. Лиценцата нема да бара надоместок или какво било друго плаќање за таквата продажба.
Програмата мора да содржи изворен код, и мора да дозволува дистрибуција во изворен код, исто како и во бинарна форма. Каде што некој проект не е дистрибуиран со изворен код, мора да постојат познати начини за добивање на кодот за не повеќе од разумна цена за репродукција, по можност со преземање од интернет без наплата. Изворниот код мора да биде претпочитаната форма во која програмерот ќе ја изменува програмата. Намерно криење на изворниот код не е дозволено. Форми на полупроизводи како што се излезите од препроцесори или преведувачи не се дозволени.
Лиценцата мора да дозволува модификации и дериватни работи, и мора да дозволува тие да бидат дистрибуирани под истите услови кои ги дозволува лиценцата на оригиналниот софтвер.
- 4. Интегритет на изворниот код на авторот
Лиценцата може да ограничи дистрибуирање на изворен код во изменета форма само ако лиценцата дозволува дистрибуција на 'пач податотеки' со изворен код за модифицирање на програмата во време на компајлирање. Лиценцата мора експлицитно да дозволи дистрибуција на софтвер изграден од изменет изворен код. Лиценцата може да бара дериватните работи да имаат различно име или број на верзија од оригиналниот софтвер.
- 5. Без дискриминација кон луѓе и групи
Лиценцата не смее да дикриминира луѓе или групи на луѓе.
- 6. Без дискриминација кон полиња на активност
Лиценцата не смее да спречи никого од користење на софтверот во одредено поле на активност. На примр, не смее да ја ограничи програмата од користење во бизнис, или во генетско истражување.
- 7. Дистрибуција на лиценцата
Правата закачени за програмата мора да важат за сите на кои програмата им е дистрибуирана, без потреба да се додава друга лиценца од нивна страна.
- 8. Лиценцата не смее да биде специфична за продукт
Правата закачени на програмата не смеат да зависта од тоа што програмата е дел од одредена софтверска дистрибуција. Ако програмата е биде оддрелена од таа дистрибуција, и ако се користи и дистрибуира во рамките на условите на нејзината лиценца, сите страни до кои програмата е редистрибуирана треба да ги имаат истите права како оние кои се дадени во оригиналната софтверска дистрибуција.
- 9. Лиценцата не смее да ограничува друг софтвер
Лиценцата не смее да дава ограничувања на друг софтвер кој се дистрибуира заедно со лиценцицираниот софтвер. На пример, лиценцата не смее да настојува сите други програми кои се дистибуираат на истиот медиум да бидат софтвер со отворен код.
- 10. Ниту една одредба од лиценцата не може да се заснова на било која поединечна технологија или стил на интерфејс.
Овие две дефиниции во практика значат иста работа. Всушност оние кои го воспоставија терминот 'отворен код' го опишуваат својот пристап како маркетинг пристап кон слободниот софтвер.
На дијаметрално спротивна страна од овие две се наоѓа неслободниот/затворениот софтвер (анг. proprietary). Водечки пример од оваа област е софтверот којшто го произведува софтверскиот гигант Microsoft.
Лиценци
Постојат дузини слободен софтвер/отворен код лиценци, но огромно мнозинство на софтвер користи четири главни лиценци:
- 1. ГНУ-ова општа јавна лиценца (GNU General Public License - GPL)
- 2. ГНУ-ова ограничена општа јавна лиценца (GNU Lesser General Public License - LGPL)
- 3. MIT (aka X11) лиценца, и
- 4. BSD-new лиценца.
Во 1999 година ГНУ-овата ограничена општа јавна лиценца ја има заменето ГНУ-овата библиотечна јавна лиценца (GNU Library General Public License).
Иницијативата за отворен код (OSI) ги нарекува овие лиценци класични отворен код лиценци. GPL и LGPL се наречени "copylefting" лиценци, бидејќи истите се дизајнирани за да спречат кодот да стане неслободен. Еве краток опис на овие лиценци:
GPL дозволува било кој да ја користи програмата и да ја променува, но забранува кодот да стане неслободен штом еднаш е дистрибуиран и забранува неслободните програми да се поврзуваат со него.
MIT и BSD-new лиценците дозволуваат било кој да прави скоро се со кодот, освен да го тужи авторот. Една мала компликација: всушност има две "BSD" лиценци, понекогаш наречени "BSD-old" и "BSD-new"; новите програми треба да ја користат BSD-new наместо BSD-old.
LGPL е компромис помеѓу пристапот на GPL и оној на MIT/BSD-new, и оригинално беше наменета за библиотеки со код. Како и GPL, LGPL-лиценциаранот софтвер не може да стане неслобден, но LGPL дозволува неслободни програми да се поврзуваат со библиотеката како што дозволуваат и MIT/BSD-new лиценците.
Сите овие лиценци (GPL, MIT, BSD-new, and LGPL) дозволуваат комерцијална продажба и комерцијално користење на софтверот, и многу такви програми се продааат и користат на таков начин.
Најпопуларна од слободен софтвер/отворен код лиценците е GPL. На пример Freshmeat.net на 4 април 2002 извести дека 71.85% од 25,286 софтверски пакети кои ги следи се лиценцирани под GPL (следните две се LGPL, 4.47%, и BSD лиценцата, 4.17%). Sourceforge.net на 4 април 2002 извести дека GPL се наоѓа кај 73% од 23,651 "отворен код" проекти кои се хостирани таму (следните по популарност беа LGPL, 10%, и BSD лиценцата, 7%).
Дополнителни информации за сите лиценци може да се најдат на gnu.org.
Во случај некои од вас да не ги разбраа горните дефиници и лиценци или пак во случај да се прашувате зошто ви е потребен пристап до кодот на софтверот кога не сте програмери, еве дополнително објаснување:
Отворениот код му дава можност на корисникот да ја контролира технологијата во која тој инвестира. Најдобра аналогија која ја илустрира оваа можност е начинот на кој купуваме автомобили. Само прашајте го прашањето: 'Дали би купиле автомобил со залепена хауба?'. Сите ќе оговориме - 'не!' Следното прашање: 'Што знаете за модерните мотори со внатрешно согорување?' Одговорот - 'па не многу.'
Ја бараме можноста да ја отвориме хаубата на нашата кола бидејќи тоа ни дава нам, на потрошувачот, контрола над производот кој сме го купиле и ја ттргнува истата од продавачот. Можеме да ја вратиме колата назад кај дилерот; ако добро сработи, ако не пренаплати и ги додаде работите кои ни требаат, пак ќе се вратиме кај него. Но ако пренаплатува, ако не сака да го реши нашиот проблем, или одбива да ја вгради таа музичка труба што отсекогаш сме ја сакале - тогаш има уште 10.000 други автомеханичари кои ќе не пречекаат со раширени раце.
Во бизнисот со неслободен софтвер, потрошувачот нема контрола над технологијата околу која тој го гради својот бизнис. Ако неговиот продавач му наплаќа премногу, или одбива да го поправи проблемот кој предизвикува пад на системите, или ако одлучи да не ја вклучи новата можност која му треба на потрошувачот, потрошувачот нема избор. Овој недостаток на контола резултира со високи трошоци, ниска доверба и многу фрустрации.
Секако, непобитен е фактот дека на програмерите, пристапот до кодот им е неопходен како воздух.
Надворешни информации и врски