Программирование → Тестирование программ в сложных «погодных условиях» из песочницы

Здравствуй, уважаемый Хабр! Я являюсь участником разработки автоматизированных систем управления высокой надежности, которые применяются на электростанциях, космодромах, сложных производствах и т.п. Однажды передо мной встала задача придумать метод проверки работоспособности программ в условиях загруженности
- Загруженность процессора
- Загруженность сети отправкой/приемом
- Нехватка оперативной памяти
- Загруженность жесткого диска запросами чтения/записи
Под катом описываются две утилитки, которые у меня получились и принцип их работы, а так же парочка скриншотов и видео.
Linux для всех → Machid, board-файлы и гарантированно-уникальное число 3333
Продолжение цикла заметок про внутренности ядра. В прошлый раз я писал про то, как ядро находит драйвера устройств (ответ на вопрос кто тут?). Сейчас я опишу еще одну, более раннюю часть процесса загрузки, которая помогает получить ядру ответ на вопрос где я?.


Информационная безопасность → Теория о сокрытии процессов руткитами (DKOM)
В данной статье мы попробуем рассмотреть в теории один из самых серьезных методов сокрытия информации руткитами, а именно прямая манипуляция объектами ядра (Direct Kernel Object Manipulation, DKOM), применяемая для сокрытия процессов от операционной системы в целом. Если Вы скрипт-кидди, то читайте «скрываем процессы в винде!».
Linux для всех → Модули, драйвера, устройства
Значительную часть ядра любой операционной системы занимают драйвера устройств, линукс не является исключением из данного правила. Каталог drivers в исходниках ядра занимает около трети от общего числа файлов.
В этом посте я кратко опишу некоторые из основных понятий, которыми оперирует ядро линукса. Я буду рассказывать не про адреса регистров и номера секторов дискет и прерываний биоса, специфические для какой-то определенной машины, а про общую концепцию работы с устройствами.
В этом посте я кратко опишу некоторые из основных понятий, которыми оперирует ядро линукса. Я буду рассказывать не про адреса регистров и номера секторов дискет и прерываний биоса, специфические для какой-то определенной машины, а про общую концепцию работы с устройствами.
Linux для всех → Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра
В заключительном отрывке второй части описаны основы управление модулями ядра Linux. Этот минимум неплохо знать всякому пользователю, однако, не стоит надеяться обнаружить в этом руководстве для начинающих информацию по сборке и конфигурированию модулей ядра.
Навигация по основам Linux от основателя Gentoo:
Часть I
- BASH: основы навигации (вступление)
- Управление файлами и директориями
- Ссылки, а также удаление файлов и директорий
- Glob-подстановки (итоги и ссылки)
Часть II
- Регулярные выражения (вступление)
- Назначения папок, поиск файлов
- Управление процессами
- Обработка текста и перенаправления
- Модули ядра (итоги и ссылки)
Часть III: 1, 2, 3, 4
Ненормальное программирование → Строим плагиноориентированную модульную систему
Года три назад у меня роились идеи относительно того, как создать такое ядро системы, которое позволяло бы быстро и эффективно расширять его функционал с помощью подключаемых модулей, расширений. При этом нужно было минимизировать проблемы, которые возникают у плагинописателей при развитии продукта, проблемы совместимости множества плагинов.
С одной стороны задача не представляет проблем, достаточно дать разработчикам богатое API по работе с системой. Но с другой стороны, если изучение системы будет требовать слишком много трудозатрат, то она никогда не обретет популярности. Тщательное документирование в быстроразвивающихся проектах зачастую не работает, значит нужно использовать самые простые механизмы, которые позволят в кратчайший срок понять начинающему плагинописателю, как все работает.
Данная статья рассчитана на начинающих программистов, которые ищут идеи подобной архитектуры для реализации своих проектов.
С одной стороны задача не представляет проблем, достаточно дать разработчикам богатое API по работе с системой. Но с другой стороны, если изучение системы будет требовать слишком много трудозатрат, то она никогда не обретет популярности. Тщательное документирование в быстроразвивающихся проектах зачастую не работает, значит нужно использовать самые простые механизмы, которые позволят в кратчайший срок понять начинающему плагинописателю, как все работает.
Данная статья рассчитана на начинающих программистов, которые ищут идеи подобной архитектуры для реализации своих проектов.
Информационная безопасность → Эскалация привилегий в десктопном линуксе: Получение рутового доступа из GUI-приложений
Пару месяцев назад Rafal Wojtczuk придумал серьёзный эксплойт, позволяющий получить права суперюзера из непривилегированного процесса, имеющего доступ к X-серверу (то есть, из GUI-приложения, работающего под обычным пользователем). Другими словами, любая GUI-программа (например, читалка PDF-файлов), если она скомпроментирована (например, специально подготовленным PDF-файлом), может пробить все барьеры защиты на пути к полному обладанию компьютером. Не спасает даже песочница SElinux (SElinux «sandbox -X»). И проблема существует много лет — по-видимому, с первых версий ядра 2.6.
Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.
Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.
Как это работает
Персональные блоги → Intel официально представила платформу Moorestown
Intel следует по стопам ARM, очевидный пример тому ― анонс платформы Moorestown, ориентированной на использование в девайсах с ограниченным энергоресурсом, вроде смартфонов, планшетных компьютеров и аналогичных мобильных гаджетов.

Представители семейства Moorestown будут выполняться по 45-нм

Представители семейства Moorestown будут выполняться по 45-нм
Windows → Исходники Windows Research Kernel в свободном доступе
Что же такое Windows Research Kernel?
Windows Research Kernel содержит исходные коды основной части ядра Windows (NTOS).
NTOS реализует базовые функции операционной системы для:
- процессов;
- потоков;
- виртуальной памяти и менеджеров кэшей;
- управления вводом/выводом;
- реестра;
- исполнительных функций, таких как куча (heap) ядра и синхронизация;
- менеджера объектов;
- механизма локального вызова процедур;
- низкоуровневого управления CPU (планирование потоков, асинхронные и отложенные вызовы процедур, обработка прерываний/ловушек, исключения).
Open source → 75% нового кода Linux написано коммерческими компаниями
Идеалы свободной разработки на практике приходится корректировать под реальный мир. Для кого-то будет шокирующей статистика, которую обнародовал основатель LWN.net и один из разработчиков ядра Linux Джонатан Корбет (Jonathan Corbet) на недавней конференции Linux.conf.au.
Оказывается, 75% нового кода Linux предлагается коммерческими компаниями, то есть авторами являются корпоративные программисты, получающие зарплату за свою работу над Linux. Ещё 7% кода не имеет определённого авторства. И всего лишь 18% кода Linux написано безвозмездно: говорят, этот код более качественный и исполняется быстрее.
Оказывается, 75% нового кода Linux предлагается коммерческими компаниями, то есть авторами являются корпоративные программисты, получающие зарплату за свою работу над Linux. Ещё 7% кода не имеет определённого авторства. И всего лишь 18% кода Linux написано безвозмездно: говорят, этот код более качественный и исполняется быстрее.
