Линус Торвальдс представил релиз ядра Linux 4.7

    Линус Торвальдс представил ядро Linux 4.7. Прошло две недели со времени выхода rc7, и финальный патч не так и велик. Его размер — 34 МБ (изменены 9744 файлов, добавлено 493490 строк кода, а удалено 194974 строк). 50% изменений связана с драйверами устройств, 19% — обновление кода поддержки аппаратных архитектур, 15% — с сетевым стеком, 5% изменений коснулись файловых систем и еще 4% — внутренних подсистем ядра.

    Ядро 4.7 поддерживает open-source AMD Polaris (RX 480), новые ARM платформы и платы, контроллер Xbox One Elite Controller, включает несколько улучшений по графике Intel Kabylake. В ядре — 12 тысяч исправлений от 1500+ разработчиков. Есть и вариант свободного ядра 4.7 — Linux-libre 4.7-gnu.

    Железо


    • Добавлена поддержка 500+ новых элементов аппаратного обеспечения. Кроме Microsoft Xbox One Elite Controller добавлены драйвера для беспроводных модулей Intel 9260, Chelsio iSCSI Target Offload Controller. Есть новые кодеки Realteks ALC234, ALC274, ALC294, ALC700, ALC701 и ALC703;
      Наиболее заметным является добавление поддержки GPU Radeon RX480 с архитектурой нового типа Polaris;
      Сейчас ядро поддерживает уже 26300 различных драйверов.


    Сеть


    • Сокращена задержка в работе большого числа пакетов благодаря оптимизации TCP-стека;
      Добавлена возможность создания виртуальный контроллеров USB-девайсов в стек USB/IP. Этот стек обеспечивает доступ к удаленным USB-девайсам по TCP/IP. В системе можно создавать виртуальные устройства;
      Стойкость TCP стека к syn-флуду увеличена. Производительность в условиях флуда увеличена почти вдвое — с 3,2 до 6 млн пакетов в секунду.


    Файловые системы и работа с накопителями


    • В системе кэширования информации появилась возможность одновременного проведения нескольких проверок в одной директории;
      В NFS теперь поддерживается операция COPY;
      sync_file, изначально созданный для Android, теперь перемещен в основное ядро;
      В EXT4 теперь появилась возможность прерывания операции readdir() для пустых директорий, где ранее находилось много файлов.


    Система


    • Появился новый механизм регулирования частоты процессора в cpufreq. Новый механизм schedutil использует информацию от планировщика задач и может работать непосредственно с драйверами cpufreq для изменения частоты процессора, оптимизируя ее в соответствии с текущей нагрузкой;
      Добавлена команда hist в ftrace. Эта команда предоставляет средства для создания гистограмм событий. Информация о наступающих событиях собирается в форме ключ-значение;
      Появилась новая библиотека хэширования (linux/stringhash.h), она лишена проблем, характерных для ранее доступного кода хэширования строк.


    Безопасность и виртуализация


    • Появился новый модуль LoadPin, проверяющий факт загрузки ядром файлов из одной файловой системы. Этот модуль ранее был создан для Chrome OS;
    • В SeLinux появилась возможность ограничения загрузки модулей ядра.

    Более полная информация по обновлению доступна здесь и здесь.
    Поделиться публикацией

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

      +3

      Я правильно понял метрики? 34Mb изменений с момента выхода RC? 3% ядра было переписано и оттестировано за две недели?

        –29
        Ты не веришь в существование людей, которые могут писать код без тестирования? Которым не нужно компилировать квиксорт 10 раз в ide?
          0
          Мне кажется или под «финальный патч» имеется в виду патч с 4.6 до 4.7, а не с 4.7-rc7?
          Соответственно добавлялось и тестировалось всё постепенно во всех предыдущих 4.7-*, а не за две недели.
          К тому же 50% там на драйверах, а много ты там без железа, для которого они предназначаются, не натестируешь.
            0

            И я думаю, что 34Mb — больше похоже на разницу между 4.6 и 4.7, но по тексту новости складывается ощущение, что это изменения 4.7RC — 4.7. Вот и решил уточнить.


            С другой стороны патчи в ядро идут уже оттестированые от сабмэйнтейнеров, что как бы все-равно не отменяет нужды в интеграционном тестировании.

          –27
          В Nvidia есть группа в 1000 человек, который драйвера подгоняют под новые игры. У Линукса так же?
            +7
            Вы путаете «мягкое» с «теплым»…
              –45
              Ты вообще 0 и даже ничего не путаешь.
                +13
                А ты, собственно, кто? Как человек с 4-мя неадекватными комментариями вообще попал на Хабр?
                  +4
                  Наверное, пишет пост о том, как отхабриться с первого комментария, но не может его опубликовать.
              –4
              Ок. И что?
              Линукс — это конструктор.
              Если nvidia захочет — сделает все нужное.
            +1
            >В EXT4 теперь появилась возможность прерывания операции readdir() для пустых директорий, где ранее находилось много файлов.

            Объясните пожалуйста что это значит? Если из директоеии удалить файлы, то ссылки на них остаются в самой директории? Или зачем прерывание для пуской директории нужно? И сколько это «много»? Возможно ли создать много файлов, удалить, создать опять, удалить и т.к. пока пустая директория не займёт всё место?
              +1
              Директории тоже нужно место на диске, чтобы хранить список файлов. Если создать дохрениллион файлов, то и размер директории будет длинным. Для чтения перечня файлов или открытия файла надо пролистать всю директорию, пока файл не будет найден. Возможно, там был баг, который не позволял прервать системный вызов, пока файловая система не найдёт хотя бы один файл. А невозможность прервать системный вызов — это значит процесс, не реагирующий на сигналы, например.
              0
              Помогите понять фразу «Есть и вариант свободного ядра 4.7 — Linux-libre 4.7-gnu. ». Это значит что есть и несвободное ядро?
                +1

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

                  0
                  Ну а эти сами бинарники они проприетарные или свободные?
                    0

                    Проприетарные, конечно. Если в libre версии их выпиливают, то какие же они свободные?)

                0
                я хз почему но на ubuntu 14.04 не взлетело. UI посыпалось к чертям и после исправления ошибок оказалось что система не видит сеть. Откатился обратно.
                  0

                  На 16.10 с первых RC и до финального включительно полет нормальный, но у меня и mesa из git, попробуйте подключить ppa xorg-edgers и oibaf.

                    0
                    спасибо. Попробую.
                  0
                  А сколько ядро весит?

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