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

Discussion in 'WASM.BEGINNERS' started by Iceberg, May 18, 2006.

  1. Iceberg

    Iceberg New Member

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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    Iceberg



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

    Iceberg New Member

    Blog Posts:
    0
    Joined:
    Dec 5, 2005
    Messages:
    54
    Location:
    Санкт-Петербург
    Quantum

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

    Iceberg New Member

    Blog Posts:
    0
    Joined:
    Dec 5, 2005
    Messages:
    54
    Location:
    Санкт-Петербург
    Quantum

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

    TermoSINteZ Синоби даоса Staff Member

    Blog Posts:
    2
    Joined:
    Jun 11, 2004
    Messages:
    3,568
    Location:
    Russia
    Где находится Код ОС, зависит от реализации. Обычно страницы такого кода помечаюстя (флаг global в эл-те PTE) как "всегда присутствующие" в TBL кеше. Их к тому же не сбрасывает на хард механизм подкачки.

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

    leo Active Member

    Blog Posts:
    0
    Joined:
    Aug 4, 2004
    Messages:
    2,542
    Location:
    Russia
    Iceberg

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

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

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

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

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