Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Старый софт »   Windows и память
RSS

Windows и память

Protected и Real mode в старых версиях

<<Назад  Вперед>> Страницы: 1 2
Печать
 
Zelya
Member


Откуда: Львов
Всего сообщений: 187
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 янв. 2009
Хочу прояснить для себя некоторые детали для Windows 2.x и Windows 3.0.
Самый простой вариант: Windows 2.x и Windows 3.0 в Real mode - доступно 640 Kb памяти (с himem + еще несколько десятков?), мультизадачность ДОС приложений (эмуляция 8080) отсутствует.
Вариант №2 (тоже простой): Windows 3.0 в Standart режиме (для 286). Эмуляции нет, память до 16 (?) метров.
Вариант №3 (еще один простой): Windows 3.0 для 386. Эмуляция присутствует, память, хоть и адресуется как в 386, но из-за ограничения Винды - тоже до 16 (?) метров.
Вариант №4 (непонятный): Windows 2/286, эмуляция, ясен пень, отсутствует, полноправный Real mode (очень похож на Win 3.0 в таком же режиме). Но тогда какие ресурсы 286 проца использует эта версия?
Вариант №5(загадочный) Windows 2/386. Самый "темный" для меня вариант. Ясно только, что какая-никакая многозадачность для ДОС приложений поддерживается. Стало быть, проц работает в защищенном режиме. Но тогда появляются вопросы: во-первых, что с памятью? А во-вторых, что с Real mode приложениями? Они же любят завалится под protected mode. Конечно, грамотно написанное прилодение будет работать и так и так, но все же Microsoft рекомендовал запускать Win 2.x приложения под Win 3.0 только в режиме Real mode. Как же тогда Win 2/386 работает с Win 2.03 приложениями?
Вобщем, имеется 7 знаков вопроса. 3 по первым трем пунктам нуждаются в уточнении, а остальные мне непонятны, может, кто подскажет.
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
Самый простой вариант тоже не самый простой, ибо не надо забывать про EMS, которая тоже в реальном режиме адресуется. Впрочем в случае эмуляции с менеджером памяти режим на самом деле не реальный, но винда считает его реальным.
Вариант 4: используется HMA, т.е. первые 64KB по A20 - знаменитая ошибка 286-го процессора. Причём если там сидит himem+dos, то винда 2/286 не запускается.
Вариант 5: погдядеть ms dos shell с включённой переключалкой задач - она как винда в защищённом режиме, только без win-приложений, только DOS. Память dos-приложений подкачивается на диск во временный каталог - отдельно на каждую задачу. Т.е. не как в 386-режиме с одим свопом на всё. Касательно всяких софтин под дос-экстендеры, то скорее всего они всё повесят.
Zelya
Member


Откуда: Львов
Всего сообщений: 187
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 янв. 2009
[q]
Самый простой вариант тоже не самый простой, ибо не надо забывать про EMS
[/q]
Windows 2.x либо 3.0 сам по себе EMS, вроде, не умеет. То есть поместить какой-то свой софт в UMA Windows не сможет и если кто-то его использует - Винде попарабану. Правильно?
[q]
Впрочем в случае эмуляции с менеджером памяти режим на самом деле не реальный, но винда считает его реальным.
[/q]
Если есть два приложения, которые раскиданы в разные фрагменты памяти, как с ними можно работать, считая режим реальным?
[q]
Вариант 4: используется HMA
[/q]
То есть, вся поддержка 286 - это дополнительные 64 КВ?
[q]
Причём если там сидит himem+dos, то винда 2/286 не запускается
[/q]
Не, запускается, только кричит, что "конфигурация памяти изменена, я работаю не оптимально, переустанови меня". Интересно только, если в config.sys нигде не прописывать DEVICEHIGH - все равно ругается.
[q]
Вариант 5:
[/q]
Т.е. windows 2/386 переключается в защищенный режим, используя только эмуляцию, а из памяти используется первый метр, приблизительно, как в Real mode? Если да, то разве это не тормозит работу?
[q]
Касательно всяких софтин под дос-экстендеры, то скорее всего они всё повесят.
[/q]
Не понял. Выходит Windows 2/386 ни с чем не совместима?
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
По крайне мере Win3.0a пишет в About Program Manager:

Real Mode (Large Frame EMS)
Free Memory......xxxK (yyyK in EMS)
Free Expanded Memory......32zzzKB

Т.е. все 32MB EMS видит.

Да, вся поддержка 286 это +64KB. В те времена считалось, что переключить 286-й в защищённый режим это очень сложно :)

devicehigh это касается запуска в UMB's - не путать с HMA, в которую DOS грузится по команде config.sys "DOS=HIGH".

Вариант 5: Где-то так.
MS и тормозит разве это не синонимы? ;)

Выходит что не совместима. Из всех 2-х виндов стабильно запускается только 2.03. BTW, 386-расширенный режим в Win 3.0 это тоже песня, как и стандартный. Нужны весьма специфические условия, чтоб в них заработало. Тогда как 3.1 в обычных условиях запускается свободно и не ругается на всякие уже установленные защищённые режимы от emm386 например.
Zelya
Member


Откуда: Львов
Всего сообщений: 187
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 янв. 2009
Давайте определимся с теримнами :). Я думал, что память имеет следующий вид:

0 - 640 - досутпная всем память
640 - 1024 - UMA или UMB (зарезервировання память), а EMS - стапнадрт, который позволяет "выдрать" из нее несколько десятков килобайт
1024 - 1088 - НМА - пробелма A20. Himem используя это расширяет память на 64 КВ
1088 - ... - XMS - вся остальная память

По моим понятиям, EMS никак не может быть мегабайтами. Но, судя, по Вышему логу EMS Винда 3.0 все-таки умеет, и даже видит больше 16 метров (проверить не мог, а Википедии написано - 16)
[q]
В те времена считалось, что переключить 286-й в защищённый режим это очень сложно
[/q]
Вроде, не переключить в защищенный, а вернуть в реальный, но и то была не главная проблема. Где-то читал, что IMB в OS/2 1.0 пытались реализировать эмуляцию ДОС программ в расширенном режиме 286. Напомню, что в отличие от 386 у него нет аппаратной виртуальной машины. Так вот, из-за всех этих заморочек по достпупу к памяти (программа досутпается как бы в реальном режиме, но в дейстивтельности проц в защищенном) работа получилось нетерпимо медленной. Поэтому и был придуман костыль - OS/2, работая в расширенной памяти, резервировала нижние 640 КВ для ДОС программ, и когда они запускались, сбрасывала проц в реальный режим и выполняла ДОС-программу. Поэтому мне очень подозрительно, что Виндовс добилась, пусть и не лучших, но терпимых результатов в запуске Real mode программ в protected mode.
[q]
Выходит что не совместима. Из всех 2-х виндов стабильно запускается только 2.03.
[/q]
Ну, моя 2/286 на 286 компе работает неплохо :)
Fe-Restorator
Гость

Ссылка

Zelya написал:
[q]
EMS - стапнадрт, который позволяет "выдрать" из нее несколько десятков килобайт
[/q]
EMS - это такая фиговина, что позволяет обзирать немеряны просторы XMS через 64К замочную скважину, проковырянную где-то в пределах UMA. Остальную часть UMA EMS не пользует вовсе. Одновременно EMS и XMS не живут, ибо замещают друг-друга, "вытесняя противника" с поляны боевых действий.
Причём, EMS будет работать даже если в компе физически установлено всего 640К памяти. Ибо для таких компов выпускались ISA-based карточки с 64К RAM-кешем и 1..32 метра памятью на борту.
Кстати, а что означает "стапнадрт"? ;) Стопарь+нарды??? :biggrin:
Сейчас на форуме
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
Про EMS Fe-Restorator исчерпывающе написал. Винда 3.0 видит 16 метров XMS, из-за того, что понимает стандарт XMS только версии 1.0, т.е. до 16MB. Напомню, что XMS 2.0 = 64MB, а текущий 3.0 = 4GB. К совершенно другому стандарту на совсем иной тип памяти это естественно не относится.
Касательно win vs. os/2 то не забывать, что это противостояние полуось проиграла с треском, который ещё назывался winos/2 :) Может в т.ч. и по этой причине?

Толку в Win2/286 никакого - DOS прекрасно сама засовывается в HMA замечательно освобождая нижнюю память. Так что поддержка HMA в Win/286 получается скорее помехой, чем помощью.
Zelya
Member


Откуда: Львов
Всего сообщений: 187
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 янв. 2009
Fe-Restorator
Ага... то есть EMS позволяет мапить любые 64 КВ XMS в UMA. Ну, и имея свободный доступ в XMS, понятно EMS нафиг нужно. Правильно? И вдогонку вопрос, Win 2/286 умеет EMS?

Anderson1
То есть Ваша Вин 3.0 видела 32 метра, через EMS?
[q]
Касательно win vs. os/2 то не забывать, что это противостояние полуось проиграла с треском, который ещё назывался winos/2 :) Может в т.ч. и по этой причине?
[/q]
Дмуаю, ОС/2 проиграла из-за того, что пока она разрабатывалась под все ресурсы 286 проца, был выпущен революционный 386. ОСи, ориентированный на этот проц писались быстро, и работали отлично, чего не скажешь про OS/2 1.x, которая из-за костылей для 286 страшно глючила и на 386.
Fe-Restorator
Гость

Ссылка

Zelya написал:
[q]
EMS позволяет мапить любые 64 КВ XMS в UMA. Ну, и имея свободный доступ в XMS, понятно EMS нафиг нужно
[/q]
Нет! При юзании EMS никаких XMS нет и в помине, просто N метров неизвестной никому памяти.
Исторически сперва появился EMS, ибо ни ХТ, ни 186/286 не могли адресовать более 1 мегабайта памяти. Именно поэтому в UMA просверливалось очко размером в 64К(размер сегмента) и сквозь него, как сквозь лупу, покадрово просматривались все "неизвестные процу" гигазы RAM, обычно распаяные на ISA-driven карточке, часто с дополнительным RAM-extender разъмом, величиной с ещё одну ису, под его ответную часть, впаяную в мать и посаженную напрямую на шину памяти.
Потом появился 386, защищённый режим и нативная поддержка 32 метров памяти, здесь расцвёл XMS, ибо более нет нужды в аппаратном "очке" тормознутого EMS, а программное EMS-очко в виде emm386.exe было оставлено для совместимости с "особо-умными прогами", жить не желающими без EMS.

Zelya написал:
[q]
Win 2/286 умеет EMS
[/q]
Этого не ведаю, но, если и умеет, то скорее всего - не нативно, а через некий посторонний драйвер. Запускалась-же когда-то win2 на 286-8 с 3-мя метрами памяти... Помню сие, но не помню конфы того компа, был-ли там емс...
Сейчас на форуме
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
Zelya написал:
[q]
И вдогонку вопрос, Win 2/286 умеет EMS?
[/q]
Да. Только что экспериментально это установил - и 2.03 и 2.10/286 отлично видят все 32MB EMS, о чём пишут а About.

Zelya написал:
[q]
Anderson1То есть Ваша Вин 3.0 видела 32 метра, через EMS?
[/q]
Снова да. Однако, Win 3.0 таки держит XMS 2.0, ибо имеет в комплекте himem.sys с поддержкой этой версии XMS и рапортует о 74MB свободной памяти в 386-расширенном режиме. Но если забить первые 16MB XMS рамдиском или дисковым кешем, винда пишет о нехватке памяти. Т.о. не факт что и со всеми 32-мегами EMS оно будет работать.
Zelya
Member


Откуда: Львов
Всего сообщений: 187
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 янв. 2009
Fe-Restorator
[q]
Исторически сперва появился EMS, ибо ни ХТ, ни 186/286 не могли адресовать более 1 мегабайта памяти.
[/q]
Так ведь 286-й мог адресовать до 16 метров и имел свой защищенный режим. Это тоже было XMS 1.0?

Anderson1
[q]
Только что экспериментально это установил - и 2.03 и 2.10/286 отлично видят все 32MB EMS
[/q]
Странно. Я как не конфигурил свою Винду на 286-м с 4-мя метрами - никак их увидеть не мог....
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
Zelya написал:
[q]
Fe-Restorator
[q]
Исторически сперва появился EMS, ибо ни ХТ, ни 186/286 не могли адресовать более 1 мегабайта памяти.
[/q]
Так ведь 286-й мог адресовать до 16 метров и имел свой защищенный режим. Это тоже было XMS 1.0?
[/q]
Это потом придумали как получить доступ на 286 к больше мегабайта памяти, не считая 64KB HMA конечно - когда уже 386-е были. До того так и ставили EMM карты памяти на 286, как на XT.

Zelya написал:
[q]
Anderson1
[q]
Только что экспериментально это установил - и 2.03 и 2.10/286 отлично видят все 32MB EMS
[/q]
Странно. Я как не конфигурил свою Винду на 286-м с 4-мя метрами - никак их увидеть не мог....
[/q]
Естественно, ибо на 286 менеджеры памяти типа emm386 не пойдут - что кстати ясно уже из их названия. Надо довольно экзотическую прогу, которая дёргая чипсет матери включала запись в аппаратные UMB's, организовала там фрейм для EMS, а уже потом эмулировала на XMS. Т.е. в реальном режиме. Работает это далеко не на всех 286-х машинах.
Fe-Restorator
Гость

Ссылка

Zelya написал:
[q]
Так ведь 286-й мог адресовать до 16 метров и имел свой защищенный режим. Это тоже было XMS 1.0?
[/q]
Этот режим в 286-х камнях прошёл минимум 3 правки, "сервис-пака", если хочешь так сказать.
Первые камни вообще не могли его включить! Да и чипсет не готов был к этому режиму, ибо сильно ещё наследие ХТ в архитектуре и методах построения чипсетов (читай - всё на рассыпухе слеплено, мать размером 520х670 мм, простыня такая ;) ). Частота камней - до 8 МГц.
Более новые мамки, 270х330 мм размером уже обладали неким чипсетом, из 4-5 чипов и дискретной обвязки. Камни(добрались частотой до 16 МГц) на них уже умели включать защищённый режим, но сам чипсет ещё не поддерживал память более метра, ибо работал нестабильно с таким объёмом RAM. В это время появляется 386-й камень, с изначально правильным режимом работы и адресацией всей имеющейся памяти (стоила она дорого и не у каждого её выло 4 метра, не говоря-ух о большем.
Лишь наиболее поздние камни и поздние мамки переняли у 386 правила работы, ибо иначе не выдерживали конкуренции. Появились 20-и мегагерцовые камни и чипсеты, держащие до 16 метров памяти + был и слот под EMS для совместимости и расширения памяти до 32 метров, в теории. На практике-ж был жуткий конфликт XMS-а с EMS-ом.
Сейчас на форуме
<<Назад  Вперед>> Страницы: 1 2
Печать
Полигон-2 »   Старый софт »   Windows и память
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS