NOTICE: All Linux questions must be related to programming; those that aren't will be closed. Use this tag only if your question relates to programming using Linux APIs or Linux-specific behavior, not just because you happen to run your code on Linux. If you need Linux support, you can try https://unix.stackexchange.com or the specific Linux distribution's Stack Exchange site like https://askubuntu.com or https://elementaryos.stackexchange.com/
GNU/Linux is a Unix-like computer operating system which consists of necessary user-space libraries and programs provided by GNU in Cambridge, Massachusetts and a kernel, developed by Linus Torvalds in Helsinki, Finland.
The GNU/Linux naming controversy is a dispute among members of the free and open-source software community over how to refer to the computer operating system commonly called linux.
Design
A GNU/Linux-based system is a modular Unix-like operating system. It derives much of its basic design from principles established in Unix during the 1970s and 1980s. Such a system uses a monolithic kernel that handles process control, networking, and peripheral and file system access. Device drivers are either integrated directly with the kernel or added as modules loaded while the system is running.
Separate projects that interface with the kernel provide much of the system's higher-level functionality. The GNU user land is an important part of most GNU/Linux-based systems, providing the most common implementation of the C library, a popular shell, and many of the common Unix tools which carry out many basic operating system tasks. The graphical user interface (or GUI) used by most GNU/Linux systems is built on top of an implementation of the X Window System.
Tag Usage
The linux tag on Stack Overflow is generally used for questions about:
- programming against the APIs supplied by the operating system
- the implementation of the kernel
- programming tools and techniques for use on a Linux-based system.
Notable questions that probably don't belong are:
- questions about using a desktop or laptop GNU/Linux system are better directed towards Super User, Unix & Linux, Ask Ubuntu, or Elementary OS if they're specifically about those distributions.
- questions about administering GNU/Linux systems for other users and networking GNU/Linux systems in a context more complicated than a minimal home network are better directed towards Server Fault.
Many questions about GNU/Linux can also be properly tagged as unix, but some features are specific to GNU/Linux and are not found on other Unix™ and Unix-like operating systems. If you have questions about a specific distribution and version (e.g., ubuntu-14.04, it may not be necessary to use this tag for that question.
A fair number of linux questions are questions about the command shell (bash
by default on many systems), and are probably better tagged with shell and/or the particular shell you are interested in (bash, zsh, tcsh, etc.).
Questions about the internals of the Linux kernel or regarding writing Linux kernel modules should be tagged linux-kernel.
Free Linux and GNU/Linux Books
- Advanced Linux Programming
- GNU Autoconf, Automake and Libtool
- GTK+/Gnome Application Development
- The Linux Development Platform (PDF)
- Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
- The Linux Kernel Module Programming Guide
- Secure Programming for Linux and Unix
Common GNU/Linux distributions
- Debian
- Fedora
- openSUSE
- Ubuntu
- Open Mandriva
- Linux Mint
- Slax
- CentOS
- Gentoo
- Red Hat
- Oracle Linux
- Arch Linux
- Elementary OS
- Kali Linux
- Raspbian
Distrowatch aggregates new release notices from these and hundreds of other GNU/Linux distributions, Phoronix keeps track of new GNU/Linux features and GNU/Linux Performance.
Other resources
- Official website
- Unix & Linux Stack Exchange
- Linux on Wikipedia
- Linux Documentation
- TLDP: The Linux Documentation Project
- Command Line Tutorial
Related tags
debian fedora opensuse ubuntu centos gentoo redhat unix gnu operating-system