| ПРОЕКТ ПОДДЕРЖИВАЕТСЯ ООО "ТОНК" Linux и Windows терминалы с поддержкой ICA и RDP. |
В этой статье обобщены разнообразные сведения и советы, собранные мною из разных источников. Надеюсь, информация, которая здесь содержится, поможет вам.
Надо сразу оговориться - приложения DOS плохо приспособлены для работы в Windows 2000 вообще, а в терминальной среде - особенно (будь то Terminal Services или Citrix MetaFrame). Тем не менее до сих пор существует большое количество старых приложений DOS, которые хотелось бы заставить работать в терминальной среде.
Приложения DOS в среде Windows 2000 доставляют целый ряд проблем. Ниже содержатся рекомендации по устранению некоторых из них.
Во-первых, большинство проблем связаны с тем, что приложения DOS изначально не были предназначены для работы в многозадачной среде. Операционная система MS-DOS и приложения DOS (а также Windows 3.1) являются 16-разрядными. Такие программы не могут непосредственно исполняться в 32-разрядной операционной системе, каковой является Windows 2000. Для запуска 16-разрядных приложений Windows 2000 создает процесс виртуальной машины - NTVDM, который в свою очередь выполняет 16-разрядные приложения в пределях своего контекста. При этом происходит трансляция 16-разрядных запросов к операционной системе в 32-разрядные запросы. Это занимает некоторое время и означает, что приложения DOS и Win16 выполняются хуже, чем приложения Win32. Поэтому приложения DOS и Win16 на 20% больше нагружают процессор и на 25% больше требуют памяти.
Еще одна важная проблема связана с тем, что приложения DOS постоянно опрашивают буфер клавиатуры, ищя предназначенный для них ввод. Это поведение означает, что приложения DOS, даже ничего не делая, расходуют чрезвычайно много процессорного времени: до 100% CPU.
Для устранения этой проблемы необходимо использовать утилиту TAME. Ее использование позволяет снизить потребление CPU до 5%. Работа TAME основана на интеллектуальном обнаружении холостой работы DOS-приложений и их "погружении в сон", освобождая таким образом циклы процессора. Использование TAME заметно улучшает работу 16-разрядных приложений в среде Windows NT/2000 - будь то рабочая станция или сервер. Основные особенности и возможности TAME включают в себя:
По умолчанию, после инсталляции автомтически модифицируется файл autoexec.nt.
Если это нежелательно, уберите запуск tame-mon.com из autoexec.nt
и создайте BAT-файл, в начале которого (перед запуском основной программы DOS)
вставьте строку:
C:\TAME\TAME-MON.COM
Доступ к настройкам TAME осуществляется из программы DOS комбинацией клавиш
Ctrl+Alt+T. Окно монитора TAME вызывается и скрывается комбинацией клавиш
Ctrl+Alt+M. Вместо tame-mon.com можно использовать tame-res.com;
он вдвое меньше по размеру, но не позволяет интерактивно менять настройки. tame.exe
служит для установки отдельных опций, а tameview.exe - для упрощения
администрирования, вывода статистики и диагностики. tameview следует запускать
из "чистой" командной строки DOS (не используйте Win-оболочки типа
Far; но можно Norton Commander).
Если после установки TAME и запуска приложения DOS виден мерцающий экран, нажмите
Ctrl+Alt+T и уберите флажок "Key Poll" или "SQL Requests"
(это можно сделать предварительно запустив команду tame.exe /Key_Poll
off). Для ускорения вывода в программах, написанных на FoxPro, можно
поставить флажок в опции "FoxPro Video".
В термине "полноэкранный режим" по отношении к прилжениям DOS таится двусмысленность. Этот термин может означать одно из следующих:
Плохой новостью является то, что стадартные растровые шрифты Terminal из комплекта Windows, используемые для оконного режима DOS, не позволяют настроить размер шрифта так, чтобы окно занимало весь экран. Либо с мелким размером шрифта остается много свободного места, либо с большим размером шрифта окно не умещается на экране. Кроме того, само начертание растровых шрифтов не самое удачное. Использование шрифтов TrueType (Lucida Console) также не решает эту проблему. Необходим такой шрифт, чтобы он с одной стороны максимально напоминал начертание шрифта, используемого в текстовом режиме, а с другой стророны - был такого размера, чтобы окно полностью умещалось в стандартные разрешения 640x480, 800x600 и 1024x768 - т.е. имитировал полноэкранный текстовый режим.
Шрифт для полноэкранного режима DOS
Хорошей новостью является то, что другие люди уже позаботились о шрифтах нужного разрешения, чтобы окно DOS максимально напоминало полноэкранный режим. Вот как сделать "полноэкранный" режим DOS (используя совет из thethin.net).
NewDOS_F.fon
на Windows 2000 Server: В панели управления откройте "Fonts", далее
из меню "File" выберите "Install new font". Имя шрифта
"New DOS Fullscreen". | Разрешение сеанса | Размер шрифта |
| 640x480 | 8x17 или 8x18 |
| 800x600 | 10x22 или 10x23 |
| 1024x768 | 12x27, 12x28 или 12x29 |
| Примеры отображения окна опубликованного приложения DOS на клиенте PN 7.0 в Windows 98 | |
| 640х480 шрифт 8х17, seamless window |
800х600 шрифт 10х22, в окне |
Поскольку для отображения окна сеанса DOS используются растровый шрифт Terminal,
то загрузка русификатора экрана не нужна. Однако, для правильного ввода символов
кириллицы необходимо установить русификатор клавиатуры (если вы этого еще не
сделали). Для этого в реестре откройте ключ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout\DosKeybCodes
и змените в нем значение для параметра 00000409 на ru. Кроме того, в
файле autoехес.nt, расположенном в С:\WINNT\system32, необходимо
добавить строку:
lh %SystemRoot%\system32\kb16.com ru
После перезагрузки переключение раскладок осуществляется клавишами LeftCtrl+Shift
(англ.) и RightCtrl+Shift (рус.)
Конечно, вы можете использовать также русификатор типа keyrus.com
Приложения FoxPro for DOS очень популярны, поэтому я вкратце остановлюсь на некоторых их особенностях.
MEMLIMIT = 60,2048,8192Для приложений, написанных на Clipper, в комплект TAME входит файл настройки
Clipper.tam, который вы можете подключить командой TAME /SET Clipper.tam
(Хотя по умолчанию TAME автоматически определяет программы Clipper и подгружает
нужные настройки). Для приложений Clipper TAME может использовать альтернативные
методы для уменьшения замедлений при печати.
Приложение DOS для отображение информации в окне не используют функции Win32
API. Вместо этого в памяти сначала рисуется растровое изображение (bitmap),
которое затем выдается на экран. Такая схема замедляет работу приложений - легко
заметрить, что интерфейс приложений DOS медленее в оконном режиме, чем в полноэкранном
текстовом. И особенно это плохо в терминальном сеансе.
Поскольку полноэкранный текстовый режим недоступен в терминальном сеансе, то
рекомендуется использовать минимальное разрешение и глубину цвета - т.е. 640х480
и 16 цветов, а также установить шрифты, имитирующие полноэкранный режим DOS
(см. выше).
Попробуйте внести изменения в реестр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\LPT_timeout
Вместо значения 15 поставьте 1.