1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Пространства адресов

Тема в разделе "WASM.BEGINNERS", создана пользователем defaultplayer, 28 дек 2008.

  1. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Ребята, кто-нибудь может сказать почему майкрософт использует термин виртуальный адрес и виртуальное АП, хотя речь идет о термине линейный?
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    виртуальный потому, что не физический
    виртуальное АП до 4гб у каждой программы, а физически - ну сам понимаешь...
     
  3. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    MSoft
    спасибо большое за ответ, но мне бы так сказать более проффесиональный ответ, я конечно не считаю вас ни в коем случае не проффесионалом. Интел однозначно пишет что задачи могут разделять одно линейное адресное пространство либо каждая задача может иметь свое.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    defaultplayer
    А ты в MSDN посмотри MS свои термины придумывает.

    Может потому что простраство не линейно?
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    При отсутствии сегментации виртуальный адрес равняется линейному.
     
  6. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    тоесть? интел однозначно пишет, линейное АП - линейно

    однозначно интел пишет, логический в линейный, линейный в физический, откуда взялся термин виртуальный
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    Mika0x65
    У нас страницы есть. Один физический адресс может быть в двух местих в виртуальном. Так что говорить о линейности как-то не приходится.
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.825
  9. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    в двух местах линейного, виртуальный вообще не использует, или по крайней мере отказалось от него, и наверно давно
     
  10. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Mika0x65
    сегментация есть всегда, отключить ее не представляется возможным
     
  11. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    defaultplayer
    Линейный адресс может быть виртуальным. Потому что линейный это 0 1 2 и тд.
    И физический тоже может быть линейным. Вернее так и было.
    Виртуальный это когда обращение идет по некоторому адресу. А физически он находиться по-другому.
    Интел говорит о преобразовании виртуального в линейный. Приэ том вводят понятие в соей области. Между прочим МС пишет ОС не под конкретный x86. Так то говорить что МС должен intel. Ну это непонятно. Если мисс России красавица ты при жене ее красавицей назовешь или как? Вот для тебя жена красавица , а мисс России тебе не должна волновать.
    Но она тебя волнует.
    Чета я отвлекся. Так вот линейное адресатное пространство программисту не доступно. Есть виртуальное которое преобразуется на линейное. А оно уже на физическое.
    Линейное адресатное пространства это прослойка между физическим и реальным.
    Виртуальный адрес сегмент: смещение Линейным в он будет только когда мы сделаем преобразование через таблицу дескрипторов. А дальше этот линейный адрес преобразуется в физический.
    Но это только у интел, а MS ничего не должы им.
     
  12. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    defaultplayer
    Возьми X86-64 там сегментаци нет. Там плоская модель. Но адресса всеравно будут виртуальными потому что еще есть преобразование через страницы. Отключи их. Будешь имет равенство виртуальный физический.
     
  13. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    http://www.wasm.ru/forum/viewtopic.php?id=29071
     
  14. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    defaultplayer
    Она есть всегда, но адресное пространство можно сделать "плоским", т.е. поставить базу всех (или почти всех) сегментов в 0, а лимит в 0xFFFFFFFF. До появления страничного преобразования линейный адрес был физическим. С появлением стал виртуальным.
     
  15. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    На у причем тут МС.
    МС строго дола определение виртуальному адрессу это процесс:смещение где адресс не равен физическуму. Так что о сегментах и страницах можно не говорить. Не суть важно, как эту виртуальность реализовывать.
     
  16. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Pavia

    интел говорит о преобразовании логического в линейный, дайте ссылку где говорится обратное

    когда МС говорит о том, что виртуальный адрес разлаживается на 3 состовляющих, она говорит о х86, а интел однозначно говорит что это линейный адрес

    а мануалы говорят что это логический, или по вашему МС разлаживает 48-ми разрядное число на 3 состовляющих?

    Y_Mur
    спасибо за ссылку, с этой темы началось увлекательное чтиво

    Mika0x65

    неправда, линейный был в реальном режиме еще, и есть даже когда подкачка отключена, это называется метод линейно-физического преобразования. Бывает он прямой и косвенный.
     
  17. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    defaultplayer
    Логический это синоним виртуального. Или вы не знали?
     
  18. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.325
    Адрес:
    Fryazino
    И что там прям таки написанно x86? Дайте линк.

    И что вас не устраивает. То что под словом виртуальный МС и интел понимает разные. Так я вам раскрою секрет все люди в мире под одними и темеже словаи понимают разные вещи. Для когото верх севершенства это Линукс, а для когото Виндовс. А для когото цветок в горшке.
     
  19. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Pavia
    а что, операционная система занимается трансляцией адресов?

    да я неговорил что меня что-то неустраивает, я спросил: знает ли кто-то причину по которой майкрософт использует термин виртуальный, пусть этот ответ будет даже самый банальный, - например линейный по смыслу неподходит, так как косвенный метод трансляции линейных адресов(он же пэйджинг) называется виртуальной памятью.
     
  20. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    defaultplayer
    В защищенном он никуда не делся. Первое действие, которое выполняет процессор с адресом -- складывает его с базой сегмента. Получается линейный адрес. Теперь, если страничное преобразование включено, старшие 20 бит адреса подменяются по таблицам PDE/PTE (или из кеша). Получается физический адрес.

    Это как?