Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перехват исключений модулем ядра

38K
12 апреля 2012 года
zonch
9 / / 29.10.2008
Добрый всем день!
Возникла следующая проблема-необходимо из написанного модуля ядра перехватывать все исключения,которые возникают в user-modовской программе.как это реализовать.Нужно именно из модуля ядра перехватывать.
Хелп, уже очень долго роюсь,не могу найти ответ на свой вопрос!
Вопрос 2 ,может кто знает
Существует в Линуксе понятие невыделенной (non-paged) памяти? Необходимо пометить некоторые участки адресного пространства user-modовской программы как невыделенные,т.е. отсутствующие,я хз как лучше перевести)
Буду рад ссылкам на инфу)
260
12 апреля 2012 года
Ramon
1.1K / / 16.08.2003
Прежде чем задавать подобные вопросы, избавьтесь от каши в голове, воспользуясь хотябы словарем, дабы осознать, что есть эта ваша "невыделенная" и non-paged память, и чем они различаются.
38K
12 апреля 2012 года
zonch
9 / / 29.10.2008
Мне честно говоря не суть важно как оно называется. В Windows такой тип памяти называется non-paged. Мне нужен такой тип памяти,чтобы при любом обращении к ней (на чтение, на запись ) вызывалось исключение.
А вы бы лучше ссылку на статью дали, если располагаете информацией.
Честно говоря, интересует больше ответ на первый вопрос, про перехват исключений, со вторым я думаю и сам справлюсь когда-нибудь=)
38K
12 апреля 2012 года
zonch
9 / / 29.10.2008
Насчет памяти-возможно если я проясню задачу,станет понятнее.
User-modовская программа очень маленькая,она уместится в одну страницу памяти.Из этой мини-программки модулю ядра шлется ID. и дальше драйвер занимается преобразованием адресного пространства этой мини-програмки.Он помечает всю память адресного пространства мини-програмки как non-paged (или аналог) ,страницу ,где содержится код программы помечаем как read-and-executable.
Таким образом при любом обращении к памяти из этой мини-програмки возникает исключение,которое я должен перехватить из моего модуля ядра.
Дальше модуль ядра записывает данные по ячейке, в которую происходило обращение,выделяет страницу памяти и перезапускает последнюю инструкцию,чтобы она корректно выполнилась.
В общем алгоритм выполнения нужен именно такой.
С учетом пояснений предметной области,может кто-то чего-то подскажет=)
260
12 апреля 2012 года
Ramon
1.1K / / 16.08.2003
Чесно говоря, по описанию выглядит, что вы занимаетесь онанизмом не имея основных знаний по предмету.

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

Non-paged memory - не подкачивавемая память, т.е участок виртуальной памяти для которого всегда присутствуют страницы физической памяти и этот участок принципиально не должен вызывать отказы страниц.

PS: Остальные лекции по внутреннему устройству операционных систем - платные. Ибо судя по всему вы хотите чтобы вам все разжевали, а тема объемная, требующая времени, а время это деньги.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог