В институте системного программирования Российской академии наук (ИСП РАН) создали консорциум, который будет исследовать безопасность ядра Linux и развивать его российскую ветку. Новая структура будет работать на базе созданного ранее Технологического центра исследования безопасности ядра Linux.
В выпуске Fedora 38 предложено реализовать первую стадию перехода на модернизированный процесс загрузки, ранее предложенный Леннартом Поттерингом для организации полноценной верифицированной загрузки, охватывающей все этапы от прошивки до пространства пользователя, а не только ядра и загрузчика. Предложение пока не рассмотрено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.
Линус Торвальдс после двух месяцев разработки выпустил стабильную версию ядра Linux версии 6.1.
В новой мажорной версии ядра с кодовым названием «Hurr durr I’ma ninja sloth» представлена экспериментальная (но пока очень базовая и неприменимая в реальных случаях использования) поддержка языка программирования Rust для разработки модулей и драйверов.
Линус Торвальдс после двух месяцев разработки выпустил стабильную версию ядра Linux версии 6.0.
В новой мажорной версии ядра — заметное увеличение производительности процессоров Intel Ice Lake, AMD Threadripper и EPYC благодаря изменениям планировщика, а также настройкам энергопотребления ядра. Добавлена поддержка процессоров Intel Sapphire Rapids (Xeon 4-го поколения) и Raptor Lake (Core 13 поколения).
AMD добавила в ядерный графический драйвер поддержку RDNA 3 GPU (RX 7000), выпустила новый аудиодрайвер для платформы Raphael (Ryzen 7000) и улучшила поддержку звука на системах Jadeite. Также была исправлена проблема с клавиатурой на ноутбуках с процессорами Ryzen 6000.
Архитектуры OpenRISC и LoongArch обзавелись поддержкой шины PCI, RISC-V расширяет возможности управления кэша с помощью новых расширений, в т.ч. «Zicbom».
Появилась начальная поддержка процессора Qualcomm Snapdragon 8cx Gen3 (который используется, например, Lenovo ThinkPad X13s).
Системы, используемые Linux-энтузиастами (такие как TUXEDO и Clevo) ранее имели проблемы с сенсорными панелями и клавиатурой после выхода из спящего режима.
Добавлена поддержка планшета для рисования XP-PEN Deco L, различных датчиков на материнских платах AMD, включая Sensor Fusion Hub в новых ноутбуках на процессорах Ryzen и шины Thunderbolt на Intel Raptor Lake.
Исправлено небольшое падение производительности на системах с процессорами AMD Zen, добавленное 20 лет назад как обход аппаратных проблем в некоторых чипсетах.
В драйвер drm/v3d (отвечающий за Broadcom V3D Graphics Driver) добавлена поддержка Raspberry Pi 4.
Создатель ядра Linux и координатор его разработки Линус Торвальдс объявил на Kernel Maintainers Summit, что в Linux 6.1 будет доступно программирование модулей на Rust — «если не произойдёт ничего незапланированного».
Причиной включения Rust в ядро Торвальдс назвал более высокую безопасность языка (за счёт снижения числа ошибок работы с памятью) и его привлекательность для молодых разработчиков:
Rust - это одна из тех вещей, которые, как я думаю, привлекут новые лица… мы стареем и седеем…
Также опубликована начальная реализация драйвера rust-e1000 для Ethernet-адаптеров Intel. А компания Western Digital разрабатывает на Rust драйвер для NVMe-накопителей. Хотя драйвер ещё не оптимизирован, он не отстаёт в производительности от имеющегося ядерного драйвера на языке Си.
Ровно 31 год назад 25 августа 1991 года тогда мало кому известный студент Хельсинкского университета Линус Торвальдс (Linus Benedict Torvalds) написал в конференцию comp.os.minix сообщение о создании рабочего прототипа новой операционной системы, которую он назвал Linux. В эту «предрелизную» версию были портированы bash 1.08 и gcc 1.40.
Во время обсуждения набора патчей, связанных с исправлением уязвимостей класса Spectre в коде для работы со связанными списками, стало ясно, что проблему удалось бы решить более изящно, если бы в ядро допускался код, использующий стандарт старше C89. Сейчас код в ядре должен соответствовать С89 (с GNU расширениями) на основе спецификации, сформированной ещё в 1989 году. Связанная со Spectre проблема была в том, что для перебора элементов списка используется макрос. Так как переменная цикла передаётся в этот макрос, то она определяется вне самого цикла и остаётся доступна после цикла. Использование более новых стандартов языка C позволит определять переменные для цикла прямо в блоке for.
В связи с этим, Линус Торвальдс предложил попробовать перейти в ядре 5.18 на стандарт C99, который был опубликован в 1999 году, на что получил встречное предложение перейти сразу на C11. При проверке сборки в GCC и Clang с новым стандартом проблем пока не возникло и, если при более тщательном тестировании ситуация не изменится, в сборочных скриптах ядра 5.18 опция --std=gnu89 будет заменена на --std=gnu11 -Wno-shift-negative-value.
В случае неудачи, переход будет отложен на один из следующих выпусков.
На Хэлуин 2021 Линус Торвальдс представил публике следующую версию основной ветки ядра – 5.15.
В то время как разработка Linux 5.14 была сфокусирована на улучшениях для систем на основе ARM, разработка Linux 5.15 уделяет внимание сразу нескольким значительным изменениям.
Пользователи различных дистрибутивов, у которых применяется планировщик ввода/вывода BFQ (Budget Fair Queueing), после обновления ядра Linux до выпуска 5.14.7 столкнулись проблемой, приводящей к падению ядра в течение нескольких часов после загрузки. Проблема также продолжает проявляться в ядрах 5.14.8 и 5.14.9. Причиной стало перенесённое из тестовой ветки 5.15 регрессивное изменение в планировщике BFQ, которое пока устранено только в виде патча.
В качестве обходного пути для решения проблемы можно заменить планировщик на mq-deadline. Например, для устройства nvme0n1:
Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…
Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.
Об авторе
Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.
Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.
Несмотря на то, что в ядро SquashFS была включена лишь в 2009 году, работа над ней началась гораздо раньше. В честь двадцатилетнего юбилея с начала разработки, Phillip Lougher объявил новый релиз SquashFS-Tools.
Из нововведений:
Возможность определить «действия» по шаблону для отдельных файлов в mksquashfs. Например, добавить в архив без сжатия.
Команда sqfstar для преобразования Tar–архива в SquashFS.
Возможность ограничить загрузку процессора и дисковой подсистемы при работе mksquashfs.
Возможность задавать дату для псевдо–файлов, имитация ссылок, сокетов и потоков ввода–вывода.
Команда sqfscat, выводящая содержимое отдельных файлов из архива.
Поддержка символьных ссылок при распаковке SquashFS, возможность ограничить глубину обхода или исключить файлы по шаблону.
Линус Торвальдс анонсировал новую версию ядра Linux 5.13, отдельно подчеркнув, что это самый большой релиз по количеству проделанной работы!
После седьмого релиз-кандидата у нас была довольно спокойная неделя, и я не вижу причин откладывать релиз версии 5.13. Изменений за последнюю неделю мало, всего 88 коммитов не считая слияний (и некоторые из них просто откаты). Это не особо важные исправления и поскольку их мало, я предлагаю людям просто просмотреть прилагаемый список изменений, чтобы узнать, что произошло. В целом в 5.13 очень много изменений. Фактически, это один из самых крупных релизов 5.х с более чем 16 тысячами коммитов (более 17 тысяч, если считать слияния) от более чем 2 тысяч разработчиков. Однако, все эти изменения затронули всё и понемногу, поэтому трудно выделить что-то одно…
Наиболее значимые изменения:
LSM-модуль Landlock для дополнительного ограничения процессов (подробности);
возможность сборки в Clang с защитой CFI (Control Flow Integrity) (подробности);
рандомизация стека ядра для каждого системного вызова;
поддержка одновременного сброса TLB;
поддержка чипов М1 (пока на начальной стадии);
поддержка новых GPU от Intel и AMD;
возможность прямого вызова функций ядра из BPF-программ (подробности);