Ядро Linux

Поделись знанием:
Перейти к: навигация, поиск
Ядро Linux
Разработчики

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

К:Википедия:Статьи без изображений (тип: не указан)

Linux (/ˈlɪnʊks/[1]) — ядро операционной системы, соответствующее стандартам POSIX. Разработка кода ядра была начата финским студентом Линусом Торвальдсом в 1991 году, на его имя зарегистрирована Торговая марка Linux.

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

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

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





История

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

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

«Linux», разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, и те из них, которые используют системные библиотеки (например, GNU C Library) и другие программы Проекта GNU, называют также «GNU/Linux»[5]. О различных комбинациях свободных компонентов в операционных системах см. Операционные системы на основе свободного ПО.

По состоянию на сентябрь 2016 года семейство операционных систем на базе ядра Linux — третье по популярности в мире на рынке настольных компьютеров — 5,8 %[6]. На рынке веб-серверов доля Linux порядка 32 %, остальное — Unix-системы (FreeBSD и др.)[7]. По данным Top500 (июнь 2016 года), GNU/Linux используется в качестве операционной системы на 99,4 % самых мощных суперкомпьютеров планеты[8].

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

Хронология

От: torvalds@klaava.Helsinki.Fi (Линус Бенедикт Торвальдс)
Новостная группа: comp.os.minix
Тема: Небольшой опрос о моей новой операционной системе
Message-ID:<1991Aug25.205708.9541@klaava.Helsinki.Fi>
Дата: 25 Aug 91 20:57:08 GMT
Организация: Хельсинкский Университет

Привет всем тем, кто использует миникс —

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

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

Линус (torvalds@kruuna.helsinki.fi)

PS. Да — в ней нет кода миникс, и будет мультипотоковая ФС. Система НЕПЕРЕНОСИМА (использует команды Intel 386 и т. д.) и, вероятно, будет поддерживать только жёсткие диски AT, так как это всё, что у меня есть:-(

  • 17 сентября 1991 — Linux версии 0.01 (10 239 строк кода).
  • 5 октября 1991 — Linux версии 0.02 [groups.google.com/groups?selm=1991Oct5.054106.4647%40klaava.Helsinki.FI] (англ.).
  • Декабрь 1991 — Linux версии 0.11. Это была первая версия Linux, на которой можно было собрать Linux из исходных кодов.
  • 19 января 1992 — Первое сообщение в группе новостей [groups.google.com/groups?hl=en&lr=&ie=UTF-8&selm=1992Jan19.085628.18752%40cseg01.uark.edu alt.os.linux] (англ.).
  • 31 марта 1992 — Создана группа новостей [groups.google.com/groups?selm=1992Mar31.131811.19832%40rock.concert.net 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.
  • 24 октября 2011 — релиз Linux 3.1.
  • 15 января 2012 — релиз Linux 3.3 преодолел отметку в 15 млн строк кода.
  • 23 февраля 2015 — первый релиз-кандидат Linux 4.0.

<timeline>

  1. NOTE: All the tag dates shown below are UTC (thus, v2.6.39's release date of May 18 21:06-0700 is the May 19 04:06+0000 shown below).

Define $now = 07/02/2016 Define $width = 700 Define $warning = 490 # $width - 110 ImageSize = width:$width height:900 PlotArea = left:40 right:10 bottom:100 top:10 DateFormat = dd/mm/yyyy Period = from:01/01/1991 till:$now TimeAxis = orientation:ver Alignbars = justify Legend = orientation:vertical position:bottom columns:4

  1. Color definitions #

Colors =

 id:col0.0.1   value:limegreen		 Legend:Linux_0.1
 id:col1.0     value:yellowgreen	 Legend:Linux_1.0
 id:col1.1     value:drabgreen      	 Legend:Linux_1.1
 id:col1.2     value:kelleygreen      	 Legend:Linux_1.2
 id:col1.3     value:teal               Legend:Linux_1.3
 id:colbeta-l1 value:black
 id:col2.0     value:rgb(1,0.74,0.16)	 Legend:Linux_2.0
 id:col2.0-l1  value:black
 id:col2.0-l2  value:rgb(1,0.92,0.74)
 id:col2.2     value:lightpurple	 Legend:Linux_2.2
 id:col2.2-l1  value:black
 id:col2.2-l2  value:lavender
 id:col2.4     value:oceanblue		 Legend:Linux_2.4
 id:col2.4-l1  value:black
 id:col2.4-l2  value:skyblue
 id:col2.6     value:green		 Legend:Linux_2.6
 id:col2.6-l1  value:black
 id:col2.6-l2  value:drabgreen
 id:col3.x     value:red                Legend:Linux_3.x
 id:col3.x-l1  value:black
 id:col3.x-l2  value:pink
 id:col4.x     value:rgb(0.15,0.55,0.6) Legend:Linux_4.x
 id:col4.x-l1  value:black
 id:col4.x-l2  value:rgb(0.85,0.8,0.8)
 id:colbg      value:gray(0.98)
 id:colgrmaj   value:gray(0.5)
 id:colgrmin   value:gray(0.8)
 id:colbeta    value:gray(0.8)		 Legend:Development
 id:lighttext  value:rgb(0.5,0.5,0.5)

ScaleMajor = gridcolor:colgrmaj unit:year increment:1 start:01/01/1991 ScaleMinor = gridcolor:colgrmin unit:month increment:3 start:01/01/1991 BackgroundColors = canvas:colbg

PlotData=

 ##################################################
 # 0.01-1.3 filled bar ver:0.01-0.99.15           #
 ##################################################
 bar:0.01-1.3 width:40 from:17/09/1991 till:03/02/1994 color:col0.0.1 mark:(line,col0.0.1)
 ##################################################
 # 0.01-1.3 filled bar ver:1.0-patch9             #
 ##################################################
 bar:0.01-1.3 width:40 from:13/03/1994 till:16/04/1994 color:col1.0 mark:(line,col1.0)
 ##################################################
 # 0.01-1.3 filled bar ver:1.1.0-1.1.95           #
 ##################################################
 bar:0.01-1.3 width:40 from:06/04/1994 till:02/03/1995 color:col1.1 mark:(line,col1.1)
 ##################################################
 # 0.01-1.3 filled bar ver:1.2.0-1.2.13           #
 ##################################################
 bar:0.01-1.3 width:40 from:07/03/1995 till:02/08/1995 color:col1.2 mark:(line,col1.2)
 ##################################################
 # 0.01-1.3 filled bar ver:1.3.0-1.3.100          #
 ##################################################
 bar:0.01-1.3 width:40 from:12/06/1995 till:10/05/1996 color:col1.3 mark:(line,col1.3)
 ##################################################
 # 0.01-1.3 important versions   ver:0.01-1.3.100 #
 ##################################################
 bar:0.01-1.3 mark:(line,black) align:center fontsize:S
 at:17/09/1991 text:"0.01" shift:(0,-12)
 at:13/03/1994 text:"1.0" shift:(0,-12)
 at:06/04/1994 text:"1.1.0" shift:(0,2)
 at:07/03/1995 text:"1.2.0"
 at:12/06/1995 text:"1.3.0"
 at:10/05/1996 text:"1.3.100" shift:(0,2)
 ##################################################
 # pre2.0 betavers. pre2.0.1 - pre2.0.14          #
 ##################################################
 bar:pre2.0 width:40 from:12/05/1996 till:06/06/1996 color:colbeta mark:(line,colbeta)
 ##################################################
 # pre2.0 line & text for first & last version    #
 ##################################################
 bar:pre2.0 mark:(line,colbeta-l1) align:center fontsize:S
 at:12/05/1996 text:"pre2.0.1" shift:(0,-12)
 at:06/06/1996 text:"pre2.0.14" shift:(0,2)
 ##################################################
 # 2.0 filled bar                                 #
 ##################################################
 bar:2.0 width:40 from:09/06/1996 till:08/02/2004 color:col2.0 mark:(line,col2.0)
 ##################################################
 # 2.0 line & text for first version every year   #
 ##################################################
 bar:2.0 mark:(line,col2.0-l1) align:center fontsize:S
 at:09/06/1996 text:"2.0" shift:(0,-12)
 at:14/01/1997 text:"2.0.28"
 at:04/06/1998 text:"2.0.34"
 at:14/06/1999 text:"2.0.37"
 at:09/01/2001 text:"2.0.39"
 at:08/02/2004 text:"2.0.40" shift:(0,2)
 ##################################################
 # 2.0 line for all other versions                #
 ##################################################
 bar:2.0 mark:(line,col2.0-l2)
 at: 03/07/1996 # 2.0.1
 at: 05/07/1996 # 2.0.2
 at: 06/07/1996 # 2.0.3
 at: 08/07/1996 # 2.0.4
 at: 10/07/1996 # 2.0.5
 at: 12/07/1996 # 2.0.6
 at: 15/07/1996 # 2.0.7
 at: 25/07/1996 # 2.0.8
 at: 26/07/1996 # 2.0.9
 at: 27/07/1996 # 2.0.10
 at: 05/08/1996 # 2.0.11
 at: 09/08/1996 # 2.0.12
 at: 16/08/1996 # 2.0.13
 at: 20/08/1996 # 2.0.14
 at: 25/08/1996 # 2.0.15
 at: 31/08/1996 # 2.0.16
 at: 02/09/1996 # 2.0.17
 at: 05/09/1996 # 2.0.18
 at: 11/09/1996 # 2.0.19
 at: 13/09/1996 # 2.0.20
 at: 20/09/1996 # 2.0.21
 at: 08/10/1996 # 2.0.22
 at: 18/10/1996 # 2.0.23
 at: 30/10/1996 # 2.0.24
 at: 08/11/1996 # 2.0.25
 at: 22/11/1996 # 2.0.26
 at: 01/12/1996 # 2.0.27
 at: 07/02/1997 # 2.0.29
 at: 08/04/1997 # 2.0.30
 at: 17/10/1997 # 2.0.31
 at: 18/11/1997 # 2.0.32
 at: 16/12/1997 # 2.0.33
 at: 13/07/1998 # 2.0.35
 at: 16/11/1998 # 2.0.36
 at: 25/08/1999 # 2.0.38
 ##################################################
 # 2.1(dev) betavers. 2.1.0 - 2.2.0pre9          #
 ##################################################
 bar:2.1 width:40 from:30/09/1996 till:21/01/1999 color:colbeta mark:(line,colbeta)
 ##################################################
 # 2.1(dev) line & text for first & last version  #
 ##################################################
 bar:2.1 mark:(line,colbeta-l1) align:center fontsize:S
 at:30/09/1996 text:"2.1.0" shift:(0,-12)
 at:21/01/1999 text:"2.2.0pre9" shift:(0,2)
 ##################################################
 # 2.2 filled bar                                 #
 ##################################################
 bar:2.2 width:40 from:26/01/1999 till:24/02/2004 color:col2.2  mark:(line,col2.2)
 ##################################################
 # 2.2 line & text for first version every year   #
 ##################################################
 bar:2.2 mark:(line,col2.2-l1) align:center fontsize:S
 at:26/01/1999 text:"2.2.0" shift:(0,-12)
 at:04/01/2000 text:"2.2.14"
 at:25/03/2001 text:"2.2.19"
 at:20/05/2002 text:"2.2.21"
 at:05/03/2003 text:"2.2.24"
 at:24/02/2004 text:"2.2.26"
 ##################################################
 # 2.2 line for all other versions                #
 ##################################################
 bar:2.2 mark:(line,col2.2-l2)
 at:28/01/1999 # 2.2.1
 at:23/02/1999 # 2.2.2
 at:09/03/1999 # 2.2.3
 at:23/03/1999 # 2.2.4
 at:29/03/1999 # 2.2.5
 at:16/04/1999 # 2.2.6
 at:28/04/1999 # 2.2.7
 at:11/05/1999 # 2.2.8
 at:13/05/1999 # 2.2.9
 at:14/06/1999 # 2.2.10
 at:09/08/1999 # 2.2.11
 at:26/08/1999 # 2.2.12
 at:20/10/1999 # 2.2.13
 at:04/05/2000 # 2.2.15
 at:07/06/2000 # 2.2.16
 at:04/09/2000 # 2.2.17
 at:11/12/2000 # 2.2.18
 at:02/11/2001 # 2.2.20
 at:16/09/2002 # 2.2.22
 at:29/11/2002 # 2.2.23
 at:17/03/2003 # 2.2.25
 ##################################################
 # 2.3(dev) betavers. 2.3.0 - 2.3.99pre9          #
 ##################################################
 bar:2.3 width:40 from:11/05/1999 till:23/05/2000 color:colbeta mark:(line,colbeta)
 ##################################################
 # 2.3(dev) line & text for first & last version  #
 ##################################################
 bar:2.3 mark:(line,colbeta-l1) align:center fontsize:S
 at:11/05/1999 text:"2.3.0" shift:(0,-12)
 at:23/05/2000 text:"2.3.99pre9" shift:(0,2)
 ##################################################
 # 2.4 filled bar                                 #
 ##################################################
 bar:2.4 width:40 from:04/01/2001 till:18/12/2010 color:col2.4  mark:(line,col2.4)
 # Last version is 2.4.37.11 released 18/12/2010.
 # According to lkml.org/lkml/2010/9/6/15, one year without update would mean end of life.
 # But as with the 2.0,2.2 and 2.6 columns, the column ends with the last base release.
 # EOL confirmed in lwn.net/Articles/491245/.
 ##################################################
 # 2.4 line & text for first version every year   #
 ##################################################
 bar:2.4 mark:(line,col2.4-l1) align:center fontsize:S
 at:04/01/2001 text:"2.4.0" shift:(0,-12)
 at:25/02/2002 text:"2.4.18"
 at:13/06/2003 text:"2.4.21"
 at:05/01/2004 text:"2.4.24"
 at:19/01/2005 text:"2.4.29"
 at:11/08/2006 text:"2.4.33"
 at:26/07/2007 text:"2.4.35"
 at:01/01/2008 text:"2.4.36"
 at:02/12/2008 text:"2.4.37"
 at:18/12/2010 text:"2.4.37.11"
 ##################################################
 # 2.4 line for all other versions                #
 ##################################################
 bar:2.4 mark:(line,col2.4-l2)
 at:30/01/2001 # 2.4.1
 at:22/02/2001 # 2.4.2
 at:30/03/2001 # 2.4.3
 at:28/04/2001 # 2.4.4
 at:26/05/2001 # 2.4.5
 at:04/07/2001 # 2.4.6
 at:20/07/2001 # 2.4.7
 at:11/08/2001 # 2.4.8
 at:16/08/2001 # 2.4.9
 at:23/09/2001 # 2.4.10
 at:09/10/2001 # 2.4.11
 at:11/10/2001 # 2.4.12
 at:24/10/2001 # 2.4.13
 at:05/11/2001 # 2.4.14
 at:23/11/2001 # 2.4.15
 at:26/11/2001 # 2.4.16
 at:21/12/2001 # 2.4.17
 at:03/08/2002 # 2.4.19
 at:28/11/2002 # 2.4.20
 at:25/08/2003 # 2.4.22
 at:28/11/2003 # 2.4.23
 at:18/02/2004 # 2.4.25
 at:14/04/2004 # 2.4.26
 at:07/08/2004 # 2.4.27
 at:17/11/2004 # 2.4.28
 at:04/04/2005 # 2.4.30
 at:01/06/2005 # 2.4.31
 at:16/11/2005 # 2.4.32
 at:23/12/2006 # 2.4.34
 ##################################################
 # 2.5(dev) betavers. 2.5.0-2.5.75 (2.4.15=2.5.0) #
 ##################################################
 bar:2.5 width:40 from:23/11/2001 till:10/07/2003 color:colbeta mark:(line,colbeta)
 ##################################################
 # 2.5(dev) line & text for first & last version  #
 ##################################################
 bar:2.5 mark:(line,colbeta-l1) align:center fontsize:S
 at:23/11/2001 text:"2.5.0" shift:(0,-12)
 at:10/07/2003 text:"2.5.75" shift:(0,2)
 ##################################################
 # 2.6 filled bar                                 #
 ##################################################
 bar:2.6 width:40 from:18/12/2003 till:$now color:col2.6  mark:(line,col2.6)
  1. As of November 2014, long term 2.6 kernels are still released.
  2. 2.6.32.64 was released on 23rd November 2014. (see www.kernel.org/category/releases.html for an update)
 ##################################################
 # 2.6 line & text for first version every year   #
 ##################################################
 bar:2.6 mark:(line,col2.6-l1) align:center fontsize:S
 at:18/12/2003 text:"2.6.0" shift:(0,-12)
 at:09/01/2004 text:"2.6.1"
 at:02/03/2005 text:"2.6.11"
 at:03/01/2006 text:"2.6.15"
 at:04/02/2007 text:"2.6.20"
 at:24/01/2008 text:"2.6.24"
 at:23/03/2009 text:"2.6.29"
 at:24/02/2010 text:"2.6.33"
 at:05/01/2011 text:"2.6.37"
 at:19/05/2011 text:"2.6.39" # Last 2.6.x
 at:03/08/2011 text:"2.6.39.4" # Last 2.6.39.x
 ##################################################
 # 2.6 line for all other versions                #
 ##################################################
 bar:2.6 mark:(line,col2.6-l2)
 at:04/02/2004 # 2.6.2
 at:18/02/2004 # 2.6.3
 at:11/03/2004 # 2.6.4
 at:04/04/2004 # 2.6.5
 at:10/05/2004 # 2.6.6
 at:16/06/2004 # 2.6.7
 at:14/08/2004 # 2.6.8
 at:18/10/2004 # 2.6.9
 at:24/12/2004 # 2.6.10
 at:17/06/2005 # 2.6.12
 at:29/08/2005 # 2.6.13
 at:28/10/2005 # 2.6.14
 at:20/03/2006 # 2.6.16
 at:18/06/2006 # 2.6.17
 at:20/09/2006 # 2.6.18
 at:29/11/2006 # 2.6.19
 at:26/04/2007 # 2.6.21
 at:08/07/2007 # 2.6.22
 at:09/10/2007 # 2.6.23
 at:17/04/2008 # 2.6.25
 at:13/07/2008 # 2.6.26
 at:09/10/2008 # 2.6.27
 at:24/12/2008 # 2.6.28
 at:10/06/2009 # 2.6.30
 at:09/09/2009 # 2.6.31
 at:03/12/2009 # 2.6.32
 at:16/05/2010 # 2.6.34
 at:01/08/2010 # 2.6.35
 at:20/10/2010 # 2.6.36
 at:15/03/2011 # 2.6.38
 ##################################################
 # 3.0 rc                                         #
 ##################################################
 bar:3.x width:40 from:22/02/2015 till:12/04/2015 color:colbeta mark:(line,colbeta)
 ##################################################
 # 3.0 rc                                         #
 ##################################################
 bar:3.x mark:(line,colbeta-l1) align:center fontsize:S
 at:29/05/2011 text:"3.0-rc1" shift:(0,-12)
 ##################################################
 # 3.x filled bar                                 #
 ##################################################
 bar:3.x width:40 from:22/07/2011 till:$now color:col3.x  mark:(line,col3.x)
 ##################################################
 # 3.x line & text for first version every year   #
 ##################################################
 bar:3.x mark:(line,col3.x-l1) align:center fontsize:S
 at:22/07/2011 text:"3.0" shift:(0,0)
 at:05/01/2012 text:"3.2"
 at:19/02/2013 text:"3.8"
 at:20/01/2014 text:"3.13"
 at:09/02/2015 text:"3.19"


 ##################################################
 # 3.x line for all other versions                #
 ##################################################
 bar:3.x mark:(line,col3.x-l2)
 at:24/10/2011 # 3.1
 at:19/03/2012 # 3.3
 at:21/05/2012 # 3.4
 at:21/07/2012 # 3.5
 at:01/10/2012 # 3.6
 at:11/12/2012 # 3.7
 at:29/04/2013 # 3.9
 at:30/06/2013 # 3.10
 at:02/09/2013 # 3.11
 at:03/11/2013 # 3.12
 at:31/03/2014 # 3.14
 at:08/06/2014 # 3.15
 at:03/08/2014 # 3.16
 at:05/10/2014 # 3.17
 at:07/12/2014 # 3.18	
 ##################################################
 # 4.0 rc                                         #
 ##################################################
 bar:4.x width:40 from:22/02/2015 till:12/04/2015 color:colbeta mark:(line,colbeta)
 ##################################################
 # 4.0 rc                                         #
 ##################################################
 bar:4.x mark:(line,colbeta-l1) align:center fontsize:S
 at:22/02/2015 text:"4.0-rc1" shift:(0,-12)
 ##################################################
 # 4.x filled bar                                 #
 ##################################################
 bar:4.x width:40 from:12/04/2015 till:$now color:col4.x  mark:(line,col4.x)
 ##################################################
 # 4.x bar and text                               #
 ##################################################
 bar:4.x mark:(line,col4.x-l1) align:center fontsize:S
 at:12/04/2015 text:"4.0" shift:(0,0)
 bar:4.x mark:(line,col4.x-l2) align:center fontsize:S
 at:22/06/2015 # 4.1
 at:30/08/2015 # 4.2
 at:01/11/2015 # 4.3
 at:10/01/2016 text:"4.4" shift:(0,-8) # 4.4
 ##################################################
 # 4.5 rc                                         #
 ##################################################
 bar:4.x mark:(line,colbeta-l1) align:center fontsize:S
 at:01/02/2016 text:"4.5-rc2" shift:(0,2)


TextData =

 fontsize:S
 textcolor:lighttext
 pos:($warning,5)
 text:Updated 2016-01-07
  1. Ref:www.kernel.org/pub/linux/kernel/

</timeline>

Версии

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

Нумерация версий до 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) и 31 мая 2011 (3.0.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).

Нумерация версий с 30 мая 2011

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

Поддержка

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

Серия Версии Руководители
3.2 3.2.81 Бэн Хатчингс
3.4 3.4.112 Ли Зифан
3.10 3.10.102 Willy Tarreau
3.12 3.12.61 Иржи Слаби
3.14 3.14.73 Грэг Кро-Хартман
3.16 3.16.63 Ben Hutchings
3.18 3.18.37 Sasha Levin
4.1 4.1.28 Sasha Levin
4.4 4.4.15 Грэг Кро-Хартман

Другими программистами ядра Linux являются Роберт Лав и Инго Молнар. (См. [lxr.linux.no/source/MAINTAINERS Список сопроводителей Linux]  (англ.)).

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

  • Версия 1.0 в марте 1994 — поддерживала только однопроцессорные i386-машины.
  • Версия 1.2 в марте 1995 — добавлена поддержка процессоров Alpha, SPARC и MIPS.
  • Версия 2.0 в июне 1996 — добавлена поддержка других процессоров, а также многопроцессорных систем.
  • Версия 2.2 в январе 1999 — [kniggit.net/wwol22.html] (англ.).
  • Версия 2.4 в январе 2001 — добавлена поддержка ISA Plug and Play, процессоров PA-RISC, шин USB и PC-Card (PCMCIA). Поддержка для процессоров Axis Communications ETRAX CRIS и файловой системы InterMezzo были добавлены чуть позже. [linuxtoday.com/news_story.php3?ltsn=2001-01-05-007-04-NW-LF-KN] (англ.)
  • Версия 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.
    • Нововведения[9].
      • Можно запретить выполнять скрипты как программы — функциональность запуска скриптов, содержащих путь к интерпретатору в заголовке «#!», теперь может быть собрана в виде модуля ядра.
      • Интегрирована разработанная и используемая в Google система bcache (англ.). 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[10] — изменения касаются, в основном, исправлений драйверов (media, sound, pci, scsi target, drm, thermal.), обновлений для архитектур nios2, x86 [11].
    • Некоторые нововведения:[12]
      • установка обновлений ядра без необходимости перезагрузки;
      • улучшения для платформы 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.

Архитектура

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

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

То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции [groups.google.com/d/topic/comp.os.minix/wlhw16QWltI/discussion comp.os.minix]  (англ.) в 1992 г.

Совместимость

Задуманное изначально не как многоплатформенное, ядро Linux на данное время перенесёно на очень широкий круг архитектур, запускается на широком спектре оборудования от iPAQ (карманный компьютер) до IBM S/390 (высокопроизводительный мейнфрейм). Системы на основе Linux используются в качестве основных почти на всех суперкомпьютерах (более 99 % списка TOP500), в том числе и на самом мощном — Sunway TaihuLight. Изначально Linux разрабатывался для 32-битных x86-совместимых ПК; на сегодняшний день различные версии ядра Linux запускаются на следующих процессорных архитектурах:

Лицензия

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[14]. В 2006 году исследование, профинансированное Евросоюзом, подняло стоимость разработки ядра Linux до уровня 882 млн евро (1,09 млрд долл. США)[15].

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

См. также

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

Напишите отзыв о статье "Ядро Linux"

Примечания

  1. [www.paul.sladen.org/pronunciation/ Howto pronouce Linux?] (англ.). Проверено 5 марта 2008. [www.webcitation.org/616XVG7S2 Архивировано из первоисточника 21 августа 2011].
  2. Bruce Byfield. [www.linux.com/feature/142772 Linux-libre project meets rocky reception] (англ.). Linux.com. SourceForge, Inc. (1 August 2008). Проверено 2 августа 2008. [www.webcitation.org/616XVh6TX Архивировано из первоисточника 21 августа 2011].
  3. www.networkworld.com/news/2011/040511-linux-vs-microsoft.html via habrahabr.ru/post/116992/
  4. 1 2 [groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b What would you like to see most in minix?] (англ.) — Оригинальное сообщение Линуса Торвальдса о его новой ОС в новостной группе comp.os.minix
  5. Andrew D. Balsa. [www.tux.org/lkml/ The linux-kernel mailing list FAQ] (англ.) (12 November 2006). Проверено 17 мая 2008. [www.webcitation.org/616XX1D2H Архивировано из первоисточника 21 августа 2011].
  6. [www.w3schools.com/browsers/browsers_os.asp OS Statistics]
  7. [w3techs.com/technologies/details/os-linux/all/all Usage of Linux for websites] (англ.). По данным на март 2011 года, GNU/Linux-системы используются на 31,2 % веб-сайтов в интернете.. W3 Techs. Проверено 2 августа 2010. [www.webcitation.org/616XXWFzG Архивировано из первоисточника 21 августа 2011].
  8. [www.top500.org/statistics/list/ List Statistics | TOP500 Supercomputer Sites]
  9. [habrahabr.ru/post/185178/ Вышло ядро Linux 3.10 / Хабрахабр]
  10. Ima Sheep. [lkml.org/lkml/2015/4/12/178 Linux 4.0 released]. Linux Kernel Mailing List archive (Sun, 12 Apr 2015 15:41:30).
  11. Linus Torvalds. [lkml.org/lkml/2015/4/12/180 Re: Linux 4.0 released] (Sun, 12 Apr 2015 15:49:41 -0700).
  12. JOEY-ELIJAH SNEDDON. [www.omgubuntu.co.uk/2015/04/linux-kernel-4-0-new-features Linux Kernel 4.0 Features Live Kernel Patching, PS3 Support].
  13. www.pcweek.ru/foss/article/detail.php?ID=136238 "Обновлённое ядро поддерживает DSP-процессор Hexagon компании Qualcomm. "
  14. David A. Wheeler. [www.dwheeler.com/essays/linux-kernel-cost.html Linux Kernel 2.6: It's Worth More!]. [www.webcitation.org/616XYjg7d Архивировано из первоисточника 21 августа 2011].
  15. [ec.europa.eu/enterprise/ict/policy/doc/2006-11-20-flossimpact.pdf Economic impact of FLOSS on innovation and competitiveness of the EU ICT sector], таблица 3 на странице 50.
  16. [www.linuxfoundation.org/publications/estimatinglinux.pdf Estimating Total Development Cost Of a Linux Distribution], таблица на странице 6.
  17. [linux.slashdot.org/story/10/02/24/155214/The-Billion-Dollar-Kernel The Billion Dollar Kernel]
  18. [ssd.jpl.nasa.gov/sbdb.cgi?sstr=9885+Linux 9885 Linux (1994 TM14)] (англ.). JPL Small-Body Database Browser. JPL (NASA). Проверено 23 мая 2008. [www.webcitation.org/616XZAvGR Архивировано из первоисточника 21 августа 2011].

Литература

  • Торвальдс, Л.; Даймонд, Д. Ради удовольствия = Just for fun. — М.: ЭКСМО-Пресс, 2002. — С. 288. — ISBN 5-04-009285-7.
  • Роберт Лав. Разработка ядра Linux = Linux Kernel Development. — 2-е изд. — М.: «Вильямс», 2006. — С. 448. — ISBN 0-672-32720-1.
  • Родригес К. З., Фишер Г., Смолски С. Linux: азбука ядра. — «КУДИЦ-ПРЕСС», 2007. — С. 584. — ISBN 978-5-91136-017-7.
  • Баррет Д. Linux: основные команды. Карманный справочник. — 2-е издание. — «КУДИЦ-ПРЕСС», 2007. — С. 288. — ISBN 5-9579-0050-8.

Ссылки

  • [kernel.org/ The Linux Kernel Archives] (англ.) (HTML). — Официальный сайт ядра Linux. Проверено 6 июля 2010. [www.webcitation.org/616XZbj71 Архивировано из первоисточника 21 августа 2011].
  • [git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/summary] (англ.) (HTML). — Git-репозиторий. Проверено 6 июля 2010. [www.webcitation.org/616XaA5hg Архивировано из первоисточника 21 августа 2011].
  • [www.kernel.org/pub/linux/kernel/v3.0/ Index of /pub/linux/kernel/v3.0] (англ.) (HTML). — Последние версии. Проверено 12 ноября 2012. [www.webcitation.org/616XaePPo Архивировано из первоисточника 21 августа 2011].
  • [www.opennet.ru/base/sys/linux26_intro.txt.html Замечательный Мир Linux 2.6] (рус.) (HTML). — Замечательный Мир Linux 2.6 (linux). Проверено 6 июля 2010. [www.webcitation.org/616XbAZ08 Архивировано из первоисточника 21 августа 2011].
  • [linux.opennet.ru Мини-портал Linux] (рус.) (HTML). — Мини-портал Linux на сайте OpenNet. Проверено 6 июля 2010. [www.webcitation.org/616XcIaXx Архивировано из первоисточника 21 августа 2011].
  • [KernelNewbies.org/ Linux Kernel Newbies] (англ.) (HTML). — KernelNewbies.org. Проверено 6 июля 2010.
  • [linux.lanbin.ru/ Мини-справочник GNU/Linux] (рус.) (HTML). — Фонд свободного программного обеспечения (FSF). Проверено 6 июля 2010. [www.webcitation.org/616Xdb62e Архивировано из первоисточника 21 августа 2011].
  • [www.opennet.ru/opennews/art.shtml?num=33529 Анализ тенденций и участников разработки ядра Linux ] — статья об отчёте The Linux Foundation за 2012 год

Отрывок, характеризующий Ядро Linux

В ту же ночь, откланявшись военному министру, Болконский ехал в армию, сам не зная, где он найдет ее, и опасаясь по дороге к Кремсу быть перехваченным французами.
В Брюнне всё придворное население укладывалось, и уже отправлялись тяжести в Ольмюц. Около Эцельсдорфа князь Андрей выехал на дорогу, по которой с величайшею поспешностью и в величайшем беспорядке двигалась русская армия. Дорога была так запружена повозками, что невозможно было ехать в экипаже. Взяв у казачьего начальника лошадь и казака, князь Андрей, голодный и усталый, обгоняя обозы, ехал отыскивать главнокомандующего и свою повозку. Самые зловещие слухи о положении армии доходили до него дорогой, и вид беспорядочно бегущей армии подтверждал эти слухи.
«Cette armee russe que l'or de l'Angleterre a transportee, des extremites de l'univers, nous allons lui faire eprouver le meme sort (le sort de l'armee d'Ulm)», [«Эта русская армия, которую английское золото перенесло сюда с конца света, испытает ту же участь (участь ульмской армии)».] вспоминал он слова приказа Бонапарта своей армии перед началом кампании, и слова эти одинаково возбуждали в нем удивление к гениальному герою, чувство оскорбленной гордости и надежду славы. «А ежели ничего не остается, кроме как умереть? думал он. Что же, коли нужно! Я сделаю это не хуже других».
Князь Андрей с презрением смотрел на эти бесконечные, мешавшиеся команды, повозки, парки, артиллерию и опять повозки, повозки и повозки всех возможных видов, обгонявшие одна другую и в три, в четыре ряда запружавшие грязную дорогу. Со всех сторон, назади и впереди, покуда хватал слух, слышались звуки колес, громыхание кузовов, телег и лафетов, лошадиный топот, удары кнутом, крики понуканий, ругательства солдат, денщиков и офицеров. По краям дороги видны были беспрестанно то павшие ободранные и неободранные лошади, то сломанные повозки, у которых, дожидаясь чего то, сидели одинокие солдаты, то отделившиеся от команд солдаты, которые толпами направлялись в соседние деревни или тащили из деревень кур, баранов, сено или мешки, чем то наполненные.
На спусках и подъемах толпы делались гуще, и стоял непрерывный стон криков. Солдаты, утопая по колена в грязи, на руках подхватывали орудия и фуры; бились кнуты, скользили копыта, лопались постромки и надрывались криками груди. Офицеры, заведывавшие движением, то вперед, то назад проезжали между обозами. Голоса их были слабо слышны посреди общего гула, и по лицам их видно было, что они отчаивались в возможности остановить этот беспорядок. «Voila le cher [„Вот дорогое] православное воинство“, подумал Болконский, вспоминая слова Билибина.
Желая спросить у кого нибудь из этих людей, где главнокомандующий, он подъехал к обозу. Прямо против него ехал странный, в одну лошадь, экипаж, видимо, устроенный домашними солдатскими средствами, представлявший середину между телегой, кабриолетом и коляской. В экипаже правил солдат и сидела под кожаным верхом за фартуком женщина, вся обвязанная платками. Князь Андрей подъехал и уже обратился с вопросом к солдату, когда его внимание обратили отчаянные крики женщины, сидевшей в кибиточке. Офицер, заведывавший обозом, бил солдата, сидевшего кучером в этой колясочке, за то, что он хотел объехать других, и плеть попадала по фартуку экипажа. Женщина пронзительно кричала. Увидав князя Андрея, она высунулась из под фартука и, махая худыми руками, выскочившими из под коврового платка, кричала:
– Адъютант! Господин адъютант!… Ради Бога… защитите… Что ж это будет?… Я лекарская жена 7 го егерского… не пускают; мы отстали, своих потеряли…
– В лепешку расшибу, заворачивай! – кричал озлобленный офицер на солдата, – заворачивай назад со шлюхой своею.
– Господин адъютант, защитите. Что ж это? – кричала лекарша.
– Извольте пропустить эту повозку. Разве вы не видите, что это женщина? – сказал князь Андрей, подъезжая к офицеру.
Офицер взглянул на него и, не отвечая, поворотился опять к солдату: – Я те объеду… Назад!…
– Пропустите, я вам говорю, – опять повторил, поджимая губы, князь Андрей.
– А ты кто такой? – вдруг с пьяным бешенством обратился к нему офицер. – Ты кто такой? Ты (он особенно упирал на ты ) начальник, что ль? Здесь я начальник, а не ты. Ты, назад, – повторил он, – в лепешку расшибу.
Это выражение, видимо, понравилось офицеру.
– Важно отбрил адъютантика, – послышался голос сзади.
Князь Андрей видел, что офицер находился в том пьяном припадке беспричинного бешенства, в котором люди не помнят, что говорят. Он видел, что его заступничество за лекарскую жену в кибиточке исполнено того, чего он боялся больше всего в мире, того, что называется ridicule [смешное], но инстинкт его говорил другое. Не успел офицер договорить последних слов, как князь Андрей с изуродованным от бешенства лицом подъехал к нему и поднял нагайку:
– Из воль те про пус тить!
Офицер махнул рукой и торопливо отъехал прочь.
– Всё от этих, от штабных, беспорядок весь, – проворчал он. – Делайте ж, как знаете.
Князь Андрей торопливо, не поднимая глаз, отъехал от лекарской жены, называвшей его спасителем, и, с отвращением вспоминая мельчайшие подробности этой унизи тельной сцены, поскакал дальше к той деревне, где, как ему сказали, находился главнокомандующий.
Въехав в деревню, он слез с лошади и пошел к первому дому с намерением отдохнуть хоть на минуту, съесть что нибудь и привесть в ясность все эти оскорбительные, мучившие его мысли. «Это толпа мерзавцев, а не войско», думал он, подходя к окну первого дома, когда знакомый ему голос назвал его по имени.
Он оглянулся. Из маленького окна высовывалось красивое лицо Несвицкого. Несвицкий, пережевывая что то сочным ртом и махая руками, звал его к себе.
– Болконский, Болконский! Не слышишь, что ли? Иди скорее, – кричал он.
Войдя в дом, князь Андрей увидал Несвицкого и еще другого адъютанта, закусывавших что то. Они поспешно обратились к Болконскому с вопросом, не знает ли он чего нового. На их столь знакомых ему лицах князь Андрей прочел выражение тревоги и беспокойства. Выражение это особенно заметно было на всегда смеющемся лице Несвицкого.
– Где главнокомандующий? – спросил Болконский.
– Здесь, в том доме, – отвечал адъютант.
– Ну, что ж, правда, что мир и капитуляция? – спрашивал Несвицкий.
– Я у вас спрашиваю. Я ничего не знаю, кроме того, что я насилу добрался до вас.
– А у нас, брат, что! Ужас! Винюсь, брат, над Маком смеялись, а самим еще хуже приходится, – сказал Несвицкий. – Да садись же, поешь чего нибудь.
– Теперь, князь, ни повозок, ничего не найдете, и ваш Петр Бог его знает где, – сказал другой адъютант.
– Где ж главная квартира?
– В Цнайме ночуем.
– А я так перевьючил себе всё, что мне нужно, на двух лошадей, – сказал Несвицкий, – и вьюки отличные мне сделали. Хоть через Богемские горы удирать. Плохо, брат. Да что ты, верно нездоров, что так вздрагиваешь? – спросил Несвицкий, заметив, как князя Андрея дернуло, будто от прикосновения к лейденской банке.
– Ничего, – отвечал князь Андрей.
Он вспомнил в эту минуту о недавнем столкновении с лекарскою женой и фурштатским офицером.
– Что главнокомандующий здесь делает? – спросил он.
– Ничего не понимаю, – сказал Несвицкий.
– Я одно понимаю, что всё мерзко, мерзко и мерзко, – сказал князь Андрей и пошел в дом, где стоял главнокомандующий.
Пройдя мимо экипажа Кутузова, верховых замученных лошадей свиты и казаков, громко говоривших между собою, князь Андрей вошел в сени. Сам Кутузов, как сказали князю Андрею, находился в избе с князем Багратионом и Вейротером. Вейротер был австрийский генерал, заменивший убитого Шмита. В сенях маленький Козловский сидел на корточках перед писарем. Писарь на перевернутой кадушке, заворотив обшлага мундира, поспешно писал. Лицо Козловского было измученное – он, видно, тоже не спал ночь. Он взглянул на князя Андрея и даже не кивнул ему головой.
– Вторая линия… Написал? – продолжал он, диктуя писарю, – Киевский гренадерский, Подольский…
– Не поспеешь, ваше высокоблагородие, – отвечал писарь непочтительно и сердито, оглядываясь на Козловского.
Из за двери слышен был в это время оживленно недовольный голос Кутузова, перебиваемый другим, незнакомым голосом. По звуку этих голосов, по невниманию, с которым взглянул на него Козловский, по непочтительности измученного писаря, по тому, что писарь и Козловский сидели так близко от главнокомандующего на полу около кадушки,и по тому, что казаки, державшие лошадей, смеялись громко под окном дома, – по всему этому князь Андрей чувствовал, что должно было случиться что нибудь важное и несчастливое.
Князь Андрей настоятельно обратился к Козловскому с вопросами.
– Сейчас, князь, – сказал Козловский. – Диспозиция Багратиону.
– А капитуляция?
– Никакой нет; сделаны распоряжения к сражению.
Князь Андрей направился к двери, из за которой слышны были голоса. Но в то время, как он хотел отворить дверь, голоса в комнате замолкли, дверь сама отворилась, и Кутузов, с своим орлиным носом на пухлом лице, показался на пороге.
Князь Андрей стоял прямо против Кутузова; но по выражению единственного зрячего глаза главнокомандующего видно было, что мысль и забота так сильно занимали его, что как будто застилали ему зрение. Он прямо смотрел на лицо своего адъютанта и не узнавал его.
– Ну, что, кончил? – обратился он к Козловскому.
– Сию секунду, ваше высокопревосходительство.
Багратион, невысокий, с восточным типом твердого и неподвижного лица, сухой, еще не старый человек, вышел за главнокомандующим.
– Честь имею явиться, – повторил довольно громко князь Андрей, подавая конверт.
– А, из Вены? Хорошо. После, после!
Кутузов вышел с Багратионом на крыльцо.
– Ну, князь, прощай, – сказал он Багратиону. – Христос с тобой. Благословляю тебя на великий подвиг.
Лицо Кутузова неожиданно смягчилось, и слезы показались в его глазах. Он притянул к себе левою рукой Багратиона, а правой, на которой было кольцо, видимо привычным жестом перекрестил его и подставил ему пухлую щеку, вместо которой Багратион поцеловал его в шею.
– Христос с тобой! – повторил Кутузов и подошел к коляске. – Садись со мной, – сказал он Болконскому.
– Ваше высокопревосходительство, я желал бы быть полезен здесь. Позвольте мне остаться в отряде князя Багратиона.
– Садись, – сказал Кутузов и, заметив, что Болконский медлит, – мне хорошие офицеры самому нужны, самому нужны.
Они сели в коляску и молча проехали несколько минут.
– Еще впереди много, много всего будет, – сказал он со старческим выражением проницательности, как будто поняв всё, что делалось в душе Болконского. – Ежели из отряда его придет завтра одна десятая часть, я буду Бога благодарить, – прибавил Кутузов, как бы говоря сам с собой.
Князь Андрей взглянул на Кутузова, и ему невольно бросились в глаза, в полуаршине от него, чисто промытые сборки шрама на виске Кутузова, где измаильская пуля пронизала ему голову, и его вытекший глаз. «Да, он имеет право так спокойно говорить о погибели этих людей!» подумал Болконский.
– От этого я и прошу отправить меня в этот отряд, – сказал он.
Кутузов не ответил. Он, казалось, уж забыл о том, что было сказано им, и сидел задумавшись. Через пять минут, плавно раскачиваясь на мягких рессорах коляски, Кутузов обратился к князю Андрею. На лице его не было и следа волнения. Он с тонкою насмешливостью расспрашивал князя Андрея о подробностях его свидания с императором, об отзывах, слышанных при дворе о кремском деле, и о некоторых общих знакомых женщинах.


Кутузов чрез своего лазутчика получил 1 го ноября известие, ставившее командуемую им армию почти в безвыходное положение. Лазутчик доносил, что французы в огромных силах, перейдя венский мост, направились на путь сообщения Кутузова с войсками, шедшими из России. Ежели бы Кутузов решился оставаться в Кремсе, то полуторастатысячная армия Наполеона отрезала бы его от всех сообщений, окружила бы его сорокатысячную изнуренную армию, и он находился бы в положении Мака под Ульмом. Ежели бы Кутузов решился оставить дорогу, ведшую на сообщения с войсками из России, то он должен был вступить без дороги в неизвестные края Богемских
гор, защищаясь от превосходного силами неприятеля, и оставить всякую надежду на сообщение с Буксгевденом. Ежели бы Кутузов решился отступать по дороге из Кремса в Ольмюц на соединение с войсками из России, то он рисковал быть предупрежденным на этой дороге французами, перешедшими мост в Вене, и таким образом быть принужденным принять сражение на походе, со всеми тяжестями и обозами, и имея дело с неприятелем, втрое превосходившим его и окружавшим его с двух сторон.
Кутузов избрал этот последний выход.
Французы, как доносил лазутчик, перейдя мост в Вене, усиленным маршем шли на Цнайм, лежавший на пути отступления Кутузова, впереди его более чем на сто верст. Достигнуть Цнайма прежде французов – значило получить большую надежду на спасение армии; дать французам предупредить себя в Цнайме – значило наверное подвергнуть всю армию позору, подобному ульмскому, или общей гибели. Но предупредить французов со всею армией было невозможно. Дорога французов от Вены до Цнайма была короче и лучше, чем дорога русских от Кремса до Цнайма.
В ночь получения известия Кутузов послал четырехтысячный авангард Багратиона направо горами с кремско цнаймской дороги на венско цнаймскую. Багратион должен был пройти без отдыха этот переход, остановиться лицом к Вене и задом к Цнайму, и ежели бы ему удалось предупредить французов, то он должен был задерживать их, сколько мог. Сам же Кутузов со всеми тяжестями тронулся к Цнайму.
Пройдя с голодными, разутыми солдатами, без дороги, по горам, в бурную ночь сорок пять верст, растеряв третью часть отсталыми, Багратион вышел в Голлабрун на венско цнаймскую дорогу несколькими часами прежде французов, подходивших к Голлабруну из Вены. Кутузову надо было итти еще целые сутки с своими обозами, чтобы достигнуть Цнайма, и потому, чтобы спасти армию, Багратион должен был с четырьмя тысячами голодных, измученных солдат удерживать в продолжение суток всю неприятельскую армию, встретившуюся с ним в Голлабруне, что было, очевидно, невозможно. Но странная судьба сделала невозможное возможным. Успех того обмана, который без боя отдал венский мост в руки французов, побудил Мюрата пытаться обмануть так же и Кутузова. Мюрат, встретив слабый отряд Багратиона на цнаймской дороге, подумал, что это была вся армия Кутузова. Чтобы несомненно раздавить эту армию, он поджидал отставшие по дороге из Вены войска и с этою целью предложил перемирие на три дня, с условием, чтобы те и другие войска не изменяли своих положений и не трогались с места. Мюрат уверял, что уже идут переговоры о мире и что потому, избегая бесполезного пролития крови, он предлагает перемирие. Австрийский генерал граф Ностиц, стоявший на аванпостах, поверил словам парламентера Мюрата и отступил, открыв отряд Багратиона. Другой парламентер поехал в русскую цепь объявить то же известие о мирных переговорах и предложить перемирие русским войскам на три дня. Багратион отвечал, что он не может принимать или не принимать перемирия, и с донесением о сделанном ему предложении послал к Кутузову своего адъютанта.
Перемирие для Кутузова было единственным средством выиграть время, дать отдохнуть измученному отряду Багратиона и пропустить обозы и тяжести (движение которых было скрыто от французов), хотя один лишний переход до Цнайма. Предложение перемирия давало единственную и неожиданную возможность спасти армию. Получив это известие, Кутузов немедленно послал состоявшего при нем генерал адъютанта Винценгероде в неприятельский лагерь. Винценгероде должен был не только принять перемирие, но и предложить условия капитуляции, а между тем Кутузов послал своих адъютантов назад торопить сколь возможно движение обозов всей армии по кремско цнаймской дороге. Измученный, голодный отряд Багратиона один должен был, прикрывая собой это движение обозов и всей армии, неподвижно оставаться перед неприятелем в восемь раз сильнейшим.
Ожидания Кутузова сбылись как относительно того, что предложения капитуляции, ни к чему не обязывающие, могли дать время пройти некоторой части обозов, так и относительно того, что ошибка Мюрата должна была открыться очень скоро. Как только Бонапарте, находившийся в Шенбрунне, в 25 верстах от Голлабруна, получил донесение Мюрата и проект перемирия и капитуляции, он увидел обман и написал следующее письмо к Мюрату:
Au prince Murat. Schoenbrunn, 25 brumaire en 1805 a huit heures du matin.
«II m'est impossible de trouver des termes pour vous exprimer mon mecontentement. Vous ne commandez que mon avant garde et vous n'avez pas le droit de faire d'armistice sans mon ordre. Vous me faites perdre le fruit d'une campagne. Rompez l'armistice sur le champ et Mariechez a l'ennemi. Vous lui ferez declarer,que le general qui a signe cette capitulation, n'avait pas le droit de le faire, qu'il n'y a que l'Empereur de Russie qui ait ce droit.
«Toutes les fois cependant que l'Empereur de Russie ratifierait la dite convention, je la ratifierai; mais ce n'est qu'une ruse.Mariechez, detruisez l'armee russe… vous etes en position de prendre son bagage et son artiller.
«L'aide de camp de l'Empereur de Russie est un… Les officiers ne sont rien quand ils n'ont pas de pouvoirs: celui ci n'en avait point… Les Autrichiens se sont laisse jouer pour le passage du pont de Vienne, vous vous laissez jouer par un aide de camp de l'Empereur. Napoleon».
[Принцу Мюрату. Шенбрюнн, 25 брюмера 1805 г. 8 часов утра.
Я не могу найти слов чтоб выразить вам мое неудовольствие. Вы командуете только моим авангардом и не имеете права делать перемирие без моего приказания. Вы заставляете меня потерять плоды целой кампании. Немедленно разорвите перемирие и идите против неприятеля. Вы объявите ему, что генерал, подписавший эту капитуляцию, не имел на это права, и никто не имеет, исключая лишь российского императора.
Впрочем, если российский император согласится на упомянутое условие, я тоже соглашусь; но это не что иное, как хитрость. Идите, уничтожьте русскую армию… Вы можете взять ее обозы и ее артиллерию.
Генерал адъютант российского императора обманщик… Офицеры ничего не значат, когда не имеют власти полномочия; он также не имеет его… Австрийцы дали себя обмануть при переходе венского моста, а вы даете себя обмануть адъютантам императора.
Наполеон.]
Адъютант Бонапарте во всю прыть лошади скакал с этим грозным письмом к Мюрату. Сам Бонапарте, не доверяя своим генералам, со всею гвардией двигался к полю сражения, боясь упустить готовую жертву, а 4.000 ный отряд Багратиона, весело раскладывая костры, сушился, обогревался, варил в первый раз после трех дней кашу, и никто из людей отряда не знал и не думал о том, что предстояло ему.


В четвертом часу вечера князь Андрей, настояв на своей просьбе у Кутузова, приехал в Грунт и явился к Багратиону.
Адъютант Бонапарте еще не приехал в отряд Мюрата, и сражение еще не начиналось. В отряде Багратиона ничего не знали об общем ходе дел, говорили о мире, но не верили в его возможность. Говорили о сражении и тоже не верили и в близость сражения. Багратион, зная Болконского за любимого и доверенного адъютанта, принял его с особенным начальническим отличием и снисхождением, объяснил ему, что, вероятно, нынче или завтра будет сражение, и предоставил ему полную свободу находиться при нем во время сражения или в ариергарде наблюдать за порядком отступления, «что тоже было очень важно».
– Впрочем, нынче, вероятно, дела не будет, – сказал Багратион, как бы успокоивая князя Андрея.
«Ежели это один из обыкновенных штабных франтиков, посылаемых для получения крестика, то он и в ариергарде получит награду, а ежели хочет со мной быть, пускай… пригодится, коли храбрый офицер», подумал Багратион. Князь Андрей ничего не ответив, попросил позволения князя объехать позицию и узнать расположение войск с тем, чтобы в случае поручения знать, куда ехать. Дежурный офицер отряда, мужчина красивый, щеголевато одетый и с алмазным перстнем на указательном пальце, дурно, но охотно говоривший по французски, вызвался проводить князя Андрея.
Со всех сторон виднелись мокрые, с грустными лицами офицеры, чего то как будто искавшие, и солдаты, тащившие из деревни двери, лавки и заборы.
– Вот не можем, князь, избавиться от этого народа, – сказал штаб офицер, указывая на этих людей. – Распускают командиры. А вот здесь, – он указал на раскинутую палатку маркитанта, – собьются и сидят. Нынче утром всех выгнал: посмотрите, опять полна. Надо подъехать, князь, пугнуть их. Одна минута.
– Заедемте, и я возьму у него сыру и булку, – сказал князь Андрей, который не успел еще поесть.
– Что ж вы не сказали, князь? Я бы предложил своего хлеба соли.
Они сошли с лошадей и вошли под палатку маркитанта. Несколько человек офицеров с раскрасневшимися и истомленными лицами сидели за столами, пили и ели.
– Ну, что ж это, господа, – сказал штаб офицер тоном упрека, как человек, уже несколько раз повторявший одно и то же. – Ведь нельзя же отлучаться так. Князь приказал, чтобы никого не было. Ну, вот вы, г. штабс капитан, – обратился он к маленькому, грязному, худому артиллерийскому офицеру, который без сапог (он отдал их сушить маркитанту), в одних чулках, встал перед вошедшими, улыбаясь не совсем естественно.
– Ну, как вам, капитан Тушин, не стыдно? – продолжал штаб офицер, – вам бы, кажется, как артиллеристу надо пример показывать, а вы без сапог. Забьют тревогу, а вы без сапог очень хороши будете. (Штаб офицер улыбнулся.) Извольте отправляться к своим местам, господа, все, все, – прибавил он начальнически.
Князь Андрей невольно улыбнулся, взглянув на штабс капитана Тушина. Молча и улыбаясь, Тушин, переступая с босой ноги на ногу, вопросительно глядел большими, умными и добрыми глазами то на князя Андрея, то на штаб офицера.
– Солдаты говорят: разумшись ловчее, – сказал капитан Тушин, улыбаясь и робея, видимо, желая из своего неловкого положения перейти в шутливый тон.
Но еще он не договорил, как почувствовал, что шутка его не принята и не вышла. Он смутился.
– Извольте отправляться, – сказал штаб офицер, стараясь удержать серьезность.
Князь Андрей еще раз взглянул на фигурку артиллериста. В ней было что то особенное, совершенно не военное, несколько комическое, но чрезвычайно привлекательное.
Штаб офицер и князь Андрей сели на лошадей и поехали дальше.
Выехав за деревню, беспрестанно обгоняя и встречая идущих солдат, офицеров разных команд, они увидали налево краснеющие свежею, вновь вскопанною глиною строящиеся укрепления. Несколько баталионов солдат в одних рубахах, несмотря на холодный ветер, как белые муравьи, копошились на этих укреплениях; из за вала невидимо кем беспрестанно выкидывались лопаты красной глины. Они подъехали к укреплению, осмотрели его и поехали дальше. За самым укреплением наткнулись они на несколько десятков солдат, беспрестанно переменяющихся, сбегающих с укрепления. Они должны были зажать нос и тронуть лошадей рысью, чтобы выехать из этой отравленной атмосферы.
– Voila l'agrement des camps, monsieur le prince, [Вот удовольствие лагеря, князь,] – сказал дежурный штаб офицер.
Они выехали на противоположную гору. С этой горы уже видны были французы. Князь Андрей остановился и начал рассматривать.
– Вот тут наша батарея стоит, – сказал штаб офицер, указывая на самый высокий пункт, – того самого чудака, что без сапог сидел; оттуда всё видно: поедемте, князь.
– Покорно благодарю, я теперь один проеду, – сказал князь Андрей, желая избавиться от штаб офицера, – не беспокойтесь, пожалуйста.
Штаб офицер отстал, и князь Андрей поехал один.
Чем далее подвигался он вперед, ближе к неприятелю, тем порядочнее и веселее становился вид войск. Самый сильный беспорядок и уныние были в том обозе перед Цнаймом, который объезжал утром князь Андрей и который был в десяти верстах от французов. В Грунте тоже чувствовалась некоторая тревога и страх чего то. Но чем ближе подъезжал князь Андрей к цепи французов, тем самоувереннее становился вид наших войск. Выстроенные в ряд, стояли в шинелях солдаты, и фельдфебель и ротный рассчитывали людей, тыкая пальцем в грудь крайнему по отделению солдату и приказывая ему поднимать руку; рассыпанные по всему пространству, солдаты тащили дрова и хворост и строили балаганчики, весело смеясь и переговариваясь; у костров сидели одетые и голые, суша рубахи, подвертки или починивая сапоги и шинели, толпились около котлов и кашеваров. В одной роте обед был готов, и солдаты с жадными лицами смотрели на дымившиеся котлы и ждали пробы, которую в деревянной чашке подносил каптенармус офицеру, сидевшему на бревне против своего балагана. В другой, более счастливой роте, так как не у всех была водка, солдаты, толпясь, стояли около рябого широкоплечего фельдфебеля, который, нагибая бочонок, лил в подставляемые поочередно крышки манерок. Солдаты с набожными лицами подносили ко рту манерки, опрокидывали их и, полоща рот и утираясь рукавами шинелей, с повеселевшими лицами отходили от фельдфебеля. Все лица были такие спокойные, как будто всё происходило не в виду неприятеля, перед делом, где должна была остаться на месте, по крайней мере, половина отряда, а как будто где нибудь на родине в ожидании спокойной стоянки. Проехав егерский полк, в рядах киевских гренадеров, молодцоватых людей, занятых теми же мирными делами, князь Андрей недалеко от высокого, отличавшегося от других балагана полкового командира, наехал на фронт взвода гренадер, перед которыми лежал обнаженный человек. Двое солдат держали его, а двое взмахивали гибкие прутья и мерно ударяли по обнаженной спине. Наказываемый неестественно кричал. Толстый майор ходил перед фронтом и, не переставая и не обращая внимания на крик, говорил: