Почему я получаю внутреннюю ошибку переполнения стека при сворачивании и восстановлении окна виртуальной машины MS-DOS?

2349
gparyani

Я использую Windows Virtual PC на компьютере с Windows 7. Я создал виртуальную машину MS-DOS 6.22 с 16 МБ ОЗУ и 2 ГБ жесткого диска. Всякий раз, когда я минимизирую или иным образом деактивирую окно, а затем восстанавливаю или снова активирую его, я получаю сообщение об ошибке, динамик ПК подает звуковой сигнал в течение секунды, и виртуальная машина полностью перестает работать, пока я не перезагружу его принудительно:

Internal stack overflow System halted 

(Интересно, что проблема не возникает, когда я работаю под управлением Windows 3.1, которая работает поверх MS-DOS. Я получаю ошибку сразу, когда пытаюсь выйти в MS-DOS из Windows.)

Я также получил аналогичную ошибку при попытке установить операционные системы на базе Windows 9x во время первого (текстового) этапа установки и выполнения тех же действий, а также при попытке загрузить такую ​​ОС (в данном случае Windows 98) в режиме реального времени MS-DOS (хотя в этом случае я получаю ошибку сразу и не нужно выполнять действия, описанные выше, чтобы ее получить):

An internal stack overflow has caused this session to be halted. Check the STACKS setting in your CONFIG.SYS file, and then try again. 

Почему возникает эта ошибка, и есть ли способ ее исправить?

0
Я предполагаю, что это не любит быть минимизированным. Действие приводит к исключению / ловушке, и это становится рекурсивным. Daniel R Hicks 10 лет назад 1
@DanielRHicks Это похоже на правдоподобную причину. Но почему возникает исключение, когда я активирую окно? И почему это не происходит, когда я работаю на операционной системе Windows 9x в стандартном (GUI) режиме? gparyani 10 лет назад 0
Ни одна виртуальная машина не идеально воспроизводит реальную машину. Видимо, ваш менее совершенен, чем большинство. Может быть проблема с настройкой виртуальной машины. Daniel R Hicks 10 лет назад 1
(Очевидно, что-то мешает гостевой ОС правильно обрабатывать прерывания / прерывания, так что, когда она получает одно, она берет другое прерывание, обрабатывающее первое. Вероятно, что происходит, что гость пытается изменить какое-то состояние, которое он не авторизован для изменения. Но невозможно быть более точным, чем это.) Daniel R Hicks 10 лет назад 1

1 ответ на вопрос

0
TOOGAM

Очень странно, что изменение размера окна повлияет на виртуальную машину.

У вас есть последняя версия Virtual PC для вашей ОС? Если нет, в вашем BIOS включена виртуализация?

Известно, что Windows заменяет часть DOS; неудивительно, что Windows может исправить что-то, что сломано в DOS. Тем не менее, я бы с осторожностью относился к стабильности любой установки Windows 9x, которая находится на вершине машины (даже виртуальной), которая не может хорошо работать под DOS.

Для получения информации о команде STACKS см. Файл CONFIG.TXT, поставляемый с Windows 98. (Да, я правильно написал это имя файла.) Мне также интересно, может ли FSCB (блоки управления файловой системой) быть другой командой CONFIG.SYS, которая Соответствующий?

Было бы интересно посмотреть, есть ли у других DOS такая проблема. FreeDOS работает лучше?

Вы также можете попробовать другой эмулятор. (Например, Qemu с открытым исходным кодом. VirtualBox также может быть вариантом.)

Кажется, вы не единственный, кто столкнулся с этим: проблема установки Win98 (которая показывает некоторые примеры строк CONFIG.SYS, которые нужно попробовать), проблемы Windows 95 с виртуализацией (которая упоминает, что слишком быстрая загрузка процессора, как известно, вызывает проблемы). ).