Рубрика «ядро Linux»

Релиз ядра Linux 6.6: возможности, обновления и самые заметные изменения - 1

В мире Linux все идет своим чередом, и идет по плану. Спустя два месяца после выхода предыдущего релиза ядра выпущен новый. На днях Линус Торвальдс представил ядро Linux 6.6. Как всегда, в нем достаточно много изменений и исправлений. Всего — 15291 исправлений от 2058 разработчиков. Изменены 14844 файла, добавлено 553359 строк кода, удалено — 284012. Подробности обо всем этом — под катом.
Читать полностью »

image

Новый релиз ядра Linux 6.5 вышел всего два месяца спустя после предыдущего. Но работа все равно проделана большая, даром, что времени прошло немного. Так, в новой версии сразу 1467 исправления от более, чем 2 тыс. разработчиков. Общий размер патча составляет 78 МБ. Добавлено 1294205 строк кода, в то время, как удалено 930515 строк. Как всегда (ну, почти), большая часть изменений касаются драйверов, чуть меньше — обновление кода, который имеет отношение к архитектурам, затем идут изменения сетевого стека, файловых систем и внутренних подсистем ядра. Подробности — под катом.
Читать полностью »

Два месяца работы и готово: что нового в ядре Linux 5.17 - 1
Источник картинки: OMG! Ubuntu!

Выхода нового ядра Linux ожидали многие, о чем можно судить хотя бы по количеству публикаций в технологических СМИ, предвкушавших новинки Linux 5.17. И, наконец, Линус Торвальдс представил новый релиз, опубликовав его 21 марта. Нового и хорошего действительно много, так что опробовать новую версию обязательно стоит, если вы этого еще не сделали.

Объём проделанной работы достаточно большой. Так, в новой версии приняли 14203 исправления от 1995 разработчиков. Общий размер патча составляет 37 МБ. Что касается изменений, то они затронули 11366 файлов, добавлено 506043 строк кода, удалено 250954 строк. Весьма значительная часть изменений в ядре, а это около 44%, связаны с драйверами устройств. Еще около 16% изменений имеют отношение к обновлению кода, имеющего отношение к аппаратным архитектурам, 15% — сетевой стек, 4 — файловые системы, ну и еще 4% изменений связаны с подсистемами ядра. О подробностях — ниже.
Читать полностью »

Экспериментальная разработка эксплойта для Use-After-Free - 1


Пошаговая реализация эксплойта для уязвимости CVE-2021-23134, включая описание используемых для этого инструментов. Это мой первый опыт разработки эксплойта для ядра – так что здесь вы вполне можете заметить некоторые ошибки, за которые я заранее извиняюсь.Читать полностью »

Rust в ядре Linux - 1

В более ранней публикации  компания Google объявила, что в Android теперь поддерживается язык программирования Rust, применяемый в разработке этой ОС как таковой. В связи с этим авторы данной публикации также решили оценить, насколько язык Rust востребован в разработке ядра Linux. В этом посте на нескольких простых примерах рассмотрены технические аспекты этой работы.

На протяжении почти полувека C оставался основным языком для разработки ядер, так как C обеспечивает такую степень управляемости и такую предсказуемую производительность, какие и требуются в столь критичном компоненте. Плотность багов, связанных с безопасностью памяти, в ядре Linux обычно весьма низка, поскольку код очень качественный, ревью кода соответствует строгим стандартам, а также в нем тщательно реализуются предохранительные механизмы. Тем не менее, баги, связанные с безопасностью памяти, все равно регулярно возникают. В Android уязвимости ядра обычно считаются серьезным изъяном, так как иногда позволяют обходить модель безопасности в силу того, что ядро работает в привилегированном режиме.
Читать полностью »

30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 2 - 1

Первая часть интервью.

Распределенная система контроля версий Git

Дж.А.: Linux – только первая из ваших работ, глобально повлиявших на мир опенсорса. В 2005 году вы также создали Git, исключительно популярную распределенную систему контроля версий. Вы быстро перенесли дерево исходников ядра Linux из проприетарного хранилища Bitkeeper в новоиспеченный Git, который сделали опенсорсным, и в том же году передали поддержку Git Джунио Хамано. История этих событий увлекательна, расскажите, что побудило вас передать этот проект так быстро, и как вы нашли и выбрали Джунио? 

ЛТ: Итак, ответ на этот вопрос состоит из двух частей.

30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 2 - 2

Во-первых, я совершенно не хотел создавать новую систему контроля исходников.  Linux был создан, так как мне очень интересен низкоуровневый интерфейс между аппаратным и программным обеспечением — в принципе, эта работа была выполнена из любви к предмету и личного интереса. Напротив, Git был создан из необходимости: не потому, что я интересуюсь контролем исходников, а потому что большинство имевшихся на тот момент систем контроля версий вызывали у меня подлинное отвращение, а та единственная, что показалась мне наиболее терпимой и при этом действительно весьма хорошо сочеталась с моделью разработки Linux (BitKeeper) стала несостоятельной.
Читать полностью »

30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 1 - 1

Тридцать лет назад Линусу Торвальдсу был 21 год, он был студентом Хельсинского университета. Именно тогда он впервые выпустил ядро Linux. Анонс этого события начинался так: «Я делаю (свободную) операционную систему (просто в качестве хобби, большой и профессиональной она не будет…)». Три десятилетия спустя все топ-500 суперкомпьютеров в мире работают под Linux, равно как и более 70% всех смартфонов. Linux явно стал и большим, и профессиональным. 
Читать полностью »

Bedrock Linux: лего-набор для создания идеального linux-дистрибутива - 1

С момента появления Linux достаточно скоро возникло множество дистрибутивов: Slack, RedHat, Debian, SUSE и т. д. Тогда же возникла и проблема выбора дистрибутива, ведь каждый из них имеет свои особенности и преимущества, которые делают его особенным. RedHat и Debian наиболее стабильные и консервативные из дистрибутивов, Ubuntu заточен на удобство и имеет прекрасный пользовательский интерфейс, Gentoo — свобода выбора и гибкость.

У каждого пользователя Linux были моменты, когда ему не хватало некоторых функций, реализованных в других дистрибутивах. Многим в свое время не понравилось, что Debian перешел на systemd и они создали на его основе новый дистрибутив — Devuan. Некоторые перешли на Gentoo, где пользователь может создать среду с двумя системами инициализации: как с openrc, так и с systemd.

В разных дистрибутивах этот вопрос решается по-разному. Установка пакета, который отсутствует в штатном репозитории, решается с помощью docker-контейнеров, или использованием систем самодостаточных пакетов snap и flatpak. Можно даже ставить RPM пакеты на системах с пакетным менеджером DEB. В Gentoo имеется поддержка RPM и DEB пакетов. Все это работает, однако плохо масштабируется и не очень стабильно.

Создатели Bedrock Linux пошли дальше и создали полноценный мета-дистрибутив. В нем возможно использование не только пакетов, но и компонент различных Linux дистрибутивов, как кубиков Лего. В одном окружении можно создать систему из нескольких Linux OS, например установку дополнительных пакетов Ubuntu поверх базовых компонент Debian и Arch. Установочный скрипт доступен для следующих платформ.

  • aarch64;
  • armv7hl;
  • armv7l;
  • mips64el;
  • mips64;
  • mips;
  • mipsel;
  • ppc64;
  • ppc64le;
  • ppc;
  • s390;
  • x86_64;
  • x86;

Читать полностью »

В данной статье описана эксплуатация уязвимости CVE-2019-18683 в ядре Linux, которую я обнаружил и исправил в конце 2019 года. Указанный CVE-идентификатор присвоен нескольким аналогичным ошибкам типа «состояние гонки», которые присутствовали в подсистеме V4L2 ядра Linux на протяжении пяти лет. Пятнадцатого февраля я выступил с докладом по данной теме на конференции OffensiveCon 2020 (ссылка на презентацию).

Далее я детально объясню, как работает разработанный мной прототип эксплойта (PoC exploit) для микроархитектуры x86_64. Данный эксплойт выполняет локальное повышение привилегий из контекста ядерного потока, где отсутствует отображение пользовательского адресного пространства. В статье также показано, как эксплойт для Ubuntu Server 18.04 обходит следующие средства защиты: KASLR, SMEP и SMAP.

Начнем с демонстрации работы эксплойта.

CVE-2019-18683: Эксплуатация уязвимости в подсистеме V4L2 ядра Linux - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js