The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз ядра Linux 3.14. Обзор новшеств"
Отправлено opennews, 31-Мрт-14 08:51 
После двух месяцев разработки Линус Торвальдс выпустил (https://lkml.org/lkml/2014/3/30/336) ядро Linux 3.14 (https://www.kernel.org/). Среди наиболее заметных улучшений: новый класс планирования задач Deadline, блочное устройство zram для хранения раздела подкачки в ОЗУ с сжатом виде, поддержка режима PVH в Xen, расширение возможностей трассировки.


В новую версию принято более 12 тысяч исправлений от почти 1400 разработчиков, размер патча - 32 Мб (изменения затронули 10.6 тысяч файлов, добавлено 606195 строк кода, удалено 265086 строк). Около 46% всех представленных в 3.14 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 16% связано с сетевым стеком, 5% - файловыми системами и 3% c внутренними подсистемами ядра. 10.2% изменений внесено сотрудниками компании Intel,  7.3% - Red Hat, 4.4% - Linaro, 5% - Samsung,  3.3% - SUSE, 2.9% - IBM, 2.7% - Google, 2.4% - TI, 2.1% -  NVIDIA, 2.0% - FOSS Outreach Program for Women, 1.8% - Huawei, 1.3% - Oracle.


Из наиболее интересных новшеств (http://kernelnewbies.org/Linux_3.14) можно отметить:


-  
Память и системные сервисы


Для планировщика задач добавлена поддержка класса SCHED_DEADLINE (http://www.evidence.eu.com/sched_deadline.html), реализующего алгоритм EDF (Earliest Deadline First), основанный на идее выбора для выполнения из очереди ожидающих процессов задачи, наиболее близкой к истечению крайнего расчётного времени (deadline). SCHED_DEADLINE поддерживает обеспечение работы процессов, требующих выполнения операций в режиме реального времени, предоставляя для подобных задач гарантированное время выполнения, независимо от общего количества обслуживаемых процессов, и реализуя возможность резервирования пропускной способности CPU для процессов.

Ранее доступный планировщик задач не мог обеспечить такое поведение, так как не способен гарантировать необходимое время выполнения задачи в заданном интервале времени (например, гарантировать выполнение задачи 10 мкс в интервале 100 мкс) из-за того, что переключение между задачами зависит от общего количества обслуживаемых процессов, каждый из которых может выполняться с произвольной задержкой и, таким образом, может задержать выполнение следующей задачи.

-  Снятие (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...) ярлыка экспериментальной разработки и перенос из ветки  staging  в основное дерево ядра подсистемы zRAM, предназначенной для хранения раздела подкачки в памяти в сжатом виде. Суть zRAM сводится к тому, что в памяти создается блочное устройство на которое производится своппинг со сжатием. В настоящее время zRAM уже активно используется в различных потребительских устройствах, в том числе в телеприставках и портативных устройствах  на базе платформы Android, ChromeOS и cyanogenmod.
-  Поддержка (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....) триггеров в подсистеме обработки событий трассировки, позволяющей отследить обращение к тем или иным функциям ядра. Триггеры дополняют ранее присутствующую возможность установки контрольных проверок (probe) возможностью привязки условных команд, вызываемых при срабатывании контрольной проверки. Через данные команды можно выполнять такие действия, позволяющие получить дополнительные сведения, как включение или выключение других событий трассировки или активация трассировки стека. Каждая команда может задаваться с использованием фильтра событий, позволяющего триггеру срабатывать только при нужных условиях. Например,  выполнение "echo 'stacktrace:5 if bytes_req >= 65536' > /sys/kernel/debug/tracing/events/kmem/kmalloc/trigger"  приведёт к установке триггера выдающего трассировку стека для первых пяти запросов к kmalloc с размером больше 64 Кб.
-  В системе контрольных проверок (userspace probes), используемой для анализа поведения выполняемых в пространстве пользователя приложений, добавлена поддержка извлечения данных из стека и памяти пользовательского процесса, а также обработка таких типов аргументов, как разыменования, битовые поля, возвращаемые функцией значения и смещения в файлах. Uprobes можно использовать для определения узких мест в производительности, накапливать отладочные данные и информацию о времени выполнения разных частей приложения в полностью прозрачном режиме, никаким образом не влияя на работу отслеживаемого процесса. Запустить и остановить сбор данных можно в любой момент, без перезапуска или модификации программы.


-  В состав ядра принят набор патчей biovec (http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/Documentatio...), вносящий некоторые изменения в API блочного уровня ядра, в том числе добавляющий поддержку создания произвольных купных запросов ввода/вывода и увеличивающих эффективность работы.
-  Обеспечена возможность (http://lwn.net/Articles/536363/) использования реализованной на уровне ядра системы lockdep для отладки функционирования блокировок в пространстве пользователя (в частности для выявления взаимных блокировок в многопоточных программах).
-  Добавлена возможность использования системного вызова kexec() на системах с EFI BIOS. Kexec предоставляет возможность загрузки  нового экземпляра ядра из уже запущенного ядра Linux, обеспечивая вариант мягкой перезагрузки, без возвращения управления в BIOS;
-  Значительно переработано внутреннее устройство виртуальной файловой системы sysfs. В итоге, представлена новая подсистема "kernfs", которая может выступать в качестве основы для других ФС, похожих на sysfs. Например, планируется создать виртуальную ФС для управления cgroup.
-  Реализована (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...) инфраструктура компонентных подсистем ("componentized subsystems"), предназначенная для управления сложными устройствами, состоящих из нескольких взаимодействующих друг с другом  более простых устройств.
-  В подсистему perf events добавлена поддержка механизма учёта энергопотребления "RAPL", используемого в процессорах Intel; Добавлена (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...) серия новых опций в утилиту perf.
-  В экспериментальную staging-ветку добавлен используемый в платформе Android механизм распределения памяти ION (http://lwn.net/Articles/480055/), нацеленный на эффективное решение проблем с фрагментацией памяти и поддерживающий предоставление совместного доступа к буферам при помощи DMABUF;


-  
Сетевая подсистема

-  Добавлена новая возможность "TCP autocorking", позволяющая задержать передачу небольших порций данных для объединения их в более большие пакеты, что позволяет снизить нагрузку на CPU и обеспечить более эффективную пропускную способность. Для управления новой возможностью представлен sysctl tcp_autocorking. По умолчанию поддержка tcp_autocorking включена.

-  Добавлен новый ioctl вызов SIOCGHWTSTAMP, позволяющий приложениям получить текущую конфигурацию меток времени (timestamping), без внесения в неё изменений.

-  
Дисковая подсистема, ввод/вывод и файловые системы


-  Для файловой системы Btrfs расширен объём информации, предоставляемой через sysfs, в том числе теперь можно получить данные о доступных возможностях и использовании дискового пространства. Ранее указанные данные можно было получить через ioctl(), но sysfs гораздо удобнее для использования в скриптах или из командной строки.
-  В распределённую файловую систему Ceph добавлена поддержка списков контроля доступа (ACL).


-  
Виртуализация и безопасность

-  Интегрированы наработки (http://lwn.net/Articles/569635/) проекта KASLR (аналог ASLR для ядра) с реализацией средств рандомизации раскладки адресного пространства ядра, которые позволили увеличить стойкость ядра к н...

URL: https://lkml.org/lkml/2014/3/30/336
Новость: https://www.opennet.ru/opennews/art.shtml?num=39390

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру