Новости «Ядро Linux»
Вышло ядро Linux 3.2
После двух с половиной месяцев разработки выпущена новая версия ядра Linux 3.2.
( читать дальше... )
>>> Официальный анонс (lkml.org)
Вышла первая версия патчсета pf-kernel для Linux 3.1
С небольшой задержкой, связанной с отсутствием необходимых патчей, вышла первая версия патчсета pf-kernel для свежего ядра Linux v3.1.
В этой версии:
- стабилизационный патч Linux v3.1.1;
- патчсет от Кона Коливаса (Con Kolivas) 3.1.0-ck2, включающий в себя свежайшую версию планировщика процессов BFSv415;
- планировщик ввода-вывода BFQ v3-r1;
- альтернативная подсистема гибернации TuxOnIce по состоянию на v3.1-rc8;
- патч, уменьшающий энергопотребление системы до уровня Linux v2.6.37.
Также открыт канал на Twitter, в котором, по возможности, будут публиковаться новости, связанные с разработкой pf-kernel.
Напоминаю, что этот патч используется на свой страх и риск. TuxOnIce и патч для уменьшения энергопотребления лично мной не были протестированы. Жду отзывов.
Также напоминаю, что патч применяется к чистому ядру 3.1 без стабилизационных патчей.
Официальный сайт (доступен и в сети IPv6)
>>> Скачать патч (natalenko.name)
Книга «Модули ядра Linux»
На сайте rus-linux.net опубликован проект книги О.И.Цилюрика «Модули ядра Linux». Книга посвящена программированию модулей ядра Linux и рассчитана на опытных разработчиков системного программного обеспечения. Предполагается, что читатель может и не иметь богатого опыта в программировании именно для ядра Linux, или даже вообще в программировании для этой системы, но имеет какой-то опыт в системном программировании для других операционных систем, что послужит базой для построения аналогий. Даже если чтение книги и не подвигнет читателя к написанию собственных компонент ядра (что совершенно не обязательно), то, по крайней мере, поможет более точному пониманию тех процессов, которые происходят в ядре. На примерах дан обстоятельный обзор возможностей в программировании модулей ядра, этого набора примеров достаточно, чтобы начать писать свой собственный драйвер-модуль Linux, дальше наращивая его функциональность. Предназначено для программистов-разработчиков, ведущих реальные проекты. Конструктивные замечания по тексту можно направлять автору на адрес olej at front dot ru.
>>> Подробности (rus-linux.net)
Вышло ядро Linux 3.1
После продолжительной разработки (приблизительно 3 месяца — самый долгий период за последнее время — в основном, «благодаря» взлому kernel.org) вышла новая версия ядра Linux 3.1.
Из нововведений следует отметить:
( читать дальше... )
Новость подготовлена по мотивам H Online, а именно: раз, два, три и четыре.
Детальнее о новшествах и отдельно о драйверах
>>> Официальный анонс (gmane.org)
Oracle Dtrace Linux
Компания Oracle озвучила планы по портированию Dtrace и Zones из Solaris в Linux
>>> Подробности (slashdot.org)
Годовщина первого публичного релиза ядра Linux
20 лет назад вышел Linux 0.0.1.
Ядро 0.0.1 имело размер 62 Кб в сжатом виде и содержало около 10 тыс. строк кода. Поддерживалась только архитектура i386, а загрузка происходила с дискеты.
>>> Скачать тарболл (linuxgrill.com)
Хостинг git-репозитория Linux временно переехал на GitHub
Линус Торвальдс (Linus Torvalds), LKML, воскресение, 4 Сентября 2011 16:27:25 UTC-7:
Прошла ещё одна неделя, и пришло время для ещё одного релиз-кандидата. Однако, master.kernel.org всё ещё не работает, и так как разработка не очень ведётся, то я решил пропустить эту неделю.
Но блин, вся суть (ну или почти вся) распределённой разработки заключается в том, что никакое место принципиально не отличается от любого другого, и так как я уже создал аккаунт на github ради divelog, почему бы не проверить, подойдёт ли оно мне, выложив туда весь мой репозиторий ядра?
Так что пока kernel.org отключён на аудит, давайте посмотрим, как будет пахать github:
https://github.com/torvalds/linux
ЗАМЕЧАНИЕ! Первое, что надо сделать, когда видите подобное заявление о любом новом публичном хостинге, это проверить, что да, его делает тот человек, о котором вы и думаете. Ну и как это сделать?
Можете выбрать любые пункты из списка:
- Чёрт, это ж открытый код, какая разница, кто это выложил, я просто хочу новое ядро, и хотя нет обновлений с kernel.org, мне действительно нужно исправление из нового ядра. Я скачаю его, потому что мне надо тренировать мой процессор в сборке ядра с randconfig. А ещё мне нравится жить в опасности.
- Да, письмо явно выглядит как от Линуса Торвальдса, и все знают, что SMTP не обманешь, так что это должен быть он.
- Итак, я могу вытащить дерево исходников, и знаю, что у Линуса всегда тэги подписаны, и могу проверить, что тэг 3.1-rc5 подписан его известным публичным ключом GPG, который я где-то достал. Если всё сойдётся, то для меня неважно, кто анонсировал релиз, я просто верю, что дерево подписал Линус.
- Я просто подожду, пока kernel.org прочухается.
Что вам больше подходит.
Ещё одно замечание — если вы просто сделаете
то тэги вы не получите, так как это не ваша ветка. Сделайте также:git pull https://github.com/torvalds/linux.gitчто бы получить не только изменения в дереве, но и тэги.git fetch --tags <...>
>>> Подробности (lkml.org)
RHEL6 OpenVZ-ядро объявлено стабильным
После примерно года разработки команда OpenVZ объявила о стабилизации ядер OpenVZ, базирующихся на коде Linux Kernel из Red Hat Enterprise Linux 6. Это значит, что функциональность реализована полностью, ликвидированы все известные критические ошибки, ядро рекомендуется для использования в продакшн.
Благодаря переходу с ядер из RHEL5, использовавшихся в предыдущей ветке, на ядра из RHEL6 обеспечена лучшая производительность и масштабируемость, особенно на многопроцессорных платформах с 16-ю и более CPU, более полная поддержка аппаратуры. В OpenVZ реализовано улучшенное управление ресурсами, в частности режим vSwap (вместо задания 20 лимитов для контейнера достаточно двух — размеров RAM и swap).
Одновременно с этим прекращается разработка и поддержка OpenVZ в ядрах 2.6.27 и 2.6.32 (это не касается дистрибутивных ядер в Debian и Ubuntu).
Также в этой заметке обобщены недавние обсуждения OpenVZ на ЛОРе, в доступной форме объясняя взаимодействие OpenVZ, LXC и ванильного ядра.
>>> Подробности (openvz.org)
Новости проекта B.A.T.M.A.N.: первые шаги «Network Coding», релиз batman-adv 2011.3.0
В начале 2011 года мы нашли двоих студентов из Дании, которых заинтриговала идея изучения и реализации концепта, названного «Network Coding». Методика, нацеленная на расширение сети Wi-Fi с объединением нескольких фреймов в один, чтобы снизить количество требуемого эфирного времени. С помощью математических алгоритмов и чуть-чуть танцев с бубном, принимающие передатчики могут декорировать и распаковывать тот фрейм, который им нужен.
В этом примере ретранслятор R присылает комбинированную передачу для A и B. A и B вычисляют свои данные и вычитают из них принадлежащие не себе.
Потом, в Марте, студенты присоединились к WirelessBattleMesh в Испании и рассказали про свой проект «C.A.T.W.O.M.A.N.» (Coding Applied To Wireless On Mobile Ad-hoc Networks). Есть запись обсуждения их доклада с обсуждением механизмов и преимуществ Network Coding, что стало отправной точкой в понимании сути концепта.
Затем они продолжали работать над кодом и разработали рабочий прототип, который позволил представить, приносит ли этот концепт пользу, или нет. Следующие графики (первый, второй) иллюстрируют пропускную способность сети с и без Network Coding (синяя и зелёная линии), а также выигрыш в пропускной способности с использованием Network Coding (красная линия) в цепи из трёх роутеров при передаче данных с одного конца на другой.
Так как этот проект стал их дипломной работой, написана превосходная документация, объясняющая каждую мелочь, что и как работает, которая содержит результаты анализов производительности.
Код batman-adv с включённым Network Coding доступен на GitHub, он может быть полезен для дальнейшего тестирования и изучения (он базируется на снапшоте, сделанном в начале 2011 года). В течение нескольких недель/месяцев мы собираемся полировать код до тех пор, пока он не будет включён в состав ядра Linux. Последнее позволит заинтересованным сторонам тестировать и развивать концепт Network Coding.
Последняя на данный момент версия batman-adv имеет номер 2011.3.0. В этой версии сломана обратная совместимость с предыдущими версиями и прекращена поддержка ядра Linux старше 2.6.29. Это вызвано значительными улучшениями роуминга для клиентов вне сети. Это один из старейших сегментов/концептов кода batman-adv. Также batman-adv наконец-то получил информирование в пространство пользователя с помощью uevent. Алгоритм маршрутизации получил незначительные улучшения, позволяющие уменьшить пинг при передаче мультимедийного потока OGM, чтобы избежать длинных маршрутов при большой нагрузке (исправлена ошибка). Были улучшены и другие компоненты программы.
>>> Подробности (open-mesh.org)
Представлен набор RT-патчей для ядра Linux 3.0
Томас Глейкснер (Thomas Gleixner), основной разработчик и мейнтейнер RT-ветки ядра Linux, сообщил о выпуске третьей верcии набора патчей с реализацией режима реального времени (Realtime-Preempt", PREEMPT_RT или "-rt") для ядра Linux 3.0. Ядро "-rt" с реализацией жёсткого режима реального времени используется в real-time редакциях промышленных Linux дистрибутивов MontaVista, Red Hat и Novell. Это первое крупное обновление RT-Linux за последние несколько лет, знаменующее уход от ядра версии 2.6.33, которое использовалось в качестве базы для RT-ветки несколько лет подряд.
В письме, отправленном в список рассылки Linux-ядра, Томас Глейкснер отмечает существенное отличие новой версии патчей от предыдущих. Логика работы многих подсистем была кардинально переработана, код стал намного чище и проще для анализа, общий размер патчей сократился более чем в два раза. Теперь код затрагивает гораздо меньше подсистем и структур данных ядра, что, по мнению автора, позволит ускорить процесс его включения в основную ветку. 223 подготовленных в рамках проекта патча, затрагивающих 374 файла разбиты на 4 группы, из которых одна группа устраняет недоработки уже находящихся в ядре подсистем, одна группа уже отправлена для включения в состав основного ядра, одна признана готовой для отправки заявки на включение в состав ядра и одна требует доработки и проверки. Для сравнения, для ветки 2.6.33 было подготовлено 462 патча, затрагивающих 690 файлов.
Ядро с наложенными патчами было протестировано на платформах x86 и x86_64, а также на ARM, MIPS и PowerPC и, по словам Thomas Gleixner оказалось «удивительно стабильным» (amazinlgy stable). Событие знаменательно тем, что это первый случай когда RT-патчи адаптированы для последней актуальной версии Linux-ядра, ранее выпуск патчей существенно отставал, что было связано с большой трудоёмкостью процесса портирования и тестирования.
>>> Подробности (lkml.org)
Linux 3.0
После двух месяцев разработки представлена новая версия ядра Linux 3.0.
Из изменений следует отметить такие:
- организационные:
- произошла смена мажорного номера и системы нумерации в целом. Это не повлекло за собой кардинальных изменений кода, но правильным образом укрепило модель разработки, принятую для ветки 2.6;
- в сетевой подсистеме:
- включен JIT-компилятор для BPF (для платформы x86_64);
- добавлена возможность посылать и принимать пакеты ICMP_ECHO непривилегированными пользователями через новый сокет IPPROTO_ICMP;
- произведены улучшения в подсистеме Samba;
- добавлена новая дисциплина планирования QFQ;
- добавлена возможность изолирования соединений VPN;
- добавлены и обновлены драйверы проводных и беспроводных сетевых устройств;
- добавлена поддержка WoWLAN;
- в файловых системах:
- произведены множественные улучшения в btrfs, отдельно следует выделить автоматическую дефрагментацию (применима к небольшим файлам);
- в ext4 добавлена поддержка информирования программами файловой системы о том, что некоторые области файлов не содержат данных;
- в tmpfs добавлена базовая поддержка расширенных атрибутов;
- в xfs добавлена поддержка оповещения носителей об освобождаемом месте непосредственно в момент удаления файлов;
- в подсистеме виртуализации:
- в Xen добавлен backend хранения данных, что позволяет использовать ванильное ядро как хост-систему без применения дополнительных патчей;
- в архитектуре:
- начата реорганизация дерева ARM с целью унификации;
- выключена оптимизация по размеру по умолчанию;
- в KVM добавлена поддержка процессоров VIA;
- теперь ядро поддерживает 64-разрядную архитектуру Tilera;
- реализована поддержка режима SMEP (Supervisor Mode Execution Protection) для современных процессоров Intel. При его включении ядру аппаратно запрещается исполнять код из непривилегированных страниц пространства пользователя. SMEP предохраняет ядро от некоторых видов атак и эксплоитов.
- функция подсистемы управления памятью mmu_gather теперь может вытесняться, что значительно улучшило масштабируемость ядра;
- в видеоподсистеме:
- обновлены драйверы i915;
- в драйвере Radeon улучшена поддержка DisplayPort;
- в драйвер Nouveau добавлена поддержка технологии Pmpeg для чипов nv40 и nv84;
- улучшена поддержка NVIDIA Optimus;
- в код DRM добавлена поддержка 30-разрядной цветовой глубины;
- другое:
- также было сделано множество других полезных и интересных изменений, перечислять которые можно очень долго.
Статьи, по мотивам которых подготовлена эта новость: 1, 2, 3, 4
>>> Архив исходных кодов (kernel.org)
Для ядра Linux представлен фреймворк, позволяющий управлять всеми процессорами SoC-систем
Охад Бэн-Коэн (Ohad Ben-Cohen), разработчик Linux и создатель самообучаемой HIDS Korset, опубликовал в списке рассылки ядра Linux набор патчей, реализующих универсальный механизм управления работой специализированных микропроцессоров, выполняющих вспомогательные роли на современных системах на кристалле (SoC). Обычно такие процессоры управляются с помощью специализированной ОС реального времени и выполняют такую работу как цифровая обработка сигналов, ускорение обработки мультимедиа-данных или управления разными видами сенсоров, требующих немедленной реакции системы, а для их связи с центральным процессором используются специфические механизмы, разработанные производителем чипа и накладывающие ряд ограничений на программистов.
Патч, реализованный Охадом Бэн-Коэном и двумя другими программистами, фактически устраняет эти ограничения благодаря основанному на технологии VirtIO универсальному механизму обмена сообщениями между центральным процессором и остальными процессорами чипа. Протокол, получивший имя rpmsg, позволил реализовать такие возможности как OMX offloading, менеджер ресурсов и дисплейный драйвер для Netra (dm8168), который работает в ядре Linux, посылая управляющие команды микропроцессору M3 (чип TI OMAP4). Также патч включает в себя реализацию механизма remotproc, позволяющего управлять работой выбранного процессора: останавливать, перезапускать или загружать альтернативные прошивки.
В настоящее время полная поддержка технологии (включая открытый firmware) реализована для чипа TI OMAP4, используемого в популярной платформе PandaBoard (также тестировались Davinci da850-evm и hawkboard).
>>> Новость на opennet (opennet.ru)
Релиз Native Linux KVM 2
Вышла в свет вторая версия инструментария Native Linux KVM. Новый релиз предлагает пользователям поддержку SMP, стандарта Virtio для сетевых коммуникаций на основе интерфейса виртуального сетевого драйвера TAP с реализаций доступа к хосту с помощью Virtio-9p. Добавлена экспериментальная поддержка графического интерфейса с использованием SDL и VNC.
С появлением всех вышеперечисленных нововведений KVM значительно улучшил свой функционал по сравнению с первой версией. Аналогично Qemu-Kvm, Native Linux KVM предназначен для эмуляции такого оборудования или его компонентов, как графические и сетевые карты, поскольку гипервизор KVM не берет на себя эту задачу.
Разработчики официально заявляют, что намерены добавить свой продукт в директорию tools исходных кодов ядра Linux версии 3.1, планируемого к выпуску осенью следующего года. В последние несколько месяцев разработчики ядра добавили довольно много приложений пользовательского уровня, тесно взаимодействующих с ядром, например, утилиту для измерения производительности Perf, а также ряд инструментов для диагностики и тестирования системы. Таким образом, можно ожидать и появления в таком же статусе Native Lnux KVM, хотя он во многих областях еще далек от функционала Qemu-Kvm, однако может похвастаться лучшими результатами на сравнительных тестах по вводу/выводу.
>>> Подробности (gmane.org)
Смена нумерации версий ядра Linux состоялась
Линус Торвальдс выпустил ядро версии 3.0-rc1. Отменено использование чётных/нечётных номеров для обозначения стабильности ядра, а третье число отдано команде стабилизации. Таким образом, следующий после этого релиз будет иметь номер 3.1, а стабильный — 3.0.1.
Версия 3.0 ядра Linux ничем особо не примечательна, кроме как обновлением драйверов.
>>> Официальный анонс (gmane.org)
Вышло ядро Linux 2.6.39
После двух месяцев разработки вышло новое ядро Linux версии 2.6.39.
Из нововведений следует отметить:
- окончательно и безвозвратно удалён BKL. Соответствующего кода в ядре больше нет. Вообще нет. Весь процесс занял около трёх лет;
- реализована обработка практически всех прерываний в отдельных потоках;
- исправлены проблемы, возникшие после применения оптимизационных патчей, между VFS и SELinux;
- переработана подсистема блочных устройств, что позволило снизить количество блокировок и очистить код;
- добавлена поддержка паравиртуализированных сетевых устройств Xen;
- внесены изменения в планировщик процессов, исправляющие проблемы с виртуализацией Windows;
- добавлена поддержка ipset, что позволяет более эффективно работать со списками IP-адресов и портов;
- произведено множество улучшений в файловых системах ext4, btrfs и xfs, направленных на увеличение быстродействия и повышение стабильности;
- улучшена поддержка беспроводных карт Realtek, Intel, Broadcom и Ralink;
- произведены улучшения в драйвере видеокарт Intel;
- добавлена поддержка видеокарт семейства Cayman (AMD);
- добавлена поддержка Z-компресии в драйвере Nouveau;
- добавлена поддержка хабов USB 3.0;
- добавлен драйвер мыши для Hyper-V;
- удалены autofs3 и smbfs;
- обновлена документация, поставляемая вместе с ядром;
- добавлено и обновлено множество драйверов устройств;
- внесено большое количество исправлений в другие подсистемы;
- исправлено большое число ошибок.
Более детально прочитать о нововведениях можно здесь: часть 1, часть 2, часть 3, часть 4.
>>> Официальный анонс от Линуса Торвальдса (gmane.org)
Статус готовности CLang к сборке ядра Linux
В прошлом октябре был анонсирован проект по адаптации LLVM компилятора CLang к сборке ядра Linux. С тех пор прошло более полугода, и на днях разработчики опубликовали свой отчет о проделанной работе.
В целом:
- Удалось получить работающую сборку ядер 2.6.37 и 2.6.38 (для некоторых конфигураций)
- KVM и Xen использовать нельзя, причем последний пока даже не компилируется
- Компилируются примерно 90% драйверов ядра, многие работают
- Некоторые поставляемые сторонними вендорами драйвера (Broadcom, NVIDIA) работают отлично
- Можно использовать многопроцессорные конфигурации (правда, только на x86), однако в некоторых случаях они требуют дополнительных усилий по доработке компилируемого кода
Что не работает:
- Ассемблер для генерации кода реального режима (директивы code16gcc), поэтому, невозможно откомпилировать код начальной загрузки (для этой цели используется gas)
- GCC-расширения языка C (некоторые работают, некоторые нет)
- Опции генерации и оптимизации кода: -mregparm, -fcall-saved-reg, __arch_hweight*(), -pg, атрибут no_instrument_function, -fno-optimize-sibling-calls
Несмотря на возникающие трудности, разработчики полны энтузиазма. Свой проект они назвали LLL project, что расшифровывается как LLVM Linux project.
>>> Подробности (lwn.net)
| ← предыдущие | следующие → |
