GNU Project: Difference between revisions

Content deleted Content added
m Reverting possible vandalism by 2806:10A6:D:EF56:2C2F:5F79:CB49:A870 to version by Mindmatrix. Report False Positive? Thanks, ClueBot NG. (4293883) (Bot)
TristanDC (talk | contribs)
m Origins: "they" clearly refers to the GNU project which is already a topical entity. say "it" to remove the wikipolitics that just can't keep itself in bed
 
(22 intermediate revisions by 21 users not shown)
Line 1:
{{short description|Free software project}}
{{distinguish |text= the softwareoperating collectionsystem developed by the GNU Project, [[GNU]]}}
{{primary sources | date=January 2013}}
 
Line 21:
}}</ref>]]
 
The '''GNU Project''' ({{IPAc-en|audio=En-gnu.ogg|ɡ|n|uː}} {{respell|GNOO}})<ref>{{cite web
| url = https://gnu.org/
| title = What is GNU?
Line 32:
| archive-url = https://web.archive.org/web/20040402153847/http://www.gnu.org/home.hu.html
| url-status = live
}}</ref> is a [[free software]], [[mass collaboration]] project announced by [[Richard Stallman]] on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and [[Computer hardware|computing devices]] by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its [[GNU General Public License|its license]].
 
In order to ensure that the ''entire'' software of a computer grants its users all freedom rights (use, share, study, modify), even the most fundamental and important part, the [[operating system]] (including all its numerous utility programs) needed to be free software. Stallman decided to call this operating system ''[[GNU]]'' (a [[recursive acronym]] meaning "''GNU's not Unix!''"), basing its design on that of [[Unix]], a proprietary operating system.<ref name="manifesto">{{cite web
Line 43:
| archive-url = https://web.archive.org/web/20180714090017/https://www.gnu.org/gnu/manifesto.html
| url-status = live
}}</ref> According to its manifesto, the founding goal of the project was to build a free operating system, and if possible, "everything useful that normally comes with a Unix system so that one could get along without any software that is not free." Development was initiated in January 1984. In 1991, the [[Linux kernel]] appeared, developed outside the GNU projectProject by [[Linus Torvalds]],<ref name="groups.google.com">{{cite web
| url = https://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b
| title = comp.os.minix
Line 53:
| archive-url = https://web.archive.org/web/20130509134305/http://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b
| url-status = live
}}</ref> and in December 1992, it was made available under version 2 of the [[GNU General Public License]].<ref name="gpl_version">{{cite web |url=ftp://ftp.kernel.org/pub/linux/kernel/Historic/v0.99/linux-0.99.tar.Z |title=z-archive of Linux version 0.99 |website=The Linux Kernel Archives |archive-url=https://web.archive.org/web/20170130050958/ftp://ftp.kernel.org/pub/linux/kernel/Historic/v0.99/linux-0.99.tar.Z |url-status=dead |archive-date=2017-01-30 |title=zurl-archive of Linux version 0.99 |websitestatus=The Linux Kernel Archivesdead |date=December 1992 }}</ref> Combined with the operating system utilities already developed by the GNU projectProject, it allowed for the first operating system that was free software, commonly known as [[Linux]].<ref>{{cite web |author=Balsa |first=Andrew D. |title=The linux-kernel mailing list FAQ |url=http://vger.kernel.org/lkml/#s1-1 |archive-url=https://web.archive.org/web/20121001231709/http://vger.kernel.org/lkml/#s1-1 |archive-date=2012-10-01 |access-date=2013-06-13 |work=The Linux Kernel Archives |publisher=Kernel.org |quote=...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...}}</ref><ref>{{cite web
| title = Losing graciously
| url = http://www.markshuttleworth.com/archives/1316
Line 70:
Richard Stallman announced his intent to start coding the GNU Project in a [[Usenet]] message in September 1983.<ref>{{cite web | url = https://groups.google.com/forum/#!msg/net.unix-wizards/8twfRPM79u0/1xlglzrWrU0J | title = new Unix implementation | author = Richard Stallman | access-date = 2013-09-27 | archive-date = 2011-01-22 | archive-url = http://arquivo.pt/wayback/20110122130054/https://groups.google.com/forum/#!msg/net.unix-wizards/8twfRPM79u0/1xlglzrWrU0J | url-status = live }}</ref> Despite never having used Unix prior, Stallman felt that it was the most appropriate system design to use as a basis for the GNU Project, as it was portable and "fairly clean".<ref>{{cite web |url=https://stallman.org/cgi-bin/showpage.cgi?path=/stallman-computing.html&term=unix&type=norm&case=0 |title=How I do my computing |author=Stallman, Richard |date=2022 |access-date=January 31, 2023 |archive-date=January 31, 2023 |archive-url=https://web.archive.org/web/20230131153156/https://stallman.org/cgi-bin/showpage.cgi?path=/stallman-computing.html&term=unix&type=norm&case=0 |url-status=live }}</ref>
 
When the GNU projectProject first started theyit had an [[Emacs]] [[text editor]] with [[Lisp (programming language)|Lisp]] for writing editor commands, a source level [[debugger]], a [[yacc]]-compatible [[parsing|parser]] generator, and a [[Linker (computing)|linker]].<ref>Wardrip-Fruin, Noah; and Nick Montfort. "The GNU Manifesto.". ''The NewMediaReader''. Cambridge, Massachusetts: MIT, 2003. pp.545–550.</ref> The GNU system required its own [[C (programming language)|C]] [[compiler]] and tools to be free software, so these also had to be developed. By June 1987, the project had accumulated and developed free software for an [[Assembly language|assembler]], an almost finished portable optimizing C compiler ([[GNU Compiler Collection|GCC]]), an editor ([[Emacs|GNU Emacs]]), and various Unix utilities (such as <code>[[ls]]</code>, <code>[[grep]]</code>, <code>[[awk]]</code>, <code>[[make (software) | make]]</code> and <code>[[GNU linker | ld]]</code>).<ref>{{cite web
| url = https://www.gnu.org/bulletins/bull3.html#SEC11
| title = GNU's Bulletin, vol. 1 no. 3
Line 79:
| archive-url = https://web.archive.org/web/20151125053210/https://www.gnu.org/bulletins/bull3.html#SEC11
| url-status = live
}}</ref> They{{Who|date=May 2025}} had an initial kernel that needed more updates.
 
Once the [[Kernel (operating system)|kernel]] and the compiler were finished, GNU was able to be used for [[Software development process|program development]]. The main goal was to create many other applications to be like the Unix system. GNU was able to run Unix programs, but was not identical to it. GNU incorporated longer file names, file version numbers, and a crashproofcrash-proof file system. The GNU Manifesto was written to gain support and participation from others for the project. Programmers were encouraged to take part in any aspect of the project that interested them. People could donate funds, computer parts, or even their own time to write code and programs for the project.<ref name="manifesto"/>
 
The origins and development of most aspects of the GNU Project (and free software in general) are shared in a detailed narrative in the Emacs help system. (C-h g runs the Emacs editor command <kbd>describe-gnu-project</kbd>.) It is the same detailed history as at their web site.
Line 87:
== GNU Manifesto ==
 
{{Main | GNU Manifesto}}
 
The GNU Manifesto was written by Richard Stallman to gain support and participation in the GNU Project. In the GNU Manifesto, Stallman listed four freedoms essential to software users: freedom to run a program for any purpose, freedom to study the mechanics of the program and modify it, freedom to redistribute copies, and freedom to improve and change modified versions for public use.<ref name="GNU Manifesto">{{cite web
Line 112:
== Free software ==
 
The GNU projectProject uses software that is free for users to copy, edit, and distribute. It is free in the sense that users can change the software to fit individual needs. The way programmers obtain the free software depends on where they get it. The software could be provided to the programmer from friends or over the Internet, or the company a programmer works for may purchase the software.
 
== Funding ==
 
Proceeds from [[Free Software Foundation]] associate members, purchases, and donations support the GNU Project.<ref>[https://www.gnu.org/help/help.html#funds Helping the GNU Project and the Free Software Movement – GNU Project – Free Software Foundation] {{Webarchive|url=https://web.archive.org/web/20151225192237/http://www.gnu.org/help/help.html#funds |date=2015-12-25 }}. gnu.org. Retrieved on 2013-07-17.</ref>
 
== Copyleft ==
Line 131:
{{main|GNU}}
 
The first goal of the GNU projectProject was to create a whole free-software operating system. Because UNIX was already widespread and ran on more powerful machines, compared to contemporary [[CP/M]] or [[MS-DOS]] machines of time,<ref>{{cite web
| url = https://www.gnu.org/bulletins/bull1.txt
| title = GNU's Bulletin Volume 1 No.1
Line 150:
}}</ref>
 
By 1992, the GNU projectProject had completed all of the major operating system utilities, but had not completed their proposed [[Kernel (operating system)|operating system kernel]], [[GNU Hurd]]. With the release of the [[Linux kernel]], started independently by [[Linus Torvalds]] in 1991, and released under the GPLv2 with version 0.12 in 1992, for the first time it was possible to run an operating system composed completely of free software. Though the Linux kernel is not part of the GNU projectProject, it was developed using [[GNU Compiler Collection|GCC]] and other GNU programming tools and was released as free software under the [[GNU General Public License]].<ref>{{cite web
| url = https://groups.google.com/group/comp.os.minix/browse_thread/thread/76536d1fb451ac60/b813d52cbc5a044b
| title = What would you like to see most in minix?
Line 171:
}}</ref>
 
As of present, the GNU projectProject has not released a version of [[GNU/Hurd]] that is suitable for production environments since the commencement of the GNU/Hurd project over {{Time ago|Dec 31, 1990}}.<ref>{{Cite web|url=https://www.gnu.org/software/hurd/hurd/status.html|title=GNU Hurd/ hurd/ status|website=GNU Operating System|publisher=Free Software Foundation|access-date=2018-04-15|quote="It may not be ready for production use, as there are still some bugs and missing features."|archive-date=2020-11-12|archive-url=https://web.archive.org/web/20201112030809/https://www.gnu.org/software/hurd/hurd/status.html|url-status=live}}</ref>
 
== GNU/Linux ==
 
A stable version (or variant) of GNU can be run by combining the GNU packages with the [[Linux kernel]], making a functional [[Unix-like]] system. The GNU projectProject calls this GNU/Linux, and the defining features are the combination of:
 
* GNU packages<ref name=gnu_packages>{{cite web
Line 186:
| url-status = live
}}</ref><ref name=gnu_packages_fsf>[http://directory.fsf.org/wiki/GNU GNU @ Free Software Directory] {{Webarchive|url=https://web.archive.org/web/20151205084519/http://directory.fsf.org/wiki/GNU |date=2015-12-05 }} (fsf.org)</ref> (except for GNU Hurd) <br />The GNU packages consist of numerous operating system tools and utilities ([[Bash (Unix shell)|shell]], [[GNU Core Utilities|coreutils]], compilers, libraries, etc.)<ref name=gnu_packages /><ref name=gnu_packages_fsf /> including a library implementation of all of the functions specified in [[POSIX]] System Application Program Interface (POSIX.1).<ref>{{Cite web |url=https://www.gnu.org/software/libc/manual/html_node/POSIX.html |title=POSIX – The GNU C Library |access-date=2014-04-18 |archive-date=2014-04-24 |archive-url=https://web.archive.org/web/20140424011018/http://www.gnu.org/software/libc/manual/html_node/POSIX.html |url-status=live }}</ref><ref>[[GNU C Library#A temporary fork]]</ref> The GCC compiler can generate machine-code for a large variety of computer-architectures.<ref>[[GNU Compiler Collection#Architectures|GCC Architectures]]</ref>
* [[Linux kernel]] – this implements program scheduling, multitasking, device drivers, memory management, etc. and allows the system to run on a large [[List of Linux-supported computer architectures|variety of computer-architectures]].<ref>{{Cite web |url=https://www.kernel.org/#whatislinux |title=The Linux Kernel Archives |access-date=2016-07-25 |archive-date=2011-02-21 |archive-url=https://web.archive.org/web/20110221140221/http://www.kernel.org/#whatislinux |url-status=live }}</ref> [[Linus Torvalds]] released the [[Linux kernel]] under the [[GNU General Public License]] in 1992;<ref name=linux_free>{{Cite web |url=http://ftp.funet.fi/pub/linux/historical/kernel/old-versions/RELNOTES-0.12 |title=Release Notes for Linux v0.12 |access-date=2012-12-24 |archive-date=2013-05-26 |archive-url=https://web.archive.org/web/20130526191714/http://ftp.funet.fi/pub/linux/historical/kernel/old-versions/RELNOTES-0.12 |url-status=live }}</ref> it is however not part of the GNU projectProject.<ref>[https://www.gnu.org/gnu/gnu-linux-faq.html#allgpled Should the GNU/name convention be applied to all programs that are GPL'ed?] {{Webarchive|url=https://web.archive.org/web/20130907132420/http://www.gnu.org/gnu/gnu-linux-faq.html#allgpled |date=2013-09-07 }} GNU/Linux FAQ by Richard Stallman</ref><ref>[https://www.gnu.org/gnu/gnu-linux-faq.html#whyslash Why do you write “GNU/Linux” instead of “GNU Linux”?] {{Webarchive|url=https://web.archive.org/web/20130907132420/http://www.gnu.org/gnu/gnu-linux-faq.html#whyslash |date=2013-09-07 }} GNU/Linux FAQ by Richard Stallman</ref><ref>[https://www.gnu.org/gnu/gnu-linux-faq.html#claimlinux Isn't it wrong for us to label Linus Torvalds' work as GNU?] {{Webarchive|url=https://web.archive.org/web/20130907132420/http://www.gnu.org/gnu/gnu-linux-faq.html#claimlinux |date=2013-09-07 }} GNU/Linux FAQ by Richard Stallman</ref><ref>[https://www.gnu.org/gnu/gnu-linux-faq.html#linusagreed Does Linus Torvalds agree that Linux is just the kernel?] {{Webarchive|url=https://web.archive.org/web/20130907132420/http://www.gnu.org/gnu/gnu-linux-faq.html#linusagreed |date=2013-09-07 }} GNU/Linux FAQ by Richard Stallman</ref>
* non-GNU programs – various free software packages which are not a part of the GNU Project but are released under the [[GNU General Public License]] or another [[Free software license#FSF-approved .22free software.22 licenses|FSF-approved Free Software License]].
 
Within the GNU website, a list of projects is laid out and each project has specifics for what type of developer is able to perform the task needed for a certain piece of the GNU projectProject. The skill level ranges from project to project but anyone with background knowledge in programming is encouraged to support the project.
 
The packaging of GNU tools, together with the Linux kernel and other programs, is usually called a [[Linux distribution]] (distro). The GNU Project calls the combination of GNU and the Linux kernel "GNU/Linux", and asks others to do the same,<ref>{{Cite web |url=https://www.gnu.org/gnu/gnu-linux-faq.html#why |title=Why do you call it GNU/Linux and not Linux? |access-date=2014-04-18 |archive-date=2013-09-07 |archive-url=https://web.archive.org/web/20130907132420/http://www.gnu.org/gnu/gnu-linux-faq.html#why |url-status=live }}</ref> resulting in the [[GNU/Linux naming controversy]].
Line 197:
=== GNU Free System Distribution Guidelines ===
{{Anchor|Free System Distribution Guidelines (GNU FSDG)|GNU FSDG|FSDG}}
The GNU Free System Distribution Guidelines (GNU FSDG) is a system distribution commitment usedthat toexplains explain what it means forhow an installable system distribution (such as a Linux distribution) to qualifyqualifies as free (libre), and helphelps distribution developers make their distributions qualify.
 
Mostly, theThe list mostly describes distributions that are a combination of GNU packages with a [[Linux-libre]] kernel (a modified Linux kernel that removes binary blobs, obfuscated code, and portions of code under proprietary licenses) and consist only of free software (eschewing proprietary software entirely).<ref>{{cite web
| url = https://www.gnu.org/distros/free-system-distribution-guidelines.html
| title = Guidelines for Free System Distributions
Line 207:
| archive-url = https://web.archive.org/web/20151208205726/https://www.gnu.org/distros/free-system-distribution-guidelines.html
| url-status = live
}}</ref><ref>{{cite web |title=Avoiding Ruinous Compromises |url=https://www.gnu.org/philosophy/compromise.html |url-status=live |archive-url=https://web.archive.org/web/20180622094238/http://www.gnu.org/philosophy/compromise.html |archive-date=2018-06-22 |access-date=2016-07-22 |work=www.gnu.org}}</ref><ref name=":0">{{cite web |title=Explaining Why We Don't Endorse Other Systems |url=https://www.gnu.org/distros/common-distros.html |work=GNU |access-date=2016-07-22 |archive-date=2011-04-24 |archive-url=https://web.archive.org/web/20110424061731/http://www.gnu.org/distros/common-distros.html |url-status=live }}</ref> Distributions that have adopted the GNU FSDG include [[Dragora GNU/Linux-Libre]], [[GNU Guix System]], [[Hyperbola GNU/Linux-libre]], [[Parabola GNU/Linux-libre]], [[Trisquel GNU/Linux]], [[PureOS]], and a few others.<ref name="gnu">{{cite web
}}</ref><ref>{{cite web
| url = https://www.gnu.org/philosophy/compromise.html
| title = Avoiding Ruinous Compromises
| work = gnu.org
| access-date = 2016-07-22
| archive-date = 2018-06-22
| archive-url = https://web.archive.org/web/20180622094238/http://www.gnu.org/philosophy/compromise.html
| url-status = live
}}</ref><ref name=":0">{{cite web |title=Explaining Why We Don't Endorse Other Systems |url=https://www.gnu.org/distros/common-distros.html |work=GNU |access-date=2016-07-22 |archive-date=2011-04-24 |archive-url=https://web.archive.org/web/20110424061731/http://www.gnu.org/distros/common-distros.html |url-status=live }}</ref> Distributions that have adopted the GNU FSDG include [[Dragora GNU/Linux-Libre]], [[GNU Guix System]], [[Hyperbola GNU/Linux-libre]], [[Parabola GNU/Linux-libre]], [[Trisquel GNU/Linux]], [[PureOS]], and a few others.<ref name="gnu">{{cite web
| url = https://www.gnu.org/distros/free-distros.html
| title = List of Free GNU/Linux Distributions – GNU Project – Free Software Foundation
Line 246 ⟶ 238:
 
=== GNOME ===
The [[GNOME]] desktop effort was launched by the GNU Project because another desktop system, [[KDE]], was becoming popular, but required users to install [[Qt (toolkit)|Qt]], which was then [[proprietary software]]. To prevent people from being tempted to install KDE and Qt, the GNU Project simultaneously launched two projects. One was the [[Harmony toolkit]]. This was an attempt to make a free software replacement for Qt. Had this project been successful, the perceived problem with the KDE would have been solved. The second project was GNOME, which tackled the same issue from a different angle. It aimed to make a replacement for KDE that had no dependencies on proprietary software. The Harmony project did not make much progress, but GNOME developed very well. Eventually, the proprietary component that KDE depended on ([[Qt (toolkit)|Qt]]) was released as free software.<ref>{{cite web |author=Stallman |first=Richard |date=September 5, 2000 |title=Stallman on Qt, the GPL, KDE, and GNOME |url=https://www.linuxtoday.com/developer/stallman-on-qt-the-gpl-kde-and-gnome/ |access-date=2005-09-09 |publisher=Linux Today |archive-date=2012-04-19 |archive-url=https://web.archive.org/web/20120419013021/http://www.linuxtoday.com/news_story.php3?ltsn=2000-09-05-001-21-OP-LF-KE |url-status=live }}</ref> GNOME has since dissociated itself from the GNU Project and the Free Software Foundation, and is now independently managed by the [[GNOME Project]].{{Citation needed|date=May 2025}}
 
=== {{anchor | GNU Enterprise}}GNU Enterprise ===
 
'''GNU Enterprise''' ('''GNUe''') iswas a meta-project started in 1996,<ref>{{Cite web|url=http://www.gnuenterprise.org:80/community/history.php|archive-url=https://web.archive.org/web/20130116060106/http://www.gnuenterprise.org/community/history.php|url-status=dead|archive-date=2013-01-16|title=GNU Enterprise Project History – GNU Enterprise|date=2013-01-16|access-date=2019-02-18}}</ref> and can be regarded as a sub-project of the GNU Project. GNUe's goal is to create [[free software|free]] "enterprise-class data-aware applications" ([[enterprise resource planner]]s, etc.). GNUe is designed to collect Enterprise software for the GNU system in a single ___location (much like the GNOME project collects Desktop software), it was later decommissioned.<ref>{{Cite web |title=GNU Enterprise Homepage |url=https://www.gnu.org/software/gnue/}}</ref>
 
== Recognition ==