Установка и настройка Геркулеса версии 2.16.5-3.01 (CygWin) под WindowsЧасть первая. CYGWIN.
Геркулес – классический пример программного средства, портированного в
среду Windows из Линукса. Более того, портирование производится не в
среду Windows, а в специальное окружение, которое позволяет запускать
линуксовые программы – так называемый CygWin. Главная задача этого
самого CygWin – преобразовывать «на лету» линуксовые системные вызовы в
системные вызовы Windows. Полная информация о CygWin расположена на его
сайте http://www.cygwin.org , там же находится и полный дистрибутив
продукта. В полном варианте установки CygWin позволяет «усадить» в
Windows практически весь Линукс – включая X-среду и компиляторы, что
позволяет транслировать и запускать большинство линуксовых программ.
Нам, разумеется, весь CygWin для Геркулеса не нужен – достаточно
нескольких библиотек. В частности, нужны cygwin1.dll, cygz.dll,
cygintl-3.dll, cygintl-2.dll, cygiconv-2.dll и cygbz2-1.dll.
Рекомендуется поддерживать эти библиотеки в актуальном состоянии, но
лично мне, несмотря на декларированную совместимость разных версий
CygWin по принципу «сверху вниз», встречались случаи, когда старый
Геркулес не работал с более свежим выпуском CygWin. Так что я
рекомендую переходить на новую версию CygWin тогда, когда есть
уверенность в правильной работе всех используемых портированных
программ. В конце концов, можно просто оставлять в каталоге с
программой (например, с тем же Геркулесом) именно ту версию CygWin, в
котором вы уверены – места он занимает мало (я так и делаю). Отдельный
вопрос – как скачать вместо всего CygWin только требуемые библиотеки.
Технология установки самого CygWin предполагает наличие специальной
программы, которая связывается с сервером и выгребает с него только
выделенные компоненты. Так что рекомендованная последовательность
действий такова:
- Прочитать на сайте http:// www. cygwin. org к каким компонентам относятся требуемые библиотеки.
- Скачать
маленькую программку – качалку, выбрать сервер, откуда будете выгребать
дистрибутивы, отобрать в выборочной установке только требуемые
компоненты.
- Установить CygWin в избранной конфигурации.
- Из каталога bin скопировать в нужный каталог упомянутые библиотеки.
Второй
вариант получения требуемых для Геркулеса библиотек – раздел с файлами
данного сайта. Различные версии собраны отдельными архивами.
Часть вторая. Геркулес.
Как я уже писал выше, Геркулес – программа, портированная из Линукс.
Поэтому, если есть желание, можно скачать только исходные коды,
установить CygWin в крнфигурации, достаточной для работы компиляторов,
и самостоятельно оттранслировать его. Я не буду рассматривать такой
вариант – как это сделать, подробно рассказывается на сайте
ответственного за поддержку Геркулеса на Win32- CygWin платформе
(http://www.bsp-gmbh.com/hercules/herc_w32_2.html) Дальше я буду
исходить из соображения, что пользователь скачал с официального сайта
http://www.conmicro.cx/hercules/ готовые исполняемые коды для Windows. На
этом этапе нужно правильно выбрать исполняемый файл для скачивания в
зависимости от поколения Вашего процессора – либо для Pentium IV, либо
для младших моделей. Если у Вас процессор AMD, то могут быть проблемы,
поэтому Вам лучше самому оттранслировать исходные тексты.
Кроме
того, есть две модели реализации потоков в приложениях – fthread и
pthread. Первая – более быстрая, поэтому лучше начинать с нее, но
известны случаи, когда быстрые fthread-ы не работают. В таких, крайне
немногочисленных случаях, надо брать pthread. У меня на сайте – файлы
для fthread и для Pentium IV. Итак, файл выбран и скачан. При
запуске исполняемого файла он попросит каталог для распаковки, по
умолчанию он предлагает C: cygwin. При распаковке воспроизводится
структура подкаталогов – всякие bin, lib и прочие. Такая структура
удобна для тех пользователей, которые устанавливают CygWin в «солидной»
комплектации и хотят видеть Геркулес там, где он находится в Линукс. Мы
договорились, что нам это не нужно. Поэтому я рекомендую распаковать
Геркулес в промежуточный каталог, а потом все исполнимые части собрать
вместе (я собираю все в каталог c: Hercules. xxxx, где хххх – номер
версии). Туда же я помещаю http-каталог – но это просто мой способ, у
Вас он может быть другой. Именно так у меня все собрано в сборках,
которые лежат на сайте. И в этот же каталог я копирую необходимый
минимальный набор библиотек от CygWin-а.
Часть третья. Конфигурационный файл. Подробно о том, что какой параметр означает, написано в документации Геркулеса. Я только добавлю некоторые моменты:
- будьте
внимательны с объемом запрашиваемой оперативной памяти для
моделируемого мэйнфрейма. Ее должно быть меньше, чем установлено у Вас
на машине, но достаточно, чтобы работала мэйнфреймовская ОС. А нынешним
ОС надо много памяти. Я рекомендую не менее 256 МБ для OS/390 версии 2
(лучше – 512 МБ), и 128 МБ для ОС VM/ ESA версии 2. Кроме того,
Геркулес берет память на собственные буфера – около 25% от заявленной
мэйнфреймовской памяти (последняя цифра – эмпирическая, зависит от
многих факторов – версии Windows, версии Геркулеса и CygWin-а,
интенсивности ввода.вывода, скорости выполнения запросов на ввод/вывод,
и прочее). А еще и самому Windows сколько-нибудь надо. У меня стоит 1,5
Гбайта, а на мэйнфреймовские ОС я отдаю от 512 МБ до 1ГБ.
- для
Геркулеса версии 2.17 и старше при использовании мэйнфреймовских ОС,
отличных от Линукс ( VM/ ESA, OS/390), необходимо обязательно указывать
параметр PGMPRDOS LICENSED. Этим вы снимаете с разработчиков Геркулеса
возможную юридическую ответственность перед фирмой IBM.
- не
указывайте большее количество процессоров, чем у Вас реально есть на
ПЭВМ. Вообще использование многопроцессорных машин для Геркулеса – тема
особая. Для Windows это может себя не оправдывать из-за особенностей
реализации многозадачности.
- Для систем архитектуры 370
(БОС, СВМ, ТКС и проч.) или при частом использовании 24-битных программ
в среде 390 я рекомендую начинать работу с Геркулеса 2165. На многих
машинах для подобных ОС и с более новыми версиями Геркулеса нет
проблем, но почему-то бывает и иначе. От чего это зависит – не понимаю
Возможно, от версии CygWin. Может, от чего-то еще. Принимайте эту
информацию как эмпирическую (т.е. установленную опытным путем).
И в заключение – читайте подробное описание конфигурационного файла, которое поставляется в html-виде в составе Геркулеса.
Часть четвертая. Сетевая поддержка.
С Геркулесом, как известно, можно работать двумя способами – через его,
Геркулесовский, TN3270-сервер и через моделируемый сетевой адаптер. В
первом случае специальная Геркулесовская программа моделирует локальное
УУ для терминалов типа 3270 путем создания TN3270-сервера. Это значит,
что Вы заходите на машину с Геркулесом по сети (или с этой же самой
машины) на специально указанный порт (по умолчанию – 3270, параметр
CNSLPORT конфигурационного файла) любым TN3270-клиентом, а
мэйнфреймовская ОС видит Вас как старый добрый локальный
3270-совместимый терминал. Это особенно удобно при работе со старыми
ОС, которые ни слухом, ни духом не знают ничего о протоколе TCP/IP, и
это самый простой способ работы. В этом случае от Вас ничего не надо –
только правильно указать нестандартный порт при конфигурировании
клиента. Недостатком такого метода можно считать его (метода)
неторопливость при передаче файлов с использовании компоненты IBM PC
File Transfer (модуль IND$ FILE) и то, что для многих ОС (ну для
того же мэйнфреймовского Линукса) является крайне желательным наличие
TCP/IP-протокола. В этом, втором, случае, нужно сделать следующее:
- настроить сетевую плату либо Microsoft Loopback Adapter для работы с TCP/ IP;
- установить
компоненту WinPcap (брать либо с моего сайта, раздел загрузок, либо с
сайта разработчика http://winpcap.polito.it, есть в разделе ссылок
сайта);
- скачать, розархивировать и скопировать в каталог
с Геркулесом программы FishPack и TunTap32 (брать на сайте разработчика
http://www.softdevlabs.com/Hercules/ctci-w32-index.html). Если Геркулес
брался с моего сайта, то там в сборках эти файлы уже есть;
- в конфигурационные файлы вставить описания коммуникационных адаптеров, например для версий 2.16.5-2.17.1:
0010 3088 CTCI-W32 192.1.2.250 192.1.2.1 1024 64
0011 3088 CTCI-W32 192.1.2.250 192.1.2.1 1024 64
для версии 3 этот же фрагмент будет выглядеть 0010.2 3088 CTCI-W32 192.1.2.250 192.1.2.1 1024 64
в
обоих случаях 192.1.2.1 – адрес ПЭВМ, а 192.1.2.250 – адрес IP в
мэйнфреймовской ОС. В мэйнфреймовской ОС в TCP/ IP необходимо описывать
либо CTC-адаптер с длиной пакета 1024 (для всех версий Геркулеса), либо
LSC с длиной пакета 1024 (для версии 3). Личная рекомендация –
используйте CTC, по-моему, надежнее работает.
Вот теперь
можете работать с Геркулесом как с нормальным TCP/ IP узлом, но если вы
планируете входить на мэйнфрейм по TCP/ IP с других машин сети, то ПЭВМ
с Геркулесом должна поддерживать маршрутизацию. Если у Вас что-то не
получается – смотрите книжки по Windows. Более подробно все вопросы
реализации TCP/ IP для Геркулеса рассмотрены на страничках
разработчиков и часто обсуждаются в профильной конференции.
Часть пятая. Откуда грузится и с чем работать – диски и ленты. Естественно, главный вопрос для начинающего – где взять систему на Геркулесовских дисках. Вариантов несколько. Первый
вариант – взять готовые образы загрузочных лент или дисков у того, у
кого они есть. Юридические, финансовые и технические сложности – на
совести дающего. Я этот вариант не обсуждаю – тут все понятно.
Второй
вариант – взять готовые диски и ленты от IS/390, либо PC/390, либо
PC/370. Таких дисков в свое время много появлялось у мэйнфреймщиков,
поищите, может, и у Вас есть. Третий вариант – изготовить
образы самому, имея систему на мэйнфрейме. Технологий существует
несколько. Например, в состав самого Геркулеса входит программа
cckddump.hla для OS/390 (делает из физического диска сжатый AWS-файл),
либо программы rawstape.jcl и tapeconv.jcl для работы с лентами. Я в VM
делаю DDR-образы, которые перекачиваю в Геркулес и там раскрываю на
диски, используя программу DDR2 CMSX со странички загрузок от IBM. А
для мэйнфреймовского Линукса готовые ленты для загрузки поставляются в
составе дистрибутива.
Так что готового рецепта не предложу, но обилие вариантов показывает, что данная проблема решается. Ищите – и обрящете.
Часть шестая, и последняя. TN3270-клиент.
Эта часть самая короткая. Работая в Windows, самым большим, «тяжелым» и
качественным является знаменитый IBM Personal Communication разных
версий. Для 32-разрядных систем рекомендую версии 4.3 и последнюю на
момент написания статьи 5.71. Существуют и альтернативные, платные и
бесплатные версии похожих продуктов. По моему личному мнению наилучшими
являются Mocha3270, QWS3270 и SDI TN3270. Качайте, решайте вопрос с
лицензионными ключами и используйте. Либо просто купите – все они стоят
недорого.
Все. Теперь Вы знаете
достаточно, чтобы начать работать. Если что-то не получается – читайте
документацию. Если все равно не получается – сходите в Интернет.
Получится обязательно. |