В любом случае OS/2 1.1 была технически очень интересной и занимательной программой. Она обладала намного большими возможностями, чем любая операционная система для персональных компьютеров в то время. Windows и MacOS даже в перспективе не имели того, что было в OS/2 – ни вытесняющей многозадачности, ни многопотоковости, ни виртуальной памяти.
Естественно, что системе были присущи и недостатки. Хотя и поддерживалось большинство тогдашних стандартов для вывода графики (CGA, EGA, VGA), но поддержка других была весьма слабая, если вообще существовала. Поддержка принтеров была чисто номинальная – несколько принтеров и плоттеров производства IBM и все.
Под OS/2 существовали различные приложения – в том числе такие, как Microsoft Word, Lotus 1-2-3 и QuattroPro. Однако все они были текстовыми, за исключением Microsoft Excel 2.2.
В конце 1999 Microsoft и IBM выпускают версию OS/2 1.2 – очень важное событие во всей истории OS/2, поскольку именно в версии 1.2 были реализованы практически все возможности, обещанные в OS/2 еще до ее появления. В OS/2 1.2 разработчики наконец отказались от файловой системы FAT и реализовали инсталлируемые файловые системы (Installable File System, IFS) и высокопроизводительную файловую систему HPFS (High Perfomance File System).
Новая файловая система весьма превосходила FAT, а также снимала множество ограничений:
1. Отсутствовал печально известный лимит «8.3» на имена файлов – 8 символов на имя и 3 на расширение. Имена файлов могли быть длиной до 255 символов и допускали значительно больший диапазон допустимых к использованию символов – в частности пробел.
2. Поддержка расширенных атрибутов (Extended Attributes, EA). Каждый файл или директория могли иметь до 64 Кб EA, связанных с ним там могла храниться любая информация – иконки, описания, информация для программы-каталогизатора и так далее.
3. Поддержка больших дисков. FAT поддерживала разделы размером до 2 Гб. HPFS поддерживала тома до 64 Гб и была ограничена на то время лишь драйверами жестких дисков.
4. Устойчивость к фрагментации. В то время как разделы FAT требовали регулярной дефрагментации для предотвращения иногда ощутимых потерь в производительности, HPFS пыталась использовать для файлов непрерывные фрагменты, сохраняя фрагментацию на минимальном уровне.
5. Уменьшение потерь дискового пространства. Наибольший FAT-диск, размером в 2 Гб, использовал для хранения данных элементы размером 64 Кб, чем вызывались большие потери дискового места (иногда до 50%). HPFS использовала сектора размером 512 байт, таким образом резко уменьшая потери.
6. Высокая отказоустойчивость. Если таблица FAT на дисковом разделе разрушалась в результате инцидента, вся остальная информация на диске превращалась в гору бесполезного мусора, поскольку вся информация о размещении файлов была сконцентрирована в FAT. HPFS дублировала часть информации и хранила структуру диска связно в обоих направлениях (от каталога к подкаталогу или файлу и наоборот). В результате, повреждения одной области не оказывали никакого влияния на весь остальной раздел. К примеру, несмотря на повреждение сектора с директорией – все файлы в ней оставались доступны.
OS/2 GUI также получил новый внешний вид, весьма схожий с вышедшей через несколько месяцев Windows 3.0
Наиболее значимым различием между OS/2 1.2 и Windows 3.0 было то, что Windows не была операционной системой как таковой и исполнялась поверх MS-DOS (и даже могла быть запущена в DOS сессии OS/2). Также Windows содержала больше различных приложений. OS/2 была более бизнес-ориентированной и при сравнении имела несколько спартанский вид. Отчасти это послужило тому, что Windows получила большее распространение среди конечных пользователей.
После исторического разрыва совместной разработки OS/2, вызванного нежеланием Microsoft делить прибыль от продаж операционной системы с IBM, основной процесс по модернизации OS/2 происходил в IBM. Версия 1.3 была практически идентична 1.2 по предоставляемым возможностям, но включала многочисленные улучшения производительности и удобства использования.
Наконец во всех редакциях OS/2 присутствовал язык программирования REXX, разработанный Майком Коулишоу.
Язык изначально создавался для достижения четырех главных целей:
1. легкой понимаемости (читаемости) написанных на нем программ, что облегчает работу программистам, пользователям и сопровождающему персоналу;
2. поддержки быстрого, эффективного и аккуратного программирования за счет обеспечения максимально естественной формы представления данных и управляющих структур языка;
3. обеспечения надежной и эффективной реализации языка на разнообразных платформах;
4. высокой применимости языка в системном и прикладном ПО.
И все эти задачи были успешно решены. Таким образом операционная система получила мощный и гибкий инструмент, сравнимый с различными языками написания скриптов в UNIX-подобных системах. Это несомненно являлось очень большим преимуществом.
В марте 1992 была полностью готова новая операционная система и выпущена на рынок под названием OS/2 2.0 GA (General Availability – публично доступная).
Самым большим плюсом в OS/2 2.0 была сама система. Переход на 32-разрядную архитектуру снял множество ограничений, существовавших в DOS и OS/2 1.x – в первую очередь по работе с памятью. Вместе с тем система не была «полностью» 32-разрядной – многие части оставались 16-разрядными – в первую очередь по соображениям совместимости и экономии времени. Основные же элементы системы были полностью новыми и 32-разрядными – к примеру поддержка множества виртуальных DOS-машин (Multuply Virtual DOS Machine, MVDM) и менеджер памяти с поддержкой пейджинга. Более того, основная часть кода была написана на C, а не на ассемблере, как в OS/2 1.x.
Вторым существенным моментом стал новый интерфейс пользователя под названием Workplace Shell (WPS), являвшийся радикальным уходом от концепций, заложенных в GUI OS/1.x и Windows. Новый интерфейс был объектно-ориентированным и в нем все стало объектом – диск, принтер, программа и так далее. Манипуляции с объектами проводились с помощью drag-n-drop – перемещение, копирование, печать и уничтожение. В WPS широко использовалась правая кнопка мыши – для открытия контекстных меню и выполнения операций по перетаскиванию объектов.
Для операционной системы OS/2 2.0 была зарегистрирована торговая марка «Интегрирующая платформа» (The Integrating Platform). Это название напрямую намекало на уникальную возможность OS/2 2.0 исполнять существующие DOS, Windows и OS/2 1.x приложения одновременно с новыми 32-разрядными родными приложениями.
Выпуск версии OS/2 2.1 в мае 1993 года явился следствием эволюционного развития версии 2.0. Внешний вид не претерпел существенных изменений, разработчики продолжали трудиться над «внутренностями» системы. Из видимых конечному пользователю изменений стоит отметить смену версии Win-OS/2 с 3.0 на 3.1 и появление нового компонента под названием Multimedia Presentation Manager/2 (MMPM/2), добавившего в графический интерфейс пользователя различные мультимедийные возможности – звуковые схемы, воспроизведение мультимедийных файлов и тому подобное.
В ноябре 1993 выходит специальная версия OS/2 for Windows, не содержащая кода Win-OS/2, а использующая уже установленную на компьютере копию Windows 3.x. Таким образом снижалась цена конечного продукта (IBM платила лицензионные отчисления Microsoft за использование кода Windows в Win-OS/2). Вместе с тем эта версия продемонстрировала ситуацию на рынке. Используя свое монопольное положение, Microsoft с помощью манипуляций в сфере ценовой политики держала производителей клонов PC под жестким контролем, запрещая им предустанавливать на продаваемые компьютеры операционные системы, отличные от DOS/Windows собственного производства.
Несмотря на жесткий прессинг со стороны Microsoft времена OS/2 2.1 и 2.11 были отмечены ростом количества приложений, написанных специально для OS/2. IBM достигла соглашения с несколькими крупными производителями программного обеспечения о разработке OS/2 версий их приложений. В число таких компаний входили Borland, Lotus, Novell и тогда еще самостоятельная WordPerfect.
В октябре 1994 выходит OS/2 Warp – самая популярная и самая распространенная версия OS/2. Внутренне система незначительно отличалась от OS/2 2.11 за исключением расширенной поддержки оборудования и исправления ошибок – хороший пример того, что грамотно спроектированный и продуманный продукт не нуждается в лихорадочном переписывании многих элементов кода. Наиболее серьезные изменения касались исключительно улучшения простоты использования конечным пользователем.
Новые изменения и улучшения включали в себя:
1. OS/2 Warp поддерживала новый улучшенный формат исполняемых файлов, значительно уменьшавший их размер (к сожалению, этой возможностью воспользовалась очень малая часть разработчиков ПО).
2. Улучшенную модель драйверов, делавшую их разработку более простым делом.
3. Улучшенные мультимедиа-средства, поддержку плат с TV-выходом, плат видеозахвата и прочих подобных устройств.
4. Значительное расширение списка драйверов оборудования.
5. Возможность манипулирования процессом загрузки с помощью комбинации клавиш <Alt+F1>. Наконец можно было отказаться от «спасательного» флоппи-диска.
6. Кардинально улучшенный десктоп, новые иконки, более приятные глазу цветовые схемы.
7. Основательно дополненную учебную программу для новичков.
8. Специальное средство быстрого запуска приложений LaunchPad.
9. Весьма качественную поддержку протоколов и приложений для работы в Интернете.
Задолго до того, как в Microsoft уяснили важность «информационной супермагистрали», IBM предоставила в распоряжение пользователей полный и мощный набор инструментов для работы во всемирной сети. Сперва отдельно, а с версии OS/2 Warp Connect в комплекте с операционной системой.
OS/2 Warp и OS/2 Warp Connect была самой серьезной и удачной попыткой IBM победить в битве за доминацию на десктопе или по крайней мере в завоевании существенной части. Конечно, любая вещь имеет свои достоинства и недостатки, и OS/2 была не лишена минусов: