Впервые за многие годы действительно сокращено число строк кода ядра, пишет Торстен Леемхейс в своем, как обычно доскональном, обзоре ядра на сайте The H. Несмотря на добавление и объединение новых функций, многие разделы ядра стали компактнее. Это явилось ответом на высказываемую в последние годы новоиспеченным гражданином США Линусом Торвальдсом озабоченность по поводу его разбухания.
AppArmor и VFS
Как и ожидалось, ядро Linux 2.6.36 примечательно главным образом долго откладывавшимся включением в него механизма защиты AppArmor. Этот механизм ограничивает работу приложений, предотвращая атаки с использованием дыр в серверной программе, что позволило бы взломать всю систему.
AppArmor имеет сходство с ОС SELinux, которая уже является частью ядра Linux и поддерживается корпорацией Red Hat, но, как утверждают, проще и легче в использовании. Правда, некоторые считают, что AppArmor не является столь мощной как SELinux, особенно когда речь идет о корпоративных приложениях.
Сначала, четыре года назад, корпорация Novell пыталась включить AppArmor в ядро Linux. Но по разным причинам эта попытка успехом не увенчалась. Затем заботу об AppArmor взяла на себя компания Canonical, выпускающая дистрибутив Ubuntu. Она подготовила новую версию, которая сумела переубедить скептиков.
В Linux 2.6.36 появилась часть «заплаток», обеспечивающих масштабирование виртуальной файловой системы (Virtual File System, VFS), о которых говорил создатель и главный опекун Linux Торвальдс, когда анонсировал версию ядра 2.6.35. Автор VFS Ник Пиггинс пишет, что «заплатки» повышают производительность VFS за счет «параллельного поиска имен с обходом общих элементов без обмена строками кэша». Это, как утверждается, должно «значительно ускорить последовательную обработку» в дополнение к иным способам повышения производительности виртуальных машин.
Ниже перечисляются некоторые другие основные функции ядра Linux 2.6.36, сведения о которых позаимствованы с сайтов Kernelnewbies.org и The H.
- Поддержка продуктов Tilera. Семейство многоядерных MIPS/RISC-систем на кристалле Tile компании Tilera изначально ориентировано на Linux. Linux полностью поддерживается новейшей линейкой Tile-GX с технологической нормой 40 нм. В этой линейке представлены версии с 16, 36, 64 и 100 ядрами. Теперь Linux делает ответный ход, обеспечивая поддержку продуктов Tilera без дополнительных программных средств.
- Intel IPS. Драйвер intelligent power sharing (IPS) поставляется с системами на базе процессоров Intel Core i3/i5 с интегрированной поддержкой графики. Этот драйвер динамически распределяет электропитание между основным и графическим процессорами, что обеспечивает максимальную производительность при заданном тепловыделении (TDP), сообщает сайт Kernelnewbies.org.
- Локальный кэш CIFS. Файловая система CIFS (Common Internet File System) усовершенствована благодаря появлению кэша FS-Cache, позволяющего файловым системам использовать локальную кэш-память. Впервые FS-Cache появился в версии ядра 2.6.30.
- Устранение ошибки виртуальных машин. В версии ядра 2.6.36 исправлена ошибка виртуальных машин, из-за которой отдельные настольные системы переставали откликаться при выполнении таких задач, как запись на очень медленное устройство с интерфейсом USB. «Заплатка» будто бы решает проблему за счет более совершенной эвристики виртуальных машин.
Описанные изменения являются лишь наиболее значительными среди многочисленных дополнений ядра, мер по повышению производительности и обновлений, а также множества новых или расширенных драйверов. Например, как пишет Леемхейс, значительно усовершенствована поддержка средств управления и приемников, использующих инфракрасный порт.
Fanotify откладывается
Системные вызовы Fanotify были отключены, потому что, по словам Торвальдса, «люди все еще испытывали неуверенность по поводу интерфейсов. Лучше дать дискуссии об интерфейсе «повариться» чуть подольше, чем выпустить плохой интерфейс, который нам придется переделывать».
Наконец, как и планировалось ранее, была ограничена роль Big Kernel Lock (BKL) как в инфраструктурном коде, так и в многочисленных драйверах. Леемхейс пишет об этом так: «Это еще на один шаг приближает разработчиков к их цели обеспечить функционирование ядра без использования этого мощного механизма блокировки, который в стандартных системах снижает масштабируемость, а следовательно, производительность системы».