25 Ноября 2024, 11:41

Linux-ядро

Автор Vicpo, 17 Апреля 2008, 21:53

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

RomanDIA

25 Августа 2010, 20:51 #120 Последнее редактирование: 31 Мая 2011, 02:31 от Zhek@Ch
Цитата: 42 от 25 Августа 2010, 19:52[size="3"]Linux: 19 лет[/size]
Всех с праздником! http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/flower1.gif\' class=\'bbc_emoticon\' alt=\':flower1:\' />

Venhard

25 Августа 2010, 23:09 #121 Последнее редактирование: 31 Мая 2011, 02:31 от Zhek@Ch
Цитата: 42 от 25 Августа 2010, 19:52[size="3"]Linux: 19 лет[/size]
О ! А я и забыл совсем про Этот День ! Всех с Праздником ! http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />

Zhek@Ch

27 Сентября 2010, 23:15 #122 Последнее редактирование: 31 Мая 2011, 02:28 от Zhek@Ch
[size="3"]Linux-ядра 2.6.32.23 и 2.6.35.6: Обновление [/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.35.6 и 2.6.32.23, в которых исправлено 80 и 68 ошибок. Исправления затронули такие подсистемы, как DRM/i915, DRM/nv50, SCTP, ALSA, XFS, GFS2, KVM, virtio, SCSI, inotify, L2TP, UDP, TCP, USB. Отдельно отмечается устранение уязвимости (CVE-2010-2960), связанной с разыменованием NULL-указателя при передаче некорректных значений через аргумент KEYCTL_SESSION_TO_PARENT при вызове keyctl.


Zhek@Ch

20 Октября 2010, 23:36 #123 Последнее редактирование: 19 Мая 2011, 02:08 от Zhek@Ch
[size="3"]В Linux-ядре обнаружены три опасные локальные уязвимости[/size]

В реализации поддержки сетевого протокола RDS (Reliable Datagram Sockets), разработанного компанией Oracle, найдена уязвимость, позволяющая локальному злоумышленнику выполнить код с повышенными привилегиями через отправку специально оформленного запроса к RDS-сокету. Наличие уязвимости подтверждено в Linux-ядрах с 2.6.30 по 2.6.36-rc8, собранных с включенной опцией CONFIG_RDS. Большинство Linux-дистрибутивов подвержены уязвимости, так как поддержка RDS включена в виде модуля. Проверить можно командой: [color="#461b7e"]cat /boot/config-2.6.3* |grep CONFIG_RDS[/color]

Опасность уязвимости усугубляется наличием эксплоита в открытом доступе. Исправление пока доступно только в виде патча к Linux-ядру. Доступность исправлений для различных Linux-дистрибутивов можно отследить на следующих страницах: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Debian, Ubuntu.

В качестве временной меры защиты, рекомендуется запретить автоматическую загрузку RDS-модуля:

[color="#461b7e"] echo "alias net-pf-21 off" > /etc/modprobe.d/disable-rds[/color] Дополнительно сообщается об исправлении в тестовой сборке Linux-ядра 2.6.36-rc7 уязвимости в DRM-модуле для видеокарт i915. Отправка специально оформленного запроса через i915 GEM ioctl потенциально может привести к выполнению кода локального злоумышленника с привилегиями ядра системы.

Кроме того, в реализации функции "snd_ctl_new()" из звуковой подсистемы Linux-ядра найдено целочисленное переполнение, используя которое локальный злоумышленник может вызвать крах ядра или потенциально организовать выполнение кода с повышенными привилегиями через отправку специально подготовленного запроса к устройству "/dev/snd/controlC*. Проблема устранена в тестовой сборке 2.6.36-rc7.


Zhek@Ch

21 Октября 2010, 20:36 #124 Последнее редактирование: 31 Октября 2010, 09:36 от Zhek@Ch
[size="3"]Linux-ядро 2.6.36: Обзор новшеств[/size]

Спустя 80 дней с момента прошлого выпуска, увидел свет релиз Linux-ядра 2.6.36 в котором появилась поддержка новой процессорной архитектуры Tile, интегрирована технология мандатного контроля доступа AppArmor, добавлена поддержка локального кэширования CIFS-разделов, обеспечена возможность управления питанием для CPU Intel Core i3/i5 и включена подсистема LIRC для управления устройствами через инфракрасный канал связи.

В новую версию принято 10195 исправлений от 1326 разработчиков, размер патча - 48 Мб (добавлено 9256 тыс. строк кода, удалено - 9204 тыс. строк). Около 39% всех представленных в 2.6.36 изменений связаны с драйверами устройств, примерно 27% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 6% - файловыми системами и 5% c внутренними подсистемами ядра.

В тексте анонса Линус Торвальдс отметил, что подготовка версии 2.6.36 немного затянулась, поэтому следующий релиз 2.6.37 будет разрабатываться более оперативно. Чтобы успеть выпустить первый кандидат в релизы до проведения саммита разработчиков Linux-ядра, на прием новшеств для следующей версии вместо двух недель отводится ровно десять дней, после чего окно приема изменений будет закрыто.

Наиболее интересные новшества ядра 2.6.36:

  • Безопасность
    • В ядро интегрирована поддержка технологии мандатного контроля доступа AppArmor, которая позволяет контролировать полномочия процессов, определяя списки файлов с соответствующими правами (на чтение, запись, отображение в память и запуск, установку блокировки на файл и т.п.) для каждого приложения. Также AppArmor позволяет на самом общем уровне контролировать доступ к сети (например, запретить использование ICMP) и управлять POSIX capabilities. Основное отличие AppArmor от SELinux состоит в том, что SELinux оперирует ассоциированными с объектом метками, а AppArmor определяет полномочия на основании файлового пути, что заметно упрощает процесс настройки;
  • Оборудование и аппаратные архитектуры
    • Поддержка процессорной архитектуры Tile, отличающейся возможностью интеграции на одном чипе до нескольких сотен процессорных ядер. Процессорные ядра оформлены в чипе в виде связанной mesh-сети (каждый узел связан через соседние узлы сети), состоящей из независимых ячеек, каждая из которых состоит из вычислительного блока (процессор, поддерживающий основанный на MIPS набор инструкций), кэша и модуля маршрутизации, который обеспечивает связь текущей ячейки с соседями в неблокирющем режиме.
    • Поддержка новой технологии распределения питания, используемой в платформе Intel Core i3/5, отличающейся интеграцией графического процессора. В таких комбинированных чипах технология Intel Intelligent Power Sharing позволяет распределять питание между CPU и GPU, в зависимости от задач максимизируя производительность графических или вычислительных задач. Новый драйвер работает совместно с драйвером для контроля частоты CPU и DRM-драйвером i915, координирует параметры мощности и температуры с основным термальным драйвером, осуществляя мониторинг мощности и температуры GPU;
    • В состав ядра интегрирован набор драйверов, разработанных в рамках проекта LIRC и предназначенных для организации управления устройствами и обмена данными через инфракрасный порт;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Для сетевой файловой системы CIFS реализована поддержка локального кэширования данных. Поддержка кэширования реализована через подсистему FS-Cache, которая появилась в ядре 2.6.30 и ранее поддерживала кэширование для файловых систем NFS и AFS;
    • В файловой системе Ext3 теперь по умолчанию используется режим упорядоченного журналирования (mount -o data=ordered), при котором вначале на диск сбрасываются обновления данных, а потом в журнал помещаются изменения метаданных, что гарантирует отсутствие в файлах устаревших блоков данных в случае краха;
    • В файловой системе Squashfs, используемой для формирования LiveCD, появилась поддержка алгоритма сжатия LZO;
    • За неделю до релиза, из-за проблем с обеспечением целостности ABI, из ветки 2.6.35 был исключен ранее добавленный код Fnotify, нового механизма уведомления приложений (напирмер, антивирусных сканеров) об изменениях в файловой системе, идущего на смену системам inotify и dnotify (для данных систем обеспечен режим эмуляции, который работает поверх fanotify). Fanotify поддерживает отслеживание как активных событий (открытие, закрытие, чтение, запись и т.п.), так и выполнение пассивных операций, таких как открытие специального файлового дескриптора к отслеживаемому объекту, доступного только на чтение. В отличие от inotify и dnotify в новой системе устранены проблемы с масштабированием при контроле за большим числом объектов и обеспечена поддержка нотификации на основе блокировки и контроля доступа.
  • Память и системные сервисы
    • Интегрирован ряд патчей для подсистемы виртуальной памяти, направленных на увеличение отзывчивости десктоп-систем. Например, патчи минимизируют негативный эффект, проявляющийся в виде подвисаний приложений при копировании большого объема данных с медленных USB-носителей;
    • Значительно переработан алгоритм OOM Killer (Out of Memory Killer), принимающий решение об принудительном завершении процессов в ситуации катастрофической нехватки памяти (ОЗУ и swap). Выбор процессов для принудительного завершения связан со множеством нюансов, требующих учитывать большое число системных параметров. Новый OOM Killer более не приводит к завершению оболочки KDE при нехватке памяти, учитывает связь потомок-родитель (родитель теперь не завершается пока у него есть потомки), поддерживает эвристический метод блокирования разрастания большого числа процессов за короткий промежуток времени (fork-бомба);
    • Переработан механизм функционирования рабочих очередей (пулл нитей, позволяющий осуществить отложенное выполнение функций ядра), который теперь реализует динамическое управление числом внутриядерных потоков, в зависимости от нагрузки на систему, и поддержание уровня очередей в допустимых пределах (если очередей больше, чем число CPU, наблюдается падение производительности из-за начала паразитного переключения контекста). Новая система также способна заменить код "slow-work", альтернативного пула потоков для выполнения некоторых операций, для которых традиционные рабочие очереди не подходят;
    • Активирована возможность использования интегрированного в прошлой версии ядра отладчика KDB при работе в графическом режиме. Нажатие Sysrq-g теперь при работе X-сервера отображает отладочную консоль и выходит из нее при вводе команды "go". Поддержка связки KMS + KDB пока доступна только для чипов Intel. Отладчик KDB разработан в недрах компании SGI и, в отличие от Kgdb, не требует для отладки второго компьютера, на котором запущен фронтенд gdb. С помощью KDB можно инспектировать работу ядра на локальной системе, но его слабым звеном является отсутствие поддержки отладки на уровне исходных текстов;
  • Сетевая подсистема
    • Проведена оптимизация кода BPF-интерфейса (Berkeley Packet Filter), используемого для организации перехвата пакетов;
    • В NetFilter добавлена поддержка цели CHECKSUM для вычисления и заполнения поля с контрольной суммой для пакетов в котором данное поле не заполнено (пример: "[color="#461b7e"]iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill[/color]");
    • В NetFilter добавлена возможность привязки правила к CPU (xt_cpu) и IPVS (xt_ipvs). Например, для максимизации использования кэша и осуществления всего цикла обработки в рамках одного CPU, можно привязать несколько серверных обработчиков к определенным CPU и затем организовать перенаправление в зависимости от того на каком CPU был обработан пакет: "[color="#461b7e"]iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080[/color]";
    • В реализации технологии "bonding" (превращение нескольких физических сетевых интерфейсов в один виртуальный) добавлена возможность управления со стороны пользователя выбором исходящего slave-интерфейса в режимах round-robin и active-backup;
    • В беспроводной стек mac80211 добавлена поддержка аппаратных ARP-фильтров и опция для настройки мощности передатчика.

hedgeven

22 Октября 2010, 00:20 #125 Последнее редактирование: 31 Января 2011, 08:44 от Zhek@Ch
Цитата: Zhek@Ch от 21 Октября 2010, 20:36[size="3"]Linux-ядро 2.6.36: Обзор новшеств[/size]
Круть! И очень кстати. Я как раз мучался с новым ноутбуком знакомой Toshiba Satellite C650 - не работали acpi, usb, wifi(Ubuntu)...
Уже думал забить и предложить ей поменять его на другой, пока не поздно. Но как прочитал новость, обновил ядро, и все заработало!
Jah will give us everything...

Zhek@Ch

31 Октября 2010, 09:38 #126 Последнее редактирование: 31 Октября 2010, 09:38 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.27.55, 2.6.32.25 и 2.6.35.8 [/size]

 Представлены очередные корректирующие релизы Linux-ядра: 2.6.35.8, 2.6.32.25 и 2.6.27.55, в которых исправлено 106, 65 и 17 ошибок. В анонсе подчеркивается обязательность проведения обновления. Также упоминается о том, что в будущем для ветки 2.6.35.x планируется выпустить только одно обновление, после чего поддержка будет прекращена. Пользователям рекомендуется спланировать переход на версию 2.6.36.

Из исправлений можно отметить устранение трех опасных локальных уязвимостей, о которых сообщалось ранее (выполнение кода локального злоумышленника через модуль с поддержкой протокола RDS, через DRM-модуль для видеокарт i915 и через обращение к звуковому устройству "/dev/snd/controlC*).



Zhek@Ch

31 Октября 2010, 09:42 #127 Последнее редактирование: 03 Августа 2011, 00:45 от Zhek@Ch
[size="3"]SCHED_DEADLINE: Третья версия планировщика задач для ядра Linux [/size]

Представлена третья версия набора патчей SCHED_DEADLINE для ядра Linux, реализующих функции планировщика задач реального времени с возможностью изоляции (резервирования) пропускной способности ресурсов, основывающегося на алгоритме EDF (Earliest Deadline First - приоритизация задач с более ранним временем завершения). В отличие от не realtime-планировщиков SCHED_DEADLINE способен гарантировать необходимое время выполнения запущенной задачи, независимо от общего количества обслуживаемых процессов.

В новой версии добавлена поддержка глобальных кластерных многопроцессорных систем через использование динамической миграции задач. Это означает, что задачи при помощи алгоритма pushes & pulls (толкай-и-тяни), могут мигрировать между процессорами или логическими множествами процессоров (напр. NUMA-nodes). Кроме того, было удалено управление пропускной способностью задач с использованием ©groups, в пользу root_dоmаins. Root_domains, так же, является механизмом учета пропускной способности задач и был разработан совместно с ReTiS Lab и Evidence S.r.l из проекта ACTORS EU.

Сравнительный тест между Fair, RealTime и DEADLINE планировщиками (платформа Intel Core2 Duo CPU P8600 @ 2.40GHz x86_64, время в мс.):



Для непосредственного управления работой планировщика может потребоваться модифицированная версия пакета schedtool, доступная на странице загрузки.



Zhek@Ch

04 Ноября 2010, 08:38 #128 Последнее редактирование: 04 Ноября 2010, 08:38 от Zhek@Ch
[size="3"]Выпуск Linux-ядра 2.6.37-rc1. Оценка производительности Linux-ядер за последние 5 лет[/size]

На днях Линус Торвальдс представил первый кандидат в релизы Linux-ядра 2.6.37. Цикл подготовки 2.6.37-rc1 был заметно короче обычного из-за намерения закрыть окно приема изменений до саммита разработчиков Linux-ядра. Относительно версии 2.6.36 было внесено около 10 тыс. изменений. Из наиболее интересных новшеств отмечается окончательный уход от использование устаревшей глобальной BKL-блокировки (Big Kernel Lock), которая оставалась многие годы узким местом в некоторых подсистемах.

Другое ключевое новшество 2.6.37-rc1 - интеграция кода начальной поддержки хост-режима Xen (Dom0). Для полноценной поддержки Dom0 в ядре недостает бэкенд-драйверов, которые планируется интегрировать в версию 2.6.38. Для файловой системы Ext4 была добавлена функция "Lazy Inode Table Initialisation", созданная с целью значительного сокращения времени создания Ext4-разделов.

Ресурс Phoronix опубликовал результаты тестирования производительности 25 версий Linux-ядра, с 2.6.12 по 2.6.37-rc1. На представленных графиках хорошо прослеживается возникновение регрессий и проведение оптимизаций. Что касается производительности ядра 2.6.37-rc1, то в 7 тестах изменения скорости работы не зафиксировано, в 6 тестах производительность незначительно возросла, в 3 - незначительно упала, в 2 - заметно упала (Apache, Z-Zip), в 3 - заметно возросла (PostMap, FS-Mark, Threaded I/O Tester).



isules

05 Ноября 2010, 08:15 #129 Последнее редактирование: 31 Января 2011, 08:45 от Zhek@Ch
Цитата: Zhek@Ch от 04 Ноября 2010, 08:38[size="3"]Выпуск Linux-ядра 2.6.37-rc1. Оценка производительности Linux-ядер за последние 5 лет[/size]
С новым функционалом LIRC у меня не собралось, через 3 дня я получил подтверждение от моего Московского приятеля, можно будет поговорить, по крайней мере, о 36-8, наверное. Проверьте кто-нибудь, может ли быть собрано ядро с новым функционалом LIRC у вас и отпишите.

Zhek@Ch

05 Ноября 2010, 22:28 #130 Последнее редактирование: 05 Ноября 2010, 22:28 от Zhek@Ch
[size="3"]Для встраиваемых систем определена "флагманская" версия Linux-ядра [/size]

В результате обсуждений, проведенных на двух последних саммитах, разработчиков Linux для встраиваемых систем, сообщество решило определить конкретные версии Linux-ядра, как "флагманские версий", с целью уменьшения фрагментации версий и уменьшению затрат на поддержание актуальной кодовой базы. В списке рассылки, Тим Бёрд (Tim Bird) объявил, что версия 2.6.35 будет первой флагманской версией для встраиваемых систем, и она будет поддерживаться (по крайней мере) Sony, Google, MeeGo и Linaro. Тим пояснил: «Во-первых, необходимо разъяснить, что значит флагманская версия. Это означает, что поставщикам и производителям встраиваемых систем будет предложено использовать конкретную версию ядра для разработки программного обеспечения, интеграции и тестирования. Кроме того, профессиональные разработчики и сообщество согласны работать вместе для долгосрочного поддержания стабильной флагманской версии ядра (до объявления следующей флагманской версии), в целях разделения затрат и повышения стабильности и качества».

Под разделением затрат подразумевается обмен исправлениями, дополнениями и результатами разработок, с целью уменьшения повторных работ производимых обособленными фирмами и разработчиками. В настоящее время каждый из производителей, использующих Linux в своих устройствах, выбрав в качестве отправной точки определенную версию ядра, вынужден в последствии до миграции на новую версию своими силами поддерживать данное ядро в актуальном состоянии, адаптируя важные патчи и реализуя необходимые улучшения. Например, компания Google изначально использовала в платформе Android версию Linux-ядра 2.6.27, в которой накопился огромный объем расходящихся с основной веткой ядра изменений, что вызвало большие трудности при последующей миграции на ядро 2.6.32.

Использовать последние "ванильные" версии ядра мешает то, что много времени уходит на подготовку и тестирование прошивки, в ядро как правило интегрируются дополнительные проприетарные компоненты, такие как драйверы для устройств, производители которых не намерены открывать программные спецификации. Таким образом, получается, что в поставляемых сегодня новинках потребительской электроники невозможно использовать последние версии ядра, а к моменту окончания жизненного цикла устройства ядро уже успевает сильно устареть и потерять актуальность для основного сообщества разработчиков. Дополнительно можно отметить, что сообщество уже достаточно давно выделяет из общей массы выпусков ветки с длительным сроком поддержки, к которым относятся 2.6.16, 2.6.27 и 2.6.32.



Zhek@Ch

16 Ноября 2010, 17:52 #131 Последнее редактирование: 16 Ноября 2010, 17:56 от Zhek@Ch
[size="3"]В Linux-ядро будут внесены улучшения, существенно влияющие на интерактивность[/size]

В скором времени в Linux-ядро будет принят патч, который повышает интерактивность выполнения десктоп-задач, что позволяет беспроблемно выполнять повседневные задачи, такие как просмотр веб-сайтов и проигрывание видеороликов, даже в том случае, если процессор очень сильно нагружен фоновыми приложениями, например, многопоточной компиляцией, математическими расчётами, участием в различных вычислительных проектах и т.д. Данный патч специальным образом разбивает выполняемые задачи на группы в привязке к TTY, которые затем получают процессорные такты более равномерно, что позволяет, например, запустить в фоне компиляцию какого-либо приложения с количеством заданий, превышающих количество ядер процессоров в 2-3-4 и более раз, при этом остается возможность по-прежнему пользоваться плавной прокруткой в веб-браузере, что позволяет добиться загрузки веб-страниц без задержек, связанных с высокой загрузкой системы.

Размер патча составляет всего около 200 строк. По замерам самого автора во время критически высокой загрузки системы (make -j10), максимальная отзывчивость уменьшилась в 10 раз, средняя отзывчивость улучшилась в 20 с лишним раз. К сожалению окно приема изменений для включения в ядро 2.6.37 уже закрыто, поэтому новая возможность будет интегрирована в ядро 2.6.38. Активация нового механизма группировки задач в планировщике производится через переменную /proc/sys/kernel/sched_autogroup_enabled.

Линус Торвальдс высоко оценил работу автора, на собственном примере убедившись, что даже при запуске 64 копий компилятора GCC (make -j64, load average выше 50) система по-прежнему оставалась полностью работоспособной и отзывчивой. Не стесняясь выражений, Торвальдс назвал назвал этот патч "killer feature" (что приблизительно значит "убийственная возможность"). Наглядно оценить разницу в работе нагруженной системы с патчем и без него, можно на данных видеороликах.



Zhek@Ch

17 Ноября 2010, 19:28 #132 Последнее редактирование: 17 Ноября 2010, 19:28 от Zhek@Ch
[size="3"]Для Linux представлен универсальный инструмент для трассировки программ [/size]

В ответ на сожаление Линуса Торвальдса об отсутствии для Linux удобной и понятной обычным пользователям утилиты для задействования современных возможностей Linux-ядра по трассировке программ, Томас Глейкснер (Thomas Gleixner) представил на суд разработчиков утилиту "trace". В отличие от усложненных профессиональных инструментов, подобных утилите "perf", "trace" отличается простотой использования и пригодностью для решения повседневных задач. Утилита пока не оформлена в отдельный репозиторий и требует загрузки Git-репозитория с деревом ядра.

По заявлению разработчика, несмотря на то, что возможности ядра по трассировке программ за последние годы существенно возросли, так и не удалось создать инструмент, сравнимый по своему удобству с такими ветеранами как strace, за исключением появления таких мощных специализированных инструментов, как PowerTop и LatencyTop. Утилита trace направлена на то, чтобы переломить сложившуюся ситуацию и совместить легкость использования и мощь инфраструктуры профилирования "perf".

Процесс работы с trace сводится к однократной трассировке приложения, сохранению результатов в файл и последующему анализу результатов, от генерации общих сводных отчетов до все более и более глубокого погружения в детали, с возможностью задания фильтров для выделения интересующих событий (системные вызовы, связанные с работой процесса события (fork/clone/exit), mmap-события, работа планировщика задач и т.п.). Особенностью утилиты является поддержка одновременной трассировки одной и той же программы разными пользователями.

Из планов на будущее отмечается поддержка возможностей трассировки, привязанных к отслеживанию сетевой и дисковой активности приложения, поддержка команды 'trace diff' для наглядного сравнения нескольких трассировок, реализация возможности инициирования трассировки на лету, по PID-идентификатору уже запущенного процесса.

Наиболее типичные стадии работы с trace:

  • "trace record имя_программы" - создание файла trace.data с результатами трассировки программ и всех порожденных потомков;
  • "trace summary" - вывод краткого суммарного обзора результатов трассировки;
  • "trace report" - формирования детального отчета;
  • "trace check" - проверка какие из возможностей ядра по трассировке программ доступны в данный момент.

Zhek@Ch

23 Ноября 2010, 15:27 #133 Последнее редактирование: 23 Ноября 2010, 15:28 от Zhek@Ch
[size="3"]Обновление Linux-ядра: 2.6.27.56, 2.6.32.26, 2.6.35.9 и 2.6.36.1 [/size]

Представлены очередные корректирующие релизы Linux-ядра: 2.6.27.56, 2.6.32.26, 2.6.35.9 и 2.6.36.1, в которых исправлено 5, 44, 81 и 65 ошибок. В анонсе подчеркивается обязательность проведения обновления без явного указания на причины. Также сообщается, что версия 2.6.35.9 является последней в серии 2.6.35 (поддержка данной серии прекращена, версии 2.6.27.x и 2.6.32.x относятся к категории с длительным сроком поддержки). Из систем, в которых присутствуют исправления можно отметить: NFS, SCSI, libsas, USB, KVM, CIFS, Bluetooth.



Zhek@Ch

26 Ноября 2010, 01:19 #134 Последнее редактирование: 26 Ноября 2010, 01:22 от Zhek@Ch
[size="3"]Для Linux-ядра доступны пакеты для кросс-компиляции с использованием GCC 4.4.5 и 4.5.1[/size]

Тони Бридс (Tony Breeds) представил в списке рассылки разработчиков Linux-ядра сборки GCC 4.4.5 и 4.5.1, сформированные для кросс-компиляции Linux-ядра для различных аппаратных архитектур. Так как представленные компиляторы не содержат поддержку libc, они пригодны только для сборки Linux-ядра. Представленный комплект позволяет организовать сборку ядра для таких архитектур, как sparc, alpha, hppa, bfin, cris, m68k, arm и т.п., используя для сборки обычный компьютер на базе архитектуры i686 или x86_64.



Zhek@Ch

26 Ноября 2010, 01:58 #135 Последнее редактирование: 26 Ноября 2010, 02:00 от Zhek@Ch
[size="3"]Новый способ совершения локальной DoS-атаки в Linux[/size]

Найден довольно простой способ совершения локальной DoS-атаки в Linux, основанный на использовании функции socketpair(). Код работает от любого пользователя. Процесс находится в запущенном состоянии, но не "убивается" через SIGKILL (kill -KILL). Поглощает 100% процессора и все доступные файловые дескрипторы в ядре. Для временного решения проблемы можно использовать grsecurity или применить к ядру патч:

[color="#461b7e"]diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index c8df6fd..40df93d 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -259,9 +259,16 @@ static void inc_inflight_move_tail(struct unix_sock *u)
 }

 static bool gc_in_progress = false;
+#define UNIX_INFLIGHT_TRIGGER_GC 2000

 void wait_for_unix_gc(void)
 {
+ /*
+ * If number of inflight sockets is insane,
+ * force a garbage collect right now.
+ */
+ if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
+ unix_gc();
 wait_event(unix_gc_wait, gc_in_progress == false);
 }

[/color]

Zhek@Ch

26 Ноября 2010, 02:17 #136 Последнее редактирование: 26 Ноября 2010, 02:20 от Zhek@Ch
[size="3"]Обновление аппаратной инфраструктуры kernel.org [/size]

Проект kernel.org, в рамках которого осуществляется распространение исходных текстов Linux-ядра и мобильной платформы Android, хостинг Git-репозиториев, размещение связанных с разработкой ядра сервисов (например, wiki и bugzilla), поддержка зеркал многих открытых проектов и дистрибутивов, объявил о значительном обновлении аппаратного обеспечения, используемого для поддержания инфраструктуры. Новое оборудование было любезно предоставлено проекту компанией Google, которой компания HP предоставила на покупку данного оборудования существенную скидку. Новое оборудование задействовано для двух серверов, используемых для поддержания зеркал, а также для основного бэкенд-сервера и дополнительного сервера для генерации динамического web-контента.

Процесс обновления продолжался примерно год и был завершен в начале ноября, после чего администраторы проекта отметили значительное повышение пропускной способности. Территориально все серверы kernel.org размещены в США в Лаборатории открытого кода (Open Source Lab) Университета Орегона (OSUOSL). Два из четырех новых серверов полностью заменят собой всю инфраструктуру поддержания зеркал, серверы в которой работают без обновления уже пять лет.

Всего в инфраструктуре kernel.org в настоящий момент присутствует 12 серверов. После добавления второго сервера для динамического контента, удалось обеспечить резервирование таких сервисов как wiki, kerneloops и bugzilla. Таким образом, теперь все ресурсы kernel.org продублированы и могут продолжать функционирование при выходе из строя любого из фрондэнд- иди бэкенд-серверов.
Характеристики двух новых серверов, используемых для поддержания зеркал:

  • Форм-фактор: 6U;
  • Модель: DL380 G7
  • 2 четырехядерных CPU E5640 Intel Xeon;
  • 144 Гб ОЗУ (DDR3 ECC)
  • Два внешних дисковых шасси MSA70;
  • Два RAID-контроллера P812;
  • 66 SAS-дисков (10K RPM, 300GB).
Основной бэкенд-сервер:

  • DL380 G6;
  • 2 четырехядерных CPU X5550 Intel Xeon;
  • 32G DDR3 ECC ОЗУ;
  • Одно внешнее дисковое шасси MSA60;
  • Два RAID-контроллера P812;
  • Восемь SAS-дисков 300G 10K RPM
  • Двенадцать SAS-дисков 300G 15K RPM
Дополнительный сервер для динамических web-приложений:
  • DL380 G6;
  • 2 четырехядерных CPU X5550 Intel Xeon;
  • 32G DDR3 ECC ОЗУ;
  • Одно внешнее дисковое шасси MSA60;
  • Один RAID-контроллер P812;
  • Восемь SAS-дисков 300G 10K RPM

Zhek@Ch

03 Декабря 2010, 19:50 #137 Последнее редактирование: 03 Декабря 2010, 19:50 от Zhek@Ch
[size="3"]Изменение процедуры поддержки стабильных релизов Linux-ядра [/size]

Грег Кроа-Хартман (Greg Kroah-Hartman), мантейнер нескольких подсистем Linux ядра, анонсировал реструктуризацию процесса выпуска обновлений для уже выпущенных релизов Linux-ядра. В соответствии с новой схемой, официальные обновления будут выпускаться только для последнего релиза ядра, при выходе следующего релиза поддержка прошлой ветки будет прекращаться. Такой метод поддержки только последних выпусков был введен около пяти с половиной лет назад, пока в ответ на пожелания разработчиков Linux-дистрибутивов не было решено продолжить выпуск обновлений для ветки 2.6.16.

К сожалению выпуск обновлений для старых веток отнимает много ресурсов и времени у майнтейнера серии "stable", поэтому решено вернуться к истокам и окончательно стабилизировать только одну и две последних ветки. Тем не менее, с целью упрощения поддержки ядра в Linux-дистрибутивах, поддержка веток с увеличенным временем выпуска обновлений будет продолжена, но данные ветки будут развиваться в рамках отдельной серии "longterm". Особое внимание обращается на то, что ветки с увеличенным временем поддержки будут обслуживаться и обновляться отдельно назначенными майнтейнерами, но в соответствии с правилами разработки стабильных релизов Linux-ядра.

Работа над ядрами 2.6.27 и 2.6.32, ранее отмеченными как выпуски с длительным временем поддержки, будет продолжена, но уже не в цикле подготовки стабильных релизов, а в отдельном longterm-процессе, лучше отражающем свое назначение. Наиболее вероятно, что поддержка ветки 2.6.27 скоро будет прекращена и обновления будут продолжать выходить только для ветки 2.6.32, работу над которой будет курировать сам Грег. Из других веток, длительная поддержка может быть применена для ядра 2.6.35, в случае если найдется достойный мантейнер, способный взять в свои руки подготовку дальнейших обновлений. Так как заведовать longterm-ветками будет отдельный майнтейнер, основные разработчики Linux-ядра не будут терять на данные устаревшие ветки свое время и обеспечат поддержку только самых свежих выпусков.



Zhek@Ch

08 Декабря 2010, 23:11 #138 Последнее редактирование: 08 Декабря 2010, 23:13 от Zhek@Ch
[size="3"]Представлен новый локальный эксплоит для Linux-ядра [/size]

Ден Росенберг (Dan Rosenberg), консультант по безопасности компании Virtual Security Research, опубликовал в списке рассылки FullDisclosure код эксплоита, позволяющего локально получить привилегии суперпользователя в Linux. Эксплоит примечателен тем, что его работа основана на одновременном использовании трех, с виду незначительных, уязвимостей в Linux-ядре, подчеркивая, что сочетание нескольких факторов, по отдельности приводящих к краху ядра (DoS-уязвимости), могут привести к неожиданным последствиям.

В качестве основы для построения эксплоита используется обнаруженная несколько дней назад уязвимость CVE-2010-4258, позволяющая сохранить значение NULL по любому переданному пользователем указателю внутри адресного пространства ядра. Уязвимости CVE-2010-3849 и CVE-2010-3850 обеспечивают возможность разыменования NULL-указателя и используются в качестве вспомогательных методов для создания нужных условий эксплуатации первой уязвимости (вызов обработчика OOPS-событий), что в конечном итоге приводит к передаче управления коду злоумышленника. Практически, вспомогательные уязвимости CVE-2010-3849 и CVE-2010-3850 (разыменование указателя и активация необходимого для этого Econet-модуля) уже исправлены во многих дистрибутивах, но вместо них могут быть использованы любые подобные уязвимости, которые всплывают регулярно.

Эксплоит протестирован в системах Ubuntu 10.04 и 10.10 со штатными Linux-ядрами, но теоретически функционирует со всеми Linux-ядрами серии 2.6.x, включая последний тестовые выпуск ядра 2.6.37. Опубликованный код эксплоита оформлен в виде прототипа, намеренно модифицированного для защиты от необдуманного использования неискушенными обывателями (для его работы в RedHat, Slackware и Debian потребуется модификация, а для Ubuntu ранее было выпущено обновление с исправлением проблем CVE-2010-3849 и CVE-2010-385). Появление обновлений с исправлением уязвимости CVE-2010-4258 для различных Linux-дистрибутивов можно отследить на следующих страницах: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Debian, Ubuntu.

До момента выхода обновлений, для временной защиты достаточно использовать (уже включено по умолчанию в RHEL и CentOS):
[color="#461b7e"][color="#000000"]
echo 1 > /proc/sys/kernel/panic_on_oops[/color][/color]


Zhek@Ch

05 Января 2011, 14:57 #139 Последнее редактирование: 05 Января 2011, 14:58 от Zhek@Ch
[size="3"]Релиз Linux-ядра 2.6.37[/size]

Линус Торвальдс представил релиз Linux-ядра 2.6.37, в котором представлена поддержка механизма синхронизации TINY_PREEMPT_RCU, продолжена работа по избавлению ядра от глобальных блокировок, в состав включены дополнительные элементы для обеспечения поддержки Xen Dom0, активирован механизм нотификации об изменениях в файловой системе fanotify, обеспечена поддержка Hugepage-режима увеличения базового размера адресуемых страниц памяти. В новую версию принято 12237 (в 2.6.36 было 10195) исправлений от 1456 (1326) разработчиков, размер патча - 67 Мб (добавлено 11139 тыс. строк кода, удалено - 11131 тыс. строк). Около 39% всех представленных в 2.6.37 изменений связаны с драйверами устройств, примерно 24% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 6% - файловыми системами и 5% c внутренними подсистемами ядра;

Наиболее интересные новшества ядра 2.6.37:

  • Виртуализация и безопасность
    • Начальная поддержка хост-режима системы виртуализации Xen (Dom0). Для полноценной поддержки Dom0 в Linux-ядре теперь недостает только бэкенд-драйверов, которые планируется интегрировать в версию 2.6.38;
    • В состав ядра включены Xen-драйверы privcmd и xen-pcifront. Добавлена поддержка Xen PCI, реализована возможность грячей замены паравиртуализированных PCI-устройств (Xen paravirtualised PCI hotplug);
  • Память и системные сервисы
    • TINY_PREEMPT_RCU - легковесный вариант механизма синхронизации RCU (Read-copy-update), позволяющего организовать одновременный доступ к данным без использования блокировок. TINY_PREEMPT_RCU отличается значительным уменьшением потребления памяти, но поддерживает только однопроцессорные системы;
    • Окончательный уход от использования устаревшей глобальной BKL-блокировки (Big Kernel Lock), которая оставалась многие годы узким местом в некоторых подсистемах;
    • Объявлена устаревшей и отключена по умолчанию вторая версия иерархии объектов в служебной файловой системе sysfs;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Для файловой системы Ext4 добавлена функция "Lazy Inode Table Initialisation", созданная с целью значительного сокращения времени создания Ext4-разделов. Добавлена поддержка контроля за Ext4 через sysfs;
    • В файловой системе XFS поддержка опции "-o delaylog" переведена в разряд стабильных. Опция предназначена для организации отложенной записи в лог в режиме журналирования, позволяя организовать накопление нескольких асинхронных транзакций в памяти, вместо их многократного сброса в лог. Использование отложенной записи позволяет заметно сократить число операций ввода/вывода, связанных с журналированием, и повысить производительность при интенсивных операциях с мета-данными;
    • Fnotify, новый механизм уведомления приложений (например, антивирусных сканеров) об изменениях в файловой системе, идущего на смену системам inotify и dnotify (для данных систем обеспечен режим эмуляции, который работает поверх fanotify). Fanotify поддерживает отслеживание как активных событий (открытие, закрытие, чтение, запись и т.п.), так и выполнение пассивных операций, таких как открытие специального файлового дескриптора к отслеживаемому объекту, доступного только на чтение. В отличие от inotify и dnotify в новой системе устранены проблемы с масштабированием при контроле за большим числом объектов и обеспечена поддержка нотификации на основе блокировки и контроля доступа.
    • Появилась поддержка опции "root=PARTUUID=hex-uuid", нацеленной на корректное определение блочных устройств с которых должно производиться монтирование корневого раздела, через указание UUID дискового раздела;
    • В файловой системе OCFS2 (Oracle Cluster File System) добавлена поддержка монтирования дисковых разделов, размером более 16 Тб. Добавлена новая опция монтирования "coherency=*" для реализации обеспечения согласованности данных в кластере при режиме записи O_DIRECT. Добавлен ioctl OCFS2_IOC_INFO, позволяющий получить непривилегированному пользователю статистику о работе ФС;
    • В реализацию файловой системы CIFS добавлена поддержка опций монтирования "mfsymlinks" и multiuser", а также возможность привязки к определенному локальному IP;
    • В файловой системе NFS добавлена опция '-olocal_lock' для локального хранения локов;
  • Сетевая подсистема
    • Добавлена возможность конфигурирования подсетей как локальных адресов, например, для привязки всех адресов подсети 10.1.0.0/16 к интерфейсу eth0 (ответ будет получен при запросе любого адреса из данной подсети), необходимо выполнить "ip rule add from all iif eth0 lookup 200; ip route add local 10.1/16 dev lo proto kernel scope host src 127.0.0.1 table 200";
    • Поддержка программной эмуляции аппаратных механизмов акселерации VLAN. Поддержка 802.1q VLAN для Infiniband over Ethernet;
    • Проведена большая работа по оптимизации работы на SMP-системах кода, связанного с маршрутизацией и работой драйверов;
    • Приведены в соответствие (увеличены) с RFC 3390 и RFC 5681 параметры формирования начального размера скользящего окна TCP;
    • В ядро интегрирован код проекта accel-pptp, который представляет собой высокопроизводительную реализацию сервера PPTP/PPPoE/L2TP и клиента PPTP, основанную на коде проектов poptop и pptpclient, но благодаря работе на уровне ядра, отличающуюся от poptop/pptpclient существенным ускорением работы и понижением нагрузки на CPU. В состав ядра включено два модуля: "pptp" (PPP over IPv4, Point-to-Point Tunneling Protocol) и "gre" (демультиплексор GRE-пакетов);
  • Оборудование и аппаратные архитектуры
    • В DRM-модуле i915 для видеокарт Intel реализована поддержка вывода звука через DisplayPort и HDMI порты, обеспечена поддержка GPU, встроенного в процессоры SandyBridge. Добавлен драйвер-заглушка для Intel GMA500 (Poulsbo). В Nouveau добавлена поддержка сенсоров, например, для слежения за температурой. В Radeon добавлена поддержка карт семейства Evergreen. В VIAFB добавлена начальная поддержка VX900;
    • Интегрирован драйвер для поддержки аппаратного акселератора AES-шифрования на платформах OMAP2/3;
    • Новые драйверы для беспроводных устройств: ath6kl (AR6003), brcm80211 (Broadcom 802.11n), r8712u (RealTek RTL8712U/RTL8192SU), Beeceem USB Wimax, SBE 2T3E3;
    • Драйверы для USB-устройств: Flarion OFDM, кард-ридеры ENE,
    • Драйверы для звуковых плат: Intel SST #