Защита ядра Linux — очень сложная предметная область. Она включает большое количество сложно взаимосвязанных понятий, и было бы полезным иметь ее графическое представление. Поэтому я разработал карту средств защиты ядра Linux. Вот легенда:
Рубрика «ядро Linux» - 3
Карта средств защиты ядра Linux
2019-06-24 в 16:15, admin, рубрики: hacking, linux kernel, security, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, системное программирование, ядро LinuxЭволюция переключения контекста x86 в Linux
2019-01-29 в 19:52, admin, рубрики: C, CFS, Completely-Fair Scheduler, i386, x86, Алгоритмы, ассемблер, паника ядра, переключатель контекста, планировщик, системное программирование, шедулер, ядро Linux
В прошлые выходные, изучая интересные факты об аппаратном переключателе контекста 80386, я вдруг вспомнил, что первые версии ядра Linux полагались именно на него. И я погрузился в код, который не видел уже много лет. Сейчас я решил описать это чудесное путешествие по истории Linux. Я покажу все самородки и забавные артефакты, которые нашёл по пути.
Задача: проследить, как изменялось переключение контекста в ядре Linux от первой (0.01) до последней версии LTS (4.14.67), с особым акцентом на первую и последнюю версии.
Читать полностью »
Как и зачем мы оптимизировали алгоритм очистки SLAB-кэшей в ядре Linux
2019-01-10 в 20:29, admin, рубрики: openvz, Блог компании Virtuozzo, виртуализация, коммьюнити, контейнеры, оптимизация ядра, Программирование, Разработка под Linux, хостинг, ядро LinuxРост популярности контейнеров и их использование в совокупности с контрольными группами выявили серьезную проблему масштабируемости, которая приводит к значительному падению производительности на больших машинах. Проблема в том, что время обхода SLAB-кэшей зависит квадратично от количества контейнеров, а активное потребление больших объемов памяти за короткий период может стать причиной ухода системы в busy loop, потребляющий 100% процессорного времени. Сегодня мне хотелось бы рассказать, как мы решили эту проблему, изменив алгоритм учета использования контрольной группой memcg объектов SLAB-кэшей и оптимизировав функцию shrink_slab().

В ядре Linux слово fuck заменили на hug
2018-12-03 в 12:35, admin, рубрики: open source, кодекс поведения, нецензурная лексика, Разработка под Linux, ядро Linux
После решения Линуса Торвальдса о временном уходе из проекта в сентябре 2018 года совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC), чтобы «решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков».
У новых правил было много сторонников, но объявились и недоброжелатели, которых вообще не привлекла идея подобной «доброжелательности». Разгорелись жаркие дебаты. 30 ноября эти споры вышли на новый уровень, потому что что один из авторитетных разработчиков Яркко Саккинен из компании Intel начал применять кодекс поведения на практике — и исправил несколько комментариев в коде ядра, заменив слово fuck (многозначное слово) на hug («обнимашки»).
Читать полностью »
Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте
2018-10-13 в 10:51, admin, рубрики: CoC, linux, open source, Блог компании ИТ-ГРАД, ИТ-ГРАД, ядро LinuxВ сентябре совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC). По задумке авторов, он должен был решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков.
Некоторые программисты назвали это попыткой излишнего регулирования и начали угрожать удалить написанный ими код из ядра Linux. Подробнее о ситуации — далее.
Как STACKLEAK улучшает безопасность ядра Linux
2018-09-27 в 14:00, admin, рубрики: hacking, linux kernel, security, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, ядро LinuxSTACKLEAK — это функция безопасности ядра Linux, изначально разработанная создателями Grsecurity/PaX. Я решил довести STACKLEAK до официального ванильного ядра (Linux kernel mainline). В этой статье будет рассказано о внутреннем устройстве, свойствах данной функции безопасности и ее очень долгом непростом пути в mainline.

Как обезопасить C
2018-09-07 в 13:31, admin, рубрики: break, C, Kernel Self Protection Project, неопределённое поведение, Разработка под Linux, системное программирование, ядро Linux
Язык C очень мощный и много где используется — особенно в ядре Linux — но при этом очень опасный. Один из разработчиков ядра Linux рассказал, как справиться с уязвимостями безопасности С.
Вы можете сделать практически любую вещь на С, но это не значит, что её нужно делать. Код C очень быстр, но несётся без ремней безопасности. Даже если вы эксперт, как большинство разработчиков ядра Linux, всё равно возможны убийственные ошибки.
Кроме подводных камней типа псевдонимов указателей, у языка C фундаментальные неисправленные ошибки, которые ждут своих жертв. Именно эти уязвимости Кейс Кук, инженер по безопасности ядра Google Linux, рассмотрел на конференции по безопасности Linux в Ванкувере.
Читать полностью »
Перехват функций в ядре Linux с помощью ftrace
2018-06-05 в 5:57, admin, рубрики: C, ftrace, hooking, hooks, kernel module, kprobes, linux, linux kernel, перехват функций, Разработка под Linux, системное программирование, системные вызовы, сплайсинг, хуки, ядро Linux
В одном проекте, связанном с безопасностью Linux-систем, нам потребовалось перехватывать вызовы важных функций внутри ядра (вроде открытия файлов и запуска процессов) для обеспечения возможности мониторинга активности в системе и превентивного блокирования деятельности подозрительных процессов.
В процессе разработки нам удалось изобрести довольно неплохой подход, позволяющий удобно перехватить любую функцию в ядре по имени и выполнить свой код вокруг её вызовов. Перехватчик можно устанавливать из загружаемого GPL-модуля, без пересборки ядра. Подход поддерживает ядра версий 3.19+ для архитектуры x86_64.
Читать полностью »
Срок поддержки версий LTS ядра Linux увеличили до шести лет
2017-10-04 в 3:45, admin, рубрики: android, Android O, linux, Linux 4.14, Linux 4.4, linux 4.9, LTS, Tremble, смартфоны, ядро Linux
Двухлетний жизненный цикл версий ядра Linux LTS не позволяет выпускать актуальные обновления для устройств под Android, то есть не покрывает жизненный цикл устройства
Отныне срок поддержки версий Linux с долговременной поддержкой (LTS) увеличен с двух до шести лет. Новость объявил Ильян Мальчев (Ilyan Malchev) из Google, выступая на конференции Linaro Connect. Объявление сделано с разрешения одного из главных разработчиков ядра и мейнтейнера стабильной ветки Грега Кроа-Хартмана (Greg Kroah-Hartman), пишет The Register.
Google стремится к тому, что каждое устройство под Android должно на протяжении своего жизненного цикла обновиться на новые версии Android как минимум четыре раза. Но сейчас наблюдается противоположная ситуация — хорошо, если смартфон обновится на новую версию Android хотя бы один раз.
Читать полностью »
BeagleBone: поддержка 7” дисплея BB-View на новом ядре linux-4.4
2017-09-05 в 19:03, admin, рубрики: beaglebone, Device Tree, linux kernel, дисплей, Разработка под Linux, ядро Linux
В новом ядре linux-4.4 переписали механизм работы с deviceTree. Теперь они больше не компилируются вместе с ядром, а поставляются отдельным репозиторием. В прошлый раз, когда я пытался завести китайский 4х дюймовый дисплей WaveShare, никаких адекватных мануалов не было. Максимум, что я смог найти — это исходники модуля для старого ядра (linux-3.8.13). Провозившись неделю я всё-таки собрал своё ядро, с которым не расстаюсь.
Но время меняется, уже давно все перешли на Debian 8.7, но мануалов как подключить дисплей BB-VIEW на новом ядре я так и не нашёл.
Читать полностью »


