Оказавшись, к вящей моей радости, не единственным здесь сторонником разумного минимализма, размещаю обнаруженный наконец-то в архивах текст (довольно уже старый, однако - многие из указанных здесь ссылок давно "мертвы"!) по разведению в домашних условиях этой экзотической для наших дней твари.
Описание новых программ как правило начинается перечнем минимальных требований к компьютеру и продолжается рекомендуемой конфигурацией, но через несколько лет становится актуальным ещё одно ограничение - максимально возможная конфигурация. Если приверженец Win3.1x продолжает упорствовать в своих убеждениях и хочет остаться в привычной среде, заменив только устаревшее либо развалившееся от времени "железо", то вероятнее всего он столкнётся сегодня именно с этим третьим типом проблем! Популярная компьютерная прибаутка гласит, что памяти, диска и мегагерц "много не бывает" - это конечно так, но тем не менее:
I - Память
========
Теоретически, Windows при работе в 386-enhanced режиме может адресовать до 256Mb памяти. Здесь не делается различия между физической памятью и её "продолжением" в виде своп-файла, и число относится к их суммарному размеру, но в наши дни можно смело отнести эту цифру к реальному размеру RAM - нужда в свопинге практически отсутствует из-за умопомрачительных по меркам создателей Win3.1 размеров ОЗУ современных машин, и впридачу свопинг сам по себе сильно тормозит работу системы.
На относительно новых машинах с 32...128Мб памяти величину свопа следует сделать минимально возможной, но совсем отказываться от него нельзя - многие программы проверяют его наличие и не обнаружив, откажутся работать считая что Windows не находиться в enhanced mode.
При этом надо помнить, что доступ к памяти обеспечивается через XMS manager операционной системы, так что для нормальной работы Win3.1x придётся позаботиться и о замене драйверов памяти DOSа, если он старый (например, Microsoft DOS v6.22 просто "не видит" памяти выше 64Мб, и надо заменить himem.sys и emm386.exe на взятые от MS-DOS v7.10; у Novell NW-DOS v7.00 надо менять emm386.exe на взятый от Caldera DR-DOS v7.03, и т.д.). На старых компьютерах препятствием для наращивания памяти может оказаться устаревший BIOS либо погрешности в конструкции самой материнской платы; связанные с этим проблемы могут проявится при переходе границ 16Мб и 64Мб.
I.2 - Ресурсы решают всё!
=====================
Несмотря на сказаное выше, даже если Windows 3.1x купается в 128Мб памяти, можно запросто получить от него сообщение о её нехватке. Проблема конечно, не в общем объёме - невзирая на размер extended memory, Windows также зависит от хорошо знакомых ДОСовикам low memory с UMB (ниже 1Мб), а самое главное - внутренние области памяти, используемые самой системой для служебных целей типа оперирования графическими объектами (и вообще для выполнения практически любых задач), так называемые "хипы", имеют непробиваемое ограничение в 64кб. Когда любой из шести этих системных хипов (User heap, User String heap, GDI heap, GDI String heap, Menu heap и Menu String heap) переполняется, дальнейшая работа оболочки становится непредсказуемой - возникают необъяснимые странности (вроде пропадания надписей на кнопках, хаотичного изменения размеров шрифта, "дыр" в окнах и т.п.), заканчивающиеся крахом системы. К сожалению, сама Windows практически не имеет защиты от возникновения таких ситуаций, и если не следить за доступными ресурсами в условиях множества запущеных программ, неожиданно настаёт момент когда один из них оказывается исчерпаным и часто даже сообщить об этом либо нарисовать окошко с кнопками для выхода системе будет уже просто нечем.
Что касается low memory, то она также интенсивно используется для нужд Windows (в частности, любая запущеная программа откусывает от неё по 512 байт на свой program segment prefix), и особенно сильно low memory потребляется в WfWg 3.11 - туда грузятся драйверы сети и связянные с ними модули, поэтому для неё эта проблема наиболее актуальна. Кроме этого очень распространена ситуация когда программа нахально занимает под свои нужды изрядный кусок памяти из этой области, даже если чисто технической необходимости в этом нет. Когда же следующей запускаемой программе действительно надо будет получить в своё распоряжение немного low memory, то ей будет в этом отказано (правда, на этот раз без особых последствий для общего функционирования системы - мы просто получим сообщение "Insufficient memory to run this application...").
Состояние двух наиболее важных хипов (User и GDI) отображается в 'Help->About' у Program Manager и File Manager в строке "System Resources", но для постоянного наблюдения за уровнем ресурсов лучше использовать какую-либо специальную программу, множество которых было создано разными авторами (MS впервые включил такую программу в WfWg 3.11). Лучше выбирать те, у которых помимо "показометра" имеется предупредительная сигнализация о приближении к опасному уровню, чтобы увлёкшись работой не заплыть за буйки.
Одна из таких программ - "BarClock" by Atomic Dog Software (фирма занялась другим бизнесом, но утилита доступна, например, с ftp://ftp.tu-darmstadt.de/pub/machines/ms-dos/Cica/win95/desktop/barclk42.zip), где применено очень элегантное решение: для отображения информации используются края title bar активного окна, что позволяет всегда иметь её перед глазами, не отвлекаясь на отдельное табло или иконку. Предупредительные сообщения даются бегущей строкой, на время заменяющей прочие надписи, и могут сопровождаться зуковыми сигналами. Также показывается системное время, в число контролируемых параметров может входить свободное пространство на диске, и т.д. Часто функции слежения входят в состав программ, предназначенных для других задач (тот-же BarClock изначально был будильником!) - это позволяет ограничить их общее число и расход ресурсов.
Слежение за доступной low memory также требует применения специальных утилит (последние версии BarClock делают и это тоже), но ещё лучше вооружиться комплектом программ, созданых для борьбы с необоснованым растранжириванием этой области памяти. Методика крайне проста, но часто очень эффективна: перед загрузкой "нескромной" программы сначала запускается модуль-болванка, который попросту занимает своей тушей low memory почти под горлышко, и запускаемой программе не остаётся ничего другого кроме как грузиться в обычную и просторную extended memory, после чего болванка вынимается. Это позволяет спокойно использовать подобные программы, хотя и требует затрат времени на предварительную настройку. Хороший образец такого комплекта - "Windows Low Memory Saver" by Analysis&Management Enterprises (ftp://ftp.ametx.com/dosmem/dosmem.exe), также часто используется "Fix1Mb" by Matt Pietrek (ftp://ftp.darmstadt.gmd.de/pub/pc/win3/sysutil/fix1mb.exe) и "1MBFort" by John McSorley (ftp://ftp.sunet.se/pub6/os/OS2/hobbes/windows/1mbfort.zip).
Другая методика, используемая для резервирования памяти под новые PSP, представляет собой принудительную фрагментацию большей части low memory - образуется массив из мелких занятых участков и промежутков между ними; поскольку программам необходим сплошной блок памяти, такое "решето" становиться для них непригодным (и они отправляются жить в extended memory), зато для PSP образуется много удобных "гнёздышек". Такой принцип используется в "MemFix" by AshbySoft (ftp://ftp.darmstadt.gmd.de/pub/pc/win3/sysutil/memfix10.zip), "MoreMem" by Gamma Research (ftp://ftp.uni-mainz.de/pub/pc/mirrors/win95-cica/miscutil/moremem4.zip), "WinMEM" by InVision Systems (ftp://ftp.euro.net/d3/Windows/cica/util/winmem2a.zip), а также в "BarClock" (у этой программы с каждой новой версией помимо индикаторов добавлялись и средства воздействия на систему. Похоже авторы решили, что просто наблюдать за безобразием уже невозможно - пора что-то делать!)
Если этих двух проблем (heaps&low memory) кому-то покажется мало – есть третья: эти самые ресурсы крайне чувствительны к качеству написания программ, и если по незнанию или лени программист не позаботился о том чтобы его творение освобождало ресурсы после того как попользовалось ими, то возникает феномен известный как memory leakage - после выхода из программы уровень свободных ресурсов оказывается чуть меньше, чем был до её запуска, и каждый последующий запуск уменьшает его далее. При долгой работе в конце концов наступает момент, когда приходиться просто перезагружать Windows - другого пути расчистить чужую грязь не предусмотрено.
Немного улучшает ситуацию замена системного драйвера system.drv на "SysHook.drv" by C't magazine (http://home.t-online.de/home/jgrossklass/syshook.zip), но существуют и пакеты, которые радикально меняют образ работы Windows с памятью и активно борются за каждый байт - перемещают часть кода в другие регионы, возвращают системе попорченные "протечкой" области, не освобождённые небрежно написанной программой, и т.п. Одной из лучших считается "WinMiser Pro" by Chicago-Soft (в этом году компания прекратила продажу пакета, но limited shareware version можно найти в библиотеках CompuServe (http://forums.compuserve.com/scripts/flisapi.dll/WM-PS12.ZIP), также известны "Hurricane" by Helix Software (есть в архивах Московской "InfoScience BBS" - FIDO: 2:5020/238, area 149, файл hurr10.zip) и "Resource Manager" из комплекта "QEMM 97" by Quarterdeck (http://www.symantec.com/ibm/can.html/eng/product/qemm/fullproductinfo.html, только описание).
На основе печального опыта Windows-3.0, Microsoft серьёзно переработал методы распределения памяти в версии 3.1 и ввёл систему проверки кода перед исполнением, но даже несмотря на эти улучшения прикладные программы иногда умудряются портить не принадлежащую им память, что приводит к аварийному закрытию программы с сообщением General Protection Fault - в этом случае сохранить результаты работы уже невозможно. Для противодействия подобным сбоям также существуют различные утилиты: "Norton Crash Guard" by Symantec (по отзывам, не слишком эффективный), "AntiGPF First Aid - Crash Protector/Rescuer" (изготовитель мне неизвестен, по сайтам гуляет в виде архива содержащего файлы faguard.exe и gpf_trc.dll - например на http://home.t-online.de/home/jgrossklass/antigpf.zip
Резюмируя, можно сказать что несмотря на вполне современный лимит максимально доступной памяти в 256Мб, проблема ресурсов всё равно не позволит запускать одновременно большое количество программ, и практически наращивание оперативной памяти свыше 64Мб не имеет реального смысла - пожалуй, только считанные программы обработки графики могут всерьёз использовать бОльшие объёмы.
II - Процессор
============
Windows 3.1x устойчиво и стабильно работает на процессорах Intel по крайней мере вплоть до Pentium-III/500MHz, но владельцы "клонов" неоднократно отмечали проблемы, возникающие на их машинах (в частности, с AMD K6-2 и Cyrix) - многие провереные годами программы начинали хронически приводить к отказам с появлением сообщений Integer divide by zero, GPF, и подобным проблемам. Некоторые прикладные программы также могут быть критичными к скорости ЦПУ; для их запуска существуют специальные утилиты "торможения", решающие эту проблему – например "MoSlo" by Super Crispy Software (http://www.hpaa.com/moslo/moslo132.zip).
III - Максимально возможный объём диска
====================================
Строго говоря, здесь действует правило "что доступно DOSу, доступно и Windows", т.е. известные барьеры 0,5Gb, 2Gb и 8Gb справедливы и здесь. Использование дисков свыше 0,5Gb требует двух условий:
1) - Компьютер сам должен "видеть" диск полностью - если это не так, то требуется замена куска BIOSа отвечающего за обмен с накопителем.
Проще всего это сделать путём загрузки с того-же самого диска в виде "оверлея" (на этом принципе основана работа пакетов "Disk Manager" by Ontrack и 'EZ-Drive" by MicroHouse, лицензированые версии которых поставлялись в комплекте с дисками и доступны с веб-сайтов их производителей), хотя такое решение чревато большими неприятностями в случае повреждения (механического либо вирусного) начальных областей диска - работа с программами низкоуровневого доступа типа Norton Disk Editor'а будет нелёгкой задачей!
Две другие возможности - установка отдельного дискового контроллера со своим BIOSом (редкость в наше время) и замена BIOSа машины – физическая, либо в виде "перепрошивки" если он находится во флэш-памяти. Найти фирменный ROM с обновлённым BIOSом, равно как и его дамп для самостоятельной прошивки на программаторе, сегодня тоже практически нереально, тогда как флэш-память начиная с поздних 486 используется почти повсеместно, и этот метод замены БИОСа является наиболее предпочтительным - всё что требуется это файл с дампом, утилита-"прошиватель" (обычно легко доступны с веб-сайтов производителей материнских плат) и отсутствие перебоев с электроэнергией. ;)
2) - Для т.н. 32-разрядного доступа к диску в защищёном режиме Windows использует свой собственный набор драйверов, встроенных в win386.exe, один из которых (*wdctrl) был написан ещё для MFM контроллеров типа Western Digital WD1003 и совместимых с ними, составлявших в те времена подавляющее большинство, и давно и безнадёжно устарел. Другой задействованный здесь драйвер (*int13) также желательно заменить на обновлённый для повышения стабильности и скорости работы системы.
Все основные производители винчестеров в своё время выпустили свои драйвера для замены вышеупомянутых (неплохие результаты даёт универсальный "MH32bit.386" by MicroHouse -
http://www.maxtor.com/SoftwareDownload/main/WIN32BIT.EXE), и процедура замены представляет собою просто изменение одной или двух строчек в файле System.Ini - например так:
;*** Windows internal: ***
;device=*int13
;device=*wdctrl
;*** Quantum drivers: ***
device=int13.386
device=ontracks.386
device=ontrackw.386
Замечание 1) - IDE CD-ROM, подключеный к тому же контролеру что и винчестер, нарушает нормальную работу механизма 32-битового доступа. Большинство изготовителей прелагали решить проблему просто и легко – отказаться от этого режима (такая рекомендация включалась в файлы read.me и брошюры прилагаемые к дисководам!), но как минимум одна фирма - Mitsumi разработала специальный драйвер - "MtmCDai.386", который к счастью работает с любыми CD драйвами, и свободно доступен с их сайта ftp://ftp.mitsumi.com/pub/drivers/ide158.exe. Его загрузка избавляет от проблем и сообщений об ошибках типа "This program tried to access your disk in a way that is incompatible with 32-bit access...", не мешая при этом винчестеру. Третий путь - использовать один IDE-порт для винчестера (-ов), второй - для CD и другой ATAPI периферии (ZIP, стример, LS, MO и т.п.), что рациональнее и с точки зрения общей оптимизации системы.
Замечание 2) - Максимальный размер раздела диска для версий MS-DOS версий от 5.00 до 6.22, а также совместимых PC-DOS, DR-DOS, NW-DOS – 2Гб, и диски большего объёма могут быть использованы следующим образом: Логичнее всего поделить диск на несколько разделов <2Gb и отформатировать каждый из них как обычный FAT16 - это позволит сохранить "штатный" режим работы всех программ и спокойно продолжать использовать весь накопленный арсенал программ работы с диском "на микробном уровне" (анирэйзеры, дефраггеры и т.п.), Второй возможный вариант - использование операционной системы MS-DOS v7.10 (из комплекта поставки Windows-95 OSR2 v4.00.950b и выше) и форматирование в стандарте FAT32 - все старые программы, которые используют стандартные функции ДОС, будут работать нормально, но для инсталляции Win-3.1x на такой диск потребуется специальный патч "OSR2fix" by Ralf Buschmann http://win95.winware.org/files/osr2fix.exe).
Замечание 3) - Кэширование дисков в Win 3.1x выполняется на уровне DOSа ("SmartDrive" или эквивалентной программой), а в WfWg 3.1x – самой оболочкой ("Vcache.386" aka "32-bit File Access"), но последняя может работать только с винчестерами, и для дискет либо компакт-дисков ДОСовский кэш требуется всё равно. Для работы с CD-ROMами в обоих случаях гораздо эффективнее применять специализированные программы, такие как "CD-Quick" by Circuit Systems
(http://www.winsite.com/cgi-bin/dload/65/win3/util/cdqck130.zip), нежели SmartDrive.
IV - Видеокарта
=============
Драйверы включённые в дистрибутив Win3.1, разумеется, малопригодны сегодня - необходимо заменять их на поставляемые изготовителем видеокарты. Помимо обеспечения высококачественных видеорежимов с большим количеством цветов, они также используют аппаратные возможности применённых микросхем-"ускорителей" (windows graphics accelerators) и имеют управление частотой развёртки, часто в виде ДОСовской TSR программы. Для подавляющего большинства видеокарт с шинами ISA, MCA, VLB и PCI, драйверы могут быть легко найдены на сайтах производителей или на публичных FTP-серверах (хорошую помощь окажет поисковая система на http://www.windrivers.com/BEGINNER/fccid.htm - по номеру FCC ID можно быстро узнать изготовителя), а в случае отсутствия на конкретную модель использовать "универсальные" драйверы для стоящего на карте видеоконтроллера (с некоторой потерей возможностей управления). Фирма Microsoft также выпустила простенький универсальный SVGA драйвер, совместимый с ограниченным количеством видеокарт (http://go.compuserve.com/WinSupport?SEC=5&FID=2620&loc=us).
Последнее достижение в области видео - Accelerated Grapchics Port, к сожалению, не может быть использовано в полную силу на системах Win3.1. Максимум на что можно рассчитывать с таким адаптером - это использование его в качестве PCI, чего впрочем вполне достаточно, поскольку реальных прикладных программ для 3.1 которые могли бы задействовать "чисто АГПшные" режимы работы, всё равно нет. Конечно, работа с AGP видеокартой требует наличия её драйвера, и надо отметить что многие серьёзные производители продолжают писать их для своих новых моделей. В частности, хорошей репутацией в этом смысле обладают Matrox и S3. ATI формально прекратила поддержку 3.1, но многие её новые AGP-карты (за исключением последних 'Rage-128') превосходно работают со старым драйвером для 'Mach 64'.
V - Звук
=======
Как и в случае с видео, проблемой являются только драйверы - после отказа от шины ISA пропала и поддержка Win3.1x; на сегодняшний день мне неизвестна ни одна PCI sound card имеющая такие драйверы. ISA модели вплоть до последних "Sound Blaster AWE32" by Creative Labs могут применяться без проблем.
VI - Plug-n-Pray
=============
Технология PnP как таковая, вполне совместима с Win3.1x - сама оболочка не использует её, но задача конфигурирования PnP-оборудования может быть выполнена тремя другими способами:
1) - PnP BIOS самого компьютера часто успешно справляется с не очень сложными задачами типа назначения ресурсов COM-порта для модема и т.п.;
2) - Для многих PnP устройств (в частности, для звуковых карт и модемов) имеются DOSовские конфигурационные утилиты, загружаемые при старте PC и выполняющие необходимые действия;
3) - Фирма Intel поставляла для своих плат "Windows 3.1 Plug and Play Configuration Manager", выполнявший эти функции.
VII - Модем и скорость
==================
Предусмотренный в Control Panel выбор мышкой из заготовленных значений скорости порта от 110 до 19.200 bps породил устойчивый миф о предельной для Windows скорости. На самом деле, здесь может быть вручную введено любое другое число (хоть 230 kbps), если аппаратная часть способна работать быстро, но проблема в другом: "родной" драйвер последовательного порта Win3.1x - Comm.drv, был написан до появления микросхем UART с буферами FIFO, и для современных модемов с 16550 непригоден. Существует несколько замен для него, наиболее распространёнными являются "CyberCom.drv" by CyberSoft http://my.tele2.ee/archie/pub/win31x/cybercom.arj) и "WfxComm.drv" из комплекта WinFax Pro by Delrina Software. При выпуске WfWg v3.11 структура работы с коммуникационными портами была кардинально переработана, и в ней вышеупомянутая замена не нужна - за связь отвечает в основном "Serial.386", который впрочем тоже плохо стыкуется с 16550, и его надо заменить на обновлённую версию (ftp://ftp.csn.net/pub/dos/utils/wg1001.exe) для нормальной работы.
Пользователям ДОСовских коммуникационных программ пригодиться замена для встроенного драйвера буферизации последовательного порта "*combuff" - "Chcomb.386" by Cherry Hill Software (ftp://ftp.funet.fi/pub/msdos/windows/util/chcomb.zip), которая по некоторым данным улучшает работу и Windows-based программ.
Что касается самих модемов, то никаких препятствий для использования с Win3.1x самых современных моделей на скорость 56kbps с протоколом v.90 нет - всё выглядит в точности так-же, как и для 2.400. К слову, установка скорости порта в Control Panel'и не требуется - настройки коммуникационной программы (в случае Internet это dialer-TCP/IP stack типа "Trumpet Winsock" by Trumpet Software, ftp://ftp.trumpet.com.au/winsock/twsk30d.exe) имеют приоритет над CP.
Программы синтеза, записи и воспроизведения звука, которые часто прилагаются к модемам, обычно написаны под Win9x, хотя все voice-функции могут быть активированы с использованием обычных AT-команд (если они кому-нибудь потребуются). Драйвер "принтера"-телефакса и программы работы с факсами сегодня также обычно не рассчитаны на Win3.1x, но ничто не мешает продолжать пользоваться старыми программами типа WinFax или BitFax, поскольку все факсовые операции также выполняются стандартными AT-командами. Совсем другая история - это так называемые "Win-модемы" (термин изначально относился к конкретному устройству фирмы US Robotics, но быстро стал нарицательным). Модемами в классическом смысле они вовсе не являются - вся обработка сигналов осуществляется программно центральным процессором машины, а карта представляет собой фактически адаптер телефонной линии с цепями гальванической развязки. Дешевизна подобных устройств быстро сделала их популярными, но для работы они требуют программного обеспечения (сегодня в комплекте как правило только Win9x/NT/2000 и иногда Linux) и процессора не хуже Pentium-MMX/150MHz. При отсутствии драйвера для Win3.1x использовать эти адаптеры невозможно, и надо перед покупкой внутреннего модема внимательно изучить описание (внешние модели можно брать без опаски).
ISDN-модемы как правило не имеют драйверов под Win3.1x, но можно применять "тандем" из отдельного ISDN-адаптера для аналоговых телефонов и подключенного к нему обычного модема - 64 kbps не получится, но 56 будет!
VIII - Материнская плата
====================
Современные платы содержат скоростные IDE контроллеры, для использования всех возможностей которых необходим bus master драйвер под конкретную операционную систему. Для Win3.1x их сегодня как правило нет, но следует помнить что bus mastering имеет действительную ценность только для многозадачных систем (WinNT, Linux), и мы в принципе ничего без них не теряем!
Для встроенных контроллеров звука и видео справедливы общие правила, предъявляемые к их "отдельным" вариантам - т.е., необходимы драйверы.
IX- Оптические накопители
======================
Многие дисководы CD-RW и DVD имеют драйверы для ДОС, позволяющие читать диски как и в обычных CD-ROMах, но это пол-дела: всё чаще встречаются диски в формате UDF, который "не по зубам" расширителю msCDex.exe, рассчитаному на стандарты ISO9660 и High Sierra – Microsoft не собирается выпускать ничего похожего на "msUDFex.exe", и надежда только на проекты типа FreeDOS, либо на фирму Caldera/Lineo, которая периодически берётся за дальнейшее развитие системы DR-DOS, хотя и не слишком последовательно.
Что же касается записи дисков, то проблема также в отсутствии программ; большинство из них работают через драйвер интерфейса WinASPI (перенесённый на IDE из мира SCSI), отсутствующий для Win3.1x. Работающий под 3.1 пакет "Nero" требует поэтому использования SCSI устройств, работая с ними через DOS ASPI manager.
X- Прочие накопители
====================================
Использование таких дисков как ZIP, SyQwest, Orb, LS-120 и DynaMO требует в основном поддержки со стороны BIOSа, а SCSI устройства доступны через ASPI manager поставляемый изготовителем хост-адаптера. Другими словами, ничего специфичного для Win3.1x. здесь на первый взгляд нет - но проблемой может оказаться отсутствие инструментов для работы с дисками (форматирование и т.п.).
Комментариев нет:
Отправить комментарий