Линус Торвальдс представил (https://lkml.org/lkml/2012/7/21/114) релиз ядра Linux 3.5 (http://kernel.org). Из основных улучшений можно отметить: поддержка контрольных сумм для обеспечения целостности метаданных в Ext4; система профилирования приложений на пользовательском уровне; механизм создание sandbox-окружений с изоляцией системных вызовов; реализация новых алгоритмов управления очередями пакетов для борьбы с задержками в результате излишней буферизации; возможность сохранения состояния сетевых соединений между перезагрузками; поддержка RFC 5827 (TCP Early Retransmit); реализация альтернативного способа перехода в спящий режим, подобного используемому в платформе Android; учёт статистики о проблемах с вводом/выводом в Btrfs; возможность проброса SCSI поверх Firewire и USB.В новую версию принято около 11 тысяч исправлений от более чем 1200 разработчиков, размер патча - 42 Мб (изменения затронули 9631 файлов, добавлено 623283 строк кода, удалено 410731 строк). Около 38% всех представленных в 3.5 изменений связаны с драйверами устройств, примерно 26% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 15% связано с сетевым стеком, 5% - файловыми системами и 5% c внутренними подсистемами ядра.
Наиболее интересные новшества (http://kernelnewbies.org/Linux_3.5) ядра 3.5:
-
Дисковая подсистема, ввод/вывод и файловые системы- В Ext4 добавлена поддержка контрольных сумм для проверка целостности метаданных. Для обеспечения работы новой функции в поле метаданных добавлен новый блок с контрольной суммой crc32 и соответственно изменена структура хранимых на диске метаданных. Контрольные суммы рассчитываются для суперблока, inode, битовых карт блоков, блоков дерева экстентов, htree-узлов, MMP-блоков, директорий и блоков с расширенными атрибутами. Также поддержка контрольных сумм добавлена в инфраструктуру журналирования jbd2 (Journaling block device), что позволит проверять целостность элементов журнала Ext4, а также отдельных коммитов и блоков данных, хранимых в журнале.
- Поддержка работы SCSI target поверх протоколов FireWire или UASP (USB Attached SCSI Protocol);- Учёт статистики о проблемах с вводом/выводом в Btrfs. Для каждого диска отслеживаются такие данные как ошибки ввода/вывода, несовпадения контрольных сумм, результаты проверки целостности блоков с метаданными. Накопленную сттистику можно посмотреть командой "btrfs device stats", поддержка которой включена в свежие версии пакета btrfs-progs. Из других улучшений Btrfs отмечается интеграция патчей для более оптимальной работы с памятью и увеличения отзывчивости в ситуации большой нагрузки на подсистему ввода/вывода;
-
Сетевая подсистема- Поддержка интерфейса (http://lwn.net/Articles/495304/) для восстановления TCP-соединений, позволяющего зафиксировать контрольную точку с которой можно возобновить остановленное соединение. Наиболее интересным практическим применением указанной функции является возможность предотвратить разрыв соединений в результате перезагрузки системы.
- Поддержка RFC 5827 (http://tools.ietf.org/html/rfc5827) (ранняя повторная отправка пакетов) в сетевом стеке, позволяющая увеличить скорость восстановления потока после потери пакетов;- Интеграция алгоритма управления очередями ожидающих отправки пакетов CoDel (http://lwn.net/Articles/496509/), разработанного в рамках инициативы (http://www.opennet.me/opennews/art.shtml?num=29734) по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat);
-
Виртуализация и безопасность
Интеграция механизма seccomp filter, принцип работы которого сводится (http://outflux.net/teach-seccomp/) к ограничению доступа к системным вызовам. Важной особенностью seccomp filter является то, что логика выставляемых ограничений задаётся на уровне защищаемого приложения, а не через задание внешних ограничений, как в случае AppArmor или SELinux. В код программы добавляется структура с перечнем допустимых системных вызовов (например, ALLOW_SYSCALL) и реакции в случае несовпадения (например, KILL_PROCESS). Доступ к системным вызовам определяется в виде правил, оформленных в BPF-представлении (Berkeley Packet Filter), которое получило распространение в системах фильтрации сетевых пакетов.
Система seccomp filter позволяет реализовывать достаточно сложные правила доступа, учитывающие передаваемые и возвращаемые аргументы. Программа сама определяет какие системные вызовы ей необходимы и какие параметры допустимы, все остальные системные вызовы блокируются, что позволяет ограничить возможности атакующего в случае эксплуатации уязвимости в защищённом при помощи seccomp приложении. Возможность задания фильтров аргументов позволяет также защититься от большинства атак, эксплуатирующих уязвимости в системных вызовах. Например, выявленные за последние годы критические уязвимости в glibc и ядре Linux, такие как AF_CAN (http://sota.gen.nz/af_can/), sock_sendpage (http://blog.cr0.org/2009/08/linux-null-pointer-dereference-d...) и sys_tee (http://www.juniper.net/security/auto/vulnerabilities/vuln228...), успешно блокируются при надлежащем использовании seccomp.В настоящее время поддержка seccomp filter реализована в таких популярных серверных приложениях, как OpenSSH и vsftpd, средства для изоляции запускаемых сервисов добавлены в системный менеджер systemd. Патчи с поддержкой seccomp filter уже используются в промышленной эксплуатации, например, входят в состав пакета с ядром Linux для дистрибутива Ubuntu 12.04.
- В модуль Yama, разработанный компанией Canonical и используемый в Ubuntu для блокирования некоторых типов атак, добавлены два дополнительных режима для контроля доступа к функциональности PTRACE_ATTACH;
-
Память и системные сервисы
- Интеграция чувствительной к активности процессов реализации спящего режима, представляющего собой альтернативу используемой в платформе Android системы блокировок "wakelocks". Добавленный дополнительный механизм блокировок для системы управления питанием позволяет предотвратить переход в спящий режим в ситуациях, когда это недопустимо (например, активен разговор по телефону), и наоборот для инициирования скорого засыпания при неактивности, а также для мгновенного пробуждения при наступлении определённых событий;- Переработан код планировщика задач для архитектуры NUMA;
- Интеграция кода uprobes (userspace probes), позволяющего организовать анализ поведения выполняемых в пространстве пользователя приложений;
- Реализация системного вызова kcmp() (http://lwn.net/Articles/478111/) для определения различий между двумя порождёнными одним родителем процессами (сравнение файловых дескрипторов, обработчиков прерываний, адресного пространства и других характеристик);-
Оборудование и аппаратные архитектуры
- Проведена чистка устаревших драйваеров, в том числе удалены: драйвер ixp2000 Ethernet, драйверы для карт MCA, sun4c SPARC CPU, netfilter-модуль ip_queue (его заменил nfnetlink_queue), все компоненты поддержки сетей Token ring, поддержка протокола Econet, поддержка процессоров ARMv3 и IXP2xxx (XScale), поддержка плат ST-Ericsson U5500, драйвер последовательных портов Motorola 68360;
- В системе DMA-BUF, предназначенной для организации совместного использования буферов драйверами и различными подсистемами ядра, расширена поддержка интерфейса PRIME, который позволит реализовать возможность бесшовного переключения вывода между разными видеокартами;- В DRM-драйвере Radeon расширена поддержка новых карт на базе Evergreen GPU и обеспечен вывод звука через HDMI. Существенно увеличена производительность драйверов для GPU семейства Evergreen и Northern Islands (HD5000 и HD6000);
- Обновлен DRM-драйвер для карт Intel, добавление предварительной поддержки процессоров на базе микроархитектуры Haswell и SoC Valley View с новыми процессорами Atom;
- Обеспечена поддержка плат Blackfin BF609,...
URL: https://lkml.org/lkml/2012/7/21/114
Новость: http://www.opennet.me/opennews/art.shtml?num=34387
> Интеграция механизма seccomp filter, принцип работы которого сводится к ограничению доступа...Я мало что знаю о процессах ядра, но этот механизм позволит строго ограничить доступные ресурсы для определенного приложения? ведь не все приложения используют этот механизм, а еще есть и закрытые программы, которые хотелось бы запускать в "песочнице". Или для этого так и останутся SELinux и AppArmor?
Дочерние процессы наследуют фильтр родительсного. Поэтому ограничить можно и проприетарные программы, но придётся использовать внешний враппер. Например, в systemd уже добавлена поддержка определения списка допустимых системных вызовов для запускаемых сервисов.
> этот механизм, а еще есть и закрытые программы, которые хотелось бы
> запускать в "песочнице".Для такого лучше LXC, имхо. Гугля так свой браузер на пингвине отгораживает от остальной системы. Вполне эффективно: получается пустая песочница где ничего нет и ничего нельзя. Так что хакер проломившийся туда попадает в удивительно унылое окружение вместо нормальной системы :)
При сильной паранойе - можно юзать и KVM с полноценной отдельной VM которую если и раздолбят то не жалко: откатили снапшот и порядок.
А seccomp filter требует указания в сорце программы какие сисколы по мнению автора программы льзя, а какие - "что-то тут не так!". Так что это скорее средство защиты от хаков, позволяющее пристрелить программы при аномальном поведении.
Afaik, LXC еще не готов для продакшена. Там до сих порт контейнерный рут имеет полные права на хосте.
нет
> Afaik, LXC еще не готов для продакшена.Фич реализован. Работает. И интегрирован в майнлайн. Ну а критерии юзать или нет каждый сам для себя выбирает. Для гугля вот он уже готов - они браузер им изолируют. Расскажете гуглю про продакшн? :)
> Там до сих порт контейнерный рут имеет полные права на хосте.
Вас нае... обманули в общем.
Откуда информация про гугл?
Не знаю как гугл, но в yandex точно используют. На я.субботнике Екатерина В. поведала.
> Не знаю как гугл, но в yandex точно используют. На я.субботнике Екатерина В. поведала.Наверное, они и btrfs используют, и на systemd давно все боевые серваки перевели.
>> Afaik, LXC еще не готов для продакшена.
> Фич реализован. Работает. И интегрирован в майнлайн. Ну а критерии юзать или
> нет каждый сам для себя выбирает. Для гугля вот он уже
> готов - они браузер им изолируют. Расскажете гуглю про продакшн? :)
>> Там до сих порт контейнерный рут имеет полные права на хосте.
> Вас нае... обманули в общем.https://lwn.net/Articles/498693/
https://lwn.net/Articles/491310/
> Фич реализован. Работает. И интегрирован в майнлайн.Не затруднитесь предоставить пруфы?
> Для гугля вот он уже готов - они браузер им изолируют. Расскажете гуглю про продакшн? :)
Они и сами знают - раз в месяц находят дыру, которая обходит все уровни защиты.
> Я мало что знаю о процессах ядра, но этот механизм позволит строго
> ограничить доступные ресурсы для определенного приложения? ведь не все приложения используютcgroups
Не раскрыта тема патчей от разработчиков systemd, расширяющих функциональность printk и /dev/kmsg (переход к структурированному логу в стиле journal).
> Переработка организации ведения логов на уровне ядра. Добавлена поддержка ведения структурированных логов ядра через /dev/kmsg, с поддержкой одновременного чтения несколькими приложениями и возможностью перемещения по логу и повторного чтению элементов в рамках доступного буфера (Например, открыв /dev/kmsg процесс начнёт чтение не с текущего момента, а с начала данных уместившихся в буфере). Переработка вызова printk для отправки данных в виде отдельных буферизированных записей, вместо байтового потока;Да, так лучше, спасибо.
Сначала подумал, что речь идет про /proc/kmsg. Кто-нибудь знает способ получать сообщения ядра как можно раньше? Быстрее чем `tail -f /var/log/messages` и прямее переключения в виртуальную консоль. Что-нибудь типа `cat /proc/ksmg` (сейчас оно крякозябры начинает выводить, когда буфер заканчивается, как понимаю).
> Сначала подумал, что речь идет про /proc/kmsg. Кто-нибудь знает способ получать сообщения
> ядра как можно раньше? Быстрее чем `tail -f /var/log/messages` и
> прямее переключения в виртуальную консоль. Что-нибудь типа `cat /proc/ksmg` (сейчас оно
> крякозябры начинает выводить, когда буфер заканчивается, как понимаю).А что за задачу вы решаете, если не секрет?
Да какой секрет, просто отладка ядерных модулей. Задача — получить сообщения ядра и трейс при панике с максимальной вероятностью. Крайне желательно без спецсредств, чтобы инструкцию можно было переслать кому-нибудь не очень сведущему.tail сислога поэтому не подходит, т.к. туда часто ничего не успевает записаться; переключение в виртуальную консоль не вариант при удаленном доступе через ssh; решения с железной serial console чересчур сложны.
Для локальных применений остается вариант 2, для удаленных хуже, т.к. может быть та же проблема, что с syslog.
Наиболее простое и надежное решение - netconsole.А локально в файл записать это все равно без шансов, имхо.
> А локально в файл записать это все равно без шансов, имхо.В смысле, гарантированно записать.
Нашел, спасибо, почитаю. Речь была совсем не обязательно о файле, даже работающий /proc/kmsg уже был бы чем-то.
BTRFS теперь можно в продакшен? Или опять нет?
Сказано же: лет через пять.
> Сказано же: лет через пять.Для совсем слоупоков через 10. А так - на некритичных хостах и в не сильно навороченных конфигах можно уже начинать поюзывать понемногу. Вполне стабильно, как минмум в простых конфигурациях.
Единственное что с ядром менее 3.4 лучше всерьез не юзать - там пачку багов прибили.
3 года назад говорили то же самое. Слово в слово. Уже разработан и отлажен и оттестирован, осталось отполировать насколько фишек нужных только владельцам суперкомпов из TOP10. И обязательно "у меня и Фороникса локалхост летает". 3 года а воз и ныне там. Ну уж в ядре 3.6, точно точно всем покажет. Или 3.7. Вот чувствую я, лет 5 и дозреет.
> BTRFS теперь можно в продакшен? Или опять нет?Ну вон оракель и суся уже внедрили. Официального зеленого свистка еще не было, но...
Вот наступит "14 февраля" тогда можно будет и в продакшен запускать.
Пока твоя любимая Бубунта не сделает эту фс по дефолту, (как сделала в 9.10 с ext4) для тебя не о каком продакшине речи быть не может.
И не слова о том принят ли патч убирающий майкрософтовские сиски из ядра. А ведь это очень важный момент для всего сообщества!!! :D
> И не слова о том принят ли патч убирающий майкрософтовские сиски из ядра.Как он может быть принят, если окно приема патчей закрыто уже два месяца как?
И да, я считаю, что убирать сиси, даже мелкомягкие - это регрессия.
Руки прочь от сисек! Сиськи - лучшее что смогли породить программисты Майкрософта за последние семь лет!
>Руки прочь от сисек!не могу согласиться
>Сиськи - лучшее что смогли породить программисты Майкрософта за последние семь лет!
не могу не согласиться
Там не про сиськи. Смысл того словосочетания - "отщепенка", это ругательство применяют для унижения новичков.
Что даёт поддержка контрольных сумм ext4?
> Что даёт поддержка контрольных сумм ext4?Проверку контрольных сумм метаданных, внезапно.
Новое ядро всегда лучше старого?
> Новое ядро всегда лучше старого?Есть такая пословица: старое ядро лучше новых двух.
вообще-то: старый баг лучше новых двух
Наверное надёжность, да только наверное стоит потерпеть с включением, мало ли какие там сейчас ошибки ))
Ядро вышло, да здравствует новое ядро! Какие планы на 3.6, чего-то эпохального добавится?
> Поддержка интерфейса для восстановления TCP-соединений, позволяющего зафиксировать контрольную точку с которой можно возобновить остановленное соединение. Наиболее интересным практическим применением указанной функции является возможность предотвратить разрыв соединений в результате перезагрузки системы или перемещения серверного процесса на другой хост. Например, в системах виртуализации упрощается решение таких задач как миграция работающих процессов с одного сервера на другой, незаметно для приложения на другой стороне соединения;Куясе
Да, всего лишь осталось сказать - "Эй сервачок, оставь открытое соединение на пару недель, пока я в отпуск съезжу"
> Поддержка интерфейса для восстановления TCP-соединений, позволяющего зафиксировать контрольную точку с которой можно возобновить остановленное соединение. Наиболее интересным практическим применением указанной функции является возможность предотвратить разрыв соединений в результате перезагрузки системы или перемещения серверного процесса на другой хост. Например, в системах виртуализации упрощается решение таких задач как миграция работающих процессов с одного сервера на другой, незаметно для приложения на другой стороне соединения;- Что произошло с процессингом Сбербанка?
- Все сервера, незаметно от сис.админов и пользователей эмигрировали в облако Amazon и попросили там политического убежища.
Давно пара
Этот функционал надо поддерживать софтом или оно само будет работать, стоит лишь ручками указать как?
> или оно само будет работать,Путем телепатии определив что и как? Софт который мигрирует виртуалку на другой хост наверное должен это поддерживать. С другой стороны, софту в виртуалке знать о том что его сейчас подвинут - не требуется. В чем собственно вся соль живой миграции: ни клиент ни сервер не замечают что что-то изменилось, тогда как из-под гуеста плавно вынули один хост и поставили другой :)
Замечает - на старом хосте его усыпляют, на новом будят. Если так не делать, ядро впадет в панику из-за какой-нибудь шняги типа прыжка таймера, поэтому не умеющие засыпать по команде ядра к живой миграции непригодны, FreeBSD тому пример.Умное ядро в такой ситуации еще arp-advert пошлет, дабы свитч узнал, где его теперь искать.
> КуясеТак фич давно есть, просто все кто балуется живой миграцией городили свои костыли. А теперь не будут городить - есть системный интерфейс сразу. Алилуйя!
Я вот не вдупляю, где Changelog_и от 3.2, 3.3, 3.4 и 3.5 ???
видимо, там скрипт просто не работает на версии без ревизионных номеров
to fix changelog autogen script
> Я вот не вдупляю, где Changelog_и от 3.2, 3.3, 3.4 и 3.5 ???
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1
--
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2 404
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3 404
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4 404
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5 404
Когда уже иксы, гном, фаерфокс и пульсу в ведро запилят? Жить без них не могу!
> Жить без них не могу!На кого ж ты нас покидаешь? Мы здесь, а ты -- туда??
> Когда уже иксы, гном, фаерфокс и пульсу в ведро запилят? Жить без них не могу!Иксы уже запилили, см. wayland.
как старый юзер FreeBSD пожалуй с этого ядра я начну засматривацо на линукс. а ваще есть задача кластер накромсать виртуалок и запульнуть их в HA кластер, пока думал про vsphere, но думаю стоит рассмотреть и решения на основе линуксов. Эй линуксоиды, есть достойный конкурент vsphere в ваших опенсорцных краях?
Parallels Server Bare Metal
>Переработан код планировщика задач для архитектуры NUMA;интересно, что это сулит для буллдозера, там кажется тоже NUMA
кстати, откуда инфа про NUMA?
по ссылке про это ничего нет, в отчете тоже:
http://kernelnewbies.org/Linux_3.5
Незаметно ушла целя эпоха... нет больше поддержки токенринга в ядре. Смею предположить - и нигде больше нету уже. Аминь!
> Незаметно ушла целя эпоха... нет больше поддержки токенринга в ядре.Пичаль, я за 25 лет бурной деятельности, ни разу так и не видел его.
>>>"Поддержка работы SCSI поверх FireWire или USB (поддерживается транспорт BOT >>>(Bulk Only Transport) и UAS (USB Attached SCSI)), что, например, позволяет >>>экспортировать SCSI-устройства на другой хост с использованием FireWire и USB;"Где подробней почитать как это делать, например как экспортировать устройство по FireWire?
> Где подробней почитать как это делать, например как экспортировать устройство по FireWire?""Together with the http://Linux-Iscsi.org (LIO) target infrastructure software, the new FireWire SBP-2 fabric module enables Linux 3.5 to export local storage devices via FireWire so that other systems can mount them as an ordinary FireWire storage device. Many Apple systems have offered such a "FireWire target disk mode" for some time; a screenshot by one of the contributing developers shows that MacOS X can mount a device that a Linux system has made available via the new Linux FireWire fabric module."" http://forums.opensuse.org/english/get-technical-help-here/p...
Спасибо.
в релизах каких дистрибутивов "3.5" будет? (где при его использовании проявится разница? (кто "3.5" опробовал,- напишите, как работает и в чем разница?))
Когда будет следующий релиз и что в нем будет? Будут ли внесены элементы этой ветки в другие ветки ядра? (отразится ли этот релиз на их содержании?)
> в релизах каких дистрибутивов "3.5" будет? (где при его использовании проявится разница?
> (кто "3.5" опробовал,- напишите, как работает и в чем разница?))
> Когда будет следующий релиз и что в нем будет? Будут
> ли внесены элементы этой ветки в другие ветки ядра? (отразится ли
> этот релиз на их содержании?)Рылца Мишарев в репертуаре
Пичаль, я за 25 лет бурной деятельности, ни разу так и не видел его.А я видел, сеть с циркулирующим по кругу маркером, напорядок надежнее тупого езернета, когда гарантируется одинаковое время доставки пакета независимо от обстоятельств - это ж круть. Зато эзернет дешевле, свитчи компактнее, в установке и настройке - проще... Не чета тератрипам!
Поставил в арче, нуво таки вешается ещё на опенгле с фермерами... glxinfo выдал что Gallium on NVD9(gt520) и OpenGL 3, GLSL 1.30. А глхгеарс выдал больше шестирёнок чем на радеоне, жаль больше ничего не смог опробовать - драйвер ласты клеит все время((.
Меня пока одно напрягает: со всеми криками про виртуализацию заминается вопрос очередей доступа к блочным устройствам. http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband покоится с миром, а больше типа никому не надо?Пока не будет инструмента контроля ресурсов ввода-вывода с блочных устройств, любая виртуалка способна нагнуть по доступу к диску как минимум соседей в одном с ней io-классе.
> Меня пока одно напрягает: со всеми криками про виртуализацию заминается
> вопрос очередей доступа к блочным устройствам. http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband
> покоится с миром, а больше типа никому не надо?
> Пока не будет инструмента контроля ресурсов ввода-вывода с блочных устройств,
> любая виртуалка способна нагнуть по доступу к диску как минимум соседей
> в одном с ней io-классе.криокамера? kernel/Documentation/cgroups/blkio-controller.txt
> криокамера? kernel/Documentation/cgroups/blkio-controller.txtСпасибо, пошел размораживаться.
"/sys/fs/cgroup/blkio/blkio.throttle.[read|write]_iops_device" по ходу решают.
(+ "/sys/fs/cgroup/blkio/blkio.throttle.[io_serviced|io_service_bytes]" для аккаунтинга)
А я то блин все в device-mapper искал.
А оно в cgroups с 2.6.37!* Для centos6 нужно "yum install -y libcgroup" и дальше ищем "CGroups on CentOS 6".
Кто-нибудь из использующих! Прокоментируйте ситуацию с wakelocks и энергопотреблением. Нетбуки сутками работать будут?
Сложно сказать. Если нетбук на базе новых Atom которые Cedar Trail, то поддержка видео похоже до сих пор не реализована. Значит как десктоп такой ПК проигрывает. Да и вообще, поддерживает ли wakelocks Skype для Linux?
Использовать продуктивно Atom можно как мини-сервер с копеечным энергопотреблением (тем более, если отключить клавиатуру и мышь).
Предотвращение разрывов радует :)
Не будет ни одного?