Главная » Архив меток: Linux kernel

Архив меток: Linux kernel

Насколько эффективна виртуальная файловая система procfs и можно ли ее оптимизировать

Она — “прекрасный” пример интерфейсов следующих парадигме “все является файлом”. Файловая система proc (в дальнейшем просто procfs) является виртуальной файловой системой, которая предоставляет информацию о процессах. Однако время не стоит на месте, и сейчас серверы обслуживают сотни тысяч, а то и больше процессов одновременно. Procfs была разработана очень давно: во времена, когда серверы в среднем обслуживали несколько десятков процессов, когда ...

Читать далее »

[Перевод] Раскрытие памяти (Memory Disclosure) ядра в современных ОС

Под катом расположен перевод вступительной части документа Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking (Статья Project Zero) от Mateusz Jurczyk. В переведенной части документа: специфика языка программирования C (в рамках проблемы раскрытия памяти) специфика работы ядер ОС Windows и Linux (в рамках проблемы раскрытия памяти) значимость раскрытия памяти ядра и влияние на безопасность ОС существующие методы и ...

Читать далее »

Релиз Linux kernel 4.17: что о нем нужно знать

Третьего июня Линус Торвальдс объявил о релизе Linux kernel 4.17, который должен был стать версией 5.0, но не стал. Расскажем, почему так вышло, и что нужно знать о версии 4.17. / фото Farhan Perdana (Blek) CC BY Почему не 5.0 Несмотря на то, что Линус Торвальдс предполагал, что релиз с названием Linux kernel 5.0 появится летом 2018 года, этого не ...

Читать далее »

Перехват функций в ядре Linux с помощью ftrace

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

Читать далее »

Использование файлов-последовательностей ядра Linux

Характерная черта современного программирования в использовании глобальной сети как источника справочной информации, в частности, источника шаблонов для решения неизвестных или малоизвестных конкретному программисту проблем. Такой подход экономит массу времени и часто даёт вполне качественный результат. Однако, решения, выложенные в сети, хотя обычно правильны, но не всегда учитывают всех тонкостей решения той или иной проблемы, что приводит к появлению в кодах ...

Читать далее »

Процесс портирования драйверов устройств Linux

Здравствуйте, хаброчитатели! Введение Иногда так случается, что возникает необходимость перейти на более новую версию ядра Linux и, соответственно, выполнить перенос уже существующих драйверов устройств. Процесс переноса может занять от нескольких минут до более продолжительного промежутка времени. Зависит это не только от сложности драйвера, но и от того, с какой и на какую версию ядра вы собираетесь перейти (API имеет свойство ...

Читать далее »

Разработка драйвера PCI устройства под Linux

В данной статье я рассматриваю процесс написания простого драйвера PCI устройства под OC Linux. Будет кратко изучено устройство программной модели PCI, написание собственно драйвера, тестовой пользовательской программы и запуск всей этой системы. В качестве подопытного выступит интерфейс датчиков перемещения ЛИР940/941. Это устройство, отечественного производства, обеспечивает подключение до 4 энкодеров с помощью последовательного протокола SSI поверх физического интерфейса RS-422.На сегодняшний день ...

Читать далее »