Релиз Linux-ядра 2.6.36. Обзор новшеств
В новую версию принято 10195 исправлений от 1326 разработчиков, размер патча - 48 Мб (добавлено 9256 строк кода, удалено - 9204 строк). Около 39% всех представленных в 2.6.36 изменений связаны с драйверами устройств, примерно 27% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 6% - файловыми системами и 5% c внутренними подсистемами ядра.
В тексте анонса Линус Торвальдс отметил, что подготовка версии 2.6.36 немного затянулась, поэтому следующий релиз 2.6.37 будет разрабатываться более оперативно. Чтобы успеть выпустить первый кандидат в релизы до проведения саммита разработчиков Linux-ядра, на прием новшеств для следующей версии вместо двух недель отводится ровно десять дней, после чего окно приема изменений будет закрыто.
Наиболее интересные новшества ядра 2.6.36:
- Безопасность
- В ядро интегрирована поддержка технологии мандатного контроля доступа AppArmor, которая позволяет контролировать полномочия процессов, определяя списки файлов с соответствующими правами (на чтение, запись, отображение в память и запуск, установку блокировки на файл и т.п.) для каждого приложения. Также AppArmor позволяет на самом общем уровне контролировать доступ к сети (например, запретить использование ICMP) и управлять POSIX capabilities. Основное отличие AppArmor от SELinux состоит в том, что SELinux оперирует ассоциированными с объектом метками, а AppArmor определяет полномочия на основании файлового пути, что заметно упрощает процесс настройки;
- Оборудование и аппаратные архитектуры
- Поддержка процессорной архитектуры Tile, отличающейся возможностью интеграции на одном чипе до нескольких сотен процессорных ядер. Процессорные ядра оформлены в чипе в виде связанной mesh-сети (каждый узел связан через соседние узлы сети), состоящей из независимых ячеек, каждая из которых состоит из вычислительного блока (процессор, поддерживающий основанный на MIPS набор инструкций), кэша и модуля маршрутизации, который обеспечивает связь текущей ячейки с соседями в неблокирющем режиме.
- Поддержка новой технологии распределения питания, используемой в платформе Intel Core i3/5, отличающейся интеграцией графического процессора. В таких комбинированных чипах технология Intel Intelligent Power Sharing позволяет распределять питание между CPU и GPU, в зависимости от задач максимизируя производительность графических или вычислительных задач. Новый драйвер работает совместно с драйвером для контроля частоты CPU и 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-бомба);
- Переработан механизм функционирования рабочих очередей (пулл нитей, позволяющий осуществить отложенное выполнение функций ядра), который теперь реализует динамическое управление числом внутриядерных потоков, в зависимости от нагрузки на систему, и поддержание уровня очередей в допустимых пределах (если очередей больше, чем число CPU, наблюдается падение производительности из-за начала паразитного переключения контекста). Новая система также способна заменить код "slow-work", альтернативного пула потоков для выполнения некоторых операций, для которых традиционные рабочие очереди не подходят;
- Активирована возможность использования интегрированного в прошлой версии ядра отладчика KDB при работе в графическом режиме. Нажатие Sysrq-g теперь при работе X-сервера отображает отладочную консоль и выходит из нее при вводе команды "go". Поддержка связки KMS + KDB пока доступна только для чипов Intel. Отладчик KDB разработан в недрах компании SGI и, в отличие от Kgdb, не требует для отладки второго компьютера, на котором запущен фронтенд gdb. С помощью KDB можно инспектировать работу ядра на локальной системе, но его слабым звеном является отсутствие поддержки отладки на уровне исходных текстов;
- Сетевая подсистема
- Проведена оптимизация кода BPF-интерфейса (Berkeley Packet Filter), используемого для организации перехвата пакетов;
- В NetFilter добавлена поддержка цели CHECKSUM для вычисления и заполнения поля с контрольной суммой для пакетов в котором данное поле не заполнено (пример: "iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill");
- В NetFilter добавлена возможность привязки правила к CPU (xt_cpu) и IPVS (xt_ipvs). Например, для максимизации использования кэша и осуществления всего цикла обработки в рамках одного CPU, можно привязать несколько серверных обработчиков к определенным CPU и затем организовать перенаправление в зависимости от того на каком CPU был обработан пакет: "iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080";
- В реализации технологии "bonding" (превращение нескольких физических сетевых интерфейсов в один виртуальный) добавлена возможность управления со стороны пользователя выбором исходящего slave-интерфейса в режимах round-robin и active-backup;
- В беспроводной стек mac80211 добавлена поддержка аппаратных ARP-фильтров и опция для настройки мощности передатчика.
Источник: http://www.opennet.ru/opennews/art.shtml?num=28363
|
0 | Tweet | Нравится |
|