GNU/Linux is one of the most important examples of Free Software, the terms used to refer to the Unix free operating system, often using the GNU System tools. All source code can be freely used, modified and redistributed by anyone under the GPL (General Public License) and other free licenses.
Although it is a Linux operating system, since it is usually handled with GNU tools, a large part of the society, as well as many general and specialized media, use the term Linux to refer to the unity of both projects.
Variants of this program and technology union are called distribution. Its purpose is to offer versions that meet the needs of a particular group of users. Some are especially known for their use on servers and supercomputers. However, it is possible to install a wide variety of hardware such as desktop and laptop computers.
More suitable alternatives can replace GNU parts in pocket computers, mobile phones, embedded devices, game consoles, and others.
The name GNU (GNU is not Unix) comes from the basic operating system tools created by the GNU project, launched by Richard Stallman in 1983 and maintained by the FSF (Free Software Foundation). The name Linux comes from the Linux kernel originally created by Linus Torvalds in 1991.
The contribution of GNU causes controversy when it comes to using Linux or GNU/Linux to refer to the free operating system consisting of GNU tools and the Linux kernel as a whole.
Launched in 1983 by Richard Stallman, the GNU project aimed to develop a complete Unix operating system consisting entirely of Free Software. The history of the Linux kernel is closely linked to the history of the GNU project. In 1991, Linus Torvalds started working on a non-commercial backup of MINIX.
When the first version of Linux was released, the GNU project produced several of the basic tools for managing the operating system, including a command interpreter, a C library and a compiler.
To continue developing the GNU project, they started using Linux, following the philosophy of collaborative collaboration among developers.
The core created by Linus Torvalds, who studied at the University of Helsinki at that time, filled the final gap in the operating system.
Torvalds first released the Linux kernel under its own license, which is almost a shared resource license and has restrictions on commercial activity. He proposed to switch to the GNU GPL in 1992. He first announced this change in release notes 0.12 and released version 0.99 in mid-December 1992.
It offers an alternative graphic interface to the traditional Unix command-line interface in desktop environments. Currently, there are numerous graphics applications that offer functionality that allows it to adapt as a desktop tool.
Many distributions allow the system to boot directly from a CD/DVD without changing the hard disk of the computer on which it is running. For such distributions, in general, image files can be downloaded from the Internet.
Gathering utilities for GNU programming is the most widely used compiler family in this operating system. It has the ability to compile C, C++, Java, and Ada among many other languages. It also supports various architectures through cross-compilation, making it a suitable environment for heterogeneous developments.
There are several integrated development environments such as Anjuta, KDevelop, Ultimate ++, Code::Blocks, NetBeans IDE and Eclipse.
There are also powerful editors like Emacs or Vim. It also has capabilities for coding languages other than Classic Shell programming languages or patterns and regular expression languages called awk.
There are a number of public powers that demonstrate free software support by fully or partially moving or subsidizing their servers and desktop systems. As an example, the Republic of Cuba has migrated all its workstations to Linux.
Although some of the community and many media prefer this operating system Linux, GNU/Linux is the name defended by the GNU Project and FSF, along with other developers and users for the operating system. Uses the Linux kernel with system applications created by the GNU project and many other software projects.
Since 1984, Richard Stallman and many volunteers have been trying to create a free operating system with a UNIX-like operation and have been rebuilding all the necessary components to have a functional operating system.
In the early 90s, about six years after the project started, GNU had many important tools, such as text, editors, compilers, debuggers, command prompt, kernel except the core component.
GNU had its own core project called Hurd. However, its development did not continue as expected when the Linux kernel appeared. In this way, the minimum requirements have been completed and the GNU operating system using this kernel has emerged.
The main argument of the advocates of this name is to solve the possible confusion that can occur between the kernel (Linux) and the majority of the basic tools of the rest of the operating system (GNU).
In addition, with the use of the name GNU, it will be recognized for creating the necessary system tools as a UNIX compatible operating system and only the quality of free software will be emphasized.
The FSF called this system “Linux” at least until June 1994, and only as of January 1995 was called GNU/Linux. While some distributions support this name, distributions such as Slackware, Gentoo or Ubuntu choose to be named Linux-based.
Linux Usage and Features
Linux has a number of features that stand out in the development of Free Software:
Multitasking: The word multitasking describes the ability to run multiple programs simultaneously. It uses the preventive multitasking call that ensures that all programs used at any time are executed, and the operating system is responsible for giving microprocessor time to each program.
Multiuser: Many users using the same machine at the same time.
Multiplatform: The platforms Linux can be used at startup 386-, 486-. There are also versions for use on other platforms such as Pentium, Pentium Pro, Pentium II, Amiga and Atari, Alpha, ARM, MIPS, PowerPC, and SPARC.
Multiprocessor: Support is available for systems with multiple processors for Intel and SPARC.
It operates in 386 protected mode and does not strain the system, thanks to the preservation of memory between processes.
Load executables on demand: Reads only the parts of a program that are in use from the disk.
Copy-on-write policy for sharing pages between executables: This means that multiple processes can use the same memory space to run. When anyone tries to write to this memory, the page is copied to another location. The overwrite policy has two advantages: it increases speed and reduces memory usage.
Virtual memory using disk to disk: With the ability to instantly add swap space to a partition or file or both in the File System, a total of 16 swap spaces can be used at any time with a maximum of 128 MB. It is a theoretical limit of 2 Gb for change. This limitation can be easily increased by changing a few lines in the Source Code.
Memory is managed as a unified resource for user programs and disk cache so that all free memory can be used for cache and reduced when running large programs.
Dynamic load shared libraries (DLLs) and static libraries.
In order to enable post-mortem analysis, the status dumps are performed, allowing debuggers to be used not only in running programs but after being canceled for any reason.
It is compatible with POSIX, System V and BSD at the source level.
Almost fully compatible iBCS2 emulation at binary level with SCO, SVR3 and SVR4.
All source code is available, including full kernel and all drivers, development tools, and all user programs. In addition, all of these can be freely distributed. There are some commercial programs currently offered without source code.
POSIX task control.
The core is 387 emulation, so programs don’t have to do their own math emulation. It appears that any machine running Linux has a mathematical processor. Of course, if the computer already has an FPU (floating-point unit), this will be used instead of emulation, it can even compile its own kernel without mathematical emulation and save a little memory.
It supports many national or adapted keyboards and is easy enough to dynamically add new keyboards.
Multiple Virtual Consoles: Multiple sessions that can be changed with appropriate key combinations on the console. It is dynamically created and you can own up to 64.
It has many common file system support, including Minix-1, Xenix, and all typical System V file systems, and its own advanced file system with a capacity of up to 4 TB, and file names up to 255 characters long.
Transparent access to MS-DOS partitions (or OS/2 FAT partitions) through a special file system: No special command is required to use the MS-DOS partition, this is similar to a normal Unix file system.
Compressed MS-DOS 6 partitions are currently unavailable and are not expected in the future. VFAT support has been added to the development kernel and will be in the next stable release.
A special file system called UMSDOS that allows Linux to be installed on a DOS file system.
CD-ROM file system that reads all standard CD-ROM formats.