22 Ноября 2024, 13:12

Linux-ядро

Автор Vicpo, 17 Апреля 2008, 21:53

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Zhek@Ch

08 Января 2011, 00:41 #140 Последнее редактирование: 08 Января 2011, 00:41 от Zhek@Ch
[size="3"]Особенности Linux-ядра, созданного для дистрибутива компании Oracle[/size]

Опубликовано интервью с директором по маркетингу открытых продуктов Oracle, касающееся подготовки нового Linux-ядра для дистрибутива Oracle Unbreakable Linux. Напомним, что в конце сентября Oracle заявила о начале поставки для своего Linux-дистрибутива, являющегося клоном RHEL 5, собственной сборки Linux-ядра, специально оптимизированного для выполнения промышленного программного обеспечения и продуктов Oracle.

Из интересных сведений, которые можно почерпнуть из интервью можно отметить:

  • Ядро основано на версии 2.6.32 и включает в себя большое количество оптимизаций и исправлений, подготовленных благодаря совместной работе инженеров и тестировщиков из различных подразделений Oracle, развивающих Linux-дистрибутив, СУБД, промежуточное ПО и аппаратные платформы. Несмотря на то, что Oracle не планирует синхронизировать свои дополнения с каждым новым выпуском основной ветки Linux-ядра, разработчики отслеживают процесс развития основной ветки ядра и скорее всего будут переходить на более новые базисные версии раз в год.
  • Все созданные в рамках проекта Unbreakable Enterprise Kernel разработки являются открытыми и доступны для свободной загрузки через публичный Git-репозиторий. Все изменения подробно документируются в changelog-файле и поставляются в виде индивидуальных патчей (для сравнения, изменения, внесенные компанией Red Hat в модифицированное ядро для RHEL 6, поставляется в виде одного большого патча).
  • Готовые бинарные сборки для совместимых c RHEL 4 и 5 дистрибутивов и src.rpm-пакеты представлены на сайте public-yum.oracle.com. Не накладывается никаких ограничений на поставку подготовленного в Oracle ядра в сторонних продуктах.
  • Ядро оптимизировано для достижения значительного повышения производительности при использовании совместно с продуктами Oracle Exadata Database Machine и Oracle Exalogic Elastic Cloud, но также рекомендуется для использования с любыми другими Linux-приложениями от Oracle и любых других производителей. Большая работа предпринята в направления увеличения производительности, масштабируемости и надежности при выполнении промышленных приложений;
  • Unbreakable Enterprise Kernel гарантирует неизменность ABI-интерфейса и позволяет без опасения менять ядро без опасения нарушения совместимости с уже собранным пользовательским окружением. Новое ядро проверено на совместимость с большинством приложений RHEL 5, для запуска которых не потребуются какие-либо системные изменений. Например, пользователь Oracle Linux может перейти от ядра Unbreakable Enterprise Kernel к ядру, совместимому с дистрибутивами Red Hat, и обратно. Оба ядра покрываются стандартными планами коммерческой поддержки Oracle;
  • По сравнению с ядром из состава RHEL 5, ядро Unbreakable Enterprise Kernel демонстрирует повышение производительности в OLTP-тестах на 75%, а в Infiniband-тестах на 200%. Кроме того, при использовании нового ядра для работы с SSD-накопителями наблюдается ускорение на 137% (справедливости ради стоит отметить, что все сравнения Oracle базируются на оценке ядра из состава RHEL 5, в то время как уже вышел релиз RHEL 6 с существенно обновленным ядром, также базирующемся на ветке 2.6.32);
  • Специальные оптимизации для hi-end серверов и систем, базирующихся на архитектуре NUMA. Улучшение системы управления питанием и контроля эффективности энергопотребления. Более точный контроль потребления ресурсов CPU и памяти;
  • Поддержка расширений по контролю целостности данных (Data Integrity Extensions) и информационной модели T10-защиты (T10 Protection Information Model), что позволяет защитить данные от их повреждения при их записи в хранилище за счет сохранения дополнительных корректирующих блоков. Добавлена поддержка аппаратных платформ по управлению сбоями. Интегрирована подсистема Performance Counter, позволяющая задействовать для выявления узких мест, отладки и профилирования специальных "PERFMON" регистров, доступных в современных CPU (например, Intel Core 2);
Отдельно отмечается активное участие разработчиков Oracle в продвижении новых технологий в основную ветку Linux-ядра и организация работы в тесном сотрудничестве с сообществом. В частности, в основное ядро уже включены многие наработки Oracle, связанные с кластерными технологиями, обеспечением целостности данных, файловыми системами (например, Btrfs), виртуализацией, асинхронным вводом/выводом и тестированием качества. По оценке организации Linux Foundation силами Oracle произведено около 2.3% всех изменений в основном Linux-ядре.

Даже улучшения продвигаемые под эгидой "оптимизировано для Oracle", не являются специфичными и могут оказаться полезными для любых других Linux-дистрибутивов и приложений. Кроме того, в Oracle создана одна из самых больших в мире инфраструктур для тестирования Linux-решений, максимально приближенная к организации работы реальных промышленных систем. Linux уже используется в критических к возникновению сбоев системах компании, что гарантирует продолжение интереса Oracle к развитию Linux.



Zhek@Ch

08 Января 2011, 11:13 #141 Последнее редактирование: 08 Января 2011, 11:13 от Zhek@Ch
[size="3"]Обновление Linux-ядра 2.6.34.8. Набор свежих беспроводных драйверов для старых Linux-ядер[/size]

Представлен корректирующий релиз Linux-ядра 2.6.34.8, относящегося к ветке с длительным сроком поддержки. В новой версии отмечено 260 исправлений из которых 5 связано с устранением уязвимостей. В анонсе подчеркивается обязательность проведения обновления.

Устраненные уязвимости:

  • CVE-2010-3698 - проблемы с перезагрузкой FS и GS регистров в реализации системы виртуализации KVM в ядрах до 2.6.36 позволяли пользователю хост-системы инициировать крах ядра через отправку специально оформленного вызова KVM_RUN ioctl;
  • CVE-2010-2960 - возможность разыменования NULL-указателя или вызова краха ядра через обращение к keyctl со специально оформленным параметром KEYCTL_SESSION_TO_PARENT. Проблема проявляется в ядрах младше 2.6.35.4;
  • CVE-2010-3079 - возможность разыменования NULL-указателя через вызов функции lseek для файлового дескриптора, ассоциированного с файлом ftrace-трассировки, подключенного через set_ftrace_filter. Проблема проявляется в ядрах младше 2.6.35.5 с включенной поддержкой debugfs;
  • CVE-2010-3080 - двойное освобождение памяти в функции snd_seq_oss_open в Linux ядрах младше 2.6.36-rc4 позволяет локальному пользователю инициировать крах ядра и возможно повысить свои привилегии через отправку специально сформированного запроса через /dev/sequencer;
  • CVE-2010-1173 - ошибка в реализации протокола SCTP, позволяет удаленному злоумышленнику инициировать крах системы через отправку специальным образом оформленного SCTPChunkInit-пакета.
Дополнительно можно отметить выход пакета compat-wireless 2.6.37, в котором представлена подборка драйверов для Wifi, Bluetooth и Ethernet адаптеров. Драйверы бэкпортированы из релиза 2.6.37 для старых ядер (начиная с 2.6.25). Пакет ориентирован на пользователей, которым необходима поддержка новых беспроводных карт и сетевых устройств, но которые не желают при этом использовать последние версии основной ветки Linux-ядра.



B@F

18 Января 2011, 14:26 #142 Последнее редактирование: 31 Мая 2011, 02:25 от Zhek@Ch
[size="3"]Интерактивная карта Linux-ядра 2.6.36[/size]

Константин Шулюпин (Constantine Shulyupin) обновил страницу проекта по формированию интерактивной карты Linux-ядра. Представленные на карте данные обновлены до состояния Linux-ядра 2.6.36 и теперь отражают более 400 связей между функциями и структурами ядра, со ссылками на исходные тексты и документацию. При помощи карты, например, можно отследить путь прохождения данных от системного вызова до взаимодействия с оборудованием.

Навигация по карте осуществляется в стиле Google Map, - используя стрелки, для приближения или удаления - колесо мыши. Каждый узел в этом графе, является ссылкой на соответствующую функцию в системе Linux Cross Referenсe. Дополнительно подготовлен макет постера для вывода на печать на листе формата A2 (42 x 59.4 см).

Поправьте, если я ошибаюсь, буду тока рад.

Ramzes

Атака на Linux-системы через запуск кода при вставке USB-накопителя
Джон Лаример (Jon Larimer) из подразделения IBM X-Force продемонстрировал потенциальную подверженность настольных Linux-систем атакам, связанным с распространением вредоносного кода через организацию автоматического выполнения кода после вставки USB-накопителя.

Спецификации freedesktop.org определяют возможность запуска скриптов autorun.sh и .autorun при подключении нового носителя, но обязательно при этом требуют вывода подтверждения данной операции от пользователя, не выполняя никаких действий автоматически. Тем не менее, во время подключения USB-накопителя в системе выполняется множество действий, таких как выполнение кода драйверов, автоматическое монтирование файловых систем и построение эскизов изображений десктоп-приложениями. При наличии уязвимости в любом из этих компонентов, ее можно использовать для организации автоматического выполнения кода.

В качестве примеров, рассмотрено несколько уязвимостей в USB-драйвере, которые можно эксплуатировать для выполнения своего кода, но для этого необходимо как минимум использование специальных программируемых USB-плат (успешность подобной техники не так давно была продемонстрирована на примере взлома приставок Sony PlayStation 3). Намного проще сформировать на обычном USB Flash специальным образом поврежденный образ файловой системы, направленный на эксплуатацию уязвимостей в коде файловых систем (например, в конце 2009 года в ФС ext4 была исправлена подобная уязвимость, которая при попытке монтирования специально скомпонованной ФС могла привести к выполнению кода злоумышленника с привилегиями ядра).

После выполнения монтирования следующим этапом является запуск специфичных десктоп-приложений. Например, в Ubuntu автоматически запускается файловый менеджер GNOME Nautilus, который сразу начинает процесс построения эскизов для присутствующих на подключенном накопителей PDF-файлов, шрифтов, изображений и видео-роликов. Если обнаружение уязвимости в файловых системах и драйверах является единичным явлением, то проблемы безопасности в коде библиотек для обработки изображений и в парсерах PDF находят более-менее регулярно. Последняя уязвимость в libpng и Evince, которые задействованы при формировании эскизов, была найдена 2 недели назад, уязвимость в libtiff была исправлена прошлым летом, последняя уязвимость в FreeFont была исправлена в ноябре.

В конце выступления была продемонстрирована работающая техника организации выполнения кода при вставке USB Flash в систему с Ubuntu 10.10. Для организации выполнения кода использовалась уязвимость в коде приложения Evince, используемого в Nautilus для формирования эскизов для DVI-документов. При этом используемые в Ubuntu методы защиты AppArrmor, ASLR (рандомизация адресного пространства) были намеренно отключены для успешной демонстрации атаки. В то же время докладчик резонно указал на слабую энтропию ASLR и недостатки AppArrmor. В момент вставки накопителя был активен хранитель-экрана, который не повлиял на автоматический запуск Nautilus и эксплуатацию в процессе создания эскизов.

Zhek@Ch

19 Февраля 2011, 10:53 #144 Последнее редактирование: 19 Февраля 2011, 10:54 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.32.29, 2.6.36.4 и 2.6.37.1[/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.32.29, 2.6.36.4 и 2.6.37.1, в которых исправлено 117, 180 и 276 ошибок. В анонсе подчеркивается обязательность проведения обновления без явного указания на причины. Также сообщается, что версия 2.6.36.4 является последней в серии 2.6.36 (рекомендуется провести обновление до поддерживаемых веток 2.6.37, 2.6.27, 2.6.32, 2.6.34 или 2.6.35).


Zhek@Ch

03 Марта 2011, 12:06 #145 Последнее редактирование: 03 Марта 2011, 12:06 от Zhek@Ch
[size="3"]Проект по избавлению Linux-ядра от излишней сетевой буферизации[/size]

Анонсировано создание экспериментального репозитория Linux-ядра - debloat-testing, созданного для реализации идей по избавлению сетевых подсистем от излишней буферизации. Репозиторий создан в рамках проекта BufferBloat.net, изучающего феномен негативного влияния промежуточной буферизации пакетов на пропускную способность, однородность потока (jitter) и время прохождения пакетов (latency). После проверки и стабилизации, обкатанные в ветке debloat-testing патчи будут направлены для включения в состав основного Linux-ядра. Изначально термин Bufferbloat несколько месяцев назад предложил Джим Гетиc (Jim Gettys), член комитета W3C и разработчик спецификации HTTP/1.1, который в цикле статей достаточно подробно описал связь буферизации с проблемами, приводящими к возникновению дополнительных задержек и понижению пропускной способности. Последние годы актуальность проблемы значительно возросла, так как удешевление памяти привело к излишнему пристрастию производителей маршрутизаторов и коммутаторов, а также разработчиков операционных систем к дополнительной буферизации сетевых пакетов. В конечном итоге это выливается в ощутимом снижении эффективности используемых алгоритмов контроля перегрузки (TCP congestion control), в большой степени полагающихся на потери пакетов при расчете доступной пропускной способности.

Буферизация затормаживает отбрасывание пакетов, в то время как алгоритм контроля перегрузки все наращивает и наращивает скорость, используя для обратной связи начало потери пакетов. В результате, так как снижения скорости из-за начала потери пакетов вовремя не происходит, алгоритм не может подобрать нужный баланс скорости потока, соотносящийся со скоростью физического линка. При этом чем больше размер буфера, тем больше становится задержка в доставке пакетов, так как реакция алгоритма контроля перегрузки следует только после заполнения буфера. У современных маршрутизаторов размер буфера исчисляется мегабайтами, т.е. величина задержки в принятии решения о понижении скорости потока может достигать 10 сек и более. Особенно чувствительны к проблемам излишней буферизации интерактивные виды трафика, например игры и VoIP, при этом методы приоритезации (QoS), при которых для определенного вида трафика создается отдельная очередь пакетов, мало помогают решению проблемы.

Представленная ветка debloat-testing является своего рода экспериментальной площадкой для обкатывания механизмов для решения вышеотмеченных проблем - от интеграции новых механизмов контроля перегрузки, до небольших оптимизаций и модификаций текущего кода. В частности, в debloat-testing уже интегрированы планировщики потока пакетов CHOKe (CHOose and Keep) и SFB (Stochastic Fair Blue scheduler), в подсистеме mac80211 реализован алгоритм eBDP для снижения задержек в беспроводных сетях, переработаны методы работы с очередями в драйвере iwlwifi, добавлены исправления в код драйверов e1000, e1000e и ath9k. Дополнительно подготовлен набор патчей для утилиты "tc" из пакета iproute2, в которых реализованы средства для управления планировщиками CHOKe AQM и SFB.


Zhek@Ch

06 Марта 2011, 19:51 #146 Последнее редактирование: 06 Марта 2011, 20:17 от Zhek@Ch
[size="3"]Доступна стабильная версия real-time ветки Linux ядра - 2.6.34-rt [/size]

Анонсирован выпуск стабильной версии модифицированного "Realtime-Preempt" (PREEMPT_RT или "-rt") Linux ядра 2.6.34.8-rt (прошлая стабильная ветка была основана на ядре 2.6.33). Ядро "-rt" с реализацией жёсткого режима реального времени используется в real-time редакциях промышленных Linux-дистрибутивов MontaVista, Red Hat и Novell.

В настоящее время в ветке PREEMPT_RT насчитывается около 500 дополнительных патчей, накладываемых поверх основного Linux-ядра. Между версиями основного ядра 2.6.33 и 2.6.34 было внесено более 10 тысяч коммитов. Т.е. в процессе миграции от базового ядра 2.6.33-rt к версии 2.6.34-rt может возникнуть около 5 миллионов комбинаций, где что-то может пойти не так. Для решения задачи обновления базовой версии RT-ядра был применен интересный подход - 10 тыс. коммитов было разбито на 400 групп, примерно по 25 патчей в каждом. Далее для ветки 2.6.33, проводилось инкрементальное наложение очередной группы патчей с последующим тестированием применимости 500 RT-патчей и разрешением возникающих рассогласований.

Справившись с задачей адаптации RT-патчей для нового ядра и протестировав процесс сборки на разных платформах, осталась нерешенной задача выявления источника логических проблем, например, когда требуется определить из-за чего возник, ранее не проявляющийся сбой в работе ядра. На основании используемых в процессе портирования групп патчей было подготовлено около 400 рабочих контрольных сборок, созданных на разных стадиях применения RT-патчей к ядру. Подобные контрольные сборки могут использоваться для упрощения выявления источника возникновения регрессивных проблем, которые обнаружены в ядре 2.6.34-rt и которые не проявляются в 2.6.33-rt.

Используя тестовую инфраструктуру организации OSADL (Open Source Automation Development Lab), развивающий решения на базе Linux для промышленной встраиваемой техники, разработчики могут последовательно обыграть ситуацию возникновения проблемы для всей цепочки контрольных сборок и выявить позицию в которой начала проявляться проблема. Кроме того, сборки были протестированы на широком спектре различных аппаратных платформ (x86, x86-64, ppc, arm) в приближенных к реальным условиях, что позволило выявить многие ошибки и регрессивные изменения на ранней стадии.

Дополнительно можно отметить продолжение работы по интеграции RT-патчей в основную ветку ядра. От версии к версии число RT-патчей уменьшается. Работа по интеграции всех наработок проекта PREEMPT_RT в основное ядро при удачном стечении обстоятельств может быть завершена уже в конце этого или начале следующего года. Используя вышеописанный метод инкрементального слияния патчей, на переход от версии 2.6.33 к 2.6.34 потребовалось около двух месяцев. Таким образом, для доведения RT-патчей до поддержки ядра 2.6.38 остается обеспечить подготовку четырех промежуточных выпусков, что при сохранении темпа работы потребует 8 месяцев.


Zhek@Ch

15 Марта 2011, 10:39 #147 Последнее редактирование: 15 Марта 2011, 10:42 от Zhek@Ch
[size="3"]17 лет со дня релиза Linux 1.0[/size]
 
13 марта 1994 года Линус Торвальдс обнародовал исходные коды ядра Linux версии 1.0. 176 250 строк кода были выложены на публичный FTP-сервер.

>>> Подробности


Zhek@Ch

16 Марта 2011, 01:10 #148 Последнее редактирование: 16 Марта 2011, 01:11 от Zhek@Ch
[size="3"]Релиз Linux-ядра 2.6.38 [/size]

Линус Торвальдс анонсировал релиз Linux-ядра 2.6.38, в который вошли наработки по увеличению интерактивности выполнения десктоп-задач, значительно повышена масштабируемость VFS, в Btrfs обеспечена поддержка LZO-сжатия и создания доступных только на чтение снапшотов, интегрированы HugePage-патчи, добавлена поддержка процессоров AMD Fusion, добавлены новые драйверы и обеспечена поддержка mesh-протокола B.A.T.M.A.N.

В новую версию принято 10413 исправлений от 1349 разработчиков, размер патча - 49 Мб (добавлено 9295 тыс. строк кода, удалено - 9159 тыс. строк). Около 38% всех представленных в 2.6.38 изменений связаны с драйверами устройств, примерно 24% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 6% - файловыми системами и 4% c внутренними подсистемами ядра.

Наиболее интересные новшества ядра 2.6.38:

  • Память и системные сервисы
    • В состав ядра интегрирован патч с реализацией идеи автоматической группировки задач для повышения интерактивности на десктопе. Патч специальным образом разбивает выполняемые задачи на группы в привязке к идентификатору сессии, в дальнейшем планировщик задач оперирует данными группами как единым целым. Номер сессии изменяется при выполнении системной функции setsid(), которая, например, вызывается для каждого нового сеанса командной оболочки (тем не менее при запуска десктоп приложений идентификатор сессии не меняется, т.е. если запустить в терминале "make -j 20", влияние на десктоп-приложения будет минимально, но если выполнять какую-то ресурсоёмкую операцию в gimp, интерактивность понизится). Посмотреть распределение сессий можно командой "ps -eo session,pid,cmd". Для активации режима автоматической группировки задач в /proc/sys/kernel/sched_autogroup_enabled необходимо записать 1;
    • В ядро интегрирован патч "Transparent Huge Рages", который реализует технику увеличения базового размера адресуемых страниц памяти (без патча размер страницы составляет всегда 4096 байт, с патчем до 2 или 4 Мб), что приводит к сокращению числа используемых TLB-блоков (Translation Lookaside Buffer) и расширению возможностей по задействованию выделенной, но неиспользуемой памяти, для кэширования системных данных (например, под дисковый кэш). Теоретически реализуемый патчем подход должен привести к увеличению производительности самого ядра и активно использующих память приложений (например, патч эффективен при использовании систем виртуализации и СУБД). Тем не менее, не исключены ситуации, когда патч оказывает негативное влияние. Например, приложение может выделить через функцию mmap большой блок памяти, но записать в него всего 1 байт данных. В этом случае, с патчем будет выделена страница памяти размером 2 Мб, а не 4 Кб как в ситуации без патча. Включение режима производится через файл /sys/kernel/mm/transparent_hugepage/enabled;
    • Добавлена возможность назначать отдельные лимиты на число "грязных" страниц памяти (dirty page) для каждого контроллера памяти cgroup. Интерфейс управления напоминает ранее доступные параметры /proc/sys/vm/dirty_*: memory.dirty_ratio, memory.dirty_limit_in_bytes, memory.dirty_background_ratio, memory.dirty_background_limit_in_bytes;
    • В декомпрессор ядра, initramfs и initrd добавлена поддержка метода сжатия XZ;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Проведена большая работа по увеличению масштабируемости VFS (Virtual File System). Переписан код организации кэшировния элементов директорий (dcache) и механизмов для обеспечения определения файлового пути (path lookup). Новая реализация в полной мере использует ресурсы многоядерных CPU, а также заметно повышает производительность и на одноядерных системах, за счет удаления атомарных операций и использования механизма синхронизации RCU (Read-copy-update), позволяющего организовать одновременный доступ к данным без использования блокировок. В частности, новое ядро ускоряет выполнение "find . -size" в домашней директории Линуса примерно на 35%, однопоточный "git diff" для прокэшированного дерева ядра выполняется на 20% быстрее (при запуске 26 параллельных "git diff" пропускная способность увеличивается в 26 раз), значительно ускоряется выполнение операций, использующих вызов stat();
    • В файловой системе Btrfs реализована поддержка прозрачного сжатия данных на диске методом LZO. По сравнению с ранее поддерживаемым методом zlib скорость операций копирования при использовании LZO возросла в два раза, а скорость разархивирования tar-архива возросла на 25%. Примечательно, что за счет уменьшения операций с диском LZO-режим также обгоняет по скорости выполнение операций режим без использования сжатия. Другим новшеством Btrfs является поддержка создания снапшотов, доступных только для чтения, что может быть использовано для монтирования ФС после сбоя или в ситуации возможного наступления сбоя;
    • В состав ядра интегрирован iSCSI Target фреймворк LIO, отличающийся высокой производительностью, работой в неблокирующем режиме, многопоточной архитектурой, поддержкой SIMD, сответствием стандарту IETF (RFC 3720) и реализацией поддержки SPC-4 PRs и ALUA. Фреймворк не зависит от типа носителя, может обслуживать разделы до 750 Тб, в которые могут входить такие типы накопителей, как SATA, SAS, SCSI, Blu-Ray, DVD, FLASH, USB, ramdisk и т.п. В скором времени LIO вытеснит собой ранее добавленный в ядро фреймворк STGT (сравнение);
    • В dm-crypt обеспечена поддержка масштабирования на системах с многоядерными CPU;
    • В RAID1 (DM mirror), ext3 и XFS добавлена поддержка выполнения операции "discard" для SSD-накопителей. В XFS для работы с кэшем inode задействован механизм синхронизации RCU вместо блокировок;
    • В реализации сетевой файловой системы CIFS добавлена поддержка опции монтирования "strictcache", включающей режим принудительного чтения данных из кэша. Кроме того, добавлена опция монтирования "cruid=" для определения uid владельца credential-кэша;
    • В файловых системах Ext2 и Ext3 ускорено выполнение операций по созданию файлов;
    • В файловой системе Squashfs реализована поддержка сжатия методом XZ, обеспечивающим более высокую степень сжатия по сравнению с ранее используемым zlib, но требующим для работы больше памяти и ресурсов CPU;
  • Сетевая подсистема
    • Реализована поддержка протокола маршрутизации B.A.T.M.A.N. ("Better Approach To Mobile Adhoc Networking), разработанного для mesh-сетей в рамках проекта Open Mesh и позволяющего создавать децентрализованные сети, не требующие наличия маршрутизаторов или точек доступа. Каждый узел в такой сети связан через соседние узлы, т.е. каждый узел участвует в процессе маршрутизации и динамически перенаправляет данные к другим узлам в зависимости от текущих условий связности между элементами сети. В качестве областей применения B.A.T.M.A.N. называется возможность развертывания сетей в случае природных катаклизмов, военных конфликтов или усиления цензуры;
    • Увеличен до 10 mss, используемый по умолчанию, размер входящего TCP-окна;
    • Реализован учитывающий ECN код дефрагментации IPv4 пакетов (RFC3168);
  • Виртуализация и безопасность
    • В код обеспечения работы Xen (Dom0) добавлена поддержка XenBus API и серия бэкенд-драйверов, которые к сожалению добавлены не все, продолжение интеграции бэкенд-драйверов ожидается в версии 2.6.39. Кроме того, в ядро добавлен драйвер gntdev, позволяющий выполнить маппинг областей памяти из другого Xen-домена, что обычно используется в работе бэкенд-драйверов, работающих на уровне пользователя;
    • В lguest добавлена поддержка опций "--username" и "--chroot" для сброса привилегий и выполнения перехода в chroot;
    • Расширение возможностей системы мандатного контроля доступа SMACK (включена в ядро начиная с 2.6.25 и базируется на привязке меток к задачам и блокам данных (файлы, IPC, сетевые пакеты и т.д.) на уровне ядра): решены проблемы с UNIX domain socket, добавлена поддержка атрибутов SMACK64TRANSMUTE и SMACK64EXEC, добавлена поддержка двух новых типов ключей: доверительных и шифрованных, отличающихся методом их создания;
    • Представлен программный интерфейс для доступа к Crypto API ядра с уровня пользователя;
  • Оборудование и аппаратные архитектуры
    • Добавлена поддержка процессорной архитектуры AMD Fusion, отличающейся интеграцией на одном кристалле CPU и GPU;
    • Интегрированы новые версии DRM-модулей для для видеокарт Intel (2.14.0: улучшена поддержка Intel Sandy Bridge, заметно увеличена производительность), NVIDIA (Nouveau: поддержка переключения видеорежимов на уровне ядра для карт "Fermi") и AMD/ATI (Radeon 6.14.0: поддержка 2D-акселерации EXA и акселерации проигрывания видео Xv (X-Video) для карт семейства AMD Ontario Fusion и Northern Islands/Radeon HD 6000. Для всех карт ATI Radeon через KMS-модуль обеспечена поддержка метода Page Flipping);
    • Добавлен экспериментальный драйвер rtl8192ce для поддержки 802.11n чипов Realtek RTL8188CE и RTL8192CE. В драйвере ath9k добавлена поддержка чипа AR9485. Расширена поддержка Broadcom 802.11n чипов в драйвере b43. Добавлена поддержка Ralink RT3370 (USB) и RT3390 (PCI/PCIe).

Zhek@Ch

24 Марта 2011, 17:04 #149 Последнее редактирование: 24 Марта 2011, 17:05 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.32.34, 2.6.37.5 и 2.6.38.1 с устранением уязвимости [/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.32.34, 2.6.37.5 и 2.6.38.1, в которых исправлено 44, 87 и 79 ошибок. В анонсе выхода новых версий подчеркивается обязательность проведения обновления, причины такой рекомендации не сообщаются. Более подробный анализ изменений показал, что в драйвере asihpi, входящем в состав звуковой подсистемы ALSA, устранена локальная уязвимость, позволяющая локальному пользователю, входящему в группу audio, поднять свои привилегии в системе.

Из других подсистем, в которые внесены исправления, можно отметить: bcm5974 (добавлена поддержка MacBook Pro 8), USB, Xen, HID, ext3, SCSI, ath9k, drm/radeon, drm/i915, libata, VFS.


Zhek@Ch

29 Марта 2011, 22:44 #150 Последнее редактирование: 29 Марта 2011, 22:44 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.32.36, 2.6.33.9, 2.6.37.6 и 2.6.38.2 [/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.32.36, 2.6.33.9, 2.6.37.6 и 2.6.38.2, в которых исправлено 23, 35, 55 и 63 ошибки. Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления. Из подсистем, в которых зафиксированы важные исправления, можно отметить: ext4, ext3, NFS, drm/radeon, drm/i915, USB, procfs, ALSA, Xen. Отдельно упоминается, что выпуск 2.6.37.6 является последним в серии 2.6.37.x, пользователям рекомендуется провести обновление до ветки 2.6.38.


Rubik

[size="3"]Доступен первый кандидат в релизы Linux-ядра 2.6.39[/size]

Линус Торвальдс объявил о закрытии окна по приему изменений для будущего релиза Linux-ядра и выпуске тестовой версии 2.6.39-rc1.

Из изменений можно отметить:

  • Интеграция кода ipset, позволяющего повысить эффективность работы пакетного фильтра с большими списками IP-адресов и подсетей. Подробнее о последней версии ipset можно прочитать здесь;
  • Интегрирован новый планировщик потока пакетов CHOKe (CHOose and Keep), разработанный с целью избавления сетевых подсистем от излишней буферизации, приводящей к возникновению дополнительных задержек и понижению пропускной способности.
  • Расширение поддержки оборудования, около 65% всех изменений связаны с драйверами устройств;
  • Начало работы по унификации кода поддержки платформ m68k и m68knommu;
  • Добавлена поддержка новой архитектуры UniCore-32, разработанной в микропроцессорном центре Пекинского университета. Процессоры на базе архитектуры UniCore-32 активно используются в Китае;
  • Реализация новых системных вызовов name_to_handle и open_by_handle, позволяющих пользовательским приложениям сопоставить имя файла с внутренней структурой file_handle или открыть файл, указав его handle. Нововведение может быть полезным для реализации серверов NFS и 9P на пользовательском уровне. Файловая система XFS уже поддерживает подобные механизмы, которые были реализованы через специализированные ioctl-вызовы FS_IOC_PATH_TO_HANDLE и XFS_IOC_OPEN_BY_HANDLE;
  • Реализация таймера CLOCK_BOOTTIME, позволяющего организовать автоматический выход системы из спящего режима в определенное время;
  • Добавление опции, заставляющей обработчики прерываний выполняться в виде нитей (threads);
  • Реализована новая подсистема "media controller", расширяющая возможности V4L2 в плане работы с устройствами аппаратной акселерации обработки мультимедиа-контента;
  • Реализация техники трансцендентного управления памятью ("Transcendent memory"), позволяющей улучшить поведение системы при работе с не представляющими важность данными (например кэш) в условиях дефицита оперативной памяти. По сути Transcendent memory напоминает RAM-диск, имеющий ряд особенностей: размер RAM-диска не известен, запись данных не всегда может быть гарантирована и уже записанные данные могут быть очищены (удалены);
  • Улучшения DRM/KMS-модулей: Поддержка метода Page Flipping и Z-сжатия (Z-compression) для видеодрайвера Nouveau. Реализация в DRM/KMS-драйвере Radeon поддержки карт Radeon HD 6900 "Cayman", а также поддержка тайлинга (tiling, процесс обработки изображения по частям с последующей раздельной обработкой фрагментов) для карт r6xx/r7xx. Включение в состав ядра прототипа драйвера для карт Intel GMA 500 Poulsbo, который пока не поддерживает функции акселерации. Добавление DRM-модуля для видеокарт с интерфейсом USB и USB2VGA-переходников на базе чипов DisplayLink, позволяющих подключить дополнительный монитор через USB-порт; В DRM-драйвер для Xen Dom0 добавлена поддержка менеджера памяти TTM (Translation Table Maps);
  • Интегрированы недостающие сетевые бэкенды (xen-netback), необходимые для работы Xen Dom0;
  • Последний компонент ядра избавлен от использования глобальной блокировки (Big Kernel Lock, BKL).

Rubik

[size="3"]Проект по разработке для Linux-ядра отдельного пользовательского KVM-инструментария[/size]

В списке рассылки разработчиков Linux-ядра представлен новый инструментарий для обеспечения работы с системой виртуализации KVM - Native Linux KVM tool. Главной целью инициативы было желание объединить в один проект разработку частей KVM, работающих на уровне ядра и на уровне пользователя. Для решения задачи был создан прототип упрощенного инструмента для запуска гостевых виртуальных окружений под управлением KVM, который мог бы поставляться вместе с Linux-ядром, развиваясь независимого от проекта QEMU.

До сих пор для управления KVM использовался пакет qemu-kvm. Создание родной для Linux-ядра kvm-утилиты позволит синхронизировать разработку частей KVM, работающих на уровне ядра и пользовательских инструментов, а также обеспечить возможность работы KVM без установки дополнительных компонентов. В Native Linux KVM tool гарантируется, что утилита всегда будет совместима с ABI KVM текущего ядра, так как код утилиты будет развиваться в одном репозитории и неразрывно от KVM (в случае qemu-kvm, при смене ABI KVM нужно ждать пока под изменение адаптируют сторонний проект qemu-kvm).

В настоящий момент инструментарий находится в состоянии раннего прототипа, не зависит от BIOS и поддерживает только минимальный набор эмулируемых устройств (нет поддержки сетевых устройств и графики). Код утилиты состоит из всего 5 тысяч строк. Утилита уже может загружать произвольный образ Linux-системы в консольном режиме.

Zhek@Ch

06 Апреля 2011, 00:13 #153 Последнее редактирование: 06 Апреля 2011, 00:13 от Zhek@Ch
[size="3"]Вышел патч c реализацией файловой системы Reiser4 для Linux-ядра 2.6.38 [/size]
 
Доступен для загрузки патч с реализацией файловой системы Reiser4, адаптированный для работы с Linux-ядром 2.6.38. В новой версии патча устранена ошибка с загрузкой битовых карт по необходимости (опция монтирования "dont_load_bitmap"), проведена чистка данных журнала, чтобы он не вводил в заблуждение другие журналируемые ФС.


Zhek@Ch

20 Апреля 2011, 01:55 #154 Последнее редактирование: 20 Апреля 2011, 01:55 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.38.3, 2.6.33.10, 2.6.32.37 с устранением уязвимостей [/size]

Представлен корректирующий релиз Linux-ядра 2.6.38.3 в котором исправлено 104 ошибки. Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления. Дополнительно можно отметить, что уже сформированы, но еще не доступны для загрузки обновления 2.6.33.10 и 2.6.32.37, так как они проходят предварительную проверку.

В представленном обновлении устранено несколько уязвимостей:

  • Возможность вызова краха ядра через использование вызова mremap();
  • Двойная очистка одной и той же области памяти в реализации системного вызова "inotify_init1()" может быть использована для инициирования краха ядра;
  • Ошибка в реализации рассеянного режима записи (sparse write) в файловой системе OCFS2 может привести к получению доступа локального пользователя к содержимому файлов, записанных на предыдущем этапе;
  • Потенциальное переполнение буфера в коде драйвера wl12xx;
  • Переполнение кучи в реализации протокола ROSE;
  • Переполнение кучи через задание некорректного имени irda-устройства;
  • Выход за границы буфера при вызове функции midi_synth_load_patch из состава sound/oss.
Из подсистем, в которых исправлены не связанные с безопасностью ошибки, можно отметить: NFS, ext4, Btrfs, Squashfs, nilfs2, xfs, netfilter, Bluetooth, b43, iwlwifi, quota, UBIFS, mac80211, ath9k, perf, inotify, drm/radeon, ALSA, ASoC, usbip, crypto, eCryptfs.


Zhek@Ch

23 Апреля 2011, 02:10 #155 Последнее редактирование: 23 Апреля 2011, 02:10 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.38.4, 2.6.32.39, 2.6.33.12. 4 уязвимости в ядре[/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.38.4 (72 исправления), 2.6.32.39 (28 исправлений), 2.6.33.12 (26 исправлений). Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления.

Из подсистем, в которых зафиксированы важные исправления, следует упомянуть: USB, Bluetooth, radeon kms, vfs, UBIFS, ramfs, vlan, pppoe, l2tp, ALSA, cifs. Отдельно можно отметить устранение незначительной уязвимости в реализации функции "next_pidmap()", которая может привести к инициированию краха ядра через обращение к системному вызову "getdents()" с определенным набором параметров.

Еще три уязвимости пока исправлены только в Git-репозитории:

  • Возможность разыменования NULL-указателя в функции "bcm_release()". Сама по себе ошибка не является опасной и может привести к DoS-атаке, но в сочетании с другими уязвимостями возможны более серьезные последствия;
  • Целочисленное переполнение в функциях "agp_generic_insert_memory()" и "agp_generic_remove_memory()" теоретически можно использовать для организации переполнения буфера и повышения своих привилегий в системе через отправку специально оформленных AGPIOC_BIND и AGPIOC_UNBIND IOCTL. Для успешной эксплуатации пользователь должен иметь доступ к устройству "/dev/agpgart" (например, входить в группу "video");
  • Ошибка в реализации IOCTL-вызовов AGPIOC_RESERVE и AGPIOC_ALLOCATE может быть использована для исчерпания всей доступной памяти.

Zhek@Ch

03 Мая 2011, 23:50 #156 Последнее редактирование: 03 Мая 2011, 23:50 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.38.5, 2.6.35.13 и 2.6.27.59 [/size]
 
Представлены очередные корректирующие релизы Linux-ядра: 2.6.38.5 (55 исправлений), 2.6.35.13 (109 исправлений) и 2.6.27.59 (170 исправлений). Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления.

Из подсистем, в которых зафиксированы важные исправления, следует упомянуть: iwl3945, iwlwifi, ath9k, NFS, VFS, virtio, ACPI, UBIFS, libata, ahci, ALSA, drm/i915, drm/radeon, drm/nouveau, intel-iommu. Отдельно можно отметить, что исправленная в новых выпусках ошибка в реализации IOCTL-вызовов AGPIOC_RESERVE и AGPIOC_ALLOCATE могла быть использована локальными пользователями (доступ к данным IOCTL обычно доступен для пользователей, входящих в группу "video") для совершения DoS-атаки через исчерпание всей доступной памяти или для повышения привилегий в системе.


Zhek@Ch

07 Мая 2011, 23:49 #157 Последнее редактирование: 07 Мая 2011, 23:50 от Zhek@Ch
[size="3"]Проект KGPU позволяет задействовать GPU для выполнения фрагментов кода ядра Linux [/size]

Исследователи из университета Юты представили проект KGPU, в рамках которого разработан способ перенести исполнение частей кода ядра Linux на графический процессор, поддерживающий технологию NVIDIA CUDA. Код KGPU распространяется в рамках лицензии GPLv2.

Фреймворк CUDA использует закрытые драйверы NVIDIA, функции которых могут быть вызваны только из пространства пользователя с использованием фирменного SDK, поэтому в KGPU использован метод вызова функций ядра через программу, работающую в пространстве пользователя. Эта программа принимает запросы на обработку данных от модуля ядра и, с помощью CUDA API, передает их программе NSK, работающей на GPU.

NSK или Non-Stop Kernel представляет собой код, исполняемый на GPU и способный загружать дополнительные модули (сервисы в терминологии KGPU), каждый из которых может выполнять определенный вид работы по обработке данных. NSK принимает запросы, загружает сервис (для повышения производительности он может быть загружен заранее) и отдает ему данные, ожидая результатов исполнения, которые затем будут переданы обратно по цепочке модулю ядра. Для передачи данных между компонентами системы используется коммуникационный протокол, реализованный с помощью быстрой pinned-памяти, выделяемой драйвером CUDA.


Такая архитектура позволяет перенести фрагменты кода ядра на графический процессор просто переписав их в виде NSK-сервисов. В подтверждение авторы KGPU создали реализацию алгоритма AES, которая позволила поднять скорость шифрования файловой системы eCryptfs в 6 раз.


В будущем планируется реализовать поддержку режима шифрования CTR, вместо уязвимого ECB, используемого сейчас, поддержку алгоритмов шифрования Blowfish/Twofish, а также добавить поддержку KGPU в подсистему dm-crypt.


Zhek@Ch

10 Мая 2011, 22:14 #158 Последнее редактирование: 10 Мая 2011, 22:14 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.38.6, 2.6.33.13, 2.6.32.40. Измерение производительности ядер с 2.6.24 по 2.6.39rc[/size]


Представлены очередные корректирующие релизы Linux-ядра: 2.6.38.6 (44 исправления), 2.6.33.13 (47 исправлений) и 2.6.32.40 (147 исправлений). Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления.

Из подсистем, в которых отмечены исправления, можно выделить: SCSI, KVM, drm/radeon, mac80211, ath9k, iwlwifi, v4l, USB, UBIFS, ALSA. Как минимум две из исправленных ошибок связаны с устранением уязвимостей: повышение привилегий через переполнение кучи из-за ошибки в реализации интерфейса /dev/mpt2ctl; возможность переполнения кучи через отправку устройству pmcraid специально оформленного ioctl (отправка данного запроса возможна только для пользователей с правами CAP_SYS_ADMIN, что значительно снижает риск, связанный с данной уязвимостью).

Дополнительно, можно отметить проведение ресурсом Phoronix тестирования производительности системы при использовании различных версий ядра Linux. Если рассматривать показатели последней тестовой версии ядра 2.6.39, то производительность данной версии в основном не отличается от выпусков 2.6.37 и 2.6.38, за исключением результатов тестов FS-Mark, PostMark и Apache, в которых заметно небольшое падение производительности.


Zhek@Ch

20 Мая 2011, 01:48 #159 Последнее редактирование: 20 Мая 2011, 01:49 от Zhek@Ch
[size="3"]Релиз Linux-ядра 2.6.39 [/size]

Линус Торвальдс анонсировал релиз Linux-ядра 2.6.39, в состав которого включен код ipset, добавлен планировщик потока пакетов CHOKe, обеспечена поддержка архитектуры UniCore-32, добавлена новая подсистема "media controller", интегрированы сетевые бэкенды Xen ("netback"). Нынешний релиз был выпущен с трудом, Линус намеревался выпустить еще одну тестовую версию (rc8) для окончательной проверки всех внесенных после выпуска rc7 изменений, которых оказалось достаточно много. Так как Линус должен посетить конференцию LinuxCon в Японии, выпуск еще одной тестовой версии означал бы срыв всех планов и перенос релиза как минимум на три недели, поэтому посоветовавшись разработчики приняли решение выпустить релиз как есть с учетом того, что последние тестовые выпуски зарекомендовали себя, как достаточно стабильные.

В новую версию принято 11055 исправлений от 1405 разработчиков, размер патча - 56 Мб (добавлено 11014 тыс. строк кода, удалено - 10979 тыс. строк). Около 39% всех представленных в 2.6.39 изменений связаны с драйверами устройств, примерно 26% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% - файловыми системами и 6% c внутренними подсистемами ядра.

Наиболее интересные новшества ядра 2.6.39:

  • Сетевая подсистема
    • Интеграция кода ipset, позволяющего повысить эффективность работы пакетного фильтра с большими списками IP-адресов и подсетей. Подробнее о последней версии ipset можно прочитать здесь;
    • Интегрирован новый планировщик потока пакетов CHOKe (CHOose and Keep), разработанный с целью избавления сетевых подсистем от излишней буферизации, приводящей к возникновению дополнительных задержек и понижению пропускной способности.
    • В соответствии современными реалиями и рекомендациями RFC 3390 до 10 сегментов увеличен начальный размер скользящего окна TCP, что позволит примерно на 10% повысить отзывчивость при выполнении таких операций, как открытие пользователем web-сайтов;
    • Добавлена новая дисциплина планирования приоритетов, манипулирующая сразу несколькими очередями пакетов и поддерживающая вынос управления QoS на плечи сетевых адаптеров, поддерживающих данный вид акселерации;
  • Память и системные сервисы
    • Реализация техники трансцендентного управления памятью ("Transcendent memory"), позволяющей улучшить поведение системы при работе с не представляющими важность данными (например кэш) в условиях дефицита оперативной памяти. По сути Transcendent memory напоминает RAM-диск, имеющий ряд особенностей: размер RAM-диска не известен, запись данных не всегда может быть гарантирована и уже записанные данные могут быть очищены (удалены);
    • Реализация таймера CLOCK_BOOTTIME, позволяющего организовать автоматический выход системы из спящего режима в определенное время;
    • Добавление опции, заставляющей обработчики прерываний выполняться в виде нитей (threads);
    • Реализована новая подсистема "media controller", расширяющая возможности V4L2 в плане работы с устройствами аппаратной акселерации обработки мультимедиа-контента;
    • Последний компонент ядра избавлен от использования глобальной блокировки (Big Kernel Lock, BKL).
    • Специальные привилегированные процессы теперь могут записывать данные в /proc/pid/mem других процессов;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Реализация новых системных вызовов name_to_handle и open_by_handle, позволяющих пользовательским приложениям сопоставить имя файла с внутренней структурой file_handle или открыть файл, указав его handle. Нововведение может быть полезным для реализации серверов NFS и 9P на пользовательском уровне. Файловая система XFS уже поддерживает подобные механизмы, которые были реализованы через специализированные ioctl-вызовы FS_IOC_PATH_TO_HANDLE и XFS_IOC_OPEN_BY_HANDLE;
    • Добавлен новый системный вызов syncfs(int fd), который работает как sync() за исключением того, что сброс буферов на постоянный носитель осуществляется только для файловой системы, отождествленной с указанным файловым дескриптором;
    • Добавлена специализированная псевдо-файловая система "pstore", предназначенная для организации доступа к присутствующим на некоторых платформах хранилищам, позволяющим сохранить отладочную информацию о причине краха между перезагрузками;
    • Добавлено специальное блочное устройство "mtdswap", позволяющее осуществлять своппинг напрямую в MTD-устройства (Memory Technology Devices), оперирующие с Flash-памятью;
    • Проведена работа по повышению масштабируемости и производительности файловой системы Ext4 и подсистемы работы с блочными устройствами. Ext4 теперь по умолчанию монтируется с опцией mblk_io_submit, задействуя механизм Multiple Page-IO Submissions. Код по поддержке Multiple Page-IO Submission был добавлен ещё в 37 ветке, но содержал серьёзную ошибку, приводящую в определённых случаях к потере данных, и поэтому был отключён по умолчанию (сейчас данная ошибка исправлена). Также значительно обновлена документация по Ext4, добавлены разъяснения новых опций и обзор файлов в Procfs и Sysfs, создаваемых ФС;
    • В файловой системе Btrfs реализована функция Batched Discard, позволяющая информировать SSD-накопители о неиспользуемых областях;
  • Виртуализация и безопасность
    • Интегрированы недостающие сетевые бэкенды (xen-netback), необходимые для работы Xen Dom0;
    • В DRM-драйвер для Xen Dom0 добавлена поддержка менеджера памяти TTM (Translation Table Maps);
    • В реализацию IPSec добавлена поддержка расширенных номеров последовательностей, определенных в RFC-4304;
    • Начальная поддержка Linux capabilities в изолированных контейнерах "user namespace", что позволяет делегировать расширенные права (например, root-доступ) группе процессов, отождествленных с контейнером, которые могут быть использованы только внутри этой группы и не могут влиять на другие части системы. User namespace является своеобразной легковесной техникой виртуализации, при которой некоторые процессы могут быть отрезаны от остальной системы, работая в отдельном пространстве имен (необходимые для работы таких процессов ресурсы виртуально пробрасываются в контейнер);
    • В KVM обеспечена поддержка асинхронной обработки обращения к невыделенным страницам памяти (page faults), что дает возможность выполнения в гостевой системе не связанной с выделением памяти нити во время выделения хост-системой запрошенных страниц памяти;
  • Оборудование и аппаратные архитектуры
    • Добавлена поддержка новой архитектуры UniCore-32, разработанной в микропроцессорном центре Пекинского университета. Процессоры на базе архитектуры UniCore-32 активно используются в Китае;
    • Улучшения DRM/KMS-модулей:
      • Поддержка метода Page Flipping и Z-сжатия (Z-compression) для видеодрайвера Nouveau.
      • Реализацияв DRM/KMS-драйвере Radeon поддержки карт Radeon HD 6900 "Cayman", а также поддержка тайлинга (tiling, процесс обработки изображения по частям с последующей раздельной обработкой фрагментов) для карт r6xx/r7xx.
      • Включение в состав ядра прототипа драйвера для карт Intel GMA 500 Poulsbo, который пока не поддерживает функции акселерации.
      • Добавление DRM-модуля для видеокарт с интерфейсом USB и USB2VGA-переходников на базе чипов DisplayLink, позволяющих подключить дополнительный монитор через USB-порт;
    • Начало работы по унификации кода поддержки платформ m68k и m68knommu;
    • Расширение поддержки оборудования, большинство изменений в ядре связаны с драйверами устройств:
      • Cистемы: VIA/WonderMedia VT8500/WM85xx SoC, платы IMX27 IPCAM и смартбуки MX51 Genesi Efika, платы CompuLab, сенсоры платформы Intel Medfield и WMI-интерфейс ноутбуков Asus;
      • Контроллеры блочных устройств: ARASAN CompactFlash PATA, Broadcom NetXtreme II FCoE и Freescale MXS Multimedia Card, кард-ридеры RealTek PCI-E;
      • Сетевые адаптеры: WiFi чипы Realtek RTL8192CU и RTL8188CU, Blouetooth-контроллер Texas Instruments WiLink7, Bosch C_CAN, Faraday FTMAC100 10/100 Ethernet;
      • USB-контроллеры: Faraday FUSB300, OMAP USBHS host, NVIDIA Tegra USB host, Diolan U2C-12 USB;
      • Звуковые карты, подключаемые через Firewire. Кодеки: Wolfson Micro WM8991, Cirrus CS4271, Freescale SGTL5000, TI tlv320aic32x4, Maxim MAX9850. USB-карты TerraTec 6fire DMX.
      • Video4Linux: ресиверы Technisat USB2.0 DVB-S/S2, сенсоры камер Silicionfile NOON010PC30 CIF, тюнеры DiBcom 9000, камеры 3com homeconnect "ViCam", демодуляторы ST Microelectronics STV0367, контроллеры камер на базе OMAP3 и Divio NW80x, инфракрасные приемники ITE Tech IT8712/IT8512;
    • Улучшена поддержка процессоров Intel на базе архитектуры "SandyBridge";
    • В USB-подсистему добавлена поддержка хабов USB 3.0;