Новое ядро предлагает гибридную резервную функцию, может отрезать питания для «PCI» микросхем и включает в себя новую платформу для пользовательских драйверов. Другие новые функции включают в себя усовершенствования системы безопасности для временного каталога, а также квоты и резервное копирование для «Btrfs».
Линусу Торвальдсу и его товарищам разработчикам потребовалось десять недель, чтобы завершить теперь уже выпущенную версию «Linux 3.6». Новая версия, названная «Terrified Chipmunk», предлагает целый ряд новых возможностей, как для домашних пользователей, так и для профессиональных системных администраторов.
Управление энергопотреблением
Новая функция «Suspend to Both» снабжает «Linux 3,6» гибридным резервным потенциалом. «Mac OS X» и «Windows», предлагали такую функцию в течение некоторого времени. Данная функция позволяет компьютеру во время спящего режима хранить данные, как в оперативной памяти, так и на системном диске. Таким образом, система, которая находится в спящем режиме, как правило, просыпается в течение нескольких секунд, как будто пробуждается от «Suspend-To-RAM» (ACPI S3), однако, если во время спящего режима пропало питание (села батарея), то система восстановит данные оперативной памяти с жёсткого диска, как и после «Suspend-to-Disk» (Hibernate). В нашем коротком тесте с более старенькой системой и жёстким диском ёмкостью в 250 ГБ, «Suspend-to-Both» работал как и предполагалось. Он требовал около 16-ти секунд, чтобы уйти в спящий режим — в четыре раза дольше, чем с «Suspend-To-RAM» и также долго, как это требуется для «Suspend-To-Disk».
Ядро «Linux» версии 3.6 может отправлять «PCIe» устройства в «D3cold» состояние глубокого сна, это поддерживается некоторыми современными компьютерами, чтобы полностью выключить отдельные устройства «PCIe».
Файловые системы
Всё ещё экспериментальная файловая система «Btrfs» теперь поддерживает квоты для отдельных областей внутри файловой системы. Ещё одна новая функция в «Btrfs» — это «send / receive». Она позволяет пользовательским программам определять разницу между двумя снапшотами (снимок файловой системы), сохранить эти различия в файл и восстанавливать резервные копии по мере необходимости. Данная функция особенно полезна для инкрементных, атомарных резервных копий. Более подробное описание этой функции, которая также доступна на «ZFS», можно найти в статье LWN.net.
Одна из новых функций, реализованных в «Linux 3.6», основана на идее 1996-го года — ядро теперь может быть настроено, чтобы не следовать жёсткими и символьными ссылками в каталогах с набором «липкого» бита (таких, /tmp/), если эти ссылки указывают на папки, находящиеся выше по дереву каталогов. Как объясняет LWN.net, эта функция, которая может быть активирована через «Sysctl», положила конец общему приёму, который использовали злоумышленники для эскалации привилегий с помощью фоновых служб запущенных с правами администратора.
Хранение
Новый интерфейс позволяет пользовательским программам уведомить ядро, когда изменяется размер раздела, которые они используют, тем самым позволяя ядру узнавать об изменениях в размере смонтированных или других разделов во время выполнения и действовать соответственно. Программа resizepart, которая использует новый интерфейс, была включена в недавно выпущенном втором предварительном релизе версии «Util-Linux 2.22-rc2».
Изменения в коде программного обеспечения «RAID» в «MD» подсистеме должны улучшить производительность «RAID» массивов, в которых одно или все устройства хранения — «SSD». Разработчики ядра объединили структурный драйвер «tcm_vhost», который классифицируется как постановка, но не проживает в постановке дерева ядра. Это позволяет «SCSI» устройствам на хост-системе использоваться с минимальными издержками для виртуальных систем «KVM».
Виртуализация
«KVM» теперь включает в себя различные модификации, которые снижают нагрузку на обработку прерываний и следовательно, повышают производительность. Ещё одно дополнение к ядру — «IOMMU Groups», которое улучшает изоляцию «PCI» и «PCIe» устройств, используя технологии виртуализации ввода/вывода, такие как «AMD-Vi» и «Intel VT-d». Функция «IOMMU Groups» также является основой для «VFIO» (виртуальной функции ввода/вывода — I / O). Предназначенная в основном для «KVM», эта функция разработана, чтобы гости могли получить доступ к «PCI» и «PCIe» устройствам при низкой задержке, высоких уровнях пропускной способности и без всякого риска для хоста. Подробная информация о «VFIO» доступна в документации и описана в статье LWN.net. Расширения, обеспечивающие «VFIO» через «QEMU» всё ещё находятся в стадии разработки.
Сети
По умолчанию «TCP Small Queues» (TSQ) позволяет «Linux 3.6» использовать маленькие буферы не более 128 Кб на сетевой сокет. Как и другие различные недавние изменения ядра, эта мера предназначена, чтобы избежать «Bufferbloat» (излишняя сетевая буферизация) — термин, используемый при таких проблемах, как высокие сетевые задержки и нарушение соединения, вызванное излишней буферизацией при передаче данных. По результатам испытаний, буферы меньшего размера на сокет не влияют на пропускную способность. При необходимости администраторы могут использовать файл «/proc/sys/net/ipv4/tcp_limit_output_bytes», чтобы настроить значение во время выполнения.
Теперь ядро включает клиентскую поддержку «TCP Fast Open» (TFO); появление серверной поддержки планируется в «Linux 3.7». «TFO», является экспериментальным расширением «TCP», но ещё не было утверждено «Internet Assigned Numbers Authority» (IANA). Оно предназначено для снижения накладных расходов при установлении соединения, которое должно ускорить HTTP-соединения.
Драйвера
Разработчики ядра объединили ряд дополнений и исправили ошибку в «Linux 3,6», направленную на улучшение поддержки «Apple» — макбуки выпущенные в июле месяце (такие, как «MacBook Pro Retina»). Но всё же, ещё не все дополнения, необходимые для новых «MacBook» нашли своё место в «Linux 3.6». Кроме того, на некоторых моделях эта версия всё ещё доставляет проблемы во время инициализации или при использовании графического оборудования.
Графический драйвер «Radeon» теперь активирует самый быстрый «PCIe 2.0» режим передачи, где он поддерживается аппаратными средствами. Аудио драйверы теперь поддерживают процессоры «Intel Haswell» и связанные с ними «Lynx Point» центральные контроллеры (PCH), которые компания «Intel» планирует выпустить уже в следующем году. Драйвер для клавиатуры «Lenovo’s ThinkPad USB» с трекпоинтом были объединены в подсистему ввода.
Драйвер «bnx2x», обрабатывающий различные микросхемы «Ethernet» от «Broadcom», теперь поддерживает «Energy-Efficient Ethernet» (EEE) стандарт, который определён в «IEEE 802.3az». Теперь пользователи могут считывать или установить «EEE» параметры с помощью недавно выпущенного «Ethtool 3,5».
Подводим итог
«Btrfs» сделала ещё один шаг вперёд, а «Linux», наконец, предлагает надлежащую поддержку гибридных ожиданий. Некоторые системные администраторы будут рады новым интерфейсам для утилиты «resizepart», потому что они позволяют изменить существующие разделы без необходимости перезагрузки системы. Улучшения в защите, касающиеся мягких и жёстких ссылок, наконец то, пофиксили множество уязвимых мест.
Непосредственно после выхода «Linux 3.6», как правило, снова начинается цикл разработки ядра «Linux», в ходе которого разработчики ядра добавляют множество изменений для следующей версии ядра в основную ветку развития. В настоящее время уже подготовлены многочисленные изменения для первой фазы следующего релиза.
Среди компонентов готовых к интеграции находится графический драйвер «Intel», который обновляет код для установки экранных режимов. Также, разработчики производят «капитальный ремонт» драйвера «Nouveau». В настоящее время пока не ясно, будет ли он интегрирован в «Linux 3.7», или же нет. То же самое относится и к «Aarch64» — 64-разрядная «ARM» архитектура. Не так давно на LWN.net была опубликована статья, которая предоставляет обзор о состоянии развития этого проекта.
Как обычно, «Kernel Log» будет суммировать эти и другие события в поле ядра «Linux» — включая новые стабильные версии ядра (3.6.y), в которых в течение ближайших нескольких недель должны быть исправлены несколько ошибок, пропущенные тестерами во время разработки.
Автор: zex2