<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Релиз ядра Linux 3.5.]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=23436</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23436&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Релиз ядра Linux 3.5.».]]></description>
		<lastBuildDate>Tue, 24 Jul 2012 09:15:09 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Релиз ядра Linux 3.5.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=289457#p289457</link>
			<description><![CDATA[<p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />lupo@gentoo-laptop ~ % uname -a<br />Linux gentoo-laptop 3.5.0-funtoo-r0a #1 PREEMPT Tue Jul 24 11:27:39 FET 2012 i686 Genuine Intel(R) CPU T1350 @ 1.86GHz GenuineIntel GNU/Linux<br /></div></p>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Tue, 24 Jul 2012 09:15:09 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=289457#p289457</guid>
		</item>
		<item>
			<title><![CDATA[Релиз ядра Linux 3.5.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=289281#p289281</link>
			<description><![CDATA[<p>Линус Торвальдс <a href="https://lkml.org/lkml/2012/7/21/114">представил</a> релиз ядра <a href="http://kernel.org/">Linux 3.5.</a> Из основных улучшений можно отметить: поддержка контрольных сумм для обеспечения целостности метаданных в Ext4; система профилирования приложений на пользовательском уровне; механизм создания sandbox-окружений с изоляцией системных вызовов; реализация новых алгоритмов управления очередями пакетов для борьбы с задержками в результате излишней буферизации; возможность сохранения состояния сетевых соединений между перезагрузками; поддержка RFC 5827 (TCP Early Retransmit); реализация по умолчанию активного спящего режима, подобного используемому в платформе Android; учёт статистики о проблемах с вводом/выводом в Btrfs; возможность проброса SCSI поверх Firewire и USB.<br />В новую версию принято около 11 тысяч исправлений от более чем 1200 разработчиков, размер патча - 42 Мб (изменения затронули 9631 файлов, добавлено 623283 строк кода, удалено 410731 строк). Около 38% всех представленных в 3.5 изменений связаны с драйверами устройств, примерно 26% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 15% связано с сетевым стеком, 5% - файловыми системами и 5% c внутренними подсистемами ядра.</p><p>Наиболее интересные <a href="http://kernelnewbies.org/Linux_3.5">новшества</a> ядра 3.5:<br /></p><ul><li><p><strong>Дисковая подсистема, ввод/вывод и файловые системы</strong></p></li></ul><p>В Ext4 добавлена поддержка контрольных сумм для проверка целостности метаданных. Для обеспечения работы новой функции в поле метаданных добавлен новый блок с контрольной суммой crc32 и соответственно изменена структура хранимых на диске метаданных. Контрольные суммы рассчитываются для суперблока, inode, битовых карт блоков, блоков дерева экстентов, htree-узлов, MMP-блоков, директорий и блоков с расширенными атрибутами. Также поддержка контрольных сумм добавлена в инфраструктуру журналирования jbd2 (Journaling block device), что позволит проверять целостность элементов журнала Ext4, а также отдельных коммитов и блоков данных, хранимых в журнале.</p><p>Поддержку контрольных сумм можно активировать для существующих разделов через команду &quot;tune2fs -O metadata_csum&quot;, а для новых через &quot;mkfs -O metadata_csum&quot;, после активации подобной поддержки системы с более старыми ядрами Linux смогут монтировать данные разделы только в режиме чтения. С точки зрения производительности, добавление контрольных сумм не привносит заметной задержки для типичных десктоп и серверных систем. Узким местом является только условия создания и удаления большого числа файлов или интенсивной модификации дерева экстентов, при таком характере нагрузки наблюдается замедление до 20%;</p><p>Поддержка работы SCSI поверх FireWire или USB (поддерживается транспорт BOT (Bulk Only Transport) и UAS (USB Attached SCSI)), что, например, позволяет экспортировать SCSI-устройства на другой хост с использованием FireWire и USB;</p><p>Учёт статистики о проблемах с вводом/выводом в Btrfs. Для каждого диска отслеживаются такие данные как ошибки ввода/вывода, несовпадения контрольных сумм, результаты проверки целостности блоков с метаданными. Накопленную статистику можно посмотреть командой &quot;btrfs device stats&quot;, поддержка которой включена в свежие версии пакета btrfs-progs. Из других улучшений Btrfs отмечается интеграция патчей для более оптимальной работы с памятью и увеличения отзывчивости в ситуации большой нагрузки на подсистему ввода/вывода;</p><p>В Tmpfs и подсистему FUSE добавлена поддержка системного вызова fallocate(), обеспечивающего возможность предварительного выделения места под создаваемые приложением файлы, что позволяет гарантировать, что для заданного файла в ФС при любых обстоятельствах хватит места, даже если в процессе создания файла дисковый раздел будет переполнен другими процессами. Использование fallocate позволяет значительно ускорить создание больших файлов, таких как образы виртуальных машин;<br /></p><ul><li><p><strong>Сетевая подсистема</strong></p></li></ul><p>Поддержка <a href="http://lwn.net/Articles/495304/">интерфейса</a> для восстановления TCP-соединений, позволяющего зафиксировать контрольную точку с которой можно возобновить остановленное соединение. Наиболее интересным практическим применением указанной функции является возможность предотвратить разрыв соединений в результате перезагрузки системы или перемещения серверного процесса на другой хост. Например, в системах виртуализации упрощается решение таких задач как миграция работающих процессов с одного сервера на другой, незаметно для приложения на другой стороне соединения<br />Поддержка <a href="http://tools.ietf.org/html/rfc5827">RFC 5827</a> (ранняя повторная отправка пакетов) в сетевом стеке, позволяющая увеличить скорость восстановления потока после потери пакетов;</p><p>Интеграция алгоритма управления очередями ожидающих отправки пакетов <a href="http://lwn.net/Articles/496509/">CoDel</a> (Сontrolled Delay - управляемая задержка), разработанного в рамках <a href="http://www.opennet.ru/opennews/art.shtml?num=29734">инициативы</a> по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием;<br /></p><ul><li><p><strong>Виртуализация и безопасность</strong></p></li></ul><p>Интеграция механизма seccomp filter, принцип работы которого <a href="http://outflux.net/teach-seccomp/">сводится</a> к ограничению доступа к системным вызовам. Важной особенностью seccomp filter является то, что логика выставляемых ограничений задаётся на уровне защищаемого приложения, а не через задание внешних ограничений, как в случае AppArmor или SELinux. В код программы добавляется структура с перечнем допустимых системных вызовов (например, ALLOW_SYSCALL) и реакции в случае несовпадения (например, KILL_PROCESS). Доступ к системным вызовам определяется в виде правил, оформленных в BPF-представлении (Berkeley Packet Filter), которое получило распространение в системах фильтрации сетевых пакетов.</p><p>Система seccomp filter позволяет реализовывать достаточно сложные правила доступа, учитывающие передаваемые и возвращаемые аргументы. Программа сама определяет какие системные вызовы ей необходимы и какие параметры допустимы, все остальные системные вызовы блокируются, что позволяет ограничить возможности атакующего в случае эксплуатации уязвимости в защищённом при помощи seccomp приложении. Возможность задания фильтров аргументов позволяет также защититься от большинства атак, эксплуатирующих уязвимости в системных вызовах. Например, выявленные за последние годы критические уязвимости в glibc и ядре Linux, такие как <a href="http://sota.gen.nz/af_can/">AF_CAN</a>, <a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">sock_sendpage</a> и <a href="http://www.juniper.net/security/auto/vulnerabilities/vuln22823.html">sys_tee</a>, успешно блокируются при надлежащем использовании seccomp.</p><p>В настоящее время поддержка seccomp filter реализована в таких популярных серверных приложениях, как OpenSSH и vsftpd. Средства для изоляции запускаемых сервисов добавлены в системный менеджер systemd, что позволяет создавать sandbox-окружение для произвольных сервисов, не модифицированных для поддержки seccomp filter. При использовании systemd для помещения процесса в sandbox достаточно в секции &quot;[Service]&quot; указать опцию &quot;SystemCallFilter&quot;, в которой перечислить список допустимых системных вызовов. Патчи с поддержкой seccomp filter уже используются в промышленной эксплуатации, например, входят в состав пакета с ядром Linux для дистрибутива Ubuntu 12.04;</p><p>В модуль Yama, разработанный компанией Canonical и используемый в Ubuntu для блокирования некоторых типов атак, добавлены два дополнительных режима для контроля доступа к функциональности PTRACE_ATTACH;<br /></p><ul><li><p><strong>Память и системные сервисы</strong></p></li></ul><p>Интеграция чувствительной к активности процессов реализации спящего режима, представляющего собой альтернативу используемой в платформе Android системы блокировок &quot;wakelocks&quot;. Добавленный дополнительный механизм блокировок для системы управления питанием позволяет предотвратить переход в спящий режим в ситуациях, когда это недопустимо (например, активен разговор по телефону) и обеспечить временное просыпание в условиях жесткой политики нахождения в спящем режиме, свойственной для мобильных систем. Реализованный подход рассматривает систему как находящуюся постоянно в спящем режиме, в котором энергия тратится только на синхронизацию памяти и поддержание работы некоторых устройств. Активация происходит только в ситуациях, когда возникает необходимость выполнения определённой работы, после завершения которой система возвращается в спящий режим;</p><p>Переработан код планировщика задач для архитектуры NUMA;</p><p>Интеграция кода uprobes (userspace probes), аналога ранее доступной системы kprobes, нацеленного на анализ поведения выполняемых в пространстве пользователя приложений. Uprobes можно использовать для определения узких мест в производительности, накапливать отладочные данные и информацию о времени выполнения разных частей приложения в полностью прозрачном режиме, никаким образом не влияя на работу отслеживаемого процесса. Запустить и остановить сбор данных можно в любой момент, без перезапуска или модификации программы. Изначально реализация uprobes была подготовлена в рамках проекта SystemTap и уже много лет доступна в стандартной поставке Fedora и RHEL.</p><p>Для управления uprobes используется стандартная утилита perf, например, выполнение &quot;perf probe -x /lib64/libc.so.6 malloc&quot; приведёт к созданию привязанного к malloc проверочного события, а &quot;perf record -e probe_libc:malloc -agR sleep 1&quot; к ежесекундному накоплению статистики использования вызова malloc в libc, которую можно посмотреть в виде отчета &quot;perf report&quot;. Можно создавать несколько проверок, смешивать из с трассировками ядра и вызовами kprobes, просматривать список доступных для привязки функций (&quot;perf probe -F -x /lib64/libc.so.6&quot; или &quot;perf probe -F -x /bin/zsh&quot;);</p><p>Реализация системного вызова <a href="http://lwn.net/Articles/478111/">kcmp()</a> для определения различий между двумя порождёнными одним родителем процессами (сравнение файловых дескрипторов, обработчиков прерываний, адресного пространства и других характеристик);</p><p>Переработка организации ведения логов на уровне ядра. <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e11fea92e13fb91c50bacca799a6131c81929986">Добавлена</a> поддержка ведения структурированных логов ядра через /dev/kmsg, с поддержкой одновременного чтения несколькими приложениями и возможностью перемещения по логу и повторного чтению элементов в рамках доступного буфера (Например, открыв /dev/kmsg процесс начнёт чтение не с текущего момента, а с начала данных уместившихся в буфере). <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7ff9554bb578ba02166071d2d487b7fc7d860d62">Переработка</a> вызова printk для отправки данных в виде отдельных буферизированных записей, вместо байтового потока;</p><p>Поддержка таблиц Apple NLS (Native Language Support), необходимых для корректной поддержки файловой системы HFS;</p><p>Реализация режима Frontswap, при котором раздел подкачки может быть размещён в напрямую недоступной памяти, которую невозможно напрямую адресовать и которая не предоставляет оперативной информации о наличии свободного места;</p><p>Добавлена новая опциональная система распределения памяти <a href="https://lwn.net/Articles/486301/">Contiguous Memory Allocator</a> (CMA), которая оптимизирована на выделение больших непрерывных областей памяти с использованием техники перемещения страниц памяти. Подобное поведение востребовано некоторыми драйверами и подсистемой pagecache;<br /></p><ul><li><p><strong>Оборудование и аппаратные архитектуры</strong></p></li></ul><p>Проведена чистка устаревших драйваеров, в том числе удалены: драйвер ixp2000 Ethernet, драйверы для карт MCA, sun4c SPARC CPU, netfilter-модуль ip_queue (его заменил nfnetlink_queue), все компоненты поддержки сетей Token ring, поддержка протокола Econet, поддержка процессоров ARMv3 и IXP2xxx (XScale), поддержка плат ST-Ericsson U5500, драйвер последовательных портов Motorola 68360;</p><p>В системе DMA-BUF, предназначенной для организации совместного использования буферов драйверами и различными подсистемами ядра, расширена поддержка интерфейса PRIME, который позволит реализовать возможность бесшовного переключения вывода между разными видеокартами;</p><p>В DRM-драйвере Radeon расширена поддержка новых карт на базе Evergreen GPU и обеспечен вывод звука через HDMI. Существенно увеличена производительность драйверов для GPU семейства Evergreen и Northern Islands (HD5000 и HD6000);</p><p>Обновлен DRM-драйвер для карт Intel, добавление предварительной поддержки процессоров на базе микроархитектуры Haswell и SoC Valley View с новыми процессорами Atom;</p><p>Обеспечена поддержка плат Blackfin BF609, Renesas Armadillo-800 EVA и KZM-A9-GT;</p><p>Поддержка сетевых устройств: WIZnet W5100, W5300, Marvell Avastar 88W8797, Emulex One Connect InfiniBand-over-Ethernet, GCT Semiconductor GDM72xx WiMAX;</p><p>Поддержка USB host-контроллеров: Marvell PXA USB OTG, Broadcom BCMA и SSB, USB-трансивера NXP ISP1301, контроллера периферии NXP LPC32XX;<br />Интегрированы драйверы для звуковых карт Creative Sound Core3D и Xonar DGX;</p><p>Добавлены базовые KMS-драйверы для графических чипов ASpeed Technologies 2000 и Matrox G200, а также для карт Cirrus, эмулируемых в Qemu;</p><p><strong>Источники информации:</strong> <a href="http://www.opennet.ru/opennews/art.shtml?num=34387">здесь</a>&gt;&gt;&gt;<a href="http://kernelnewbies.org/Linux_3.5">здесь</a></p>]]></description>
			<author><![CDATA[null@example.com (jonnix)]]></author>
			<pubDate>Mon, 23 Jul 2012 00:44:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=289281#p289281</guid>
		</item>
	</channel>
</rss>
