- Ядро Линукс
-
- Эта статья о ядре для операционных систем. Об операционной системе, которая использует это ядро и библиотеки Linux
Ядро Linux Тип Ядро ОС Разработчик Линус Торвальдс, многочисленные разработчики по всему миру Написана на C ОС GNU/Linux, встраиваемые Версия 2.6.30 — 10 июня 2009 Тестовая версия 2.6.30-rc8 — 3 июня 2009 Лицензия GNU GPL v2 с примесями Сайт kernel.org Linux (/ˈlɪnʊks/[1]) — ядро операционной системы, соответствующее стандартам финским студентом Линусом Торвальдсом в 1991 году.
В большинстве своём код написан на Си с некоторыми расширениями ассемблере (с использованием синтаксиса GNU Assembler AT&T).
Распространяется в основном[2] свободно на условиях GNU General Public License.
Торговая марка Linux зарегистрирована на Линуса Торвальдса.
Содержание
История
Начало проекту было положено в 1991 году с публикации сообщения в новостной группе comp.os.minix следующего содержания[3]:
Привет всем, кто использует миникс — Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT…
Оригинальный текст (англ.)Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.
К тому времени проект GNU Hurd ещё не было готово.
«Linux», разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, и те из них, которые используют системные библиотеки (например, GNU C Library) и другие программы Проекта GNU, называют также «GNU/Linux».[4]
О различных комбинациях свободных компонентов в операционных системах см. Операционные системы на основе свободного ПО.
Сейчас семейство операционных систем на базе ядра Linux — третье по популярности (0,8 % [5]) в мире на рынке настольных компьютеров.
Хронология
- Апрель 1991 — 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач.
- 25 августа 1991 — Линус поместил следующее сообщение[3]:
From: torvalds@klaava.Helsinki.Fi (Линус Бенедикт Торвальдс)
Newsgroups: comp.os.minix
Subject: Маленький опрос о моей новой операционной системе
Message-ID:<1991Aug25.205708.9541@klaava.Helsinki.Fi>
Date: 25 Aug 91 20:57:08 GMT
Organization: Хельсинкский УниверситетПривет всем, кто использует миникс — Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT. Она ваялась с апреля, и скоро будет готова. Я хочу отзывов о том, что людям нравится/не нравится в миниксе, ибо моя система на неё похожа(такое же устройство файловой системы(по практическим соображениям) среди всего прочего).
Я уже включил gcc (1.40), и похоже всё работает. Это значит, что что-то полезное появится через несколько месяцев, и я хотел бы узнать, чего люди хотят. Любые советы принимаются, но я не обещаю, что всё исполню :-)
Линус (torvalds@kruuna.helsinki.fi)
PS. Да, у неё никакого миниксового кода, и многозадачная фс. Она НЕ переносима (применяет переключение задач 386-го, и т. п.), и скорее всего будет поддерживать только AT-винчестеры, так как это всё, что у меня есть :-(
Оригинальный текст (англ.)Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
- 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 строк кода).
- 23 марта 2009 — Linux версии 2.6.29, временный символ Linux — тасманский дьявол Tuz (11 010 647 строк кода).
Версии
Торвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов 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.0.40 Дэвид Виенхал 2.2 2.2.27-rc2 Марк-Кристиан Петерсон (раньше Алан Кокс) 2.4 2.4.37 Willy Tarreau 2.6.16 2.6.16.62 Adrian Bunk 2.6 2.6.30 Линус Торвальдс Другими программистами ядра Linux являются Роберт Лав и Инго Молнар. (См. Список сопроводителей Linux (англ.)).
Стабильные версии
- Версия 1.0 в марте 1994 — поддерживала только однопроцессорные i386-машины.
- Версия 1.2 в марте 1995 — добавлена поддержка процессоров Alpha, MIPS.
- Версия 2.0 в июне 1996 — добавлена поддержка других процессоров, а также многопроцессорных систем.
- Версия 2.2 в январе 1999 — [2](англ.).
- Версия 2.4 в январе 2001 — добавлена поддержка Plug and Play, процессоров USB и PC-Card ([3](англ.)
- Версия 2.6 от 17 декабря 2003:
- создано ответвление μClinux (для микроконтроллеров);
- добавлена поддержка для процессоров Hitachi серии H8/300, Motorola m68k, новая архитектура доступа к памяти NUMA, поддержка NCR Voyager, технологии hyperthreading и PAE;
- добавлено:
- поддержка файловой системы SGI);
- улучшена поддержка
- увеличено максимальное количество процессов с 32 000 до 1 млрд;
- увеличено максимальное количество типов устройств (major device) с 255 до 4095 и максимальное количество устройств каждого типа (minor device) с 255 до более миллиона. из-за проблем с распределением номеров под типы устроиства введен системный сервис udev;
- улучшена поддержка 64-битных систем и поддержка файловых систем размером более 16 Тбайт;
- уменьшено время реакции для процессов реального времени;
- переписана реализация потоков с использованием Native POSIX Thread Library (NPTL);
- улучшен загрузчик модулей;
- добавлена новая служебная файловая система User-mode Linux;
- и др.
Архитектура
Обобщённая структура файловой системыЯдро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы.
На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются на «кольце 0», с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверы устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы.
То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции comp.os.minix(англ.) в 1992 г.
Совместимость
Не задуманный изначально как многоплатформенное ядро, Linux на данный момент портирован на очень широкий круг архитектур, запускается на широком спектре оборудования от IBM S/390 (высокопроизводительный мейнфрейм). Системы на основе Linux используются в качестве основных практически на всех суперкомпьютерах (более 80 % списка Top500), в том числе и на самых мощных — Roadrunner фирмы IBM.
Изначально Linux разрабатывался для 32-битных ПК; на сегодняшний день Linux запускается на следующих процессорных архитектурах:
- Axis Communications CRIS
- DEC Alpha
- HP Hitachi:
- IBM System/390
- IBM zSeries-мэйнфреймы
- Intel 80386 и выше: IBM PC и совместимые с процессорами:
- 80386, 80486, а также AMD, TI и IBM-варианты;
- серия Core, Core2 Duo в 32 и 64-х битных версиях.
- AMD K5, K6, Duron;
-
- Cyrix 5x86, 6x86 (M1), 6x86MX и
- VIA C3 и последующие процессоры;
- поддержка Intel 8086, 8088, 80186, 80188 и 80286 процессоров находится в разработке (см. проект ELKS(англ.));
- Xbox (Pentium III).
- Cyrix 5x86, 6x86 (M1), 6x86MX и
- Intel MIPS
- Silicon Graphics, Inc.;
- Cobalt Qube, Cobalt Raq;
- PlayStation 2, PlayStation 3;
- DECstation;
- некоторые другие.
- 68020 и выше:
- Renesas M32R
- POWER:
- все новые компьютеры Apple (все оснащённые PCI Power Macintoshes, ограниченная поддержка NuBus Power Macs)
- клоны PCI Power Mac, разработанные Power Computing, UMAX и Motorola
- IBM RS/6000, iSeries- и pSeries-системы
-
- некоторые встроенные системы PowerPC
- SPARCstation/SPARCserver, Ultra-, Blade- и Fire-серии рабочих станций и серверов
Лицензия
Linux распространяется на условиях лицензии General Public License, то есть свободно. Эту лицензию выбрал Линус Торвальдс практически сразу после того, как стало понятно, что его хобби начало получать распространение по всему миру. Обладателем торговой марки Linux™ является Линус, а помогает следить за соблюдением его прав и условий GPL Фонд свободного программного обеспечения.
Символ
ЛИНУКС — (Linux), 32 разрядная UNIX подобная операционная система, способная работать на широком спектре компьютерного оборудования и объединяющая функции настольной и серверной операционных систем. В 1991 финский студент Линус Торвальдс написал для своей … Энциклопедический словарь
Линукс — Эта статья об операционной системе, об одноимённом ядре ОС см.: Linux (ядро). GNU/Linux Рабочий стол Разработчик Многочисленные разработчики по всему миру Семейство ОС Unix подобные Исходный код … Википедия
Линукс (значения) — Эта статья об операционной системе, об одноимённом ядре ОС см.: Linux (ядро). GNU/Linux Рабочий стол Разработчик Многочисленные разработчики по всему миру Семейство ОС Unix подобные Исходный код … Википедия
Линукс (ядро) — Эта статья о ядре для операционных систем. Об операционной системе, которая использует это ядро и библиотеки Linux Ядро Linux Тасманский дьявол Tuz, временный символ ядра Linux версии 2.6.29 Пингвин Тип Ядро ОС Разработчик … Википедия
Школьный Линукс — Разработчик ОАО «ВНИИНС», Linux Ink, компания «Verysell Проекты» Семейство ОС GNU/Linux Поддерживаемые платформы i386, AMD64 Тип ядра Монолитное ядро Linux … Википедия
ВС Школьный Линукс — Разработчик ОАО «ВНИИНС», Linux Ink, компания «Verysell Проекты» Семейство ОС Linux Поддерживаемые платформы i386, AMD64 Тип ядра Монолитное ядро Linux … Википедия
Абхазский линукс 5.3 — НауЛинукс Абхазия 5.3 Разработчик Linux Ink Семейство ОС GNU/Linux Последняя версия 5.3 2009 Тип ядра Монолитное ядро Интерфейс KDE,Gnome,IceWM … Википедия
(9885) Линукс — Открытие Первооткрыватель Spacewatch Место обнаружения Китт Пик Дата обнаружения 12 октября 1994 Эпоним Linux (ядро) Альтернативные обозначения 1994 TM14; 1985 CT2 … Википедия
История Линукс — Содержание 1 GNU без Linux 2 Linux ядро 3 GNU и Linux 4 Возникновение дистрибутивов … Википедия
Linux — Эта статья о группе операционных систем; об одноимённом ядре ОС см.: Ядро Linux. GNU и Linux … Википедия