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

Защита ядра Linux — очень сложная предметная область. Она включает большое количество сложно взаимосвязанных понятий, и было бы полезным иметь ее графическое представление. Поэтому я разработал карту средств защиты ядра Linux. Вот легенда:

Карта средств защиты ядра Linux - 1Читать полностью »

Эволюция переключения контекста x86 в Linux - 1

В прошлые выходные, изучая интересные факты об аппаратном переключателе контекста 80386, я вдруг вспомнил, что первые версии ядра Linux полагались именно на него. И я погрузился в код, который не видел уже много лет. Сейчас я решил описать это чудесное путешествие по истории Linux. Я покажу все самородки и забавные артефакты, которые нашёл по пути.

Задача: проследить, как изменялось переключение контекста в ядре Linux от первой (0.01) до последней версии LTS (4.14.67), с особым акцентом на первую и последнюю версии.
Читать полностью »

Рост популярности контейнеров и их использование в совокупности с контрольными группами выявили серьезную проблему масштабируемости, которая приводит к значительному падению производительности на больших машинах. Проблема в том, что время обхода SLAB-кэшей зависит квадратично от количества контейнеров, а активное потребление больших объемов памяти за короткий период может стать причиной ухода системы в busy loop, потребляющий 100% процессорного времени. Сегодня мне хотелось бы рассказать, как мы решили эту проблему, изменив алгоритм учета использования контрольной группой memcg объектов SLAB-кэшей и оптимизировав функцию shrink_slab().

Очистка памяти

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

В ядре Linux слово fuck заменили на hug - 1После решения Линуса Торвальдса о временном уходе из проекта в сентябре 2018 года совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC), чтобы «решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков».

У новых правил было много сторонников, но объявились и недоброжелатели, которых вообще не привлекла идея подобной «доброжелательности». Разгорелись жаркие дебаты. 30 ноября эти споры вышли на новый уровень, потому что что один из авторитетных разработчиков Яркко Саккинен из компании Intel начал применять кодекс поведения на практике — и исправил несколько комментариев в коде ядра, заменив слово fuck (многозначное слово) на hug («обнимашки»).
Читать полностью »

В сентябре совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC). По задумке авторов, он должен был решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков.

Некоторые программисты назвали это попыткой излишнего регулирования и начали угрожать удалить написанный ими код из ядра Linux. Подробнее о ситуации — далее.

Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте - 1Читать полностью »

STACKLEAK — это функция безопасности ядра Linux, изначально разработанная создателями Grsecurity/PaX. Я решил довести STACKLEAK до официального ванильного ядра (Linux kernel mainline). В этой статье будет рассказано о внутреннем устройстве, свойствах данной функции безопасности и ее очень долгом непростом пути в mainline.

Как STACKLEAK улучшает безопасность ядра Linux - 1

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

Как обезопасить C - 1

Язык C очень мощный и много где используется — особенно в ядре Linux — но при этом очень опасный. Один из разработчиков ядра Linux рассказал, как справиться с уязвимостями безопасности С.

Вы можете сделать практически любую вещь на С, но это не значит, что её нужно делать. Код C очень быстр, но несётся без ремней безопасности. Даже если вы эксперт, как большинство разработчиков ядра Linux, всё равно возможны убийственные ошибки.

Кроме подводных камней типа псевдонимов указателей, у языка C фундаментальные неисправленные ошибки, которые ждут своих жертв. Именно эти уязвимости Кейс Кук, инженер по безопасности ядра Google Linux, рассмотрел на конференции по безопасности Linux в Ванкувере.
Читать полностью »

ниндзя-пингвин,  En3lВ одном проекте, связанном с безопасностью Linux-систем, нам потребовалось перехватывать вызовы важных функций внутри ядра (вроде открытия файлов и запуска процессов) для обеспечения возможности мониторинга активности в системе и превентивного блокирования деятельности подозрительных процессов.

В процессе разработки нам удалось изобрести довольно неплохой подход, позволяющий удобно перехватить любую функцию в ядре по имени и выполнить свой код вокруг её вызовов. Перехватчик можно устанавливать из загружаемого GPL-модуля, без пересборки ядра. Подход поддерживает ядра версий 3.19+ для архитектуры x86_64.
Читать полностью »

Срок поддержки версий LTS ядра Linux увеличили до шести лет - 1
Двухлетний жизненный цикл версий ядра Linux LTS не позволяет выпускать актуальные обновления для устройств под Android, то есть не покрывает жизненный цикл устройства

Отныне срок поддержки версий Linux с долговременной поддержкой (LTS) увеличен с двух до шести лет. Новость объявил Ильян Мальчев (Ilyan Malchev) из Google, выступая на конференции Linaro Connect. Объявление сделано с разрешения одного из главных разработчиков ядра и мейнтейнера стабильной ветки Грега Кроа-Хартмана (Greg Kroah-Hartman), пишет The Register.

Google стремится к тому, что каждое устройство под Android должно на протяжении своего жизненного цикла обновиться на новые версии Android как минимум четыре раза. Но сейчас наблюдается противоположная ситуация — хорошо, если смартфон обновится на новую версию Android хотя бы один раз.
Читать полностью »

BB-VIEW с Debian 7.8

В новом ядре linux-4.4 переписали механизм работы с deviceTree. Теперь они больше не компилируются вместе с ядром, а поставляются отдельным репозиторием. В прошлый раз, когда я пытался завести китайский 4х дюймовый дисплей WaveShare, никаких адекватных мануалов не было. Максимум, что я смог найти — это исходники модуля для старого ядра (linux-3.8.13). Провозившись неделю я всё-таки собрал своё ядро, с которым не расстаюсь.

Но время меняется, уже давно все перешли на Debian 8.7, но мануалов как подключить дисплей BB-VIEW на новом ядре я так и не нашёл.
Читать полностью »


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