Линус Торвальдс представил релиз Linux ядра 2.6.34,
в которое принято 10167 исправлений от 1305 разработчиков, размер патча
- 39 Мб (добавлено 621 тыс. строк кода, удалено - 290 тыс. строк).
Около 42% всех представленных в 2.6.34 изменений связаны с драйверами
устройств, примерно 27% изменений имеют отношение к обновлению кода
специфичного для аппаратных архитектур, 14% связано с сетевым стеком,
7% - файловыми системами и 6% c внутренними подсистемами ядра.
Основные новшества:
- Дисковая подсистема, ввод/вывод и файловые системы
- Интегрирован код файловой системы Ceph,
способной поддерживать работу хранилища объемом в несколько петабайт (1
Пб = 1024 Тб), распределенного по тысячам машин. Встроенные в Ceph
механизмы репликации данных (данные разбиваются на блоки и несколько
раз дублируются на разных машинах) обеспечивают чрезвычайно высокую
живучесть системы. При добавлении или удалении новых узлов, массив
данных автоматически ребалансируется с учетом изменения конфигурации. В
Ceph имеется поддержка снапшотов, причем снапшот может быть создан не
только для ФC, но и для отдельных директорий. В отличии от таких
файловых систем, как GFS, OCFS2, и GPFS, в Ceph обработка данных и
метаданных разделена на различные группы узлов в кластере. Ceph может
работать поверх блочных устройств, внутри одного файла или через
размещение данных в существующих ФС (например, XFS).
- В состав ядра принят код файловой системы LogFS,
специально спроектированной для использования на Flash-накопителях. В
LogFS интегрирован механизм минимизации повторной перезаписи блоков,
поддерживается журналирование и сжатие данных на лету. Дерево элементов
файловой системы в LogFS хранится в Ext2 подобном виде, что позволило
избавиться от двух главных проблем файловой системы JFFS2
- повышенного расхода памяти и длительного времени монтирования. В
отличие от LogFS, в JFFS2 служебная информация записывается только в
форме лога, что приводит к необходимости сканирования данных для
воссоздания структуры ФС при каждом монтировании и к хранению всей
структуры ФС в оперативной памяти в процессе работы (линейная
зависимость от объема данных).
- Значительное обновление кода файловой системы
Btrfs: Для тонкой настройки ФС добавлена пользовательская утилита
"btrfs". Расширены возможности по работе с подразделами и снапшотами,
которые теперь можно назначать для монтирования по умолчанию (например,
можно установить все обновления дистрибутива или провести эксперимент в
отдельном снапшоте, а затем мгновенно переключиться на обновленный
образ корневой ФС, а если возникнут проблемы - вернуться обратно). Для
более точного соответствия реальной ситуации изменен метод расчета
свободного места, которым оперирует утилита df. В defrag-код добавлена
поддержка сжатия файлов при необходимости или дефрагментации только
диапазонов байт в файле.
- В реализацию файловой системы FAT добавлена поддержка больших дисков (более 2 Тб) c размером сектора 4096 байт;
- В код файловой системы Squashfs интегрирована поддержка сжатия методами LZMA и LZO;
- Сетевая подсистема
- Реализована поддержка механизма GTSM (RFC 5082,
Generalized TTL Security Mechanism), позволяющая производить
легковесные проверки пакетов для выявления DoS-атак на маршрутизаторы,
оперирующих наводненим фиктивными BGP-пакетами. Для подтверждения факта
отправки пакета близлежащим узлом в сети, напрямую присоединенного
BGP-линка, в GTSM используется поле Time to Live (TTL) (IPv4) или Hop
Limit (IPv6).
- Добавлена поддержка RFC 3069 (private VLAN proxy arp);
- Добавлен tap-драйвер macvtap, базирующийся на mac-vlan;
- В nf_conntrack_sip добавлена поддержка TCP и протокола передачи факсов T.38;
- Память и системные сервисы
- Реализована
поддержка выполнения в асинхронном режиме операций для перехода в
спящий режим и возврата из него, что позволяет значительно ускорить
засыпание и просыпание системы за счет параллелизации перевода в спящий
режим PCI, USB и SCSI драйверов;
- Повышена эффективность работы Kprobes, путем
замены где это возможно точек останова на jump-переходы. Kprobes
позволяет при разработке модулей ядра динамически выводить отладочную
информацию без модификации исходных текстов, пересборки и перезапуска
исследуемого объекта;
- Продолжено расширение возможностей отладочной подсистемы Performance Events:
в утилиту "perf" (tools/perf) добавлена команда perf lock для просмотра
статистики блокировок; появилась возможность проведения
кроссплатформенного анализа данных, сохраненных на системе с другой
архитектурой; добавлена команда "perf buildid-cache" для настройки
параметров внутреннего кэша; добавлены средства для написания скриптов
на языке Python для обработки трассировочных данных.
- Добавлена возможность выполнения lockdep-подобных проверок
при использовании механизма синхронизации RCU (Read-copy-update),
позволяющего организовать одновременный доступ к данным без
использования блокировок. Новая возможность позволяет избавиться от
ручных операций при проверке корректности работы RCU;
- Во фреймворк TOMOYO,
позволяющий привязать политику безопасности процесса к файловому пути,
способом похожим с AppArmor, добавлен встроенный сборщик мусора;
- Оборудование и аппаратные архитектуры
- Добавлена возможность смены на лету активного
графического процессора для ноутбуков, снабженных несколькими GPU
(мощный, но энергоемкий, и малопроизводительный с низким потреблением
энергии). Несмотря на то что ядро теперь поддерживает смену GPU на
лету, X-сервер все еще требует перезагрузки.
- В DRM-модуль Radeon (Direct Rendering Manager)
добавлена начальная поддержка карт "Radeon Evergreen" (Radeon HD 5xxx).
Модуль может быть использован совместно с драйвером xf86-video-ati, но пока не поддерживает акселерацию. В модуле Nouveau представлен новый API для взаимодействия с драйвером, работающим на уровне пользователя;
- В состав ядра включен улучшенный драйвер udlfb,
который дает возможность задействовать в Linux видеокарты с интерфейсом
USB и USB2VGA-переходники на базе чипов DisplayLink, позволяющих
подключить дополнительный монитор через USB-порт;
- Добавлена поддержка PATA-контроллера VIA VX900 и чипов VT6415 PCIE;
- Добавлена поддержка сетевых плат: Intel 82599
Virtual Function Ethernet, Chelsio T4 gigabit и 10Gb Ethernet, Qlogic
CNA, Aeroflex Gaisler 10/100/1G Ethernet, Micrel KSZ8841/2 PCI
Ethernet, SMSC LAN75xx USB gigabit Ethernet, Atheros
AR8152/AR8152/AR2427.
- Виртуализация.
- В комплект добавлен
balloon-драйвер, разработанный компанией VMWare и позволяющий
гипервизору виртуализированной гостевой операционной системы
динамически ограничивать объём доступной оперативной памяти. При
возникновении нехватки памяти, когда гипервизор обнаруживает, что ему
нужно перегруппировать страницы в памяти, он инструктирует драйвер для
того, чтобы тот выделил некоторое количество страниц, и физическая
память была возвращена гипервизору. Позднее гипервизор, присоединяя
кадровые страницы к памяти, может вернуть память гостевой ОС и
проинструктировать драйвер, чтобы тот "раздул баллон".
- В состав интегрирован код vhost-net,
акселератора сетевых функций KVM на уровне ядра, позволяющего
оптимизировать производительность сетевых операций в гостевых
окружениях за счет выноса на уровень ядра всех операции по
преобразованию файловых дексрипторов, снижения операций по переключению
контекста и минимизации числа обращений к системным вызовам (при
обработка каждого пакета производится на 4 системных вызова меньше).
Тестирование показало, что использование vhost-net позволяет без
модификации кода гостевых систем увеличить отзывчивость в 5 раз и
довести пропускную способность сети до уровня систем не использующих
виртуализацию.
- Добавлена начальная поддержка эмуляции гипервизора HYPER-V.
Источник
|