Linux 2.6.36
🕛 21.10.2010, 22:43
Спустя 80 суток с момента прошедшего выпуска, увидел свет релиз Линукс-ядра 2.6.36 в коем возникла помощь новой процессорной архитектуры Tile, внедрена технология мандатного контроля доступа APPARMOR, добавлена помощь локального кэширования CIFS-разделов, обеспечена возможность управления питанием для ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР Интел Core i3/i5 и включена подсистема LIRC для управления устройствами ч/з инфракрасный канал связи.В новую версию принято 10195 исправлений от 1326 девелоперов, размер патча - 48 Мегабайт (добавлено 9256 тысяч строк кода, удалено - 9204 тысячи строк). Возле 39 процентов всех представленных в 2.6.36 изменений связаны с драйверами устройств, приблизительно 27 процентов изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12 процентов связано с сетевым стеком, 6% - файловыми системами и 5 процентов c внутренними подсистемами ядра.
В тексте анонса Линус Торвальдс подчеркнул, что подготовка версии 2.6.36 слегка затянулась, потому следующий релиз 2.6.37 будет разрабатываться более оперативно. Чтоб успеть отпустить I кандидат в релизы до проведения саммита девелоперов Линукс-ядра, на прием новшеств для следующей версии вместо 2-х недель отводится ровно 10 суток, затем окошко приема изменений будет закрыто.
Максимально любопытные нововведения ядра 2.6.36:
БЕЗОПАСНОСТЬВ ядро внедрена помощь технологии мандатного контроля доступа APPARMOR, которая дает возможность контролировать полномочия процессов, определяя перечни файлов с соответствующими правами (на чтение, запись, отображение в память и запуск, установку блокировки на файл и т.п.) для любого приложения. Тоже APPARMOR дает возможность на самом общем уровне контролировать доступ к сети (к примеру, запретить применение ICMP) и руководить POSIX capabilities. Главное различие APPARMOR от SELINUX заключается в том, что SELINUX оперирует ассоциированными с объектом метками, а APPARMOR определяет полномочия на основании файлового пути, что заметно упрощает процесс настройки;Оснащение и аппаратные Архитектурыподдержка процессорной архитектуры Tile, отличающейся возможностью интеграции на одном чипе до некоторого количества сотен процессорных ядер. Процессорные ядра оформлены в чипе в виде связанной mesh-сети (любой узел связан ч/з соседние узлы сети), состоящей из независимых ячеек, каждая из которых состоит из вычислительного блока (процессор, поддерживающий основанный на MIPS набор инструкций), кэша и модуля маршрутизации, который обеспечивает связь текущей ячейки с соседями в неблокирющем режиме.Помощь новой технологии распределения питания, применяемой в платформе Интел Core i3/5, отличающейся интеграцией графического процессора. В этих комбинированных чипах технология Интел Intelligent Power Sharing дает возможность распределять питание м/у ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР и GPU, в зависимости от задач максимизируя производительность графических или вычислительных задач. Новый драйвер работает совместно с драйвером для контроля частоты ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР и DRM-драйвером i915, координирует характеристики мощности и температуры с основным термальным драйвером, осуществляя мониторинг мощности и температуры GPU;В состав ядра интегрирован набор драйверов, разработанных в рамках проекта LIRC и предназначенных для организации управления устройствами и обмена данными ч/з инфракрасный порт;Дисковая подсистема, ввод/вывод и файловые Системыдля сетевой файловой системы CIFS реализована помощь локального кэширования данных. Помощь кэширования реализована ч/з подсистему FS-Cache, которая возникла в ядре 2.6.30 и раньше поддерживала кэширование для файловых систем NFS и AFS;В файловой системе Ext3 сейчас изначально применяется режим упорядоченного журналирования (mount -o data=ordered), при коем сначала на диск сбрасываются обновления данных, а позже в журнал помещаются перемены метаданных, что гарантирует отсутствие в файлах устаревших блоков данных в случае провала;В файловой системе Squashfs, применяемой для образования LIVECD, возникла помощь алгоритма сжатия LZO;За неделю до выпуска, из-за проблем с обеспечением целостности ABI, из ветки 2.6.35 был исключен раньше добавленный код Fnotify, нового механизма уведомления приложений (напирмер, антивирусных сканеров) об изменениях в файловой системе, идущего на смену системам inotify и dnotify (для таких систем обеспечен режим эмуляции, который работает поверх fanotify). Fanotify поддерживает отслеживание как активных событий (открытие, чтение, закрытие, запись и т.п.), так и исполнение пассивных операций, таких как открытие специального файлового дескриптора к отслеживаемому объекту, доступного лишь на чтение. В отличие от inotify и dnotify в новой системе устранены трудности с масштабированием при контроле за крупным числом объектов и обеспечена помощь нотификации на базе блокировки и контроля доступа.Память и системные Сервисыинтегрирован ряд патчей для подсистемы виртуальной памяти, направленных на повышение отзывчивости рабочий стол-систем. К примеру, патчи минимизируют негативный эффект, проявляющийся в виде подвисаний приложений при копировании крупного объема данных с медленных USB-носителей;Существенно обработан алгоритм OOM Killer (Out of Memory Killer), принимающий решение об принудительном завершении процессов в ситуации катастрофической нехватки памяти (ОЗУ и swap). Выбор процессов для принудительного завершения связан со множеством нюансов, требующих учитывать большое количество системных параметров. Новый OOM Killer более не приводит к завершению оболочки KDE при нехватке памяти, учитывает связь потомок-родитель (родитель сейчас не оканчивается пока у него есть потомки), поддерживает эвристический способ блокирования разрастания крупного количества процессов за короткий промежуток времени (fork-бомба);Обработан механизм функционирования рабочих очередей (пулл нитей, дающий возможность осуществить отложенное исполнение функций ядра), который сейчас реализует динамическое управление числом внутриядерных потоков, в зависимости от нагрузки на систему, и поддержание ур. очередей в допустимых пределах (если очередей более, чем количество ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР, наблюдается падение производительности из-за начала паразитного переключения контекста). Новая система тоже способна заменить код "slow-work", альтернативного пула потоков для исполнения некоторых операций, для которых традиционные рабочие очереди не подходят;Активирована возможность эксплуатации интегрированного в прошлой версии ядра отладчика KDB при работе в графическом режиме. Нажатие Sysrq-g сейчас при работе X-сервера отображает отладочную консоль и выходит из нее при вводе команды "go". Помощь связки KMS + KDB пока доступна лишь для чипов Интел. Отладчик KDB разработан в глубинах компании SGI и, в отличие от Kgdb, не требует для отладки II-го компьютера, на коем запущен фронтэнд gdb. При помощи KDB возможно инспектировать работу ядра на локальной системе, однако его слабым звеном является отсутствие помощи отладки на уровне исходных текстов;Сетевая Подсистемапроведена оптимизация кода BPF-интерфейса (Berkeley Packet Filter), используемого для организации перехвата пакетов;В NETFILTER добавлена помощь цели CHECKSUM для вычисления и заполнения поля с контрольной суммой для пакетов в коем данное поле не заполнено (пример: "iptables -A POSTROUTING -t mangle -p udp -dport bootpc -j CHECKSUM -checksum-fill");В NETFILTER добавлена возможность привязки правила к ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (xt_центральный процессор) и IPVS (xt_ipvs). К примеру, для максимизации эксплуатации кэша и осуществления целого цикла обработки в рамках одного ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР, возможно привязать несколько серверных обработчиков к определенным ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР и после организовать перенаправление в зависимости от того на каком ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР был обработан пакет: "iptables -t nat -A PREROUTING -p tcp -dport 80 -m центральный процессор -центральный процессор 0 -j REDIRECT -to-port 8080";В реализации технологии "bonding" (преобразование некоторого количества физических сетевых интерфейсов в 1 виртуальный) добавлена возможность управления с позиции пользователя выбором исходящего slave-интерфейса в режимах round-robin и active-backup;В беспроводной стек mac80211 добавлена помощь аппаратных ARP-фильтров и опция для настройки мощности передатчика.