top
logo


OpenNews: Релиз ядра Linux 3.17 PDF Печать E-mail
05.10.14 21:42

После двух месяцев разработки Линус Торвальдс анонсировал релиз ядра Linux 3.17. Среди наиболее заметных улучшений: новые системные вызовы getrandom и seccomp, возможность обращения к областям памяти через файловый дескриптор (memfd), поддержка ограничения операций с файлом через дескриптор, включена по умолчанию реализация Render Nodes, поддержка средств синхронизации dma-buf, прекращена поддержка архитектур POWER3 и rs64.

В новую версию принято около 12 тысяч исправлений от 1300 разработчиков, размер патча - 54 Мб (изменения затронули 10605 файлов, добавлено 653577 строк кода, удалено 668166 строк). Около 46% всех представленных в 3.17 изменений связаны с драйверами устройств, примерно 18% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% - файловыми системами и 3% c внутренними подсистемами ядра.

Из наиболее интересных новшеств можно отметить:

  • Память и системные сервисы
    • Поддержка техники маппинга памяти memfd, при которой область памяти идентифицируется через файловый дескриптор, который может передаваться между процессами. По сути можно выделить память как по malloc, но обращаться к ней как с файлом, по файловому дескриптору. Управление производится через системный вызов memfd_create();
    • Представлена техника запечатывания файла (file sealing), которая позволяет ограничить выполняемые над файлом операции, например, запретить на уровне файлового дескриптора изменение содержимого файла, увеличение или уменьшение размера, т.е. можно передать дескриптор другому процессу защитив данные от изменения. С практической стороны данная функциональность необходима для заморозки содержимого memfd, чтобы после передачи файлового дескриптора не позволить другим процессам изменять связанную с memfd область памяти. File sealing и memfd являются ключевыми компонентами, необходимыми для реализации kdbus (аналог D-Bus внутри ядра);
    • Включена по умолчанию технология Render Nodes, подразумевающая разделение монолитных устройств /dev/dri/card{num} на две категории: Rendering Nodes (/dev/dri/renderD{num}), отвечающие за аппаратное ускорение рендеринга и обсчет вычислительных заданий GPGPU, и ModeSetting Nodes (/dev/dri/modeset{num}), обеспечивающие переключение видеорежимов и управление экраном. Таким образом предоставлены более гибкие средства для управления правами доступа и возможность выполнения вычислений на GPU или рендеринга без вывода на экран и без привязки к активному дисплею. До реализации Render Nodes все операции рендеринга и смены видеорежимов выполнялись через один интерфейс, что приводило к невозможности независимого выставления прав на выполнение операций ускорения рендеринга и переключение видеорежимов. Поддержка Render Nodes присутствует в драйверах i915, Radeon и Nouveau;
    • Доступна переписанная реализация API DMA-BUF, позволяющего организовать совместное использования буферов драйверами и различными подсистемами (V4L2, DRI и т.п.). В API добавлены средства для синхронизации DMA-буферов между разными устройствами (cross-device synchronization) и координации взаимодействия между ними. API доступен для всех модулей ядра и экспортируется в категории EXPORT_SYMBOL, а не только для распространяемых под лицензией GPL (EXPORT_SYMBOL_GPL), что позволяет решить проблемы с организацией взаимодействия свободных и проприетарных драйверов при организации работы гибридных графических систем. Например, в проприетарном драйвере NVIDIA может быть реализована поддержка технологии Optimus, дающей возможность на лету переключаться между встроенной энергоэффективной видеокартой на базе GPU Intel и дискретной картой NVIDIA (использование DMA-BUF в драйвере NVIDIA требуется для организации записи во фреймбуфер драйвера Intel); .
    • В утилиту perf добавлена возможность трассировки обращений к невыделенным страницам памяти (page-fault) и генерации связанной с такими обращениями статистики. В команде "perf timechart" реализована генерация диаграмм, отображающих события ввода/вывода;
    • Внесена серия исправлений, связанных с решением проблемы 2038 года, которая приведёт к переполнению 32-разрядных эпохальных счётчиков времени;
  • Сетевая подсистема
    • В netfilter прекращена поддержка цели "ULOG", которая давно объявлена устаревшей (c 2006 года рекомендуется использовать "NFLOG");
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Для работы файловой системы XFS теперь необходима сборка ядра с 64-разрядным значением числа секторов. Добавлен раздел XFS в sysfs с параметрами для тестирования файловой системы;
    • В клиенте NFS добавлена поддержка выборок на основе механизма синхронизации RCU (Read-copy-update), позволивших ускорить нахождение файлов при наличии информации в кэше;
    • Начальная поддержка Multiqueue SCSI, рассчитанного на организацию многопоточного доступа к данным на многоядерных системах и позволяющего эффективно использовать возможности современных SSD-накопителей. Архитектура Multiqueue SCSI основана на двухуровневой модели очередей: на первом уровне функционируют очереди для передачи запросов ввода/вывода, привязанные к каждому CPU. Из данных очередей запросы направляются в очереди второго уровня, которые координируют обращение к оборудованию. В зависимости от конфигурации системы, числа CPU и накопителей соотношение между очередями первого и второго уровня может составлять от 1 к 1 до N к M.
  • Виртуализация и безопасность
    • Добавлен системный вызов kexec_file_load(), позволяющий выполнить проверку по цифровой подписи для нового ядра, перед его запуском с использованием механизма kexec. Ранее функцию загрузки нового ядра из уже запущенного ядра Linux (kexec) приходилось отключать при использовании UEFI Secure Boot, так как невозможно было гарантировать сохранение цепочки доверия;
    • В криптографическую подсистему добавлена поддержка детерминированного генератора псевдослучайных чисел, соответствующего спецификации NIST SP800-90A. Также обеспечена возможность разбора подписанных сообщений PKCS#7 и проверки цифровых подписей;
    • Добавлен системный вызов getrandom(), который является аналогом системного вызова getentropy, присутствующего в OpenBSD. Getrandom предоставит надёжную защиту от атак, основанных на исчерпании доступных файловых дескрипторов. При отсутствии свободных дескрипторов невозможно задействовать /dev/urandom, поэтому библиотеками активируется запасной вариант, использующий менее надёжный PRNG. Getrandom предоставит возможность получения случайных чисел от системного PRNG даже в условиях отсутствия свободных файловых дескрипторов.
    • В подсистему LSM (linux security module) добавлен новый hook kernel_fw_from_file(), который можно использовать для проверки целостности бинарных прошивок перед их загрузкой ядром;
    • Добавлен новый системный вызов seccomp для управления режимом работы и фильтрами механизма ограничения доступа к системным вызовам для приложений. Новый системный вызов позволяет решить проблемы с использованием Seccomp filter для многопоточных приложений (ранее фильтры Seccomp привязывались только на уровне процесса через prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, filter));
    • Ядра для архитектуры ARM64 теперь могут быть собраны с флагом "-fstack-protector" для выявления повреждений стека;
  • Аппаратные архитектуры
    • Прекращена поддержка архитектур POWER3 и rs64, связанный с которыми код уже достаточно давно находился в неработоспособном состоянии;
    • Прекращена поддержка систем Samsung S5P6440, S5P6450 и S5PC100;
    • Для архитектуры ARM64 добавлена поддержка четырёхуровневых таблиц страниц памяти, что позволило значительно расширить размер адресуемой виртуальной памяти;
    • Гипервизор KVM адаптирован для big-endian ARM-систем;
  • Оборудование
    • В DRM-драйвере Nouveau устранены проблемы с использованием GPU Kepler, добавлена поддержка режима Zero Bandwidth Clear для GPU Fermi, Kepler и Maxwell;
    • В DRM-драйвер Radeon добавлена поддержка чипов "Hawaii" (Radeon R9 290);
    • В DRM-драйвере Intel проведена подготовка к поддержке Atom SoC Cherry Trail, добавлена поддержка Universal plane;
    • Добавлен драйвер для контроллера Xbox One;
    • В драйвере b43 добавлена поддержка новых беспроводных адаптеров на чипах Broadcom;
    • Поддержка SoC Broadcom BCM7XXX, Mediatek MT6589 и Hisilicon HiX5HD2;
    • В звуковой подсистеме ALSA обеспечена возможность работы базового драйвера в конфигурациях, в которых к одному звуковому интерфейсу привязано несколько кодеков;
    • Поддержка звуковых кодеков Cirrus Logic CS4265, Realtek ALC286 и ALC5670, DSP Intel Broadwell Wildcatpoint, звуковых контроллеров Hardkernel Odroid-X2 и Odroid-U3;
    • Поддержка планшетов на базе 4 версии протокола Wacom;
    • Поддержка SATA-контроллеров NVIDIA Tegra124 AHCI, Qualcomm APQ8064/IPQ806x SerDes/PHY, Marvell Berlin SATA PHY и STMicroelectronics MIPHY365X SATA PHY;
    • Поддержка Ethernet-контроллеров Marvell Armada 375;
  1. Главная ссылка к новости (https://lkml.org/lkml/2014/10/5/126...)
  2. OpenNews: Релиз ядра Linux 3.16
  3. OpenNews: Релиз ядра Linux 3.15
  4. OpenNews: Релиз ядра Linux 3.14
  5. OpenNews: Релиз ядра Linux 3.13
  6. OpenNews: Релиз ядра Linux 3.12
Тип: Интересно / Программы
Ключевые слова: kernel, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.4, Анонко, 01:07, 06/10/2014 [ответить] [смотреть все] +2 +/
Удалено больше строчек, чем принято?! Аллилуйя!!!
 
  2.5, Аноним, 01:25, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку] +4 +/
Скорее всего это из-за удаления кода двух устаревших архитектур POWER3 и rs64, и... весь текст скрыт [показать] [показать ветку]
 
2.28, vitalif, 10:46, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
+/
Когда добавляешь в 2 раза меньше строчек, чем удаляешь, а функционал не меняется или даже расширяется - это по-моему вообще самое приятное в программировании )))
 
1.6, IdeaFix, 02:04, 06/10/2014 [ответить] [смотреть все]  +2 +/ Так-то старые армы, да и вообще архитектуры, можно выносить и выносить... только бы дебианщики не бэкпортировали снова.
  1.7, Аноним, 02:21, 06/10/2014 [ответить] [смотреть все]  –1 +/
который в свою очередь является ключевым компонентом, необходимым для внесения в... весь текст скрыт [показать]
 
  2.13, Аноним, 07:52, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  –1 +/
 
2.16, Аноним, 08:36, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  –1 +/ 
  3.24, Аноним, 10:18, 06/10/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Дегенерация - тоже эволюция ... весь текст скрыт [показать]
 
3.33, 1, 11:20, 06/10/2014 [^] [ответить] [смотреть все]    [к модератору]  +1 +/ systemd это именно что деградация
 
1.8, Аноним, 05:07, 06/10/2014 [ответить] [смотреть все]  +1 +/
Важно отметить, что в 3 17 еще и появилась поддержка кучи беспроводных сетевух b... весь текст скрыт [показать]
  1.10, Аноним, 06:58, 06/10/2014 [ответить] [смотреть все]  –2 +/
а kdbus таки засадят слушайте как так получается, что какой-то псих ломает и... весь текст скрыт [показать]
 
  2.11, Аноним, 07:12, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  –5 +/
А так же ходит по квартирам и насильно удаляет старое ядро с компьютеров ... весь текст скрыт [показать] [показать ветку]
 
  3.14, Аноним, 07:54, 06/10/2014 [^] [ответить] [смотреть все]  +1 +/
Приобретёте новое железо и сами будете вынуждены поставить свежее ядро ... весь текст скрыт [показать]
 
  4.34, none7, 11:22, 06/10/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
А как же идеалы OpenSource? Клонируйте ядро и развивайте самостоятельно!
 
2.20, Аноним, 09:35, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  +/ 
1.15, Archnewbie, 08:00, 06/10/2014 [ответить] [смотреть все]  –1 +/ "Для работы файловой системы XFS теперь необходима сборка ядра с 64-разрядным числом секторов"
Не понял, поясните: это значит, что 32-разрядном ядре не будет работать?
 
  2.17, ryoken, 08:43, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  +/
> "Для работы файловой системы XFS теперь необходима сборка ядра с 64-разрядным числом
> секторов"
> Не понял, поясните: это значит, что 32-разрядном ядре не будет работать?

Да-да, можно попонятнее? При чём тут число секторов и почему оно должно быть именно 64-разрядным? (странная вообще фраза).

 
2.25, anonymous, 10:22, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  +/ В опциях монтирования xfs есть inode64, вот она теперь по-умолчанию.
 
1.18, Аноним, 09:15, 06/10/2014 [ответить] [смотреть все]  +/
Ветка 3 16 как-то совсем недолго жила... весь текст скрыт [показать]
 
  2.19, Нанобот, 09:32, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  +/
3.16 вроде никуда не делась
 
2.21, _KUL, 09:40, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]  +/ Она только-только начала греть наши сердца https://packages.debian.org/jessie/linux-image-3.16-2-amd64 (кстати, только с 3.16 ветки, нормально сетевой драйвер hyper-v в линуксе заводится начал, если виртуалка линуксовая на 2008 R2 (ботинок не кидать, виндовс - заставило руководство поставить, ничего личного, только бизнес))
 
  3.27, Аноним, 10:43, 06/10/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Сгинь богомерзкий ... весь текст скрыт [показать]
 
2.29, Andrey Mitrofanov, 10:57, 06/10/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/ 
1.30, Fracta1L, 11:07, 06/10/2014 [ответить] [смотреть все]    [к модератору]  +/ Жаль, что в Btrfs ничего нового. И вообще релиз скучный.
  1.32, kleemhead, 11:18, 06/10/2014 [ответить] [смотреть все]    [к модератору]  +/ Ни фига себе скучная  - xakep.ru/relativistic-hash-tables/ (не спам)
 
Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=40755

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика