Проєкт GNU

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Талісман GNU, автор Ауреліо А. Гекерт[1] (отримано з більш детальної версії Етьєна Суваса)[2]

Проє́кт GNU ([ɡn])[3] — це безкоштовне програмне забезпечення, проєкт масової співпраці, про який Річард Столмен оголосив 27 вересня 1983 року. Його мета — надати користувачам комп'ютерів свободу та контроль у використанні своїх комп'ютерів і комп'ютерних пристроїв шляхом спільної розробки та публікації програмного забезпечення, яке дає кожному право вільно запускати програмне забезпечення, копіювати та поширювати його, вивчати та змінювати. Програмне забезпечення GNU надає ці права у своїй ліцензії.

Щоб гарантувати, що все програмне забезпечення комп'ютера надає його користувачам усі права на свободу (використання, спільний доступ, вивчення, змінення), навіть найбільш фундаментальна та важлива частина, операційна система (включаючи всі її численні допоміжні програми) повинне бути вільним програмним забезпеченням. Згідно з його маніфестом, основною метою проєкту було створити безкоштовну операційну систему, і включити, якщо можливо, «все корисне, що зазвичай постачається з системою Unix, щоб можна було обійтися без будь-якого програмного забезпечення, яке не є безкоштовним». Столмен вирішив назвати цю операційну систему GNU (рекурсивна абревіатура, що означає "GNU не Unix! "), заснувавши її дизайн на основі UNIX, власної операційної системи.[4] Розробка була розпочата в січні 1984 року. У 1991 році з'явилося ядро Linux, розроблене за межами проєкту GNU Лінусом Торвальдсом[5] а в грудні 1992 року воно стало доступним за версією 2 GNU General Public License.[6] У поєднанні з утилітами операційної системи, які вже були розроблені в рамках проєкту GNU, це дозволило створити першу операційну систему, яка була вільним програмним забезпеченням, широко відома як Linux.[7][8]

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

Походження[ред. | ред. код]

Річард Столмен оголосив про свій намір розпочати кодування проєкту GNU у повідомленні Usenet у вересні 1983 року[9]

Коли проєкт GNU тільки розпочався, у них був текстовий редактор Emacs з Lisp для написання команд редактора, налагоджувач рівня джерела, генератор синтаксичних аналізаторів, сумісний з yacc, і компонувальник[10]. Система GNU вимагала власного компілятора C та інструментів, щоб бути вільним програмним забезпеченням, тому їх також потрібно було розробити. До червня 1987 року проєкт накопичив і розробив безкоштовне програмне забезпечення для асемблера, майже закінчений портативний оптимізаційний компілятор C (GCC), редактор (GNU Emacs) і різні утиліти Unix (такі як ls, grep, awk, make і ld)[11]. У них було початкове ядро, яке потребувало додаткових оновлень.

Після того, як ядро та компілятор були завершені, GNU можна було використовувати для розробки програм. Головною метою було створити багато інших програм, які будуть схожі на систему Unix. GNU міг запускати програми Unix, але не був ідентичним йому. GNU включив довші імена файлів, номери версій файлів і файлову систему, захищену від збоїв. Маніфест GNU був написаний, щоб отримати підтримку та участь інших для проєкту. Програмістів заохочували брати участь у будь-якому аспекті проєкту, який їх цікавив. Люди могли пожертвувати кошти, комп'ютерні частини або навіть власний час, щоб написати код і програми для проєкту[4].

Походження та розвиток більшості аспектів проєкту GNU (і вільного програмного забезпечення загалом) описано в детальному описі довідкової системи Emacs. (C-h g запускає команду редактора Emacs describe-gnu-project .) Це така ж детальна історія, що й на їхньому вебсайті.

Маніфест GNU[ред. | ред. код]

  Маніфест GNU був написаний Річардом Столменом, щоб отримати підтримку та участь у Проєкті GNU. У Маніфесті GNU Столмен перерахував чотири свободи, необхідні для користувачів програмного забезпечення: свобода запускати програму для будь-яких цілей, свобода вивчення механіки програми та її модифікації, свобода розповсюдження копій і свобода вдосконалювати та змінювати модифіковані версії для загальнодоступних. використання[12][13]. Для реалізації цих свобод користувачам потрібен був повний доступ до коду. Щоб код залишався безкоштовним і надавав його громадськості, Столмен створив Загальну публічну ліцензію GNU (GPL), яка дозволяла програмному забезпеченню та майбутнім поколінням коду, отриманого з нього, залишатися безкоштовними для загального користування.

Філософія та активізм[ред. | ред. код]

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

Безкоштовне(вільне) програмне забезпечення[ред. | ред. код]

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

Фінансування[ред. | ред. код]

Доходи від асоційованих членів, покупки та пожертвування підтримують проєкт GNU[14].

Копілефт[ред. | ред. код]

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

Проєкт GNU та Фонд вільного програмного забезпечення іноді розрізняють «сильний» і «слабкий» копілефт. «Слабкі» програми копілефт зазвичай дозволяють розповсюджувачам пов'язувати їх разом із невільними програмами, тоді як «сильне» копілефт суворо забороняє цю практику. Більшість результатів роботи проєкту GNU випущено під сильним копілефтом, хоча деякі випущені під слабким копілефтом або за слабкою ліцензією на вільне програмне забезпечення[15][16].

Розробка операційної системи[ред. | ред. код]

«Живий» компакт-диск GNU Hurd.

  Першою метою проєкту GNU було створення цілої операційної системи вільного програмного забезпечення. Оскільки UNIX вже був широко поширений і працював на більш потужних машинах, у порівнянні з тогочасними машинами CP/M або MS-DOS ,[17] було вирішено, що це буде Unix-подібна операційна система. Пізніше Річард Столмен прокоментував, що вважає MS-DOS «іграшкою»[18].

До 1992 року проєкт GNU завершив роботу над усіма основними утилітами операційної системи, але не завершив запропоноване ними ядро операційної системи GNU Hurd. З виходом ядра Linux, розпочатого незалежно Лінусом Торвальдсом у 1991 році і випущеного під ліцензією GPL з версією 0.12 у 1992 році, вперше стало можливим запустити операційну систему, що повністю складається з вільного програмного забезпечення. Хоча ядро Linux не є частиною проєкту GNU, воно було розроблено з використанням GCC та інших інструментів програмування GNU і було випущено як безкоштовне програмне забезпечення під загальною суспільною ліцензією GNU[19]. На даний момент проєкт GNU не випустив версії GNU/Hurd, яка була би придатна для виробничого середовища з моменту початку проєкту GNU/Hurd понад 31 рік тому[20].

GNU/Linux[ред. | ред. код]

Стабільну версію (або варіант) GNU можна запустити шляхом поєднання пакетів GNU з ядром Linux, створюючи функціональну систему, подібну до Unix. Проєкт GNU називає це GNU/Linux, а визначальними функціями є комбінація:

  • Пакети GNU[21][22] (крім GNU Hurd)
    Пакети GNU складаються з численних інструментів і утиліт операційної системи (оболонка, coreutils, компілятори, бібліотеки тощо)[21][22] включаючи реалізацію бібліотеки всіх функцій, зазначених у програмному інтерфейсі програм системи POSIX (POSIX.1)[23][24] Компілятор GCC може генерувати машинний код для великої кількості комп'ютерних архітектур[25].
  • Ядро Linux — воно реалізує планування програм, багатозадачність, драйвери пристроїв, керування пам'яттю, дозволяє системі працювати на різноманітних комп'ютерних архітектурах[26]. Лінус Торвальдс випустив ядро Linux під загальною суспільною ліцензією GNU в 1992 році;[27] однак воно не є частиною проєкту GNU.[28][29][30][31]
  • Програми, що не належать до GNU — різноманітні пакети вільного програмного забезпечення, які не є частиною проєкту GNU, але випущені під загальною суспільною ліцензією GNU або іншою ліцензією вільного програмного забезпечення, схваленою FSF.

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

Пакетування інструментів GNU разом з ядром Linux та іншими програмами зазвичай називається дистрибутивом (дистрибутивом) Linux. Проєкт GNU називає комбінацію GNU та ядра Linux «GNU/Linux» і просить інших зробити те ж саме[32], це призвело до суперечок щодо імен GNU/Linux.

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

Інструкції з розповсюдження вільної системи GNU[ред. | ред. код]

GNU Free System Distribution Guidelines (Правила вільного поширення систем GNU або GNU FSDG) — це зобов'язання щодо розповсюдження системи, яке використовується для пояснення того, що означає для інсталяційного системного дистрибутива (наприклад, дистрибутив GNU/Linux) кваліфікуватися як безкоштовний (libre), а також допомагає розробникам дистрибутивів кваліфіковувати свої дистрибутиви.

Здебільшого це включає дистрибутиви, які є комбінацією пакетів GNU з ядром Linux-libre (модифіковане ядро Linux, в якому видалені двійкові блоби, заплутаний код і частини коду за власними ліцензіями) і складаються лише з вільного програмного забезпечення (повністю відмовляючись від пропрієтарного програмного забезпечення) .[33][34][35] Дистрибутиви, які прийняли GNU FSDG, включають Dragora GNU/Linux-Libre, gNewSense, GNU Guix System, Hyperbola GNU/Linux-libre, Parabola GNU/Linux-libre, Trisquel GNU/Linux, Ututo та деякі інші[36].

В якості основи для FSDG були використані вказівки щодо ліцензій на розповсюдження проєкту Fedora[37].

Стратегічні проєкти[ред. | ред. код]

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

Авторські права на більшість робіт проєкту GNU належать Фонду вільного програмного забезпечення. 

GNOME[ред. | ред. код]

Робоче середовище GNOME, було створене Проєктом GNU, оскільки інша настільна система, KDE, стала популярною, але вимагала від користувачів встановити Qt, який тоді був пропрієтарним програмним забезпеченням . Щоб запобігти спокусі встановити KDE і Qt, проєкт GNU одночасно запустив два проєкти. Одним із них був набір інструментів Harmony . Це була спроба зробити безкоштовну заміну програмного забезпечення Qt. Якби цей проєкт був успішним, умовну проблему з KDE було б вирішено. Другим проєктом був GNOME, який розглядав ту саму проблему з іншого боку. Він мав на меті зробити заміну KDE, яка не мала залежностей від пропрієтарного програмного забезпечення. Проєкт Harmony не досяг особливого прогресу, але GNOME розвивався дуже добре. Згодом фірмовий компонент, від якого залежав KDE (Qt), був випущений як безкоштовне програмне забезпечення[38].

GNU Enterprise[ред. | ред. код]

GNU Enterprise (GNUe) — це метапроєкт, започаткований у 1996 році[39] і його можна розглядати як підпроєкт проєкту GNU. Метою GNUe є створення безкоштовних «додатків корпоративного класу, усвідомлені даними» (планувальники корпоративних ресурсів тощо.). GNUe розроблено для збору корпоративного програмного забезпечення для системи GNU в одному місці (так само, як проєкт GNOME збирає програмне забезпечення для робочого столу).

Визнання[ред. | ред. код]

У 2001 році проєкт GNU отримав нагороду USENIX Lifetime Achievement Award за «повсюдність, широту та якість його вільно доступного програмного забезпечення, яке можна розповсюджувати та модифікувати, що дозволило генерувати дослідження та комерційні розробки»[40].

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]

 

  1. A Bold GNU Head. Процитовано 30 листопада 2014. «We thank Aurelio A. Heckert… for donating this graphic to us.» 
  2. A GNU Head. Процитовано 30 листопада 2014. «This graphic was drawn by Etienne Suvasa» 
  3. What is GNU?. The GNU Operating System. Free Software Foundation. 4 вересня 2009. Процитовано 9 жовтня 2009. «The name "GNU" is a recursive acronym for "GNU's Not Unix!"; it is pronounced g-noo, as one syllable with no vowel sound between the g and the n 
  4. а б The GNU Manifesto. Free Software Foundation. 21 липня 2007. Процитовано 8 жовтня 2015. 
  5. Torvalds, Linus Benedict (August 1991). comp.os.minix. Процитовано 6 вересня 2009. 
  6. z-archive of Linux version 0.99. kernel.org. December 1992. Архів оригіналу за 30 січня 2017. 
  7. Andrew D. Balsa; Coauthors. The linux-kernel mailing list FAQ. The Linux Kernel Archives. Kernel.org. Архів оригіналу за 1 жовтня 2012. Процитовано 13 червня 2013. «…we have tried to use the word "Linux" or the expression "Linux kernel" to designate the kernel, and GNU/Linux to designate the entire body of GNU/GPL'ed OS software,… …many people forget that the linux kernel mailing list is a forum for discussion of kernel-related matters, not GNU/Linux in general…» 
  8. Mark Shuttleworth (14 лютого 2014). Losing graciously. Архів оригіналу за 22 березня 2014. Процитовано 27 квітня 2014. «today our focus is on the cloud and on mobile, and we are quite clearly leading GNU/Linux on both fronts» 
  9. Richard Stallman. new Unix implementation. 
  10. Wardrip-Fruin, Noah; and Nick Montfort. «The GNU Manifesto.» The NewMediaReader. Cambridge, Massachusetts: MIT, 2003. pp.545–550.
  11. GNU's Bulletin, vol. 1 no. 3. gnu.org. June 1987. 
  12. Stallman, Richard (March 1985). The GNU Manifesto – GNU Project – Free Software Foundation (FSF). gnu.org. GNU Project. Процитовано 18 жовтня 2011. 
  13. Weber, S. (2004). The Success of Open Source. Cambridge: Harvard University Press.
  14. Helping the GNU Project and the Free Software Movement — GNU Project — Free Software Foundation. gnu.org. Retrieved on 2013-07-17.
  15. Ncurses. wiki.freedesktop.org. Процитовано 18 березня 2019. «It is one of the few GNU files not distributed under the GNU General Public License or GNU Lesser General Public License; it is distributed under a license like the X11 License» 
  16. Why you shouldn't use the Lesser GPL for your next library. GNU. «There are reasons that can make it better to use the Lesser GPL in certain cases.» 
  17. GNU'S BULLETIN Volume 1 No.1. February 1986. 
  18. Richard Stallman: Freedom. Radio New Zealand. 9 серпня 2008. 
  19. Linus Benedict Torvalds (26 серпня 1991). What would you like to see most in minix?. comp.os.minix. 
  20. GNU Hurd/ hurd/ status. GNU Operating System. Free Software Foundation. Процитовано 15 квітня 2018. «It may not be ready for production use, as there are still some bugs and missing features.» 
  21. а б All GNU packages. gnu.org. 
  22. а б GNU @ Free Software Directory (fsf.org)
  23. POSIX — The GNU C Library
  24. GNU C Library#A temporary fork
  25. GCC Architectures
  26. The Linux Kernel Archives
  27. Release Notes for Linux v0.12
  28. Should the GNU/name convention be applied to all programs that are GPL'ed? GNU/Linux FAQ by Richard Stallman
  29. Why do you write «GNU/Linux» instead of «GNU Linux»? GNU/Linux FAQ by Richard Stallman
  30. Isn't it wrong for us to label Linus Torvalds' work as GNU? GNU/Linux FAQ by Richard Stallman
  31. Does Linus Torvalds agree that Linux is just the kernel? GNU/Linux FAQ by Richard Stallman
  32. Why do you call it GNU/Linux and not Linux?
  33. Guidelines for Free System Distributions. gnu.org. 
  34. Avoiding Ruinous Compromises. gnu.org. 
  35. Explaining Why We Don't Endorse Other Systems. gnu.org. 
  36. List of Free GNU/Linux Distributions – GNU Project – Free Software Foundation. gnu.org. Процитовано 18 серпня 2014. 
  37. Free System Distribution Guidelines (GNU FSDG) – GNU Project. gnu.org. Процитовано 7 червня 2014. «We would like to thank the Fedora Project for their help in focusing these policies, and allowing us to use their own distribution license guidelines as a basis for this document.» 
  38. Richard Stallman (5 вересня 2000). Stallman on Qt, the GPL, KDE, and GNOME. Linux Today. Процитовано 9 вересня 2005. 
  39. GNU Enterprise Project History – GNU Enterprise. 16 січня 2013. Архів оригіналу за 16 січня 2013. Процитовано 18 лютого 2019. 
  40. USENIX Lifetime Achievement Award ("The Flame"). USENIX. Процитовано 5 грудня 2007. 

Посилання[ред. | ред. код]