linux-and-gnu.html (15601B)
1 <!--#include virtual="/server/header.html" --> 2 <!-- Parent-Version: 1.96 --> 3 <!-- This page is derived from /server/standards/boilerplate.html --> 4 <!--#set var="TAGS" value="gnulinux" --> 5 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --> 6 <title>Linux and GNU 7 - GNU Project - Free Software Foundation</title> 8 <style type="text/css" media="print,screen"><!-- 9 a.ftn { font-size: .94em; } 10 --></style> 11 <meta http-equiv="Keywords" content="GNU, FSF, Free Software Foundation, Linux, Emacs, GCC, Unix, Free Software, Operating System, GNU Kernel, HURD, GNU HURD, Hurd" /> 12 <meta http-equiv="Description" content="Since 1983, developing the free Unix style operating system GNU, so that computer users can have the freedom to share and improve the software they use." /> 13 <!--#include virtual="/gnu/po/linux-and-gnu.translist" --> 14 <!--#include virtual="/server/banner.html" --> 15 <!--#include virtual="/gnu/gnu-breadcrumb.html" --> 16 <!--GNUN: OUT-OF-DATE NOTICE--> 17 <!--#include virtual="/server/top-addendum.html" --> 18 <div class="article reduced-width"> 19 <h2>Linux and the GNU System</h2> 20 21 <address class="byline">by <a 22 href="https://www.stallman.org/">Richard Stallman</a></address> 23 24 <p> 25 Many computer users run a modified version of 26 <a href="/philosophy/categories.html#TheGNUsystem">the GNU system</a> 27 every day, without realizing it. Through a peculiar turn of events, 28 the version of GNU which is widely used today is often called 29 “Linux,” and many of its users 30 are <a href="/gnu/gnu-users-never-heard-of-gnu.html"> not aware</a> 31 that it is basically the GNU system, developed by the 32 <a href="/gnu/gnu-history.html">GNU Project</a>.</p> 33 34 <div class="announcement comment" role="complementary"> 35 <hr class="no-display" /> 36 <p>For more information see also 37 the <a href="/gnu/gnu-linux-faq.html">GNU/Linux FAQ</a>, 38 and <a href="/gnu/why-gnu-linux.html">Why GNU/Linux?</a></p> 39 <hr class="no-display" /> 40 </div> 41 42 <p> 43 There really is a Linux, and these people are using it, but it is just 44 a part of the system they use. Linux is the kernel: the program in 45 the system that allocates the machine's resources to the other 46 programs that you run. The kernel is an essential part of an 47 operating system, but useless by itself; it can only function in the 48 context of a complete operating system. Linux is normally used in 49 combination with the GNU operating system: the whole system is 50 basically GNU with Linux added, or GNU/Linux. All the so-called 51 “Linux” distributions are really distributions of 52 GNU/Linux.</p> 53 54 <p> 55 Many users do not understand the difference between the kernel, which 56 is Linux, and the whole system, which they also call 57 “Linux.” The ambiguous use of the name doesn't help 58 people understand. These users often think that Linus Torvalds 59 developed the whole operating system in 1991, with a bit of help.</p> 60 61 <p> 62 Programmers generally know that Linux is a kernel. But since they 63 have generally heard the whole system called “Linux” as well, they 64 often envisage a history that would justify naming the whole system 65 after the kernel. For example, many believe that once Linus Torvalds 66 finished writing Linux, the kernel, its users looked around for other 67 free software to go with it, and found that (for no particular reason) 68 most everything necessary to make a Unix-like system was already 69 available.</p> 70 71 <p> 72 What they found was no accident—it was the not-quite-complete GNU 73 system. The available <a href="/philosophy/free-sw.html">free 74 software</a> added up to a complete system because the GNU Project 75 had been working since 1984 to make one. In 76 the <a href="/gnu/manifesto.html"> GNU Manifesto</a> we set forth 77 the goal of developing a free Unix-like 78 system, called GNU. The <a href="/gnu/initial-announcement.html"> 79 Initial Announcement</a> of the GNU Project also outlines some of the 80 original plans for the GNU system. By the time Linux was started, GNU 81 was almost finished.</p> 82 83 <p> 84 Most free software projects have the goal of developing a particular 85 program for a particular job. For example, Linus Torvalds set out to 86 write a Unix-like kernel (Linux); Donald Knuth set out to write a text 87 formatter (TeX); Bob Scheifler set out to develop a window system (the 88 X Window System). It's natural to measure the contribution of this 89 kind of project by specific programs that came from the project.</p> 90 91 <p> 92 If we tried to measure the GNU Project's contribution in this way, 93 what would we conclude? One CD-ROM vendor found that in their “Linux 94 distribution,” <a href="/philosophy/categories.html#GNUsoftware">GNU 95 software</a> was the largest single contingent, around 28% of the 96 total source code, and this included some of the essential major 97 components without which there could be no system. Linux itself was 98 about 3%. (The proportions in 2008 are similar: in the “main” 99 repository of gNewSense, Linux is 1.5% and GNU packages are 15%.) 100 So if you were going to pick a name for the system based on 101 who wrote the programs in the system, the most appropriate single 102 choice would be “GNU.”</p> 103 104 <p> 105 But that is not the deepest way to consider the question. The GNU 106 Project was not, is not, a project to develop specific software 107 packages. It was not a project <a href="/software/gcc/"> to 108 develop a C compiler</a>, although we did that. It was not a project 109 to develop a text editor, although we developed one. The GNU Project 110 set out to develop <em>a complete free Unix-like system</em>: GNU.</p> 111 112 <p> 113 Many people have made major contributions to the free software in the 114 system, and they all deserve credit for their software. But the 115 reason it is <em>an integrated system</em>—and not just a 116 collection of useful programs—is because the GNU Project set out 117 to make it one. We made a list of the programs needed to make 118 a <em>complete</em> free system, and we systematically found, wrote, 119 or found people to write everything on the list. We wrote essential 120 but unexciting <a class="ftn" href="#unexciting">[1]</a> components 121 because you can't have a system 122 without them. Some of our system components, the programming tools, 123 became popular on their own among programmers, but we wrote many 124 components that are not tools <a class="ftn" href="#nottools">[2]</a>. We even 125 developed a chess game, GNU Chess, because a complete system needs 126 games too.</p> 127 128 <p> 129 By the early 90s we had put together the whole system aside from the 130 kernel. We had also started a kernel, the 131 <a href="/software/hurd/hurd.html">GNU Hurd</a>, which runs on top of 132 Mach. Developing this kernel has been a lot harder than we expected; 133 <a href="/software/hurd/hurd-and-linux.html">the 134 GNU Hurd started working reliably in 2001</a>, but it is a long way 135 from being ready for people to use in general.</p> 136 137 <p> 138 Fortunately, we didn't have to wait for the Hurd, because of Linux. 139 Once Torvalds freed Linux in 1992, it fit into the last major gap in 140 the GNU system. People could 141 then <a href="https://ftp.funet.fi/pub/linux/historical/kernel/old-versions/RELNOTES-0.01"> 142 combine Linux with the GNU system</a> to make a complete free system—a 143 version of the GNU system which also contained Linux. The 144 GNU/Linux system, in other words.</p> 145 146 <p> 147 Making them work well together was not a trivial job. Some GNU 148 components <a class="ftn" href="#somecomponents">[3]</a> needed substantial change 149 to work with Linux. Integrating a complete system as a distribution 150 that would work “out of the box” was a big job, too. It 151 required addressing the issue of how to install and boot the 152 system—a problem we had not tackled, because we hadn't yet 153 reached that point. Thus, the people who developed the various system 154 distributions did a lot of essential work. But it was work that, in 155 the nature of things, was surely going to be done by someone.</p> 156 157 <p> 158 The GNU Project supports GNU/Linux systems as well as <em>the</em> GNU 159 system. The <a href="https://fsf.org/">FSF</a> funded the rewriting of 160 the Linux-related extensions to the GNU C library, so that now they 161 are well integrated, and the newest GNU/Linux systems use the current 162 library release with no changes. The FSF also funded an early stage 163 of the development of Debian GNU/Linux.</p> 164 165 <p> 166 Today there are many different variants of the GNU/Linux system (often 167 called “distros”). Most of them include nonfree 168 programs—their developers follow 169 the <a href="/philosophy/open-source-misses-the-point.html">“open 170 source” philosophy</a> associated with Linux rather than the 171 <a href="/philosophy/free-software-even-more-important.html">“free 172 software” philosophy</a> of GNU. But there are also 173 <a href="/distros/distros.html">completely free GNU/Linux distros</a>. 174 The FSF supports computer facilities for a few of them.</p> 175 176 <p>Making a free GNU/Linux distribution is not just a matter of 177 eliminating various nonfree programs. Nowadays, the usual version of 178 Linux contains nonfree programs too. These programs are intended to 179 be loaded into I/O devices when the system starts, and they are 180 included, as long series of numbers, in the “source code” of Linux. 181 Thus, maintaining free GNU/Linux distributions now entails maintaining 182 a <a href="https://directory.fsf.org/project/linux"> free version of 183 Linux</a> too.</p> 184 185 <p>Whether you use GNU/Linux or not, please don't confuse the public 186 by using the name “Linux” ambiguously. Linux is the 187 kernel, one of the essential major components of the system. The 188 system as a whole is basically the GNU system, with Linux added. When 189 you're talking about this combination, please call it 190 “GNU/Linux.”</p> 191 192 <p> 193 If you want to make a link on “GNU/Linux” for further 194 reference, this page and <a href="/gnu/thegnuproject.html"> 195 https://www.gnu.org/gnu/thegnuproject.html</a> are good choices. If 196 you mention Linux, the kernel, and want to add a link for further 197 reference, <a href="https://foldoc.org/linux">https://foldoc.org/linux</a> 198 is a good URL to use.</p> 199 <div class="column-limit"></div> 200 201 <h3 class="footnote">Postscripts</h3> 202 203 <p> 204 Aside from GNU, one other project has independently produced 205 a free Unix-like operating system. This system is known as BSD, and 206 it was developed at UC Berkeley. It was nonfree in the 80s, but 207 became free in the early 90s. A free operating system that exists 208 today <a class="ftn" href="#newersystems">[4]</a> is almost certainly either a 209 variant of the GNU system, or a kind of BSD system.</p> 210 211 <p> 212 People sometimes ask whether BSD too is a version of GNU, like 213 GNU/Linux. The BSD developers were inspired to make their code free 214 software by the example of the GNU Project, and explicit appeals from 215 GNU activists helped persuade them, but the code had little overlap 216 with GNU. BSD systems today use some GNU programs, just as the GNU 217 system and its variants use some BSD programs; however, taken as 218 wholes, they are two different systems that evolved separately. The 219 BSD developers did not write a kernel and add it to the GNU system, 220 and a name like GNU/BSD would not fit the situation <a class="ftn" 221 href="#gnubsd">[5]</a>.</p> 222 <div class="column-limit"></div> 223 224 <h3 class="footnote">Footnotes</h3> 225 <ol> 226 <li id="unexciting">These unexciting but essential components 227 include the GNU assembler (GAS) and the linker (GLD), both 228 are now part of the <a href="/software/binutils/">GNU Binutils</a> 229 package, <a href="/software/tar/">GNU tar</a>, and many more.</li> 230 231 <li id="nottools">For instance, The Bourne Again SHell (BASH), 232 the PostScript interpreter 233 <a href="/software/ghostscript/ghostscript.html">Ghostscript</a>, and the 234 <a href="/software/libc/libc.html">GNU C library</a> are not 235 programming tools. Neither are GNUCash, GNOME, and GNU Chess.</li> 236 237 <li id="somecomponents">For instance, the 238 <a href="/software/libc/libc.html">GNU C library</a>.</li> 239 240 <li id="newersystems">Since that was written, a nearly-all-free 241 Windows-like system has been developed, but technically it is not at 242 all like GNU or Unix, so it doesn't really affect this issue. Most of 243 the kernel of Solaris has been made free, but if you wanted to make a 244 free system out of that, aside from replacing the missing parts of the 245 kernel, you would also need to put it into GNU or BSD.</li> 246 247 <li id="gnubsd">On the other hand, in the years since this article 248 was written, the GNU C Library has been ported to several versions of 249 the BSD kernel, which made it straightforward to combine the GNU system 250 with that kernel. Just as with GNU/Linux, these are indeed variants of 251 GNU, and are therefore called, for instance, GNU/kFreeBSD and 252 GNU/kNetBSD depending on the kernel of the system. Ordinary users on 253 typical desktops can hardly distinguish between GNU/Linux and 254 GNU/*BSD.</li> 255 </ol> 256 </div> 257 258 </div><!-- for id="content", starts in the include above --> 259 <!--#include virtual="/server/footer.html" --> 260 <div id="footer" role="contentinfo"> 261 <div class="unprintable"> 262 263 <p>Please send general FSF & GNU inquiries to 264 <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. 265 There are also <a href="/contact/">other ways to contact</a> 266 the FSF. Broken links and other corrections or suggestions can be sent 267 to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 268 269 <p><!-- TRANSLATORS: Ignore the original text in this paragraph, 270 replace it with the translation of these two: 271 272 We work hard and do our best to provide accurate, good quality 273 translations. However, we are not exempt from imperfection. 274 Please send your comments and general suggestions in this regard 275 to <a href="mailto:web-translators@gnu.org"> 276 <web-translators@gnu.org></a>.</p> 277 278 <p>For information on coordinating and contributing translations of 279 our web pages, see <a 280 href="/server/standards/README.translations.html">Translations 281 README</a>. --> 282 Please see the <a 283 href="/server/standards/README.translations.html">Translations 284 README</a> for information on coordinating and contributing translations 285 of this article.</p> 286 </div> 287 288 <!-- Regarding copyright, in general, standalone pages (as opposed to 289 files generated as part of manuals) on the GNU web server should 290 be under CC BY-ND 4.0. Please do NOT change or remove this 291 without talking with the webmasters or licensing team first. 292 Please make sure the copyright date is consistent with the 293 document. For web pages, it is ok to list just the latest year the 294 document was modified, or published. 295 296 If you wish to list earlier years, that is ok too. 297 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 298 years, as long as each year in the range is in fact a copyrightable 299 year, i.e., a year in which the document was published (including 300 being publicly visible on the web or in a revision control system). 301 302 There is more detail about copyright years in the GNU Maintainers 303 Information document, www.gnu.org/prep/maintain. --> 304 305 <p>Copyright © 1997-2002, 2005, 2008, 2019, 2021 Richard Stallman</p> 306 307 <p>This page is licensed under a <a rel="license" 308 href="http://creativecommons.org/licenses/by-nd/4.0/">Creative 309 Commons Attribution-NoDerivatives 4.0 International License</a>.</p> 310 311 <!--#include virtual="/server/bottom-notes.html" --> 312 313 <p class="unprintable">Updated: 314 <!-- timestamp start --> 315 $Date: 2021/11/02 13:20:53 $ 316 <!-- timestamp end --> 317 </p> 318 </div> 319 </div><!-- for class="inner", starts in the banner include --> 320 </body> 321 </html>