Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Защищенный режим 286 |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 5 6 7 | Печать |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Zelya написал: Не совсем так. Экстендеры обычно служат обёрткой над приложением. Т.е. они запускаются вместе с приложением, уводят проц в защищённый режим, обеспечивают приложению управление памятью в защищенном режиме, шлюзы для прерываний и т.д., а при завершении приложения обратно "вертают усё как было". Так что там вполне себе полноценный защищённый режим. Что касается "DOS умеет/не умеет", тут момент неоднозначный. Формально говоря, DOS "отпускает" приложение в свободное плавание сразу после передачи ему управления, и её вообще не интересует, как и в каком режиме приложение там будет работать. Экстендеры переключаются в защищенный режим, чтобы "застолбить" парочку регистров, и потом, скинувшись назад в реальный, можно было б использовать более метра памяти. Так называемый "нереальный режим" (unreal mode), основаный на баге процов 286/386. Но, кроме жирной памяти, режим по сути своей остается реальным. Дос не умеет защищенный. |
Bobo
Advanced Member
Откуда: СПб Всего сообщений: 3628 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 авг. 2007 |
Zelya написал: ну, регистры перед этим надо загрузить нужными значениями чтоб он включился Только опять же, LOADALL |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
DrPass написал: Почти все экстендеры выходят из защищенного режима сразу же, как только получат нужные адресса для расширенной памяти. Далее программа работает в реальном режиме. Не совсем так. Экстендеры обычно служат обёрткой над приложением. Т.е. они запускаются вместе с приложением, уводят проц в защищённый режим, обеспечивают приложению управление памятью в защищенном режиме, шлюзы для прерываний и т.д., а при завершении приложения обратно "вертают усё как было". DrPass написал: ДОС не умеет выделять память программе в защищенном режиме. Стало быть, либо сама программа возьмет на себя часть работы ОСи, либо она моментально хряпнется. Что касается "DOS умеет/не умеет", тут момент неоднозначный. DrPass написал: Все оно кончено так, ноеще разЖ ДОС не может запустить программу в защищенном режиме. ДОС ничего не может, вобще сделать в защищенном режиме. И если программа сама переходит в этот режим и что-то там делает, то это не благодаря, а вопреки ДОС. Формально говоря, DOS "отпускает" приложение в свободное плавание сразу после передачи ему управления, и её вообще не интересует, как и в каком режиме приложение там будет работать. |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
Bobo написал: Да, нужно. Првада, не чтобы включился, а чтобы мы получили такую фичу, как анриал-режим. ну, регистры перед этим надо загрузить нужными значениями чтоб он включился Но человек вон уже собрался LOADALL-ом себе защищенный режим под ДОСомвключать, не нужно его обнадеживать. |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 11 августа 2015 3:05 Сообщение отредактировано: 11 августа 2015 3:14
Zelya написал: Что значит "ДОС не умеет выделять память в защищенном режиме"? Это в реальном режиме DOS не умеет выделять память программе. Формально куцый менеджер памяти там есть, но он используется только для внутреннего управления внутри ОС, а программам просто отдаётся на откуп вся доступная память начиная с точки загрузки. А для защищенного режима в DOS как раз есть драйвер управления памятью, в частности himem.sys. ДОС не умеет выделять память программе в защищенном режиме. Стало быть, либо сама программа возьмет на себя часть работы ОСи, либо она моментально хряпнется. Кстати, вот он как раз и работает по описанной вами схеме, переключаясь в защищенный режим для выделения блоков памяти, и возвращаясь обратно в реальный. В отличие от DOS-экстендеров. |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
DrPass Еще раз: ДОС не работает в защищенном режиме. himem.sys позволяет обратится к расширенной памяти в реальном режиме (через костыль с переключением в защищенный, а потом назад в реальный). В ральном режиме, кто управляет памятью - пофиг. Любая программа может писать в любую область памяти, ломая теоретическую мультиазадчность и саму ОСь. В защищенном режиме, программа получает свою область, где только она имеет право гадить. ДОС не умеет выделять защищенную память программы, и в защищенном режиме он просто "умрет". Кончено, есть вариант использовать VM86, начиная с 386, но это уже совсем другая тема. |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Zelya написал: Что значит "не работает"? Почему "он умрёт"? Объясните тогда, почему DOS не умирает после того, как поиграть в Duke Nukem? Или мы играем в Duke Nukem не в DOS, а в Xenix? Еще раз: ДОС не работает в защищенном режиме. P.S. По поводу объяснения, я в курсе, что такое GDT, LDT, про флаг защищенного режима в регистре cr0 и про сброс процессора через i8042. Поэтому я и пытаюсь добиться хоть какого-либо аргументированного объяснения, почему после перевода процессора в защищённый режим должна вдруг умереть система, которой в принципе пофигу на режимы процессора, потому что она вообще никак не взаимодействует с компьютером после передачи управления приложению. |
MMichael |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 11 августа 2015 12:07 Сообщение отредактировано: 11 августа 2015 12:16
yas написал: Позволю себе утверждать, что скорее всего вы за давностью путаете 286-й и 386-й компьютер. В свое время я ставил и даже работал довольно много на 80286 в Win 3.1 на 1Мб памяти. Ну как работал, как уже говорил, печатал на LQ100 документы в Write ;-) Еще как переключалку между DOS-сессиями использовал, этакий расширенный DOSSHELL. Чем мне такая работа запомнилась хорошо, так это практически невозможностью ничего кроме стандартного комплекта прог запустить на 1Мб. Хотя чего-то находил. Тем более виндовый офис не запускался. Но сама винда работала при этом на 12МГц 80286 со сносной скоростью. Во всяком случае ничего не тормозило при наборе текста. Там еще важно было хотя бы немного, хоть 64Кб, дать кэша для smartdrv. Office 4.0 запускался но тормозил так, как мама не горюй! Немножко лучше работал Works - помните такой пакет? Зато уже с 2 метрами с офисными приложениями уже можно было работать. А вот тормоза при наборе текста - это уже характерно для интенсивного использования свопа, которого для 80286 в винде не было. Только для 80386. На нем же, с учетом расширения памяти свопом, мог и Works запускаться. |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 11 августа 2015 13:47 Сообщение отредактировано: 11 августа 2015 13:49
DrPass написал: Я писал выше: приложение, запущенное из-под ДОС в реальном режиме, может спокойно перейти в защищенный и работать в нем, перебрав на себя часть работы нормальной ОСи по выделению памяти. Так же это приложение не сможет вызывать ДОСовские функции в расширенном режиме, и должно снова переключать режимы, либо реализировать свои аналоги. По возвращению в ДОС, снова нужно перейти в реальный режим. Именно потому, что ДОС не умеет защищенный режим! Приложение - пожалуйста. Например, тот же Win 3.1, запущенный из-под ДОСа. Но сам ДОС - только в реале. Что значит "не работает"? Почему "он умрёт"? Объясните тогда, почему DOS не умирает после того, как поиграть в Duke Nukem? Или мы играем в Duke Nukem не в DOS, а в Xenix? |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Zelya написал: Верно. А теперь что такое "возвращение в DOS"? А ничего, просто передача управления одной нехитрой программмулине - командному процессору. Обычной программе, которая просто слушает консоль да выполняет три десятка нехитрых команд. Ну да, эта конкретная программа требует реального режима... хотя и в режиме виртуального 8086 прекрасно работает приложение, запущенное из-под ДОС в реальном режиме, может спокойно перейти в защищенный и работать в нем, перебрав на себя часть работы нормальной ОСи по выделению памяти. Так же это приложение не сможет вызывать ДОСовские функции в расширенном режиме, и должно снова переключать режимы, либо реализировать свои аналоги. По возвращению в ДОС, снова нужно перейти в реальный режим. Соответственно, работать в защищенном режиме в DOS всё-таки можно, верно? Ведь возможность выполнения приложений в защищенном режиме - это единственное, что требуется. Вы вообще в DOS, по-большому счёту, кроме выполнения приложений, практически ничего не делаете. Такая возможность есть, DOS этому никак не препятствует, и прекрасно уживается с драйверами защищенного режима. |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 5 6 7 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Защищенный режим 286 |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |