Как *nix-сигналы позволяют читать память других процессов
Есть такая очень старая и вросшая в *nix с корнями штука под названием «сигналы». Идея этих примитивов очень проста: реализовать программный аналог прерываний. Различные процессы могут посылать сигналы друг другу и самим себе, зная process id (pid) получателя. Процесс-получатель волен либо назначить функцию-обработчик сигнала, которая будет автоматически вызываться при его получении, либо игнорировать его с помощью специальной маски, либо же довериться поведению по умолчанию. So far so good.
Поведение по умолчанию при получении сигнала… А что означают эти успокаивающие слова? Уверен, не то, что вы ожидали. Вики говорит, что обработчики 28 стандартных сигналов (существуют и другие!) по умолчанию таковы: 2 игнорируются, 4 вызывают остановку процесса, 1 – его продолжение, 11 – его завершение, 10 – его завершение с созданием дампа памяти. Вот это уже интересно! Итак, дело обстоит следующим образом: даже если ваша программа никак не упоминает сигналы в исходном коде, на самом деле она их использует, причём весьма драматичным образом. Читать дальше →
Поведение по умолчанию при получении сигнала… А что означают эти успокаивающие слова? Уверен, не то, что вы ожидали. Вики говорит, что обработчики 28 стандартных сигналов (существуют и другие!) по умолчанию таковы: 2 игнорируются, 4 вызывают остановку процесса, 1 – его продолжение, 11 – его завершение, 10 – его завершение с созданием дампа памяти. Вот это уже интересно! Итак, дело обстоит следующим образом: даже если ваша программа никак не упоминает сигналы в исходном коде, на самом деле она их использует, причём весьма драматичным образом. Читать дальше →
Источник: Хабрахабр
Похожие новости
- AlinaTen: DeepRoute.ai заявила о более чем 300 тысячах автомобилей с её системой автопилота
- AlinaTen: Суд в США отклонил обвинения Илона Маска в мошенничестве против OpenAI перед началом разбирательства
- О создании в России центральной базы данных идентификаторов пользовательского оборудования (оконечного оборудования)
- Почему у тиранозавра маленькие ручки?
- ONLYAPPS: Как самостоятельно сделать инфографику для маркетплейсов
- MarketingNews: Getblogger добавил возможность размещения рекламы в мессенджере «Макс»
- Блог ленивого инвестора: Итоги недели: рост на ожиданиях, падение на факте
- Это — все что вам надо знать о белых списках: ресерч, сканы, обход
- Краткая история биометрии: как ПЦР-метод изменил идентификацию по ДНК
- Права в Linux: chown/chmod, SELinux context, символьная/восьмеричная нотация, DAC/MAC/RBAC/ABAC