GNU

from Wikipedia, the free encyclopedia

GNU
The GNU mascot
Gnome-2.18.1.png
One of the desktop usable with GNU, Gnome
developer GNU project
License (s) GNU GPL
Kernel Do microkernel / Linux
ancestry GNU (no ancestors)
www.gnu.org

GNU ( German and English [ ˈgnuː ], listen ? / I ) is a Unix-like operating system and completely free software that is being developed as a software collection of applications and libraries as part of the GNU project , which started in 1984 . GNU is under the GNU General Public License (GPL). Since the project's own kernel , GNU Hurd , is not suitable for practical use, the system is now usually combined with the Linux kernel and called GNU / Linux, but mostly simply Linux . Audio file / audio sample

The name GNU is a recursive acronym of “GNU's Not Unix” (“GNU is not Unix”) and should, to avoid confusion, be pronounced like the animal Gnu in German, not like in English (not like new ). The head of an African wildebeest antelope was also chosen as the logo.

history

After the announcement in 1983 and the subsequent establishment of the GNU Project in 1984, which aimed to develop GNU, the GNU operating system has been actively developed ever since. GNU was designed to be as compatible as possible with Unix . There were several reasons for this decision: First, it was certain that most companies would reject a fundamentally new operating system if the programs they were using did not run on it. On the other hand, the architecture of Unix enabled rapid, simple and distributed development, since Unix consists of many small programs that can largely be developed independently of one another.

In 1990 a development system with the GNU C compiler and many system programs was completed, but a kernel was still missing. The Free Software Foundation then decided (after much back and forth) to use the Mach kernel. Based on this, a multi-server operating system should be written so that the system can be expanded more easily with additional components and users without administrator rights can also integrate their own components without endangering the stability of the overall system.

The multi-server system was named GNU Hurd . However, because it made heavy use of multithreading , debugging proved very difficult. The project became very large and difficult to manage. At the same time, the developers were drawn to the much more pragmatic Linux , which was missing GNU Mach and GNU Hurd. The development of these parts was slow. During this time, a running gag was created in which users asked when Hurd was ready and the response referred to the next year. Hurd is therefore often referred to as vaporware .

In 1998, Marcus Brinkmann launched the Debian GNU / Hurd project to give the development more momentum. The infrastructure of the Debian project was made usable for GNU Mach and GNU Hurd, whereby a larger number of applications was ported to the system for the first time. A usable installation routine was created as part of Debian GNU / Hurd, and X11, Gnome and KDE were also ported to the platform. In addition, she benefited from the sophisticated package management using apt-get , dpkg and the other tools that Debian provides for system administration. Brinkmann also expanded the GNU Hurd to include a Unicode- enabled console , which is based on a client / server architecture and thus significantly exceeds the Linux console in terms of flexibility.

In 2001 there were also efforts to port GNU Hurd from the Mach microkernel GNU Mach to an L4 kernel, a second generation microkernel. Like Debian GNU / Hurd, this L4 Hurd project was also largely promoted and coordinated by Marcus Brinkmann. In February 2005 the first phase of this porting was completed. Since then, the first small programs can be executed under a GNU Hurd L4 system. However, neither a shell nor the GNU software are available so far , so that interaction with the system is initially limited to using the kernel debugger . In January 2006 there were considerations to use Coyotos instead of the L4 microkernel .

Kernel

The GNU project provides the GNU Hurd kernel for GNU . The decision to use this experimental kernel was an important reason for the slow development of a usable GNU operating system.

GNU Mach is the favored microkernel of the GNU project, which enables the abstraction of the hardware. It is an implementation of the Mach kernel and is currently (December 2015) the standard microkernel of GNU Hurd. So far, GNU Mach only runs on machines with the outdated Intel 32-bit architecture . Further ports are planned for the future, but development is stagnating. Since the combination of Mach and Hurd is still difficult to use productively, Linux is very often used as the kernel and the entire system is just called “Linux” instead of GNU / Linux .

“Hurd / L4” or “L4-Hurd” is a project that was supposed to port “GNU Hurd” to the L4 microkernel and thus replace GNU Mach in the long term. However, L4 has been found to be unsuitable.

GNU / Linux and its components

The combination of GNU and the Linux kernel enables a mature, stable operating system for personal computers , servers and embedded systems and consists of the following parts:

Parts with operating system relevance

  • GNU packages (with operating system relevance ), consisting of shell , core utils , compilers such as GCC , libraries such as glibc and implementation of all functions of the POSIX System Application Program Interface (POSIX.1) etc. The GCC compiler can process machine code for a large number of computer Generate architectures.
  • Non-GNU programs with operating system relevance, which are intended by the GNU project for use with GNU. Since these programs were already available as free software (i.e. they have license conditions that are compatible with the freedom goals of the GNU project), these programs did not have to be written by the GNU project itself. Examples are the X Window System .
  • Linux kernel as hardware-related software with which the system can be operated on a large number of computer architectures; the kernel implements scheduling , multitasking , device drivers , memory management , etc. Linus Torvalds published the Linux kernel in 1992 under the GNU General Public License ; this is not part of the GNU project.

Parts without operating system relevance

  • Programs under free license (e.g. application programs, partly also from the GNU project), e.g. Bazaar , GIMP or GNU Octave
  • Proprietary programs are strictly rejected by the GNU Project and the Free Software Foundation because they do not meet their freedom goals. This includes B. Adobe Flash Player .

Programs

To enable a complete operating system, a software suite of applications, libraries, and utility programs for developers - called GNU software or packages - and GNU Hurd were programmed as the kernel.

Since the GNU Hurd as a system kernel has so far been poorly suited for productive use, the GNU operating system is usually used together with the Linux kernel. However, Linux as the kernel also contains proprietary firmware , which is why a free variant of the fork Linux-libre is being developed.

Unix utilities were replaced by equivalent GNU projects because comparisons found that GNU software was more stable and less prone to errors. Some GNU programs, e.g. The GNU Compiler Collection , for example , has been ported to almost all operating systems used today.

Other well-known software from the GNU project are the GNU-C library , the Bash (Bourne Again Shell), the GNU Emacs text editor and the GNU Debugger .

It should be noted that not all software that is usually supplied with a GNU / Linux distribution was created by the GNU project. For example, the GNU project does without B. on developing your own X Window System , because a free implementation has now been created by others.

history

The first program written for GNU was Richard Stallman's GNU Emacs text editor . Work on it began in September 1984. In early 1985, Stallman himself first classified it as usable. At that time, software distribution via the Internet was not yet common, as access was rare. Instead, software was sold on floppy disks .

In 1991 Linus Torvalds, inspired by GNU, developed a new kernel: Linux. This was released in 1992 under the GNU General Public License and was used by some distributors as a variant of the not yet completed system kernel GNU Hurd. It is thanks to Linux that a version of the GNU system is actually executable today. In the course of increasing popularity, this variant was incorrectly called "Linux" for GNUs. Richard Stallman therefore values ​​the term GNU / Linux . (See also GNU / Linux name dispute .)

status

The operating system is still constantly updated. GNU Hurd is also only sporadically under development because not all areas of Hurd have been fully implemented. The development of the microkernels has meanwhile partly fallen asleep. On the other hand, GNU utilities are complete. For years, GNU has been used mainly in the Linux-based variant called GNU / Linux and on free and proprietary Unix systems in all areas.

Debian GNU / Hurd

The most advanced and active GNU distribution based on Hurd is currently Debian GNU / Hurd. About 78% of the 30,000 or so packages contained in the official Debian archive have so far been successfully translated for Debian GNU / Hurd.

Gentoo / Hurd

In addition to the Debian GNU / Hurd port, there are also Gentoo / Hurd projects, but they have been at rest since September 2006 and are looking for support.

Arch Hurd

Since January 2010 we have been actively working on a Hurd distribution that represents the principles of Arch Linux .

variants

The GNU system was in fact an operating system that lacked a kernel. Since the software can be rolled out to kernels other than GNU Hurd, there are systems that can be referred to as variants of GNU. GNU / Linux is by far the most popular variant of GNU and is often referred to as Linux (see GNU / Linux name dispute ).

There is also Cygwin, a Windows based GNU system developed by Red Hat (formerly Cygnus Solutions ) .

See also

Portal: Free Software  - Overview of Wikipedia content on the subject of Free Software

Web links

Commons : GNU  album with pictures, videos and audio files

Individual evidence

  1. Introduction to GNU Mach. In: gnu.org. Free Software Foundation January 20, 2007, archived from the original on November 12, 2008 ; accessed on January 17, 2013 .
  2. a b NEWS - hurd / gnumach.git - GNU Mach. Retrieved September 1, 2019 .
  3. Mailing lists on the GNU website
  4. What happened to the L4 / Coyotos / viengoos micro-kernels? In: GNU website - Hurd faq. Free Software Foundation, Inc., July 19, 2011, accessed March 25, 2012 .
  5. All GNU packages (gnu.org)
  6. GNU @ Free Software Directory (fsf.org)
  7. ^ POSIX - The GNU C Library
  8. glibc (Posix)
  9. GCC target systems
  10. https://ftp.gnu.org/non-gnu/
  11. https://ftp.gnu.org/non-gnu/X11.README
  12. ^ The Linux Kernel Archives
  13. Release Notes for Linux v0.12
  14. Should the GNU / [Name] Convention apply to all programs that are under the GPL? GNU / Linux FAQ by Richard Stallman
  15. Why write GNU / Linux instead of GNU Linux? GNU / Linux FAQ by Richard Stallman
  16. Isn't it wrong to call the work of Linus Torvalds GNU? GNU / Linux FAQ by Richard Stallman
  17. Does Linus Torvalds agree that Linux is only the kernel of the operating system? GNU / Linux FAQ by Richard Stallman
  18. FSF Free Software directory
  19. Avoid ruinous compromises (gnu.org)
  20. ^ Cornerstone GNU Software on the GNU website
  21. Barton P. Miller et al : Fuzz Revisited: A Re-examination of the reliability of Unix Utilities and Services , February 18, 2000
  22. ^ Richard Stallman: The GNU Project on gnu.org, April 17, 2012
  23. GNU Hurd Status , April 17, 2012
  24. ^ Richard Stallman: The GNU Project , April 17, 2012
  25. Richard Stallman, GNU Users Who Have Never Heard of GNU , April 17, 2012
  26. ^ The GNU / Hurd architecture, nifty features, and latest news . Retrieved February 11, 2013.