Linux (ядро)

(перенаправлено с «Kernel»)
Ядро Linux
Tux.svg
Язык программирования:
С (Си)




Разработчик:
Линус Торвальдс, многочисленные разработчики по всему миру



Текущая версия:
4.10
Дата выхода текущей версии:
19 февраля 2017



Лицензия:
GNU GPL

Linux (Ли́нукс) — ядро операционной системы, разработка которого была начата финским студентом Линусом Торвальдсом в 1991 году. В большинстве своём код написан на Си с некоторыми расширениями GNU C и на ассемблере (с использованием синтаксиса GNU Assembler AT&T). Распространяется свободно на условиях GNU General Public License. Торговая марка Linux зарегистрирована на Линуса Торвальдса.

ИсторияПравить

Начало проекту было положено в 1991 году с 9публикации сообщения в новостной группе Usenet comp.os.minix] следующего содержания[1]:

Привет всем, кто использует миникс — Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT…

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

ХронологияПравить

  • Апрель 1991 — 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач.
  • 25 августа 1991 — Линус поместил следующее сообщение (русский перевод оригинального сообщения[1] на английском):

From: [email protected] (Линус Бенедикт Торвальдс)
Newsgroups: comp.os.minix
Subject: Маленький опрос о моей новой операционной системе
Message-ID:<[email protected]>
Date: 25 Aug 91 20:57:08 GMT
Organization: Хельсинский Университет

Привет всем, кто использует миникс - Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT. Она ваялась с апреля, и скоро будет готова. Я хочу отзывов о том, что людям нравится/не нравится в миниксе, ибо моя система на неё похожа(такое же устройство файловой системы(по практическим соображениям) среди всего прочего).

Я уже включил bash (1.08) и gcc (1.40), и похоже всё работает. Это значит, что что-то полезное появится через несколько месяцев, и я хотел бы узнать, чего люди хотят. Любые советы принимаются, но я не обещаю, что всё исполню :-)

Линус ([email protected])

PS. Да, у неё никакого миниксового кода, и многозадачная фс. Она НЕ переносима (применяет переключение задач 386-го, итп.), и скорее всего будет поддерживать только AT-винчестеры, так как это всё, что у меня есть :-(

  • 17 сентября 1991 — Linux версии 0.01. (10 239 строк кода)
  • 5 октября 1991 — Linux версии 0.02 [1](англ.)
  • Декабрь 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 строк кода).

ВерсииПравить

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

Нумерация версийПравить

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

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

ПоддержкаПравить

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

Версии Сопроводители
2.0 Дэвид Виенхал
2.2 Марк-Кристиан Петерсон (раньше Элан Кокс)
2.4 Марчело Тозатти
2.6 Эндрю Мортон / Линус Торвальдс

Другими программистами ядра Linux являются Роберт Лав и Инго Молнар. (См. Список сопроводителей Linux (англ.)).

Стабильные версииПравить

  • Версия 1.0 в марте 1994 — поддерживала только однопроцессорные i386-машины.
  • Версия 1.2 в марте 1995 — добавлена поддержка процессоров Alpha, SPARC и MIPS.
  • Версия 2.0 в июне 1996 — добавлена поддержка других процессоров, а также многопроцессорных систем.
  • Версия 2.2 в январе 1999 — [2](англ.).
  • Версия 2.4 в январе 2001 — добавлена поддержка ISA Plug and Play, процессоров PA-RISC, шин USB и PC-Card (PCMCIA). Поддержка для процессоров Axis Communications ETRAX CRIS и файловой системы InterMezzo были добавлены чуть позже. [3](англ.)
  • Версия 2.6 от 17 декабря 2003:
    • встроен uClinux (для микроконтроллеров);
    • добавлена поддержка для процессоров 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 до более миллиона;
      • улучшена поддержка 64-битных систем и поддержка файловых систем размером более 16 Тбайт;
      • улучшено время реакции для процессов реального времени;
      • переписана реализация потоков под использование Native POSIX Thread Library (NPTL);
      • улучшен загрузчик модулей;
      • добавлена новая служебная файловая система sysfs;
      • интеграция User-mode Linux;
      • и др.

АрхитектураПравить

Шаблон:Linux VFS Ядро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы. На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются на «кольце 0», с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйвера устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы. То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции comp.os.minix(англ.) в 1992 г.

СовместимостьПравить

Не задуманный изначально как многоплатформенное ядро, Linux на данный момент портирован на очень широкий круг архитектур, запускается на широком спектре оборудования от iPAQ (карманный компьютер) до IBM S/390 (высокопроизводительный мейнфрейм). Linux используется как ядро операционной системы на суперкомпьютере Blue Gene (англ.) фирмы IBM. Изначально Linux разрабатывался для 32-битных x86-совместимых ПК; на сегодняшний день Linux запускается на следующих процессорных архитектурах:

ЛицензияПравить

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

СимволПравить

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

См. такжеПравить

СсылкиПравить

ЛитератураПравить

ПримечанияПравить

  1. а б What would you like to see most in minix?(англ.) — Оригинальное сообщение Линуса Торвальдса о его новой ОС в новостной группе comp.os.minix