Глубокий обзор свежеиспеченного Linux 3.6

Новое ядро предлагает гибридную резервную функцию, может отрезать питания для «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), в которых в течение ближайших нескольких недель должны быть исправлены несколько ошибок, пропущенные тестерами во время разработки.
Поделиться публикацией

Похожие публикации

Комментарии 29

    +5
    Почему-то мне кажется, что TCP Fast Open должен быть утверждён IETF, а не IANA.
      –7
      Спасибо. Пишите ещё.
        +19
        Качество перевода неудовлетворительное.
          +4
          Особенно доставило:
          структурный драйвер «tcm_vhost», который классифицируется как постановка, но не проживает в постановке дерева ядра
          +6
          Suspend to Both невероятно удобная штука для лэптопов. Лучше поздно, чем никогда
            +2
            Лучше подожду, когда стабильно все это пахать будет.
              0
              здорово на самом деле — для нетбуков очень нужная фича например.
                0
                А в чём собественно, глубокий смысл?
                У меня при закрытии крышки уходит в спящий режим, а при низком уровне заряда батареи просыпается и делает hibernate. Зачем лишний раз делать hibernate, если я просто с кухни в комнату ноутбук понёс, неся тарелку с едой, и его зажав подмышкой?
                  +3
                  глубокий смысл в другом — вот закрыл крышку, сунул в сумку и пошел. потом поехал. потом полетел. потом еще что. в общем, забыл про него. а аккуму уже год. при низком заряде он проснуться может и не смочь, а если проснётся — доест аккум ваще в ноль. а так, при низком заряде — просто окончательно отключится и всё.
                    +1
                    > Зачем лишний раз делать hibernate,

                    Какая разница, если пользователю это не заметно? С точки зрения пользователя — это банальный sleep, от него ничем не отличается.

                    А в случае, когда аккумулятор садится, как выше уже написали, ноуту просыпаться и не надо будет — он уже в гибернации
                  0
                  А вероятность мержа TuxOnIce в сток ядро всё еще около нуля :(
                    0
                    pf-kernel вполне стабилен, и кроме TuxOnIce в нем есть и другие вкусности:

                    [m] mainline update
                    [m] -ck patchset with BFS
                    [m] BFQ I/O scheduler
                    [m] TuxOnIce
                    [m] UKSM
                      +1
                      стоит он у меня. не особо нравится — mainline всё-таки более поддерживаем…
                    +43
                    Здравствуй, translate.google.com. Добро пожаловать на хабр.
                      0
                      интересно, а в какой версии они займутся темой global process ID
                      и process checkpointing for Inter-host process migration?
                        +11
                        Кавычек «многовато».
                          +3
                          Жуть, а не перевод :(
                            +12
                            «Ооо»«,» «мои» «глаза» «...»
                              +1
                              Новая функция «Suspend to Both»
                              Было в TuxOnIce(он же suspend2) года 3 назад минимум.
                                +6
                                А я думал «поддержка гибридных ожиданий» это такой новый термин
                                  +1
                                  Что-то они зачастили с нумерацией ядер. Как кончилась ветка 2.6, так пошло поехало.
                                    +1
                                    Раньше менялась 3 цифра, а первая и вторая — нет. Зачем две неменяющиеся цифры? Логично решили, что не надо. Сделали 3, а вторая меняется как раньше 3-я. А третья теперь просто фиксы. Это же не мажорную версию меняют.
                                      +2
                                      Хватило бы линка на оригинал.
                                        +12
                                        Постараюсь восстановить равновесие сил добра и зла во вселенной, которое было нарушено этим переводом.
                                        Вот ссылка на оригинал
                                        Автор оригинала — Thorsten Leemhuis.

                                        Линус назвал релиз «испуганный бурундук».

                                        Глубокоуважаемый автор поста! Переводят, как известно, не слова, а их смысл. Например:

                                        «Разработчики ядра объединили структурный драйвер «tcm_vhost», который классифицируется как постановка, но не проживает в постановке дерева ядра. Это позволяет «SCSI» устройствам на хост-системе использоваться с минимальными издержками для виртуальных систем «KVM».»

                                        Тут без оригинала и без знания предмета разговора не разберешься. Оригинал — вот: «The kernel developers merged the fabric driver tcm_vhost, which is classified as staging, but is not living in the staging tree of the kernel. It allows SCSI devices on a host system to be used with minimum overhead by guest systems virtualised using KVM.»
                                        Итак:
                                        Fabric — это не «структурный». Словом «fabric» обозначаются всякие сложные вундервафли, относящиеся к системе хранения данных, «производители» данных, так сказать. В контексте ядра Linux «fabric» — это, конечно же, подсистема LIO-Target, которая отвечает за выдачу данных через всякие устройств типа сетевых карт, FC-адаптеров и т.д. за пределы хоста по SCSI-совместимым протоколам. Эта подсистема занимается, фактически, эмуляцией SCSI-устройств поверх реальных хранилищ данных. Модуль tcm_vhost относится именно к ней.
                                        Staging — это не «постановка», а «перемещаеый». Откуда перемещают исходные коды драйвера? Из другой ветви разработки ядра, конечно. Пока до конца не проверена совместимость такого драйвера с остальными системами ядра, его помечают как «Staging». «Staging tree» — отдельныя ветка в исходных кодах ядра, где «проживают» (вот уж где кавычки уместны!) перемещаемые модули.

                                        «Это позволяет «SCSI» устройствам на хост-системе использоваться с минимальными издержками для виртуальных систем «KVM».» Здесь все переведено правильно, но хотелось бы пояснений. Смысл в том, что устройства, эмулируемые KVM/QEMU, обычно «отдаются» гостевой машине через разделяемую память. Гостевая машина посылает SCSI-команду гостевому драйверу, тот «дергает» виртуальное устройство, запрос через разделяемую память уходит в юзерспейс хоста, в юзерспейсе его обрабатывает QEMU и отдает обратно. А теперь вопрос — зачем гонять запросы туда-сюда, если уже есть LIO-Target, который умеет обрабатывать SCSI-команды быстрее QEMU, потому что работает в режиме ядра? Правильно, незачем. Вот tcm_vhost как раз и занимается передачей запросов от KVM к LIO-Target и обратно.
                                          0
                                          Спасибо огромное за «разжевывание» материала. Так бы все остальные это делали.
                                          0
                                          А никого не насторожила такая деталь:
                                          ядро теперь может быть настроено, чтобы не следовать жёсткими и символьными ссылками в каталогах с набором «липкого» бита (таких, /tmp/), если эти ссылки указывают на папки, находящиеся выше по дереву каталогов

                                          Смысл примерно понятен, и, действительно, «оригинал» говорит то же самое
                                          the kernel can now be configured to not follow hardlinks and softlinks in directories with a set «sticky» bit (such as /tmp/), when those links point somewhere higher up the directory tree

                                          Но все равно — как это можно not folow hardlinks? Оригинал такой оригинальный… Хорошо, что в нем есть ссылка на коммит с подробным комментарием:
                                          The solution is to permit hardlinks to only be created when the user is
                                          already the existing file's owner, or if they already have read/write
                                          access to the existing file.

                                          То есть, теперь жесткую ссылку можно создать, только если есть доступ на чтение/запись к тому файлу, на который создается ссылка. Что, конечно, вполне осмысленная и даже полезная штука. И, естественно, никаких ограничений на следование жестким ссылкам нет и быть не может.
                                            –1
                                            «Terrified Chipmunk» — это вот этот чтоли?

                                            image
                                              +2
                                              Вот такой пушистик. Его, как я понял, поймала кошка Торвальдса

                                              image

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое