Ядро Linux

Ядро Linux () — ядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux, а также ряда операционных систем для мобильных устройств, в том числе Android, Tizen, KaiOS. Разработка кода ядра была начата финским студентом Линусом Торвальдсом в 1991 году, на его имя зарегистрирована торговая марка «Linux».

Код написан в основном на Си с некоторыми расширениями gcc и на ассемблере (с использованием AT&T-синтаксиса GNU Assembler).

Распространяется как свободное программное обеспечение на условиях GNU General Public License, кроме несвободных элементов, особенно драйверов, которые используют прошивки, распространяемые под различными лицензиями.

Операционные системы на базе ядра Linux являются лидерами на рынках суперкомпьютеров, микрокомпьютеров, серверов и смартфонов.

История 
Начало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet.

К тому времени GNU уже создал множество составляющих для свободной операционной системы, но её ядро GNU Hurd ещё не было готово. Поэтому пустующее место ядра для свободной операционной системы занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей.

«Linux» как ядро операционной системы, разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, в связи с чем существует спор об именовании GNU/Linux — некоторые сторонники движения GNU считают, что именно такое наименование является корректным для операционной системы на базе ядра Linux и использующей наработки проекта GNU (такие, как glibc, gcc, bash, coreutils и другие).

По состоянию на май 2020 года семейство операционных систем на базе ядра Linux — третье по популярности в мире на рынке настольных компьютеров — 4,9 %.
На рынке веб-серверов доля Linux порядка 31 %, остальное — Unix-системы (FreeBSD и др.).
По данным Top500 (май 2020 года), Linux используется в качестве операционной системы на 100 % самых мощных суперкомпьютеров планеты.

Большинство мобильных устройств, таких, как смартфоны и планшетные компьютеры на базе операционных систем Android, MeeGo, Tizen, а также телевизоры и многие служебные устройства, такие, как внешние сетевые жёсткие диски, маршрутизаторы и модемы, также использует операционные системы на базе ядра Linux.

Хронология 
 Апрель 1991: 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач.
 25 августа 1991: Торвальдс поместил сообщение в новостную группу по Minix.
 17 сентября 1991: Linux версии 0.01 (10 239 строк кода).
 5 октября 1991: Linux версии 0.02.
 Декабрь 1991: Linux версии 0.11. Это была первая версия Linux, на которой можно было собрать Linux из исходных кодов.
 19 января 1992: Первое сообщение в группе новостей alt.os.linux.
 31 марта 1992: Создана специализированная группа новостей comp.os.linux.
 Апрель 1992: Linux версии 0.96, на котором стало возможно запустить графический сервер X Window System.
 Весь 1993 и начало 1994: 15 тестовых выпусков версии 0.99.* (в июле 1993 введено понятие BogoMips).
 14 марта 1994: Linux версии 1.0.0 (176 250 строк кода).
 Март 1995: Linux версии 1.2.0 (310 950 строк кода).
 9 мая 1996: Выбран символ Linux — пингвин Tux.
 9 июня 1996: Linux версии 2.0.0 (777 956 строк кода).
 25 января 1999: Linux версии 2.2.0, изначально довольно недоработанный (1 800 847 строк кода).
 4 января 2001: Linux версии 2.4.0 (3 377 902 строки кода).
 18 декабря 2003: Linux версии 2.6.0 (5 929 913 строк кода).
 23 марта 2009: Linux версии 2.6.29, временный символ Linux — тасманский дьявол Tuz (11 010 647 строк кода).
 22 июля 2011: релиз Linux 3.0 (14,6 млн строк кода).
 24 октября 2011: релиз Linux 3.1.
 15 января 2012: релиз Linux 3.3 преодолел отметку в 15 млн строк кода.
 23 февраля 2015: первый релиз-кандидат Linux 4.0 (более 19 млн строк кода).
 7 января 2019: первый релиз-кандидат Linux 5.0 (более 26 млн строк кода).

Версии 
Торвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов Linux поддерживают свои собственные версии ядра, например, включая в них драйверы устройств, которые ещё не включены в официальную версию. С 30 мая 2011 изменена политика нумерации версий ядра.

Нумерация версий до 30 мая 2011 
Номер версии ядра Linux до 30 мая 2011 содержал четыре числа, согласно недавнему изменению в политике именования версий, схема которой долгое время была основана на трёх числах. Для иллюстрации допустим, что номер версии составлен таким образом: A.B.C[.D] (например, 2.2.1, 2.4.13 или 2.6.12.3).

 Число A обозначает версию ядра. Изначально задумывалось, что оно будет изменяться редко и только тогда, когда вносятся значительные изменения в код и концепцию ядра, первые такие изменения произошли в 1994 году (версия 1.0) и в 1996 году (версия 2.0).
 Число B обозначает старшую версию ревизии ядра. В ядрах до версии 3.0 чётные числа обозначали стабильные ревизии, то есть те, которые предназначены для продуктивного использования, такие, как 1.2, 2.4 или 2.6, а нечётные — ревизии для разработчиков, предназначенные для того, чтобы тестировать новые улучшения и драйверы до тех пор, пока они не станут достаточно стабильными для того, чтобы включить их в стабильный выпуск.
 Число C обозначает младшую версию ревизии ядра. В старой трёхчисловой схеме нумерации оно изменялось тогда, когда в ядро включались заплатки, связанные с безопасностью, исправления ошибок, новые улучшения или драйверы. С новой политикой нумерации, однако, оно изменяется только тогда, когда вносятся новые драйверы или улучшения; небольшие исправления поддерживаются числом D.
 Число D впервые появилось после случая, когда в коде ядра версии 2.6.8 была обнаружена грубая, требующая незамедлительного исправления ошибка, связанная с NFS. Однако других изменений было недостаточно для того, чтобы это послужило причиной для выпуска новой младшей ревизии (которой должна была стать 2.6.9). Поэтому была выпущена версия 2.6.8.1 с единственным изменением в виде исправления этой ошибки. С ядра 2.6.11 эта нумерация была адаптирована в качестве новой официальной политики версий. Исправления ошибок и заплатки безопасности теперь обозначаются с помощью четвёртого числа, тогда как большие изменения отражаются в увеличении младшей версии ревизии ядра (число C).

Нумерация версий с 30 мая 2011 
30 мая 2011 Линус Торвальдс выпустил ядро версии 3.0-rc1. Вместе с ним изменена политика нумерации версий ядра. Отменено использование чётных и нечётных номеров для обозначения стабильности ядра, а третье число означает стабильность ядра. Версия 3.0 практически не несёт никаких изменений, кроме изменения политики нумерации ядра. Таким образом, стабильные версии ядра 3.0 будут именоваться 3.0.X, а следующий после этого релиз будет иметь номер 3.1.

Поддержка 
В то время как Торвальдс продолжает выпускать новые экспериментальные версии, руководство LTS-версиями передаётся другим лицам:

Другими программистами ядра Linux являются  и .

Стабильные версии 
 Версия 1.0 в марте 1994 — поддерживала только однопроцессорные i386-машины.
 Версия 1.2 в марте 1995 — добавлена поддержка процессоров Alpha, SPARC и MIPS.
 Версия 2.0 в июне 1996 — добавлена поддержка других процессоров, а также многопроцессорных систем.
 Версия 2.2 в январе 1999.
 Версия 2.4 в январе 2001 — добавлена поддержка ISA Plug and Play, процессоров PA-RISC, шин USB и PC-Card (PCMCIA). Поддержка для процессоров Axis Communications ETRAX CRIS и файловой системы InterMezzo были добавлены чуть позже.
 Версия 2.6 от 17 декабря 2003:
 создано ответвление μClinux (для микроконтроллеров);
 добавлена поддержка для процессоров Hitachi серии H8/300, NEC v850, процессоры для встроенных систем Motorola m68k, новая архитектура доступа к памяти NUMA, поддержка NCR Voyager, технологии Intel hyperthreading и PAE;
 добавлено:
 поддержка файловой системы XFS (разработчик — фирма SGI);
 улучшена поддержка APIC;
 увеличено максимальное количество пользователей и групп с 65 000 до более 4 млрд;
 увеличено максимальное количество процессов с 32 000 до 1 млрд;
 увеличено максимальное количество типов устройств (major device) — с 255 до 4095, и максимальное количество устройств каждого типа (minor device) — с 255 до более миллиона, из-за проблем с распределением номеров под типы устройства введён системный сервис udev;
 улучшена поддержка 64-битных систем и файловых систем размером более 16 Тбайт;
 уменьшено время реакции для процессов реального времени;
 переписана реализация потоков с использованием Native POSIX Thread Library (NPTL);
 улучшен загрузчик модулей;
 добавлена новая служебная файловая система sysfs;
 интеграция User-mode Linux;
 и др.
 Версия 3.0 — используется в Ubuntu 11.10.
 Версия 3.1.
 Версия 3.2 — используется в Ubuntu 12.04 LTS и Debian 7 Wheezy. Помимо исправлений ошибок, предполагается впервые вносить некоторые оптимизации кода, влияющие на производительность, в ядро с длительным циклом поддержки.
 Версия 3.3.
 Версия 3.4.
 Версия 3.5 — используется в Ubuntu 12.10.
 Версия 3.6.
 Версия 3.7.
 Версия 3.8 — прекращена поддержка процессоров i386. Используется в Ubuntu 13.04.
 Версия 3.9.
 Версия 3.10.
 Нововведения:
 Можно запретить выполнять скрипты как программы — функциональность запуска скриптов, содержащих путь к интерпретатору в заголовке «#!», теперь может быть собрана в виде модуля ядра.
 Интегрирована разработанная и используемая в Google система . Bcache позволяет организовать кэширование доступа к медленным жёстким дискам на быстрых SSD-накопителях; кэширование при этом ведётся на уровне блочного устройства — и это позволяет ускорить доступ к накопителю, причём независимо от используемых файловых систем на устройстве.
 Ядро можно собирать компилятором Clang благодаря подготовленным проектом LLVMLinux патчам.
 Появилась динамическая система управления генерацией прерываний таймером. Теперь можно в зависимости от текущего состояния изменять прерывания в диапазоне от тысяч тиков в секунду до одного прерывания в секунду — это позволяет сводить к минимуму нагрузку на CPU при обработке прерываний в случае неактивности системы. Сейчас эта функция используется для систем реального времени и HPC (высокопроизводительных вычислений), но в следующих выпусках ядра будет задействована и для десктоп-систем тоже.
 Появилась возможность генерации события с уведомлением приложения о приближении к исчерпанию доступной процессу/системе памяти (в cgroups).
 Для команды perf стало доступно профилирование доступа к памяти.
 Появился новый драйвер «sync» (экспериментальный). Он был разработан в рамках платформы Android и используется для синхронизации между другими драйверами.
 Появился драйвер для виртуальных видеоадаптеров Microsoft Hyper-V (по работе Hyper-V в целом тоже есть улучшения).
 Теперь поддерживаются новые средства управления питанием, которые появились в процессорах AMD семейства 16h («Jaguar»).
 Поддержка ускорения декодирования видео с использованием аппаратного декодера UVD, встроенного в современные GPU AMD, была добавлена в DRM-модуль Radeon.
 Добавлена поддержка протокола RDMA (iSER) в подсистему iSCSI.
 Выполнение криптографических функций (sha256, sha512, blowfish, twofish, serpent и camellia) оптимизировано с использованием инструкций AVX/AVX2 и SSE.
 Был интегрирован драйвер виртуальной графической карты QXL (применяется в системах виртуализации для ускоренного вывода графики при помощи протокола SPICE).
 Версия 3.11 — используется в Ubuntu 13.10.
 Версия 3.12.
 Версия 3.13 — используется в Ubuntu 14.04.
 Версия 3.14.
 Версия 3.15.
 Версия 3.16 — используется в Ubuntu 14.10.
 Версия 3.17.
 Версия 3.18.
 Версия 3.19 — используется в Ubuntu 15.04.
 Версия 4.0 — изменения касаются, в основном, исправлений драйверов (media, sound, pci, scsi target, drm, thermal), обновлений для архитектур nios2, x86.
 Некоторые нововведения:
 установка обновлений ядра без необходимости перезагрузки;
 улучшения для платформы Intel ‘Skylake’;
 поддержка Intel Quark SoC;
 различные улучшения для работы Linux на Playstation 3;
 поддержка драйвером TOpen-source AMD Radeon функции DisplayPort Audio;
 различные улучшения в драйверах HID, включая Lenovo compact keyboards, Wacom Cintiq 27QHD;
 в драйверы управления питания Toshiba добавлены настройки USB sleep/charge functionality, rapid charge, sleep w/ music и др.;
 улучшения работы с файловой системой, включая F2FS, BtrFS и др.
 Версия 4.1.
 Версия 4.2 — используется в Ubuntu 15.10.
 Версия 4.3.
 Версия 4.4 — используется в Ubuntu 16.04.
 Версия 4.5.
 Версия 4.6.
 Версия 4.7.
 Версия 4.8.
 Основные улучшения:
 поддержка AMDGPU OverDrive
 начальная поддержка NVIDIA Pascal
 поддержка стандарта HDMI CEC
 полная поддержка BCM2837 — SoC, на котором основана Raspberry Pi 3
 серьёзная доработка Btrfs ENOSPC
 множество улучшений безопасности
 Версия 4.9.
 Основные улучшения:
 Множество улучшений Direct Rendering Manager
 Поддержка Greybus — подсистемы взаимодействия модулей Project Ara
 Поддержка Intel Integrated Sensor Hub (ISH)
 Значительные изменения подсистем виртуализации Xen и KVM
 Исправлены ошибки в btrfs и ext4
 Поддержка процессоров Loongson 1C
 Версия 4.10.
 Основные улучшения:
 Множество новых функций в файловых системах f2fs, ubifs, ext4, xfs, cifs, удалена logfs
 Добавлена поддержка virtio-crypto для виртуализированных гостевых систем
 Значительные улучшения графических драйверов nouveau, amdgpu, intel и adreno
 Добавлена поддержка звуковых чипов CS35L34, CS42L42, WM8581, MSM8916 WCD, RT5665
 Реализована технология Intel GVT-g, которая позволяет предоставить для каждого виртуального окружения отдельный виртуальный GPU
 Для IPv6 реализована поддержка Segment Routing (SR-IPv6)
 Версия 4.11.
 Основные улучшения:
 Алгоритм использования swap переработан для SSD
 Поддержка OPAL для шифрования данных на NVM Express
 Новый системный вызов statx() — обновлённый stat()
 Подключение I/O планировщиков к подсистеме многоуровневых очередей для блочных устройств
 В RAID 4/5/6 подсистемы MD добавлена поддержка журналирования на отдельный NVRAM или SSD
 Множественные изменения в cgroups, RCU, inotify, пространствах имён, таймерах и прочих подсистемах
 Версия 4.12.
 Основные улучшения:
 Поддержка устройств с USB Type-C для USB 3.1
 Аппаратное ускорение для NVIDIA GTX 1050, 1060, 1070 и 1080
 Удалён hd — драйвер жёстких дисков, написанный Линусом и поставлявшийся начиная с версии ядра 0.01
 Добавлена утилита AnalyzeBoot, формирующая HTML-отчёт о загрузке ядра
 Прекращена поддержка архитектуры AVR32
 Поддержка компьютеров Orange Pi PC2, NVIDIA Tegra 186, i/MX28 Duckbill, Motorola DROID4, Rockchip RK3399/RK3288 и температурных датчиков Broadcom BCM2835 (Raspberry Pi)
 Версия 4.13.
 Основные улучшения:
 Добавлена подсистема для работы с UUID/GUID
 Добавлена ядерная реализация протокола TLS
 Поддержка огромного количества нового оборудования, в том числе начальная поддержка графики Intel Cannonlake/Coffeelake, однако драйвера термодатчика Zen/Ryzen до сих пор нет
 Многочисленные улучшения дисковой подсистемы и файловых систем ext4, Btrfs, F2FS, UBIFS, XFS
 В ext4 появилась опция, увеличивающая максимальное количество файлов в каталоге с 10 млн до 2 млрд
 Теперь по умолчанию используется версия протокола SMB 3.0, представленная с Windows 8
 Версия 4.14.
 Основные улучшения:
 Улучшения для Vega в AMDGPU, поддержка modesetting GP108 / GT 1030 в Nouveau, добавление кода для работы с чипами Cannonlake «Gen 10» в видеодрайвер Intel
 Поддержка HDMI CEC для Raspberry Pi и Allwinner Sunxi
 Многочисленные улучшения архитектуры Aarch64 для Raspberry Pi Zero W, Banana Pi и множества других плат, обновления архитектуры MIPS и прекращение поддержки процессоров серии R6000
 Увеличение лимитов размера оперативной памяти для новых процессоров Intel: адресное пространство до 128 ПБ, физическая оперативная память до 4 ПБ
 Поддержка сжатия Zstd для Btrfs и SquashFS
 Поддержка распараллеливания в Cgroup2
 Версия 4.15 — используется в Ubuntu 18.04.
 Основные улучшения:
 Новая архитектура — RISC-V, драйверы для RISC-V устройств ожидаются в следующем релизе
 Информация об уязвимостях используемого процессора теперь доступна в /sys/devices/system/cpu/vulnerabilities, определить подверженность Meltdown или Spectre стало проще
 Наконец-то обеспечена поддержка температурного датчика AMD Zen (Ryzen/Threadripper/EPYC), также добавлена поддержка температурного мониторинга Intel Coffee Lake и Cannonlake, а также GeForce GTX 1000
 Добавлен драйвер Radeon RX Vega
 Обеспечена поддержка новых SoC и одноплатных компьютеров: Allwinner R40, Broadcom Hurricane 2, CubieBoard 6, Banana Pi M2 Ultra, Fairphone 2
 Продолжена работа по исправлению «Unix Millennium Bug» — проблемы 2038 года
 Версия 4.16.
 Основные улучшения:
 Драйвер vboxguest наконец-то приняли в ядро. Хотя почти все остальные драйверы VirtualBox до сих пор не приняты, такие функции, как бесшовный режим и общий буфер обмена уже доступны
 Поддержка новых одноплатников: Orange Pi R1, Hummingboard2, D-Link DNS_313 и поддержка дисплея для NVIDIA Jetson TX2
 Множество улучшений драйверов блочных устройств и файловых систем XFS, Btrfs и ext4
 AMDGPU теперь поддерживает синхронизацию нескольких дисплеев в мультимониторной конфигурации, эта функция включена по умолчанию для всех поддерживаемых GPU
 Различные исправления и улучшения безопасности и работа над предотвращением использования уязвимостей Spectre и Meltdown на всех поддерживаемых архитектурах
 Версия 4.17.
 Основные улучшения:
 Улучшение энергосбережения вплоть до 10 % нa определённом оборудовании
 F2FS теперь поддержвает lost+found, а ext4 защищена от атак специально сформированными контейнерами
 Произведена чистка кода, удалён код поддержки девяти устаревших архитектур, добавлена поддержка новой архитектуры NDS32
 По умолчанию теперь включён AMDGPU DC с поддержкой Vega12 и AMDKFD, позволяющий запускать ROCm/OpenCL на Polaris и Fiji
 Добавлен драйвер для гигабитных сетевых карт Microchip LAN743x
 Поддержка новых SoC: Allwinner H6, NVIDIA Tegra Xavier, ST STM32MPU, NVIDIA P2972
 Версия 4.18 — используется в Ubuntu 18.10.
 Основные улучшения:
 Предотвращение использования уязвимости Spectre V4 на ARM64, и уязвимости Spectre V2 на ARM32
 Начальная поддержка графики Vega 20, Vega M и Intel Icelake Gen11
 Новая подсистема BPFILTER, предоставляющая возможности фильтрации пакетов и файрвола и сохраняющая совместимость с iptables
 Многочисленные улучшения в реализации USB 3.2, USB Type-C и SoundWire
 Для AMD Stoney Ridge и Bristol Ridge наконец-то добавлен драйвер датчика температуры
 Файловая система Lustre удалена из кода основного ядра, дальнейшее её развитие будет производиться в форке
 Версия 4.19.
 Основные улучшения:
 Альтернативный режим DisplayPort для разъёмов USB Type-C
 Драйвер виртуального KMS (VKMS) позволяет использовать возможности GPU на headless-системах
 Множество исправлений и улучшений, призванных решить проблему 2038 года, например, драйвер ext4 теперь поддерживает даты в 64-битном формате
 Новые механизмы защиты от Spectre для x86, PowerPC и S390
 Новая файловая система — EROFS, очень простое внутреннее устройство, очень высокая производительность, но возможно монтирование исключительно в режиме read-only
 Множество улучшений в подсистеме KMS на платформах x86 и PowerPC
 Версия 4.20.
 Основные улучшения:
 Вызов kexec, позволяющий загрузить ядро в память без перезагрузки реализован для архитектуры MIPS
 Поддержка китайских процессоров Hygon Dhyana и C-SKY
 Значительная чистка от GCC-специфичного кода и устранение использования VLA для обеспечения возможности сборки ядра при помощи Clang
 Улучшение работы функции гибернации для 32-битных x86
 Множество исправлений, связанных с проблемой 2038 года
 Поддержка вибрации в драйвере контроллера Xbox One S

Архитектура 

Ядро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы.

На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются в нулевом кольце защиты, с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверы устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы.

То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Торвальдсом и Эндрю Таненбаумом в конференции по Minix в 1992 году.

Совместимость 
Задуманное изначально не как многоплатформенное, ядро Linux на данное время перенесено на очень широкий круг архитектур, запускается на широком спектре оборудования от iPAQ (карманный компьютер) до IBM S/390 (высокопроизводительный мейнфрейм). Системы на основе Linux используются в качестве основных почти на всех суперкомпьютерах (более 99 % списка TOP500), в том числе и на самом мощном — Summit.
Изначально Linux разрабатывался для 32-битных x86-совместимых ПК; на сегодняшний день различные версии ядра Linux запускаются на следующих процессорных архитектурах:
 ARM:
 Acorn: Archimedes, A5000, RiscPC;
 StrongARM, Intel XScale и тому подобных;
 Axis Communications CRIS;
 DEC Alpha;
 HP PA-RISC;
 Hitachi: SuperH (SEGA Dreamcast), H8/300;
 IBM System/390;
 IBM zSeries-мэйнфреймы;
 Intel 80386 и выше: IBM PC и совместимые с процессорами:
 80386, 80486, а также AMD, Cyrix, TI и IBM-варианты;
 серия Pentium;
 Core, Core2 Duo в 32- и 64-битных версиях;
 AMD Am5x86, K5, K6, Athlon (все 32-битные версии), Duron;
 AMD64: 64-битная технология AMD (также известная как x86-64);
 Cyrix 5x86, 6x86 (M1), 6x86MX и MediaGX (National/AMD Geode) серия;
 VIA C3 и последующие процессоры;
 поддержка Intel 8086, 8088, 80186, 80188 и 80286 процессоров находится в разработке (проект ELKS);
 Microsoft Xbox (Pentium III);
 Intel IA-64 (Itanium);
 MIPS;
 Silicon Graphics, Inc.;
 Cobalt Qube, Cobalt RaQ;
 Sony/Toshiba/IBM — Emotion Engine и Cell, используемые в PlayStation 2 и PlayStation 3 соответственно;
 DECstation
 и некоторые другие;
 Motorola 68020 и выше:
 более новые Amiga: A1200, A2500, A3000, A4000;
 Apple Macintosh II, , Quadra, Centris и ранняя серия Performa;
 рабочие станции Sun Microsystems серии 3 (экспериментальная, с использованием Sun-3 MMU);
 NEC v850e;
 Renesas M32R;
 PowerPC и IBM POWER:
 все новые компьютеры Apple (все оснащённые PCI Power Macintoshes, ограниченная поддержка NuBus Power Macs),
 клоны PCI Power Mac, разработанные Power Computing, UMAX и Motorola;
 IBM RS/6000, iSeries- и pSeries-системы;
 Pegasos I и II системы;
 некоторые встроенные системы PowerPC;
 Qualcomm Hexagon
 SPARC и UltraSPARC: Sun 4-series, SPARCstation/SPARCserver, Ultra-, Blade- и Fire-серии рабочих станций и серверов.

Лицензия 
Ядро Linux распространяется на условиях лицензии GNU General Public License, то есть свободно. Эту лицензию выбрал Линус Торвальдс практически сразу после того, как стало понятно, что его хобби начало получать распространение по всему миру. Владельцем торговой марки Linux является Линус, а помогает следить за соблюдением его прав и условий GPL Фонд свободного программного обеспечения.

Символ 

Официальным символом Linux является пингвин по имени Tux, отличающийся от «обычных» пингвинов жёлтым цветом клюва и лап.

В качестве символа версии ядра 2.6.29 принят тасманийский дьявол Tuz, изображение которого ранее служило талисманом конференции linux.conf.au 2009. На этой конференции Линус Торвальдс провёл успешную акцию по благотворительной продаже игрушек Linux Tasmanian devil за сохранение популяции Тасманского дьявола. В версии 2.6.30 используется прежний логотип.

Оценка стоимости разработки с нуля 
Стоимость переразработки ядра Linux версии 2.6.0 способами, принятыми для разработки проприетарного ПО, была оценена в 612 млн долл. США (467 млн евро) в ценах 2004 года с использованием модели оценки человеко-месяцев COCOMO. В 2006 году исследование, профинансированное Евросоюзом, подняло стоимость разработки ядра Linux до уровня 882 млн € (1,09 $).

Эта тема была снова поднята в октябре 2008 г. Амандой МакФерсон, Брайаном Проффиттом и Роном Хейл-Эвансом. Используя методологию Дэвида Э. Вилера, они оценили разработку ядра 2.6.25 в 1,3 млрд долл. США (часть от 10,8 млрд долл. США переразработки Fedora 9). Также Гарсиа-Гарсиа и Алонсо де Магдалено из университета Овьедо (Испания) оценили ежегодный прирост стоимости ядра приблизительно в 100 млн евро с 2005 по 2007 гг. и 225 млн евро в 2008 г. Совокупная стоимость разработки в Евросоюзе в 2009 году оценена в более чем 1 млрд евро (около 1,23 млрд долл. США).

См. также 

 Процесс загрузки Linux
 DKMS
 Kernel panic
 9885 Linux — астероид, названный в честь Linux.
 Сравнение Microsoft Windows и Linux

Компоненты ядра Linux

 Linux framebuffer
 USB core — подсистема для поддержки USB-устройств и контроллеров шины USB.
 evdev () — компонент для работы с устройствами ввода (клавиатурой, джойстиком, мышью).
 kvm ().
 DRM ().
 cgroups ().
 dm ().
 Video4Linux.
 SELinux ().
 Netfilter () — межсетевой экран (брандмауэр).

Примечания

Литература

Ссылки 

 
 
 Анализ тенденций и участников разработки ядра Linux  — статья об отчёте The Linux Foundation за 2012 год

Linux
Свободное программное обеспечение, написанное на Си
Программное обеспечение с лицензией GNU GPL
Ядро Linux
Свободное программное обеспечение, написанное на языке ассемблера