Skip to content

Commit 2475d3b

Browse files
committed
Expanding preliminaries section
1 parent 58f8603 commit 2475d3b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

Linux/Linux-distros-comparison.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,15 @@ When I mention "exotic" or "obscure" software, I mean software that is fairly un
5959

6060
# Preliminaries
6161
## What is Linux?
62-
A Linux distribution is defined by its use of the [Linux kernel](https://en.wikipedia.org/wiki/Linux_kernel). The kernel is the component of an operating system that manages all communication between hardware and software. [File system](https://en.wikipedia.org/wiki/File_system) (which provides a structure for the organization and access of files) support is also within the kernel, although some tools for managing file systems (e.g. `mkfs` command) are provided by other core system software.
62+
A Linux distribution is defined by its use of the [Linux kernel](https://en.wikipedia.org/wiki/Linux_kernel). The kernel is the component of an operating system that manages all communication between hardware and software. [File system](https://en.wikipedia.org/wiki/File_system) (which provides a structure for the organization and access of files) support is also mostly within the kernel, although some tools for managing file systems (e.g. `mkfs` command) are provided by other core system software. Device drivers—which are pieces of software required to get specific hardware devices to work—are typically included within the kernel. That being said, support for certain file systems and some device drivers is provided separately to the kernel due to licensing issues.
6363

64-
Popular file systems with Linux kernel support include, but are not limited to: [Btrfs](https://en.wikipedia.org/wiki/Btrfs), [ext4](https://en.wikipedia.org/wiki/Ext4), [FAT32](https://en.wikipedia.org/wiki/File_Allocation_Table#FAT32) (popular for [EFI system partitions](https://en.wikipedia.org/wiki/EFI_system_partition)) and [XFS](https://en.wikipedia.org/wiki/Xfs). The Linux kernel can also support [ZFS](https://en.wikipedia.org/wiki/ZFS) via a third-party kernel module. This third-party kernel module requirement is because ZFS' licence is incompatible with the kernel's [GNU General Public Licence](https://en.wikipedia.org/wiki/GNU_General_Public_License) (GPL) and hence cannot be included in the kernel's source code.
64+
## Licensing
65+
The Linux kernel is likely the single most popular operating system kernel in the world, due to its use in servers, Android smartphones and IoT devices. Unlike the kernel of Windows, it is [open source](https://en.wikipedia.org/wiki/Open_source). Open source, in this context, means that the source code of the Linux kernel is openly shared and can be legally modified and redistributed by anyone. The Linux kernel is licensed under the [GNU General Public License](https://en.wikipedia.org/wiki/GNU_General_Public_License) (GPL), which is [copyleft](https://en.wikipedia.org/wiki/Copyleft). A copyleft license is an open-source licence that requires that any code derived from code licensed under it is distributed under a similar copyleft license. Many companies (e.g. [NVIDIA](https://en.wikipedia.org/wiki/NVIDIA) and [Broadcom](https://en.wikipedia.org/wiki/Broadcom)) that design hardware and their device drivers choose not to distribute their drivers under the GPL or licenses compatible with it. Due to this, these drivers cannot be included in the kernel. This is one reason why desktop Linux users often experience hardware compatibility issues when running Linux. Likewise, the Linux kernel module that adds support for the [ZFS](https://en.wikipedia.org/wiki/ZFS) file system is distributed under the [Common Development and Distribution License](https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License) (CDDL), which does satisfy the open-source criterion, but it is not copyleft and hence is not GPL compatible and cannot be included in the kernel.
6566

66-
Btrfs and ZFS are the most advanced of these file systems and both have a focus on safeguarding data integrity and support snapshotting to back up the file system. They also have among the largest maximum file system and file sizes. I have heard that Btrfs can be slightly worse for performance than ext4. ext4 is a more basic file system without the advanced features of Btrfs and ZFS for safeguarding data integrity and taking snapshots to back up the file system. Xfs is designed to have superior performance to ext4 in some circumstances and its maximum file system and file sizes are larger too, although these limits are $\geq$16TB.
67+
## File system
68+
Popular file systems with Linux kernel support include, but are not limited to: [Btrfs](https://en.wikipedia.org/wiki/Btrfs), [ext4](https://en.wikipedia.org/wiki/Ext4), [FAT32](https://en.wikipedia.org/wiki/File_Allocation_Table#FAT32) (popular for [EFI system partitions](https://en.wikipedia.org/wiki/EFI_system_partition)) and [XFS](https://en.wikipedia.org/wiki/Xfs). The Linux kernel can also support [ZFS](https://en.wikipedia.org/wiki/ZFS) via a third-party kernel module. Btrfs and ZFS are the most advanced of these file systems, they can both span multiple disks and both have a focus on safeguarding data integrity and support snapshotting to back up the file system. They also have among the largest maximum file system and file sizes. ZFS is the more mature file system out of Btrfs and ZFS and has more advanced features. Btrfs and ZFS are particularly popular on servers, due to the importance of data integrity, backups and the ability of file systems to span multiple disks in this specific context. ext4 is a more basic file system without the advanced data integrity safeguards, snapshotting features and ability to span multiple disks of Btrfs and ZFS. XFS is designed to have superior performance to ext4 in some circumstances and its maximum file system and file sizes are larger too, although these limits are $\geq$16TB.
6769

70+
## Unix
6871
Linux distributions are almost always [Unix-like](https://en.wikipedia.org/wiki/Unix-like) too, although there are exceptions like [Android](https://en.wikipedia.org/wiki/Android_(operating_system)). This means, among other things, that most Linux distributions share similar commands to Unix systems and roughly follow the design philosophy of Unix with each command doing just one thing and doing it well.
6972

7073
## Core components of a Linux distribution

0 commit comments

Comments
 (0)