Синхронизация времени
Синхронизация времени
Синхронизация времени в Linux возможна про протоколу NTP, описанному в RFC 5905, и протоколу TIME, описанному в RFC 868. В настоящее время, в подавляющем большинстве случаев, используется протокол NTP. Кроме того, в случае выключения компьютера, либо его перезагрузки, важна синхронизация системного времени с аппаратными часами реального времени материнской платы компьютера (RTC). В ALT есть несколько пакетов, обеспечивающих синхронизацию по протоколу NTP. Использовать одновременно несколько способов не следует. Так же существует дистрибутивонезависимое MINI-HOWTO на эту тему [1] .
Содержание
tzdata [ править ]
Пакет содержит множество описаний временны́х зон, нужная из которых копируется в /etc/localtime (либо это может быть символическая ссылка на соответствующий файл). Только этот файл определяет системную временну́ю зону. Для дистрибутивов ALT с sysvinit копирование может быть выполнено командой
Сама зона, в этом случае, определяется по значению переменной ZONE из /etc/sysconfig/clock.
NTP [ править ]
пакет openntpd [ править ]
Используется по-умолчанию в большинстве дистрибутивов ALT. Отличается высокой безопасностью и как следствие — некоторыми недостатками, самый неприятный из которых — это медленный старт, доходящий в некоторых случаях до суток. Сам демон имеет название ntpd, как и аналогичный из пакета ntp, однако не является совместимым с ним ни по параметрам запуска, ни по средствам контроля, ни по конфигурационному файлу.
пакет ntp [ править ]
Пакет является эталонной реализацией протокола ntp и имеет долгую историю. Считается не очень безопасным ввиду лидерства по количеству закрытых за историю CVE. В ALT пакет состоит из нескольких подпакетов. Непосредственно к синхронизации имеют отношение два, а третий полезен для контроля состояния ntpd.
ntpd [ править ]
Собственно сам демон, который может работать как в качестве клиента, так и в качестве сервера.
ntpdate [ править ]
Утилита, позволяющая однократно посмотреть время на каком-либо NTP-сервере (не обязательно ntpd) и/или синхронизировать с ним системное время. Если запущен ntpd, требуется использовать ключ -u при запуске.
ntpq [ править ]
Утилита, позволяющая посмотреть статус работающего ntpd, как локального, так и удалённого.
пакет chrony [ править ]
Наименее проблемный сервер времени, умеющих синхронизировать время быстро по списку доверенных серверов.
В некоторых конфигурациях это единственный сервер времени, с которым что-то работает, например, кластеры файловой системы ceph.
пакет systemd-timesyncd [ править ]
Является клиентом SNTP, не может быть сервером NTP.
TIME 868 [ править ]
пакет xinetd [ править ]
Встроенный сервер TIME 868 имеет демон xinetd. Чтобы служба заработала, надо в /etc/xinetd.d/time-tcp и /etc/xinetd.d/time-udp заменить «disable = yes» на «disable = no». Так же, не следует забывать про основной /etc/xinetd.conf, в котором, по-умолчанию, присутствует параметр «only_from = 127.0.0.1».
пакет rdate [ править ]
TIME 868 клиент
пакет netdate [ править ]
TIME 868 клиент
DAYTIME 867 [ править ]
Упоминается в контексте Samba. надо понять и дописать, для чего
Синхронизация системного времени с RTC [ править ]
Linux kernel [ править ]
При наличии синхронизации с NTP-сервером ядро каждые 11 минут обновляет время в RTC. Начиная с 3.10, из ядра выпилили код, который пытался обновлять в RTC только минуты и секунды, чтобы обновление работало независимо от часового пояса (но в этом случае не могло быть исправлено расхождение более чем на 15 минут) [2] . В результате, при использовании синхронизаторов, умеющих сообщать ядру о наличии синхронизации, ядро получило возможность выставить значение RTC в UTC в соответствии с текущим значением времени, что внесло некоторую путаницу.
Проверить, что функция синхронизации может быть активирована, можно посредством команды
пакет hwclock [ править ]
При запуске однократно синхронизирует RTC с системными часами, либо наоборот. В зависимости от параметров в RTC может быть установлено время в UTC, либо локальное. В момент исполнения hwclock создаёт файл /etc/adjtime, в котором записано отклонение RTC от системного времени и какое время (локальное, либо UTC) записано в RTC. При загрузке системное время выставляется относительно RTC по данными из adjtime. Несоответствие значения временной зоны в RTC и в файле adjtime (UTC/LOCAL) приводит к сдвигу системного времени при загрузке. В некоторых случаях (например, при использовании ntpd) можно просто обнулить содержимое /etc/adjtime после использования ( >/etc/adjtime ).
другие ОС [ править ]
Другие ОС тоже могут корректировать значение времени в RTC. Если на компьютере установлено более одной ОС, необходимо производить настройки таким образом, чтобы все ОС корректировали время в RTC одинаковым образом.
Как изменить часовой пояс Linux
Мы очень часто пользуемся временем в Linux, начиная от простой задачи узнать сколько сейчас времени, до более сложной — посмотреть логи или узнать когда произошло то или иное событие в системе. Все завязано на времени, поэтому очень важно, чтобы часы шли правильно.
Наша планета разделена на часовые пояса, это было сделано с одной простой целью, чтобы время в любой точке планеты соответствовало солнечному времени. Время между этими зонами отличается на час и всего таких поясов — 24, за эталон взято время по нулевому, Гринвичскому меридиану.
Поэтому в определенный момент время в разных участках планеты будет отличаться на час. В этой небольшой статье мы рассмотрим как изменить часовой пояс Linux, чтобы операционная система правильно работала со временем и могла правильно его синхронизировать через интернет.
Как работает время в Linux?
Операционная система Linux хранит и обрабатывает системное время в специальном Unix формате — количество секунд прошедших с полуночи первого января 1970 года. Эта дата считается началом эпохи Unix. И используется не ваше локальное время, а время по гринвичскому меридиану.
Для преобразования времени по Гринвичу в региональное время используется часовой пояс. Это преобразование выполняется для каждого пользователя. Это необходимо, чтобы каждый пользователь мог настроить для себя правильное по его временной зоне время. Такое поведение просто необходимо на серверах, когда на одной машине могут работать люди из разных частей мира.
По умолчанию в системе может быть установлен неправильный часовой пояс, это приведет к путанице в логах событий, да и другим трудностям. Но все это легко исправить. Дальше мы рассмотрим несколько способов изменить часовой пояс Linux.
Настройка часового пояса в linux
1. Ссылка /etc/localtime
Наиболее популярный и поддерживаемый в большинстве дистрибутивов способ установки часового пояса для всех пользователей — с помощью символической ссылки /etc/localtime на файл нужного часового пояса. Список доступных часовых поясов можно посмотреть командой:
Сначала создайте резервную копию текущего часового пояса:
cp /etc/localtime /etc/localtime.bak
Для создания символической ссылки используйте команду ln -sf. Файл зоны нужно выбрать из доступных в системе. Например, мой часовой пояс — Украина, Киев, для установки будет использоваться следующая команда:
ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/locatime
Теперь можете проверить текущее системное время с помощью утилиты date:
Если у вас установлена утилита rdate можно синхронизировать время с сетью:
sudo rdate -s time-a.nist.gov
Осталось только синхронизировать ваши аппаратные часы с новыми настройками, для этого выполните команду:
Если нужно изменить часовой пояс только для определенной программы или скрипта, просто измените для нее переменную окружения TZ, например:
Эта настройка сохраняется только для текущего сеанса командной оболочки. Чтобы сменить часовой пояс linux для определенного пользователя тоже нужно использовать переменную среды TZ. Только ее нужно добавить в файл
/.environment. Этот файл читается по умолчанию при входе в систему, а значит переменная будет доступна всем программам:
Готово, теперь вы знаете как выполняется настройка часового пояса linux для определенного пользователя.
2. Настройка с помощью tzdata
Если вы не хотите использовать описанный выше способ, можно воспользоваться специальными утилитами. Вот только в разных дистрибутивах используются свои утилиты. Рассмотрим варианты для самых популярных дистрибутивов.
В Red Hat Linux:
В CentOS и Fedora:
В Slackware или FreeBSD:
В большинстве случаев вы увидите подобное диалоговое окно:
Здесь просто нужно выбрать нужный часовой пояс и нажать кнопку Enter. После этого для окончательного применения настроек нужно будет перезагрузить систему.
3. Настройка с помощью systemd
В systemd есть своя утилита для настройки даты и часового пояса. Чтобы узнать текущее состояние выполните:
Для просмотра всех доступных временных зон выполните такую команду:
А для установки нужного часового пояса используйте команду set-timezone, например, тот же Europe/Kiev:
sudo timedatectl set-timezone Europe/Kiev
4. Настройка часового пояса в GUI
В дистрибутиве Ubuntu и других, использующих Gnome, настройка часового пояса Linux может быть выполнена прямо в параметрах системы. Для этого выберите пункт Сведения о системе, затем Дата и время, выберите свое местоположение на карте, или наберите название для поиска в поле ввода:
В KDE аналогично можно установить часовой пояс в настройках системы. Запустите утилиту настроек, откройте пункт Локализация, перейдите в раздел Дата и время, а затем откройте вкладку Часовой пояс:
Остается выбрать часовой пояс в списке и нажать кнопку Применить. Здесь уже изменения должны проявиться моментально.
Выводы
Теперь вы знаете как выполняется установка часового пояса в linux и сможете настроить не только свой домашний компьютер но и сервер с множеством пользователей, которым нужен отдельный часовой пояс для правильного местного времени. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео, в котором подробно рассказано, что такое часовые пояса и зачем они нужны:
Linux.yaroslavl.ru
Здесь я попробую рассказать вам о том, что надо сделать, для того чтобы, использовать linux-samba сервер в качестве контролера домена для Windows сети. Также будет рассмотрено управление пользователями и профилями. Этот документ относиться к Debian CNU/Linux 2.2 так что ваш smb.conf может отличаться в зависимости от дистрибутива. Для написания статьи использовалась samba 2.0.7
Инсталяция Samba
Будем считать что вы немного знакомы с samba и он установлен на вашем сервере. Если это не так, то для быстрой установки попробуйте:
Debian: apt-get install samba
RedHat(Mandrake): rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*
Файл конфигурации: основные параметры
Samba использует свой собственный файл конфигурации который состоит из секций, таких как приведенная ниже [global] и [tmp].
Файл настройки только для samba! |
Если вы запустите samba с этим конфигом, то все windows машины в вашей локальной сети смогут увидеть в своем сетевом окружении машину, которая называется так же как ваш linux сервер и которая имеет разделяемый ресурс tmp, в который для всех разрешена запись.
Внимание: когда вы изменяете ваш конфигурационный файл, вы должны перезапустить samba командой /etc/init.d/samba restart script (для debian)
Файл конфигурации, идем дальше
Давайте рассмотрим следующие параметры:
- Секция [global]
- netbios name:
Netbios имя вашего сервера (то имя, которое вы увидите в сетевом окружении вашей windows машины), если не сделаете этого, то будет использовано имя сервера (hostname). - invalid users:
Список пользователей которым запрещен доступ, например «root» рекомендуется включить в этот список. - interfaces:
Если машина имеет несколько сетевых интерфейсов, то нужно указать какой необходимо использовать samba серверу. - security:
Выбор режима безопасности, при security=user каждый пользователь должен иметь учетную запись (account) на GNU/Linux сервере, если вы хотите что бы samba сервер управлял доступом и пользователями, то используйте security=share. - workgroup:
Рабочая группа. - server string:
Описание вашего компьютера. - socket options:
Опции сокета, с их помощью можно (и нужно) оптимизировать работу samba. - encrypt passwords:
Должны ли вы использовать зашифрованные пароли? Это важно знать, потому, что каждая версия windows (почти) использует различные схемы авторизации. - wins support:
Должен ли ваш сервер быть wins сервером? - os level:
Определяет шансы samba сервера стать local mastero`ом для своей рабочей группы (чем выше значение тем меньше у конкурирующего сервера шансов). - domain master:
Работать как domain master. - local master:
Как local master. - preferred master:
Это опция вместе с domain master = yes практически гарантирует, что ваш samba сервер станет domain master`ом - domain logons:
Тrue если хотите чтобы samba выполняла функции ПЕРВИЧНОГО КОНТРОЛЕРА ДОМЕНА (PDC), для дополнительной информации по этому вопросу прочтите Samba-PDC-HOWTO. - logon script:
Скрипт, который выполняется, когда пользователь успешно логиниться. - logon path:
Путь для скриптов. - logon home:
Тут храним профили юзеров. - name resolve order:
Порядок разрешения имен. - dns proxy:
Будем ли работать как DNS прокси? - preserve case:
- short preserve case:
Эти два параметра решают вопросы связанные со строчными и заглавными буквами (как известно в Unix ситемах это разные буквы а в Windows — одинаковые) . - unix password sync:
Будет ли samba синхронизировать Unix и Samba пароли ? - passwd program:
Программа для синхронизации паролей. - passwd chat:
«Чат» протокол для смены пароля. - max log size:
Максимальный размер для лог файла.
Переменные
Переменная Описание Переменные клиента %a Архитектура клиента
Например: Win95, WinNT, Samba .%I IP адрес клиента %m NETBIOS имя клиента %M DNS имя клиента Переменные пользователя %g первичная группа %H домашняя директория %u имя юзера Переменные расшаренных ресурсов %P Корневая папка ресурса %S Имя ресурса Переменные сервера %h DNS имя %L NETBIOS имя %v версия Samba Другое %T Текущая дата и время Пример использования переменных: в сети где есть windows 3.11 и windows 98 вы можете создать 2 конфигурационных файла, по 1 для каждой системы используя переменную %a.
Итак: наш конфиг файл
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root; указываем netbios имя
netbios name = pantoufle
; и подсеть в которой работаем
interfaces = 192.168.0.1/255.255.255.0; режим user подразумевает что каждый пользователь имеет учетную запись на unix сервере
security = user; рабочая группа
workgroup = rycks
; описание компьютера
; %h — DNS имя сервера, %v версия samba
server string = %h server (Samba %v); samba ведет свои собственные логи
syslog only = no
syslog = 0;; оптимизация соединений
socket options = IPTOS_LOWDELAY TCP_NODELAY
SO_SNDBUF=4096 SO_RCVBUF=4096; используем зашифрованные пароли . для этого нужно пропатчить w95 и NT4
encrypt passwords = yes; Wins сервер позволяет использовать разделяемые ресуры нескольких подсетей
wins support = yes; OS level. См. выше
os level = 34; управление доменом
local master = yes
preferred master = yes; уравление входом в домен
domain logons = yes; скрипт выполняемый при коннекте клиента (на машине клиента)
logon script = %g.bat
; директория для скриптов
logon path=\%Lnetlogon
; здесь храним профили
logon home=\%L%Uwinprofile; в этом порядке идет поиск имен
; ВНИМАНИЕ: bcast в конце в отличии от windows
name resolve order = lmhosts host wins bcast; работа DNS proxy
dns proxy = no; регистр букв .
preserve case = yes
short preserve case = yes; синхронизация samba и unix паролей
unix password sync = yes; способ синхронизации
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:*
%nn *RetypesnewsUNIXspassword:* %nn .; максимальный размер логфайла (строк)
max log size = 1000; tine сервер
; сихронизировать будем с помощью .bat файла
time server = yes; ресурс netlogon используется только во время установки соединения
; поэтому нет необходимости делать его публичным
[netlogon]
path = /home/netlogon/%g
public = no
writeable = no
browseable = no; каждому клиенту по собственной директории
[homes]
path = /home/%user
comment = Home Directories
browseable = no
read only = no
create mask = 0700
directory mask = 0700; для удобства можно расшарить и FTP
; чтобы доступ осуществлялся не только с помощью FTP клиента
[ftp]
path = /home/ftp/pub
public = yes
printable = no
guest ok = yes; tmp
[tmp]
path = /tmp
public = yes
printable = no
guest ok = yes
writable = yes; tmp для отдельных юзеров
[bigtemp]
path = /home/bigtemp
public = yes
printable = no
guest ok = yes
valid users = erics
writable = yesЧто же должно быть на сервере ?
На сервере мы должны иметь:
- учетные записи для каждого клиента (account)
- smb.conf файл
- директорию /home/netlogon (в моем примере)
- .bat файл для каждого пользователя и группы (примеры см. ниже)
- файл CONFIG.POL для осуществления вашей политики безопасности (в директории /home/netlogon).
- для создания файла config.pol понадобится poledit.exe.
Эти файлы позволяют при загрузке автоматически подключать персональный ресурс как диск P: и tmp ресурс как диск T: . Так же происходит синхронизация времени.
ВНИМАНИЕ: .bat файл должен быть в так называемом «DOS mode» (т.е. иметь все символы из DOS кодировки), для этого лучше всего создавайте его в блокноте (notepad) .
Defining the system security policy (C) (TM) (R)
Безопасночть в Windows почти возможна используя контролеры доменов. Этот заголовок взят из документации MS :o).
Итак для воплощения в жизнь вашей политики безопасности (еще я думаю подойдет термин настройки системы), например для запрета запуска утилиты regedit, DOS программ и т.д., вам необходимо использовать программу POLEDIT из дистрибутива поставки Windows 98 .
Запускайте poledit, читайте документацию, пробуйте: но эта статья не об этом.
Итак, когда ваш .POL файл создан, скопируйте его в директорию ресурса [netlogon].
ВНИМАНИЕ: Для Win9X клиентов настройки должны быть в файле CONFIG.POL . для WindowsNT он должен иметь другое имя, но я не знаю какое так как ей не полюзуюсь:( И пожалуйста не присылайте мне NT даже для теста. Хотя все равно спасибо за такие предложения :o)
ЗАМЕЧАНИЕ: PolEdit разрешает создавать пользователей и группы. Работает, правда, это только с пользователем установленным по умолчанию.
Например, если я создаю группу «admin» в PolEdit, которой можно запускать regedit, когда я подсоединяюсь под именем «erics» («admin» является его личной группой), regedit у меня не запускается :(.
Хотя, если создать пользователя «erics» в poledit . все работает.
Учитывая то, что нам не очень хочется создавать 1056 пользователей poledit и управлять всеми пользоателями сразу намного интереснее, мы предлагаем следующую хитрость:
Для осуществления плана мы обошли проблему: мы создали 3 config.pol файла только пользователями по умолчанию, итак, на linux сервере получилось:
/home/netlogon/teachers/CONFIG.POL
/home/netlogon/teachers/teachers.bat
/home/netlogon/pupils/CONFIG.POL
/home/netlogon/pupils/pupils.bat
/home/netlogon/admin/CONFIG.POL
/home/netlogon/admin/admin.bat
И немного изменили файл smb.conf чтобы она учитывала это:<smb.conf file>
[netlogon]
; мы добавили %g чтобы переместить netlogon в другую дирректорию в зависимости от
; группы пользователей, к которой файл config.pol обращается в зависимости от группы
; пользователей
path = /home/netlogon/%g
public = no
writeable = no
browseable = no
</smb.conf file>Настройки компьютеров под Windows
Немного удачи, 20 кликов мыши и перезагрузок наверно хватит для настройки windows! Для клиента под Win98
Нажмите на Start/Parameters/Configpanel (Пуск/Панель управленя/Сеть) и дважды кликните на Network
- Клиент для сетей Майкрософт
- Драйвер сетевой карты
- Поддержка TCP/IP и ТОЛЬКО TCP/IP (не ipx или netbios)
- Доступные принтеры и папки
Потом нажмите на закладку «Identification» (Идентификация) и дайте компьютеру имя и название группы.
Нажмите на «Access control» и выберите права доступа пользователя
Вернитесь к закладке настроек и нажмите на «Client for MS network» (Клиент для сетей Майкрософт)
Не забудьте настроить поддержку TCP/IP:
дважды нажмите на TCP/IP
IP address:- IP address для этой машены (пример: 192.168.0.2)
- Маска подсети (пример: 255.255.255.0)
- Активизировать WINS разрешение
- Добавить WINS сервер, IP 192.168.0.1 (если это IP address samba сервера)
- Gateway: если есть здесь можно настроить
- Настройки DNS: настроить доступ к DNS
Замечания «скорость/быстродействие?»
Во время работы, обращения проходят довольно быстро потому что используются профили windows.
Но, profile полон вещей которые MS считает необходимыми, такие как IE cache, OutLook cache, и т.д.
Это значт что около 10 MB будет грузиться при подключении к машине и 10 MB будет передаватья серверу при отключении.
10 MB для каждого пользователя, для 15 компьютеров («нормальный» размер лаборатории, например), получается 150 MB, а если в здании 10 комнат. можно подсчитать время отключения от сети в конце рабочего дня.
Поэтому лучше домашней директорией сделать P: (например, P как Personal) для каждого и приучить пользователей: «сохраняйте докумнты в P а не в «My documents», иначе обратно вы их не получите «.
Надо найти софт чтобы настроить закладки в P:bookmarks.html и т.п.
Я не знаю существует ли это в мире windows!
Вопросы и предложения
Возможно ли создавать различные группы на домене, как этим управлять?
Как использовать NT и Samba серверы?
Настройка клиентов NT аналогична CONFIG.POL но под NT имеет другое название.
Благодарности
Bruno <bcarrere(at)asp-france.fr> за помощь:o)
JohnPerr за помощь в написании и перевод на English.
Michel Billaud aka MiB за найденые им решения нашим проблемам :o)
Etienne, Éric, спасибо за то что поделились знаниями по NT серверам.
Jean Peyratout слишком долго рассказывать за что 🙂Ядро Linux
Ядро Linux ( /ˈlɪnʊks/ [8] ) — ядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux. Разработка кода ядра была начата финским студентом Линусом Торвальдсом в 1991 году, на его имя зарегистрирована торговая марка «Linux».
Код написан в основном на Си с некоторыми расширениями gcc и на ассемблере (с использованием AT&T-синтаксиса GNU Assembler).
Распространяется как свободное программное обеспечение на условиях GNU General Public License, кроме несвободных элементов, особенно драйверов, которые используют прошивки, распространяемые под различными лицензиями [9] .
Операционные системы на базе ядра Linux являются лидерами на рынках суперкомпьютеров, микрокомпьютеров, серверов и смартфонов.
Содержание
История [ править | править код ]
Начало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet [10] .
К тому времени GNU уже создал множество составляющих для свободной операционной системы, но её ядро GNU Hurd ещё не было готово. Поэтому пустующее место ядра для свободной операционной системы занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей.
«Linux» как ядро операционной системы, разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, в связи с чем существует спор об именовании GNU/Linux — некоторые сторонники движения GNU считают, что именно такое наименование является корректным для операционной системы на базе ядра Linux и использующей наработки проекта GNU (такие, как glibc, gcc, bash, coreutils и другие) [11] .
По состоянию на май 2020 года семейство операционных систем на базе ядра Linux — третье по популярности в мире на рынке настольных компьютеров — 4.9 % [12] . На рынке веб-серверов доля Linux порядка 31 %, остальное — Unix-системы (FreeBSD и др.) [13] . По данным Top500 (май 2020 года), Linux используется в качестве операционной системы на 100 % самых мощных суперкомпьютеров планеты [14] .
Большинство мобильных устройств, таких, как смартфоны и планшетные компьютеры на базе операционных систем Android, MeeGo, Tizen, а также телевизоры и многие служебные устройства, такие, как внешние сетевые жёсткие диски, маршрутизаторы и модемы, также использует операционные системы на базе ядра Linux.
Хронология [ править | править код ]
- Апрель 1991: 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач.
- 25 августа 1991: Торвальдс поместил сообщение в новостную группу по Minix[10][15] .
- 17 сентября 1991: Linux версии 0.01 (10 239 строк кода).
- 5 октября 1991: Linux версии 0.02 [2] (англ.) .
- Декабрь 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 изменена политика нумерации версий ядра [16] .
Нумерация версий до 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) и 21 апреля 2015 (4.0.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-версиями передаётся другим лицам:
Серия Версии Руководители Окончание поддержки 3.2 3.2.101 Бэн Хатчингс Май 2018 3.4 3.4.113 Ли Зифан Октябрь 2016 3.10 3.10.108 Уилли Тароу Ноябрь 2017 3.12 3.12.74 Иржи Слаби Май 2017 3.14 3.14.79 Грег Кроа-Хартман Сентябрь 2016 3.16 3.16.85 Бэн Хатчингс Июнь 2020 3.18 3.18.140 Саша Левин Январь 2017 4.1 4.1.52 Саша Левин Май 2018 4.4 4.4.231 Грег Кроа-Хартман & Саша Левин Февраль 2022 4.9 4.9.231 Грег Кроа-Хартман & Саша Левин Январь 2023 4.14 4.14.189 Грег Кроа-Хартман & Саша Левин Январь 2024 4.19 4.19.134 Грег Кроа-Хартман & Саша Левин Декабрь 2024 5.4 5.4.53 Грег Кроа-Хартман & Саша Левин Декабрь 2025 Другими программистами ядра Linux являются Роберт Лав [en] и Инго Молнар [en] [17] .
- netbios name: