Тема: Резидент на асме.

Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 20 из 22
  1. Вверх #1
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168

    По умолчанию Резидент на асме.

    Скажите, можно ли написать активный резидент на асме, не переопределяя обработчики прерываний? :)
    ~ Motivation is what gets you started. Habit is what keeps you going.


  2. Вверх #2
    Тигровна Аватар для Tigra
    Пол
    Женский
    Адрес
    /dev/null
    Сообщений
    1,528
    Репутация
    267
    Во-первых - ты под ДОС писать собрался?
    Если под него, родимого, то не можно (по-моему) - да и чем тебе прерывания не нравятся?) Отличный способ получить управление..)
    А если все же под Вин32, то тут прерывания вообще ни при чем. Тут - перпроцессная резидентность - ты перехватываешь вызовы API.

    ЗЫ - хорошо ты так... иносказательно выражаешься
    Не будите во мне Зверя, он и так не высыпается

  3. Вверх #3
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    Яр, ты хоть сам понял че спросил?

  4. Вверх #4
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    угу.

    и уже разобрался.
    зы: под дос )
    ~ Motivation is what gets you started. Habit is what keeps you going.

  5. Вверх #5
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    может расскажешь тогда, какой толк от резидента, который не сидит ни на одном из прерываний?

  6. Вверх #6
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Я неявно об этом и спрашивал...
    ясно что никакого..
    просто один человек очень сильно уверял меня что можно написать полезный резидент не подсаживаясь на прерывания. вот я и подумал, быть может и такое бывает в жизни :)
    почитав немного соответствующую литературу, пришёл к выводу, что чудес всё же нет ))
    ~ Motivation is what gets you started. Habit is what keeps you going.

  7. Вверх #7
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    Яр, если задаться такой целью то конечно можно. Найти какую-то неиспользуемую область в памяти (например, неиспользуемую страницу видеопамяти) - пихнуть туда резидента, а из других прог вызывать его call-ом на этот адрес. Насчет "активных" и "пассивных" резидентов - так разница между ними чисто символическая, по мне так ее вообще нет

  8. Вверх #8
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Найти какую-то неиспользуемую область в памяти (например, неиспользуемую страницу видеопамяти) - пихнуть туда резидента, а из других прог вызывать его call-ом на этот адрес.
    Broken Sword, исходя из твоих слов, BIOS был первым резидентом?
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  9. Вверх #9
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    именно так и есть. биос полностью подходит под классическое определение резидентной программы - после загрузки в оперативу он остается сидеть там резидентом )

  10. Вверх #10
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Тогда и любая ОС не ОС, а обычный резидент. Потому что
    после загрузки в оперативу он остается сидеть там резидентом
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  11. Вверх #11
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    да ты абсолютно прав. формально так и есть. а что не так?

  12. Вверх #12
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Имхо, скорей только ядро ОС резидентно :) ведь остальные части работают в качестве модулей и служб, которые могут и не работать.?
    ~ Motivation is what gets you started. Habit is what keeps you going.

  13. Вверх #13
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    в многозадачных ОС понятие "резидента" вообще не существует. сама "многозадачность" тут не при чем, но она косвенно избавляет от самого этого понятия

  14. Вверх #14
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Broken Sword, расслабься чувак Все здесь ученные Советы одно, поучения - другое
    На тему
    в многозадачных ОС понятие "резидента" вообще не существует
    готов оспорить. К примеру в винде есть несколько видов "классического понятия" резидентности программ: как минимум SetTimer(), хуки API, APC. Что же касается ядра, так там вообще понятие "резидента" занимает отдельную нишу.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  15. Вверх #15
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    Slaventius, я вообщем то и не напрягаюсь . Просто ты не в ту степь уводишь тему. И никого я не поучаю - просто привожу сухие факты. Резидент вообще это что? Открываем дословное определение из классики - Art of Assembler Language, page 1025: Most MS-DOS applications are transient. They load into memory, execute, terminate, and DOS uses the memory allocated to the application for the next program the user executes. Resident programs follow these same rules, except for the last. A resident program, upon termination, does not return all memory back to DOS. Instead, a portion of the program remains resident, ready to be reactivated by some other program at a future time.

    Т.е. для ДОС-а (и др. однозадачных ОС) единственным отличием резидента от транцедента является то, что после выполнения он не возвращает память ОС, а если спуститься еще на уровень ниже - то ОС просто считает какую-то часть памяти недоступной для загрузки других программ, чтоб не повредить тело резидента. В этом и есть суть резидента. Теперь (внимание!) - в многозадачных ОС понятие "резидент" теряет свой смысл, т.к. мы можем запустить на выполнение сколько угодно много процессов (ну есесно пока у ОС хватит дескрипторов) таким образом, что ни один из них не "полезет" в адресное пр-во другого процесса. Т.е. процессу нет необходимости явно сообщать ОС о том, чтобы она оставила его резидентом в памяти и не давала другим процессам его портить, ОС сама обо всем позаботиться.

    Пару слов о "SetTimer(), хуки API, APC". Первое вообще ничего общего с резидентностью не имеет и по сути от sleep не отличается. APC - вообще объект синхронизации, при чем тут резидентность? хуки - это хуки сравнивать их с резидентностью все равно что теплое с мягким.

  16. Вверх #16
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    И не лень же было по книжкам шарится. А говоришь не напрягаешся
    Пару слов о "SetTimer(), хуки API, APC". Первое вообще ничего общего с резидентностью не имеет и по сути от sleep не отличается. APC - вообще объект синхронизации, при чем тут резидентность?
    Я к тому это говорил, что под то понятие "классичности" (повторно пишу в кавычках и акцентирую на этом внимание), которое было выведено раньше подпадает любая программа которую периодически вызывают другие. Чем твой совет про call отличается от вызова процедуры по таймеру или же по хуку, к примеру? Ничем.
    Отсюда вывод: все изначальные разночтения пошли из-за нечеткой формулировки. Вот и всё.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  17. Вверх #17
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    И не лень же было по книжкам шарится. А говоришь не напрягаешся
    Да че там шариться - настольная книга . copy/paste, делов.

    Отсюда вывод: все изначальные разночтения пошли из-за нечеткой формулировки. Вот и всё.
    кажется, ее до сих пор нет

  18. Вверх #18
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    В общем пошутили и будет. Завязываем оффтопить.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  19. Вверх #19
    Частый гость
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    957
    Репутация
    258
    ок, с наступающим!

  20. Вверх #20
    Посетитель Аватар для Tyler Durden
    Пол
    Мужской
    Адрес
    От-т-туда
    Возраст
    41
    Сообщений
    267
    Репутация
    17
    Причем тут хуки api ? TSR - это terminate and stay resident и не чего боле ! Резидент - это лишь сокращение от TSR, которое переводиться исключительно завершиться и остаться в памяти, а никак не "стать резидентом" %) А хукать можно не обязательно перехватывая, можно сплайсить. Ты где-нибудь видел ф-ю keep() в винде ? Вот и я нет, резидентов в винде нету (т.к. все программы либо завершаються, либо "висят" в памяти)
    Let the chips fall where they may


Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения