Пользуется ли винда LDT?

Тема в разделе "WASM.BEGINNERS", создана пользователем barmaley57, 11 авг 2009.

  1. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Может вопрос и дурацкий, но ответ на него прояснит для меня некоторые моменты.
    Исходя из своих попыток ковыряние в ядре и понимаю так, что в винда не пользуется LDT.
    Верно ли это?
    И еще, если позволите, не могли бы вы в кратце освятить вопрос о механизме переключения задач в винде. Для чего и как используются дескрипторы TSS 28,50,58 ??? Насколько я могу судить, другие TSS не создаются. Так ли это?

    P.S. может ткнете носом в какую-нибудь литерутуру по этим вопросам.

    Спасибо.
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Переключение задач чисто программное ("ручное" сохранение регистров одного потока и загрузка регистров другого). А разные TSS используются для обработки некоторых прерываний, связанных с серьёзными ошибками, т.е. эти "аппаратные" задачи являются на самом деле обработчиками прерываний, а не обычными пользовательскими потоками. Чтобы посмотреть, какой TSS за что отвечает, надо глянуть в IDT.

    Пы.Сы. Стоило б указывать версию Винды, а то их много, и кой-какие различия между ними имеются. Особенно между 32- и 64-разрядными.
     
  3. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Виноват! W2K SP4 или XP SP2
    Что-то не сообразил в IDT глянуть. 50 селектор - обработчик Double Fault, а 58 - NMI.
    Значит 28 TSS (который помечен как занятый) используется системой в качестве TSS для главной (первой,...в общем даже не знаю как выразиться) задачи?
    Интересно, почему товарищи из микрософта не использовали аппаратное переключение?
     
  4. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Еще бы их найти :) ReactOS пойдёт?
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    В гугле находится)

    Оно медленное и неудобное. Во всех современных осях программное
     
  6. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Зря значит старались товарищи из intel...
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    По-моему, на новых х64 процах его уже нет (хотя точно не знаю)
    А LDT винда не пользуется. Хотя можно выставить свою для потока через ZwSetLdtEntries
     
  8. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Так все-таки, возвращаясь к теме топика, LDT в винде не используются?
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ...
     
  10. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Все...пора отдохнуть от экрана! В упор не видел!!!
    Great, спасибо.
     
  11. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Great
    Есть в 32-разр режиме (для совместимости), отсутствует в 64-разр режиме.
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    SII
    Ну да, я это имел в виду
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    аппаратное переключение задач через TSS
     
  14. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Дальний JMP, дальний CALL или IRETD на селектор задачи.
    LTR - это для тачальной инициализации TR.
    Она задачи не переключает.
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    cppasm
    Попадёте вы товарищ на бсод.
    barmaley57
    Доки Интел, касательно виндоз - ищите инфу по KTRAP_FRAME - это и есть задача.
     
  16. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Спасибо. Уже скачал доки intel - пожалуй лучше источника нет!
     
  17. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Какой нафиг BSOD?
    Я про механизм аппаратного переключения задач писал, про Win речи не было.
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    cppasm
    Не обращай внимания, у него во всех вопросах видится глубокий технический смысл и что они обязательно про ядро винды. Даже если спрашивают про то, как из файла читать на си
     
  19. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ручная перезагрузка всех регистров с сохранением их в структуре, описывающей логическую единицу выполнения.
     
  20. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Продолжаем серию ламерских вопросов :)
    Если я правильно понимаю, то винда занимается переключением потоков на уровне IRQL=Dispatch, в следствии получение сигнала прерывания от системного таймера (IRQ=0)?
    Не подскажете на какой вектор в IDT перенаправляется 0-вой канал контроллера прерываний? Или другими словами, есть ли смысл ставить бряк на обработчик таймера? Реально ли там что-нибудь понять?
    Спасибо.