Защищенный режим, простой вопрос

Тема в разделе "WASM.BEGINNERS", создана пользователем Iceberg, 18 май 2006.

  1. Iceberg

    Iceberg New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    54
    Адрес:
    Санкт-Петербург
    Изучаю работу в защищенном режиме, и сразу возник вопрос, раз в сегмент кода мы не можем писать (даже нет такого бита в дескрипторе), то как операционная система туда пишет? Я не догоняю. И как мы можем менять коды функций в памяти. И где находится код операционной системы, в каком сегменте? Сори за ламерский вопрос.
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Iceberg



    Загрузчик выставляет флаг writeable, пишет туда, потом снимает.
     
  3. Iceberg

    Iceberg New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    54
    Адрес:
    Санкт-Петербург
    Quantum

    А где конкретно он этот флаг выставляет? По определению дескриптора для сегмента кода он не может быть writable.
     
  4. Iceberg

    Iceberg New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    54
    Адрес:
    Санкт-Петербург
    Quantum

    Мы видимо говорим о разных вещах. Ты о чем? =)
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.568
    Адрес:
    Russia
    Где находится Код ОС, зависит от реализации. Обычно страницы такого кода помечаюстя (флаг global в эл-те PTE) как "всегда присутствующие" в TBL кеше. Их к тому же не сбрасывает на хард механизм подкачки.

    Кстати для защиты на уровне страниц не достаточно пометить флаг WRITABLE . Необходитмо еще в CR0 Добавить флаг WP (Write Protect)
     
  6. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Iceberg

    > "Мы видимо говорим о разных вещах"

    Скорее на разных языках, т.к. у тех, кто изучает работу процессора в защищенном режиме и добрался до понятия плоская модель памяти (flat) - подобных вопросов обычно не возникает ;))

    Да и поиск по форуму иногда рулит ;)

    К примеру, чтобы не повторяться - Сегментные регистры и 386

    Если что не совсем ясно, спрашивай