Історія розвитку ВПЗ

Автор работы: Пользователь скрыл имя, 20 Ноября 2013 в 21:20, реферат

Описание работы

Як і безкоштовне ( freeware ) і безкоштовно розповсюджується програмне забезпечення , ВПЗ можна отримувати і використовувати безкоштовно (але конкретний розповсюджувач може стягувати плату за отримання у нього копій , за канали доставки , носії - компакт -диски або додаткові сервісні послуги). Однак freeware зазвичай поширюється в Исполнимости вигляді без вихідних кодів і є пропрієтарним ПО , а щоб ПЗ було вільним , одержувачам повинні бути доступні його вихідні коди , з яких можна створювати виконані файли , з відповідними ліцензіями . Також слід розрізняти вільне і відкрите ПЗ ( open source ) - хоча доступність вихідного коду для ВПЗ є обов'язковим, а багато відкриті програми є одночасно вільними , але відкритим іноді називають [ хто?] І деякий невільне пропрієтарне ПЗ.

Содержание работы

Зміст
1 Вільні ліцензії
2 Розробка ПЗ як наукове дослідження
3 Введення обмежень для ПО
4 Визначення вільного ПЗ
4.1 Open source software
5 Основна громадська ліцензія GNU
6 Спільнота розробників і користувачів
6.1 Взаємодопомога
6.2 Виправлення помилок
7 Філософія
8 Міграція на вільне ПЗ
9 Поширеність вільного і відкритого ПЗ
12 Посилання

Файлы: 1 файл

Документ Microsoft Office Word.docx

— 78.04 Кб (Скачать файл)

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

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

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

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

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

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

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

Хоча різні формальні визначення вільних і відкритих творів зазвичай багато в чому збігаються для ПО , вираження open source і « відкрите програмне  забезпечення » в окремих випадках використовується [ ким?] Для пропрієтарного ПЗ , які не підходящого ні під  одне з них (наприклад , комерційне ПЗ з відкритим вихідним кодом) .  
Основна громадська ліцензія GNU

 

Логотип GNU GPLv3

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

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

Ліцензія , сформульована Столлманом , повинна була працювати так само , як і ліцензії на невільне програмне  забезпечення : це типовий договір  автора програми ( власника авторських прав) з користувачем , у якому  автор , серед іншого , обумовлює  права користувача по відношенню до програми . На відміну від типової  власницькою ліцензії , ліцензія Столлман надає користувачеві права , які  є критеріями вільної програми : отримувати вихідні тексти програм , змінювати їх , поширювати змінені, і незмінені версії. Згодом ліцензія Столлман отримала назву GNU General Public License ( «Основна громадська ліцензія GNU "), скорочено GNU GPL або просто GPL.

У цій ліцензії обмовляється також  принципове для Столлман захисне  умова поширення вільного ПЗ: жоден  користувач , який зробив модифіковану версію вільної програми , не має  права поширювати її , не дотримуючись всіх принципів вільного ПЗ , тобто  робити модифікацію вільної програми невільною . Щоб підкреслити відмінність  такої ліцензії , яка використовує ЗоАП ( copyright ) для спонукання до збереження свободи , від типових власницьких  ліцензій , які використовують ЗоАП для обмеження свободи , був придуманий термін copyleft ( копілефт ) - гра слів , побудована на значеннях англійських  слів right і left . Дія копілефту засноване  на тому , що похідні роботи в більшості  випадків успадковують ліцензії своїх  складових; якщо в програмі використовується невелика частина стороннього коду під GPL , то вся програма і її похідні  повинні поширюватися під GPL , поки вони є похідними цього коду . При  цьому в GPL є розділ, що дозволяє вимагати збереження в коді імен авторів , забороняти використання цих імен в рекламі , попереджати про зареєстровані  товарні знаки і т. п. , що дозволяє комбінувати роботи під GPL з роботами під багатьма вільними некопілефтнимі ліцензіями (наприклад , деякими з  ліцензій BSD ) , не створюючи значних  обмежень і не порушуючи ліцензії , - але похідні від результату , будучи похідними від роботи під GPL , вже не можуть (без окремого дозволу  правовласників ) поширюватися на умовах даної некопілефт - ліцензії без  дотримання умов GPL - у тому числі  і як невід'ємна частина невільного ПЗ. З цієї причини ліцензії , подібні GNU GPL , іноді називають також «  вірусними ліцензіями » : вони ніби « заражають » програму , стаючи її невід'ємною частиною. 
Спільнота розробників і користувачів

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

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

Користувач вільно поширюваної програми не отримує  разом з нею ніяких гарантій : автор зробив її вихідний текст відкритим  для суспільства , але при цьому  не взяв на себе зобов'язань пояснювати всім , як працює програма. Хоча справедливості заради варто помітити , що будь-яка  невільна програма в 99 % випадках теж  поставляється «як є» і без  гарантій. Оскільки спільнота користувачів більшості програм розподілено  по всьому світу , для організації  взаємодії в ньому найбільш активні  користувачі ( а часто і самі автори ) організують (рідше - використовують існуючі ) списки розсилки , форуми та інші засоби спілкування в Інтернеті. Для накопичення і рубрикації інформації по програмі ( зокрема , списків  часто ставляться ( ЧаВо ; англ. FAQ - frequently asked questions ) , а також організації  більш складних форм взаємодії ( спільної розробки , систем відслідковування помилок ) створюються веб - сайти , присвячені програмам. 
Виправлення помилок

У будь-який досить складною програмою неодмінно  є помилки і дефекти , кількість  яких звичайно невідомо. Багато великих  виробники ПЗ створюють і оплачують  роботу відділу контролю якості ( QA - Quality assurance ) , який контролює відповідність  процесу розробки ПЗ певним вимогам , виконання яких дозволяє знизити  ймовірність появи помилок в  ПЗ (наприклад , вимогам стандарту DO - 178B , який застосовується при розробці ПЗ для авіаційних систем). Тим не менш, у даний час відсутні методи, що дозволяють повністю гарантувати  відсутність помилок в досить складному ПЗ ( існують формалізовані  критерії складності ПЗ).

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

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

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

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

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

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

Простому  та впорядкованому прийому та перенаправлення  повідомлень про помилки служать  системи відслідковування помилок ( bug tracking system ) , найвідоміші з яких розроблені учасниками великих проектів для себе , а завдяки вільними ліцензіями використовуються повсюдно . Такі GNUTS ( розроблена в GNU ) , Bugzilla ( Mozilla Foundation ) , JitterBug (проект Samba ) або Debian BTS . Більш  ранні версії орієнтуються на електронну пошту , пізніші включають в себе web -інтерфейс. Наприклад , за допомогою Bugzilla організується сайт в Інтернеті , на якому користувач може заповнити  форму повідомлення про помилку . Кожне повідомлення має свій номер , за яким можна потрапити на «  персональну » сторінку даної  помилки , де відображаються всі відбуваються з її приводу події , від первісного повідомлення ( відкриття ) до виправлення ( закриття). При кожній зміні в  стані помилки Bugzilla розсилає всім зацікавленим особам (включаючи , природно , що повідомив  про помилку і займаються даною  програмою розробників ) листи електронною  поштою . Оскільки Bugzilla дозволяє залишати коментарі і прикладати файли , вона є повноцінним засобом для  спілкування користувача з розробником  з приводу помилки в програмі.

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

Щоб полегшити  і автоматизувати процес внесення виправлень , Ларрі Уолл в 1984 році розробив утиліту patch ( « латочка » ) , яка у формалізованому (але добре зрозумілому людині ) вигляді описує операції редагування , які потрібно провести , щоб отримати нову версію тексту. З появою цієї утиліти  користувач , виявити і виправити  помилку в програмі , міг надіслати  автору невелику латочку , за якою автор  міг зрозуміти , які зміни пропонуються , і автоматично « докласти »  їх до свого вихідного тексту. З  появою утиліти patch набагато більше користувачів стало включатися в розробку програм  з доступним початковим текстом , чималу роль і тут зіграла мережу Usenet . Зрештою , даний спосіб виправлення став загальновживаним і применяющимся не тільки до вихідного коду програми , але і безпосередньо до скомпілювати исполнимости кодом у разі закритого ПЗ , а слово « патч » стало прозивним. Патчі ( файли - заплатки з виправленнями ) - обов'язковий атрибут сьогоднішньої розробки будь-яких програм будь-якої складності .

Информация о работе Історія розвитку ВПЗ