Неписи
Воспоминания о NeXT
Анатолий Вассерман
Да будут прокляты говорящие то же, что и мы, раньше нас! Приписывается средневековым схоластам
Можно ли однозначно определить, какой IBM-совместимый персональный компьютер достоин звания современного? Оказывается, да. Причем сделать это не так сложно. Современный компьютер – это тот, который на рынке США, будучи собран фирмой второго эшелона (не из знаменитейших, но и не однодневкой), стоит 2000 американских долларов, или на нашем рынке, с учетом всех налогов, – 2500 долларов.
Конечно, с каждым годом за эти деньги можно купить больше. Но закономерность сохраняется с момента рождения IBM PC. Так же, как и другое, тоже эмпирическое, но вполне надежное правило: современный компьютер служит покупателю пять лет, а затем его дешевле заменить, чем модернизировать.
Но тут уже начинаются сложности. За указанную сумму можно набрать очень разные комплекты. Безусловно, далеко не все они приемлемо сбалансированы: к процессору 80386 вряд ли стоит докупать SCSI-винчестер на 4 Гбайт. Но и конфигурации без явных перекосов тоже очень разнообразны.
Приходится еще угадывать, какой компьютер останется современным и завтра. Впрочем, на этот вопрос ответить тоже легко. Если вспомнить: IBM-совместимые изделия – отнюдь не единственные компьютеры на свете. Даже далеко не самые совершенные. Большинство усовершенствований спускаются к ним с высот действительно серьезной техники.

Расслоение оперативной памяти, кэш, конвейерная обработка, RISC-архитектура, винчестер, дисковые массивы (RAID)... Идей, родившихся на мощных компьютерах и адаптированных к IBM PC, во много раз больше, чем усовершенствований, сделанных на уровне персоналок. И это неудивительно. На больших машинах решают большие задачи. И требования к ним большие. Поэтому технику приходится непрерывно модернизировать.
Есть, конечно, и задачи, типичные для персональных вычислений. Но и для этих задач машины чаще специализируют. И найденные в них решения распространяются на все персоналки очень постепенно. Лишь по мере приспособления этих решений к уровню мощностей и цен, привычному именно для мира персональных и даже домашних работ. Ну, а развитие IBM PC уже более 10 лет ориентируется на достижения, апробированные на платформе Apple Macintosh.
Конечно, применения "Маков" достаточно специфичны. Главным образом это графические работы и особенно – настольная полиграфия. Популярнейший издательский пакет Aldus PageMaker и мощнейший Quark XPress родились именно на Macintosh и лишь затем были адаптированы для IBM PC. И поныне новые версии этих программ рождаются и проверяются на Macintosh. Из сонма популярных сейчас на PC систем графики, рисования, ретуширования и т.д. только Corel Draw! рождена не на "Макинтоше".
А вот офисные бизнес-приложения – электронные таблицы, базы данных – обычно зарождаются на IBM PC и лишь затем постепенно переносятся на Apple Macintosh. Например, Microsoft Office for Mac и по сей день явно слабее и медленнее, чем Microsoft Office for Windows.
Но офисные задачи требуют куда меньшей мощности, чем графические. Может, поэтому первый Macintosh появился не в 1981 году, как первый IBM PC, а лишь в 1984 – до этого создать мощную технику за разумную цену не было возможности.
Фора в два с половиной года позволила дешевым неуклюжим "писишкам" расплодиться настолько, что заменять их принципиально новой техникой стало слишком накладно. Вот инженеры по сей день и втискивают новейшие достижения изобретательской мысли в структуры, стольки же далекие от вершин этой мысли, в 1981 году. А рождаются эти идеи естественно, на машинах, которые намного лучше приспособлены к эффективной работе, – там можно решать принципиальные вопросы, не мучаясь вливанием нового вина в старые мехи.
Однако и Macintosh не во всем достиг совершенства – в нем тоже немало особенностей, затруднивших дальнейшее развитие. Стив Джобе, стоявший у истоков Apple, уже через два года задумал следующий (next) компьютер, свободный от выявленных к тому времени проблем.
Увы, "Макинтошей" тоже успели выпустить больше, чем можно было заменить или переделать в разумные сроки. Остальное руководство фирмы не поддержало Джобса: в 1987 году он ушел и за счет своей доли в Apple основал новую фирму. Так и названную – NeXT. Распределение больших и малых букв, очевидно, напоминало об IBM PC XT (в ту пору самой массовой) и о решимости противостоять ей.
NeXT настолько же совершеннее Macintosh, насколько тот опередил IBM PC. Но техническое совершенство вовсе не гарантирует коммерческого успеха. NeXT так и не смог занять достойное место на рынке, поделенном между Apple и клонами IBM. Объема выпуска еле-еле хватало, чтобы свести концы с концами. Лет через пять Джобс устал бороться. Продал завод по сборке NeXT (полностью автоматизированный, совершеннейший в мире) компании Canon, которая вскоре свернула производство. И переключил фирму на развитие столь же совершенной, как и аппаратура, операционной системы этого компьютера – NeXTStep (следующий шаг). Ныне она работает на IBM PC, Sun, RS-6000...
Но и по сей день развитие Apple Macintosh ориентируется на решения, заложенные в 1987 году в NeXT. Так что я, говоря о характеристиках действительно современного PC, ссылаться буду чаще на идеи, которые Стив Джобс воплотил в Macintosh и NeXT.
Процессор
Архитектура процессоров Intel – основы IBM PC – отнюдь не отличается логической стройностью. Несколько поколений изделий фирмы наслоили структуру, где головоломнейшими трюками серьезные задачи решаются в две-три команды. Но организовать в такой структуре программирование регулярное, простое, надежное куда сложнее, чем экономить микросекунды.
Процессор Motorola для Apple Macintosh ориентирован на архитектуру, выработанную фирмой Digital Equipment Corporation для миникомпьютера PDP-11. Она проверена долгим опытом эксплуатации, логична и потому надежна. Поэтому сложные программы для "Маков" стало создавать проще, и ошибок они содержат меньше. Конечно, развитие трансляторов с языков высокого уровня сгладило былую остроту этого различия. Но ощутимо оно и по сей день. Ибо по мере развития процессоров Intel сложность их системы команд растет.
Арифметический сопроцессор я операций с плавающей точкой го считался аксессуаром для любителя. В NeXT он обязателен с самого начала, и это облегчило решение многих задач машинной графики, которая в NeXT стала образцом даже для изначально графического Macintosh. И процессоры нового поколения включают арифметический сопроцессор как обязательный узел. Intel 80486 и Motorola 68040 еще можно достать и без сопроцессора (хотя многие об этой экономии потом жалели). А Pentium, 68060, новомодный PowerPC без сопроцессора никто делать не намерен. Слишком уж велика доля графики в работе современных компьютеров!
RISC-архитектура, рожденная на довольно мощных компьютерах, в персоналки проникала медленно. Но уже в 80486 и 68040 есть много схемных решений, характерных ранее лишь для RISC. Pentium, 68060 большинство сложных CISC-команд реализуют средствами RISC. Pentium Pro – бесспорный RISC-процессор, и команды прежних процессоров Intel 80x86 он эмулирует: преобразует в последовательность собственных команд с помощью изощренных логических схем.
Apple, IBM, Motorola в совместном PowerPC пошли еще дальше. Это чистый RISC, а эмуляция команд 680x0 только программная. Кстати, написаны для него и эмуляторы 80x86, так что на Power Macintosh можно гонять программы для IBM PC.
Intel – а значит, и IBM PC – идет туда же. Похоже, Р7 будет последним, кто станет внутрисхемно эмулировать 80x86. А дальше ускорять процессор на новых программах удастся, скорее всего, лишь ценой перехода на программную эмуляцию программ старых. Опыт Apple, пересевшей "на полном скаку" с 680x0 на PowerPC, свидетельствует: это совсем не больно.
Пока же Pentium следует признать современным: в ближайшие пять лет разработка программ для 80x86 не прекратится. А вот 80486 уже устарел. Для серьезных нынешних задач – прежде всего графики в реальном времени – его мощности явно недостаточно. Не зря выпуск его в Intel прекращен. В то же время клоны 80486 в других фирмах будут производиться еще год-другой – офисным приложениям и даже настольным издательствам этого процессора хватает. Пока. Завтра и здесь графики станет столько, что ожидание работы 486-го будет неприемлемо долгим.
Если же вы хотите работать с самыми эффективными программами – берите Pentium Pro. Внутри это RISC-процессор. Оптимизированный под 32-разрядный режим. Windows 3.1 х и даже Windows 95 на нем невыгодны: в них велика доля старых 16-разрядных команд, сбивающих с ритма внутренние конвейеры Pentium Pro: скорость будет меньше, чем на обычном Pentium. Зато OS/2 3.00 (Warp – "гибкая") и выше, Windows NT, Unix – системы, сплошь 32-разрядные – на Pentium Pro себя чувствуют как рыба в воде. И написанные (или хотя бы перетранслированные) для этих систем прикладные программы – тоже.
Кэш
Тут правила простые, от вида компьютера почти не зависят: чем быстрее процессор, тем больше ему нужно кэш-памяти. Intel 80386 вполне удовлетворялся 64 Кбайт, а 128 даже не всегда загружал полностью. Зато для 80486 128 Кбайт – голодный минимум: норма – 256. A Pentium и 256 Кбайт маловато – на приличные машины ставят 512.
В корпус Pentium Pro встроено 256 Кбайт кэш-памяти второго уровня (первый – 16 Кбайт внутри самого процессора). При его быстродействии этого явно не хватит. Вероятно, нужен еще хотя бы 1 Мбайт кэша третьего уровня.
Память
Тут опыт "Мака" тоже значит мало. Потребности программ на каждой машине свои. А минимальный объем ОЗУ вдвое больше, чем считают достаточным разработчики ОС, с которой вы работаете.
Windows 3.1x запускайте начиная с 4 Мбайт памяти (разработчики требуют хотя бы 2). Windows 95 и OS/2 3.00 не ставьте на компьютер менее чем с 8 Мбайт. Windows NT реально начинается с 16... А хотите приличного быстродействия – еще хотя бы удвойте память. Тем более что тратить деньги на память куда выгоднее, чем на процессор. Я наблюдал: 80386/33 с 4 Мбайт ОЗУ работал в Windows 3.11 раза в три быстрее 80486/33 с 2 Мбайт.
Если знаете, сколько ОЗУ нужно каждой из программ, с которыми вы работаете одновременно, -оцените размер памяти поточнее. Только добавьте запас на все служебные структуры (вроде буфера обмена), которые сами в глаза не бросаются. Каков этот запас, могут подсказать описания и знатоки вашей системы.
Работаете с точечной графикой (фоторетушь, например) – нужна еще память хотя бы на 3-4 изображения максимального используемого формата. Например, полноцветная (3 байта на точку) фотография 1600x1200 точек кодируется 5760000 байтами – добавьте 18-24 Мбайт. Иначе ретушь растянется на часы: большая часть картинки будет храниться на диске, и основное время уйдет на "свопинг" – сброс на диск одних фрагментов и подкачку с диска других.
Жалоб на нехватку памяти я слышал тысячи. На избыток – ни одной.
Шина
К 1981 году общая шина – общепринятое решение в мини- и микрокомпьютерах. И отработаны способы организации взаимодействия подключенных к шине устройств. Но лишь малая их часть воплотилась в IBM PC – дорого!
Простота даже в компьютерах хуже воровства. Сэкономленное на общей шине терялось многократно: сложность подключаемых к ней плат, проблемы их взаимодействия, настройка, взаимные помехи, прямые потери времени. Например, отказ от сигнала готовности оперативной памяти вынудил рассчитывать на худший случай и вводить такты ожидания...
С IBM PC AT родилась новая шина, гордо названная ISA -Industrial Standard Architecture (промышленный стандарт архитектуры). Увы, от прежней шины ее отличает лишь число линий адреса и данных, но не набор управляющих сигналов. Что вполне естественно – ведь к ней следовало подключать и старые платы.
Шина NuBus в Apple Macintosh гораздо серьезнее учла опыт предыдущей техники. Конечно, она дороже. Зато имеет средства автоконфигурирования, что позволило работать по принципу plug-and-play – "воткни и играй". Устройства, включаемые в Мае, автоматически распознавать несложно – Apple жестко контролирует свой рынок, все новинки должны вписываться в строгие стандарты. Зато компьютер сам, без хозяйской руки, определяет, какие платы к нему подключены, какими адресами и прерываниями они должны пользоваться...
Пользователь IBM PC вручную при каждом пополнении своей персоналки переключает на платах адреса и уровни прерываний, тасует конфигурационные файлы. Осточертело! Пришлось и в эти машины включать средства plug-and-play. Естественно, вместе с новой шиной: EISA – Extended (расширенная) ISA.
К EISA подключаются и старые платы ISA и даже XT. Разумно и экономично: зачем тихоходным устройствам вроде модема 32-разрядный обмен? Но это значит, что автоматически сконфигурировать удается далеко не все. И владельцам IBM PC по-прежнему остается следовать принципу plug-and-pray – "воткни и молись".
Положение радикально изменили локальные шины, связанные с процессором напрямую: VLB (Video Local Bus – локальная видеошина) экспертной группы VESA (Video Extension Standard Architecture – стандартная архитектура видеорасширений), затем PCI (Peripheral Component Interconnect – взаимосвязь периферийных компонентов) фирмы Intel. Совместимость с прошлым не обременяет: прежних плат для подобных условий работы просто не было. Бюджетные рамки не жестки: эти решения создавались для серьезных задач, за которые платить стоило. И новые шины сразу обросли средствами автоконфигурирования.
Нашелся ход и для старых плат. Накопились базы данных, позволяющие по мельчайшим нюансам откликов на стандартные сигналы распознавать даже схемы, никак для автоматического опознания не предназначенные. И выбирать для них приемлемые способы управления. Конфигурировать таким способом продукцию самых известных фирм – brand name – научились еще в IBM OS/2 3.00. А база данных Microsoft Windows 95 реализует приемлемый plug-and-play по крайней мере трех четвертей всего, что можно найти на нынешнем рынке.
PCI, в отличие от VLB, позволяет подключать периферию не только работающую синхронно с процессором, но и медленную. То есть служить и локальной шиной, и общей. В Macintosh нового поколения других шин, кроме PCI, уже нет. Вероятно, и в IBM PC через пару лет PCI останется единственной шиной, а выпуск периферии для ISA, EISA отомрет. Так что покупать компьютер без PCI уже не следует. Да и скорость таких компьютеров недостаточна для многих нынешних задач – не говоря уже о завтрашних.
(Продолжение следует)