Тридцать лет назад Линусу Торвальдсу был 21 год, он был студентом Хельсинского университета. Именно тогда он впервые выпустил ядро Linux. Анонс этого события начинался так: «Я делаю (свободную) операционную систему (просто в качестве хобби, большой и профессиональной она не будет…)». Три десятилетия спустя все топ-500 суперкомпьютеров в мире работают под Linux, равно как и более 70% всех смартфонов. Linux явно стал и большим, и профессиональным.
Читать полностью »
Рубрика «ядро Linux» - 2
30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 1
2021-05-04 в 7:00, admin, рубрики: linux, vds, vps, Блог компании Маклауд, быстрые vps, интервью, Линус Торвальдс, Настройка Linux, Разработка под Linux, ядро LinuxBedrock Linux: лего-набор для создания идеального linux-дистрибутива
2021-02-22 в 13:01, admin, рубрики: Debian, linux, linux-дистрибутивы, Ubuntu, Блог компании RUVDS.com, дистрибутивы, Настройка Linux, системное администрирование, ядро LinuxС момента появления 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: Эксплуатация уязвимости в подсистеме V4L2 ядра Linux
2020-03-12 в 6:23, admin, рубрики: exploit, hacking, linux kernel, security, vulnerability, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, системное программирование, уязвимости, эксплойт, ядро LinuxВ данной статье описана эксплуатация уязвимости CVE-2019-18683 в ядре Linux, которую я обнаружил и исправил в конце 2019 года. Указанный CVE-идентификатор присвоен нескольким аналогичным ошибкам типа «состояние гонки», которые присутствовали в подсистеме V4L2
ядра Linux на протяжении пяти лет. Пятнадцатого февраля я выступил с докладом по данной теме на конференции OffensiveCon 2020 (ссылка на презентацию).
Далее я детально объясню, как работает разработанный мной прототип эксплойта (PoC exploit) для микроархитектуры x86_64
. Данный эксплойт выполняет локальное повышение привилегий из контекста ядерного потока, где отсутствует отображение пользовательского адресного пространства. В статье также показано, как эксплойт для Ubuntu Server 18.04 обходит следующие средства защиты: KASLR
, SMEP
и SMAP
.
Начнем с демонстрации работы эксплойта.
Аппаратное шифрование DRAM уже близко. Чем оно грозит простым пользователям?
2019-11-29 в 10:46, admin, рубрики: AES-XTS, amd, api, drm, intel, miran, MKTME, SME, TME, Блог компании Дата-центр «Миран», виртуализация, дата-центр "Миран", информационная безопасность, криптография, Процессоры, ядро LinuxСуществует масса вариантов для шифрования дисков, разделов и отдельных документов. На случай компрометации одного устройства есть даже федеративное распределение ключа, где для доступа требуется участие нескольких сторон (см. схему разделения секрета Шамира). Опции шифрования файловой системы предлагают широкий выбор возможностей, которые можно считать стандартной практикой для защиты статичных данных.
Другое дело — данные в оперативной памяти. Они хранятся в открытом виде и так же открыто передаются между памятью и CPU. В виртуализированной среде, если злоумышленник нашёл способ считать память с соседних виртуальных машин, он может получить доступ к данным других VM на сервере. Физические атаки возможны путём копирования чипов памяти или перехвата данных на шине. Угроза ещё более серьёзная в случае постоянной памяти, где данные сохраняются даже после отключения питания.
Технологии шифрования RAM направлены на устранение некоторых из этих атак. Хотя есть опасения, что на персональных компьютерах проявятся неожиданные «побочные эффекты» — например, невзламываемый DRM.
Читать полностью »
Отлаживаем сетевые задержки в Kubernetes
2019-11-25 в 13:59, admin, рубрики: bcc, cadvisor, cgroups-зомби, devops, docker, github, hping3, IPIP, ksoftirqd, kubernetes, Linux 4.19, linux 4.9, nat, NIC, softirq, Vegeta, Блог компании ITSumma, виртуализация, контейнеры, Настройка Linux, прерывания, Серверное администрирование, сетевая карта, трассировка, ядро LinuxПару лет назад Kubernetes уже обсуждался в официальном блоге GitHub. С тех пор он стал стандартной технологией для развёртывания сервисов. Теперь Kubernetes управляет значительной частью внутренних и публичных служб. Поскольку наши кластеры выросли, а требования к производительности стали более жёсткими, мы стали замечать, что в некоторых службах на Kubernetes спорадически появляются задержки, которые нельзя объяснить нагрузкой самого приложения.
По сути, в приложениях происходит будто случайная сетевая задержка до 100 мс и более, что приводит к тайм-аутам или повторным попыткам. Ожидалось, что службы смогут отвечать на запросы гораздо быстрее 100 мс. Но это невозможно, если само соединение отнимает столько времени. Отдельно мы наблюдали очень быстрые запросы MySQL, которые должны были занимать миллисекунды, и MySQL действительно справлялась за миллисекунды, но с точки зрения запрашивающего приложения ответ занимал 100 мс или больше.
Читать полностью »
Линус Торвальдс одобрил внедрение функции ограничения прав суперпользователя Lockdown в версии ядра 5.4 ОС Linux
2019-10-05 в 16:58, admin, рубрики: linux, lockdown, информационная безопасность, Линус Торвальдс, Разработка под Linux, Софт, ядро LinuxНа днях стало известно о том, что Линус Торвальдс одобрил добавление новой функции безопасности в ядро Linux. Она называется Lockdown и предназначена для ограничения прав суперпользователя. Появится функция в версии ядра 5.4, причем речь идет именно о «ванильном» ядре, а не дистрибутивах.
Функцию добавят под видом модуля безопасности LSM (Linux Security Module). В результате процессы, которые запущены в пространстве пользователя, будут разграничены более жестко, с кодом ядра запретят взаимодействовать даже привилегированным аккаунтам.
Читать полностью »
Карта средств защиты ядра Linux
2019-06-24 в 16:15, admin, рубрики: hacking, linux kernel, security, Блог компании Positive Technologies, информационная безопасность, Разработка под Linux, системное программирование, ядро LinuxЗащита ядра 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 («обнимашки»).
Читать полностью »