войти зарегистрироваться

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


Здравствуй, уважаемый Хабр! Я являюсь участником разработки автоматизированных систем управления высокой надежности, которые применяются на электростанциях, космодромах, сложных производствах и т.п. Однажды передо мной встала задача придумать метод проверки работоспособности программ в условиях загруженности всяких железяк, а именно:
  1. Загруженность процессора
  2. Загруженность сети отправкой/приемом
  3. Нехватка оперативной памяти
  4. Загруженность жесткого диска запросами чтения/записи
а также придумать способ оценки, на сколько та или иная программа может создавать задержки/помехи, для работы других программ. На мой взгляд, наиболее интересный из этих четырех — первый пункт, поэтому речь пойдет именно о нем.
Под катом описываются две утилитки, которые у меня получились и принцип их работы, а так же парочка скриншотов и видео.

Linux для всехMachid, board-файлы и гарантированно-уникальное число 3333

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



Информационная безопасностьТеория о сокрытии процессов руткитами (DKOM)

В данной статье мы попробуем рассмотреть в теории один из самых серьезных методов сокрытия информации руткитами, а именно прямая манипуляция объектами ядра (Direct Kernel Object Manipulation, DKOM), применяемая для сокрытия процессов от операционной системы в целом. Если Вы скрипт-кидди, то читайте «скрываем процессы в винде!».

Linux для всехМодули, драйвера, устройства

Значительную часть ядра любой операционной системы занимают драйвера устройств, линукс не является исключением из данного правила. Каталог drivers в исходниках ядра занимает около трети от общего числа файлов.

В этом посте я кратко опишу некоторые из основных понятий, которыми оперирует ядро линукса. Я буду рассказывать не про адреса регистров и номера секторов дискет и прерываний биоса, специфические для какой-то определенной машины, а про общую концепцию работы с устройствами.

Linux для всехОсновы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра

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



Навигация по основам Linux от основателя Gentoo:

Часть I
  1. BASH: основы навигации (вступление)
  2. Управление файлами и директориями
  3. Ссылки, а также удаление файлов и директорий
  4. Glob-подстановки (итоги и ссылки)
Часть II
  1. Регулярные выражения (вступление)
  2. Назначения папок, поиск файлов
  3. Управление процессами
  4. Обработка текста и перенаправления
  5. Модули ядра (итоги и ссылки)
Часть III: 1, 2, 3, 4


Ненормальное программированиеСтроим плагиноориентированную модульную систему

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

С одной стороны задача не представляет проблем, достаточно дать разработчикам богатое API по работе с системой. Но с другой стороны, если изучение системы будет требовать слишком много трудозатрат, то она никогда не обретет популярности. Тщательное документирование в быстроразвивающихся проектах зачастую не работает, значит нужно использовать самые простые механизмы, которые позволят в кратчайший срок понять начинающему плагинописателю, как все работает.

Данная статья рассчитана на начинающих программистов, которые ищут идеи подобной архитектуры для реализации своих проектов.

Информационная безопасностьЭскалация привилегий в десктопном линуксе: Получение рутового доступа из GUI-приложений

Пару месяцев назад Rafal Wojtczuk придумал серьёзный эксплойт, позволяющий получить права суперюзера из непривилегированного процесса, имеющего доступ к X-серверу (то есть, из GUI-приложения, работающего под обычным пользователем). Другими словами, любая GUI-программа (например, читалка PDF-файлов), если она скомпроментирована (например, специально подготовленным PDF-файлом), может пробить все барьеры защиты на пути к полному обладанию компьютером. Не спасает даже песочница SElinux (SElinux «sandbox -X»). И проблема существует много лет — по-видимому, с первых версий ядра 2.6.

Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.

Как это работает


Персональные блоги Intel официально представила платформу Moorestown

Intel следует по стопам ARM, очевидный пример тому ― анонс платформы Moorestown, ориентированной на использование в девайсах с ограниченным энергоресурсом, вроде смартфонов, планшетных компьютеров и аналогичных мобильных гаджетов.

image

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

WindowsИсходники Windows Research Kernel в свободном доступе

Что же такое Windows Research Kernel?


Windows Research Kernel содержит исходные коды основной части ядра Windows (NTOS).
NTOS реализует базовые функции операционной системы для:
  • процессов;
  • потоков;
  • виртуальной памяти и менеджеров кэшей;
  • управления вводом/выводом;
  • реестра;
  • исполнительных функций, таких как куча (heap) ядра и синхронизация;
  • менеджера объектов;
  • механизма локального вызова процедур;
  • низкоуровневого управления CPU (планирование потоков, асинхронные и отложенные вызовы процедур, обработка прерываний/ловушек, исключения).

Open source75% нового кода Linux написано коммерческими компаниями

Идеалы свободной разработки на практике приходится корректировать под реальный мир. Для кого-то будет шокирующей статистика, которую обнародовал основатель LWN.net и один из разработчиков ядра Linux Джонатан Корбет (Jonathan Corbet) на недавней конференции Linux.conf.au.

Оказывается, 75% нового кода Linux предлагается коммерческими компаниями, то есть авторами являются корпоративные программисты, получающие зарплату за свою работу над Linux. Ещё 7% кода не имеет определённого авторства. И всего лишь 18% кода Linux написано безвозмездно: говорят, этот код более качественный и исполняется быстрее.