В начале «нулевых» шина FireWire была модной темой для СМИ да и просто компьютерных энтузиастов — все-таки новые внешние интерфейсы, причем мощные и универсальные, появляются далеко не каждый год. Тогда же на рынок выходила и USB, но без особого шума. Светлого будущего у USB не просматривалось — именно из-за планов по FireWire возможности этого интерфейса изначально были искусственно ограничены. Впрочем, не всегда они ограничивались искусственно: раз уж предполагается введение двух современных интерфейсов, заменяющих все остальные стандарты (но не друг друга), а один из них по определению быстрый и сложный, то второй разумно сделать не только медленным, но и простым — так дешевле. А вот «продвинутый», казалось бы, стоит делать наиболее универсальным и технически совершенным. Однако именно это «техническое совершенство» вкупе с универсальностью и погубило FireWire — на сегодня этот интерфейс окончательно стал лишь историческим воспоминанием, но воспоминанием интересным и поучительным.
Предпосылки разработки
Сегодняшний компьютерный мир глазам пользователя, вырванного из конца 80-х — начала 90-х годов прошлого века, скорее всего, показался бы очень скучным. Почему? Да хотя бы потому, что сейчас почти во всех «интеллектуальных устройствах» (от компактного дешевого плеера до суперсервера) господствуют процессоры всего двух архитектур — х86-64 и ARM. Причем львиная доля систем на базе х86-64 еще и работает под управлением ровно одного семейства операционных систем. Совсем не то было 25-30 лет назад. Десятилетие бурного развития персональных компьютеров и чуть больший период совершенствования «более серьезной» техники сделали мир очень пестрым. Уже тогда высказывались первые мысли о том, что кончится все это унылой стандартизацией (например, можно вспомнить вышедшую в 1991 году в PC Magazine статью Джима Сеймура с провокационным названием «Все компьютеры кроме IBM PC уйдут в небытие»), однако относились к таким мыслям не лучше, чем к любым утопиям или антиутопиям. На развивающемся рынке места хватало всем, удачные идеи всегда могли найти свое воплощение, выраженное в количестве единиц продаваемой техники и весьма весомом количестве общечеловеческих ценностей (обычно в виде долларов, фунтов стерлингов или немецких марок — прочие тогдашние валюты выглядели менее серьезно). Intel тогда контролировала бо́льшую часть рынка х86-процессоров, чем сейчас, однако и на этом рынке присутствовало порядка пяти-шести независимых производителей, а были и предположения, что весь он может скукожиться до нуля: во многих линейках персональных компьютеров и рабочих станций использовались процессоры Motorola, свою долю пытался отхватить Sun, многие находились под впечатлением предварительной информации о DEC Alpha и т. д. и т. п. Компьютеры перестали быть лишь уделом энтузиастов, как в начале 80-х, однако почти на пустом месте создать крупную компанию, захватить немалую долю рынка, заставить о себе говорить... а потом разом обанкротиться все еще было не так уж сложно. В общем, все атрибуты молодого и быстрорастущего рынка налицо.
Включая и тотальную несовместимость всего со всем остальным. Все производители, естественно, в своих системах использовали свои же шины. За примерами далеко ходить не надо: на одном лишь рынке «IBM PC» развернулась настоящая «война шин», когда IBM продвигала MCA, большинство производителей хранили верность устаревшей, но такой недорогой и простой ISA, а один консорциум вовсю продвигал EISA в качестве единого универсального решения (впрочем, о тех событиях мы уже писали, так что повторяться не будем). Очевидно, что производители компьютеров на базе процессоров Motorola использовали свои шины (причем именно во множественном числе — договориться до одной единой у них как-то не получилось), Sun — свою, Hewlett Packard в рабочих станциях на базе процессоров PA-RISC — свою, DEC — свою, и так далее, и тому подобное.
В общем, разработка плат расширения на тот момент была не самой простой задачей: сложнее всего было решить, на какой рынок мы вообще ориентируемся, а все остальное (собственно сама разработка) — это уже мелкие технические трудности. Но хуже всего было то, что и разработчики периферийного оборудования сталкивались с теми же проблемами, поскольку в области внешних интерфейсов господствовал тот же принцип «кто в лес, кто по дрова». Даже единого стандарта сетевого интерфейса не было: это сейчас Ethernet — законодатель проводной моды, а тогда он был всего лишь одним из массы вариантов, которому, кстати, большинство вообще прочили быструю и болезненную смерть. В общем, на рынке присутствовало всего два внешних интерфейса, которые (пусть с определенными оговорками) можно было считать отраслевыми стандартами: уже тогда древний жутко медленный последовательный RS232C и универсальный скоростной, но очень дорогой SCSI. Всё! В тех случаях, когда ни один из них не подходил, обычно изобретали свой собственный велосипед. Поэтому, например, внешне похожие клавиатуры для Commodore Amiga, Apple Macintosh, Sun SPARCstation или стандартного «писюка» были абсолютно не взаимозаменяемыми: интерфейсы-то разные. Вот и попробуйте что-то зарабатывать на таком рынке, когда у всех производителей своя собственная периферия, причем сохранения в будущем имеющихся разъемов никто не обещает.
Можно было, конечно, окончательно стандартизовать оба или один из двух уже имеющихся интерфейсов и использовать только их. Но разумным выходом это не являлось. Последовательный порт — очень медленный. Для мыши — подойдет (и такие выпускались), для принтера — с большой натяжкой (и поэтому в PC чаще всего использовались специальные параллельные принтерные порты), а вот для какого-нибудь внешнего накопителя или сканера — уже никак. (Я вот 18 лет назад пообщался с плеером, подключаемым к компьютеру через СОМ-порт — до сих пор это остается одним из самых страшных воспоминаний моей жизни :)) В общем, в свете освоения мультимедиа о RS232C стоило забыть и не вспоминать.
SCSI... Тут все сложнее. Этот универсальный интерфейс «для подключения всего ко всему» долгое время оставался не только самым быстрым из допускающих подключение периферии, но и самым быстрым вообще. Причем уже в те беспечальные времена самая первая версия SCSI поддерживала скорость в 5 МБ/с — даже рассчитанный на винчестеры IDE достиг таких скоростей не сразу, а прочие много лет и не пытались. Ничего удивительного, что SCSI-адаптер долгое время был неотъемлемой частью любого компьютера профессионального назначения. Жесткие диски высокой емкости выпускались только для SCSI, CD-ROM первое время — только SCSI, магнитооптика и CD-R/RW — аналогично, да и у прочего профессионального оборудования, типа сканеров и тому подобного, лишь в текущем веке произошел массовый переход на другие интерфейсы. Однако у каждой медали есть две стороны, так что были у SCSI и недостатки. Первый и для многих самый важный — очень высокая цена. Второй — ограниченное количество устройств. Причем по мере роста скорости (а этот стандарт с тогдашних 5 МБ/с успел дорасти, прежде чем умер, до 320 МБ/с) количество поддерживаемых устройств и длина шлейфов неуклонно сокращались. Причина понятна: параллельная природа интерфейса никак не допускала «вольностей» с длинным проводом и десятками периферийных устройств. В общем, и SCSI не совсем отвечал нуждам индустрии.
Если же ничего из существующего не подходит, выход очевиден: нужно делать новые интерфейсы. Поскольку они должны стать отраслевыми, а не внутрифирменными стандартами, разрабатывать их нужно «всем миром». Поскольку нам требуются высокие скорости, большое количество подключаемых устройств, простота реализации (дабы применять их и в недорогой периферии или даже бытовой технике), эти интерфейсы должны быть последовательными. Таким образом, еще в те времена постепенно началась работа над тем, что позднее стало называться USB, и проектом, в конечном итоге принесшим в мир FireWire. Что касается USB, то это отдельная, но довольно интересная история, к которой мы, возможно, вернемся со временем. Тем более, что она еще не закончилась — в отличие от FireWire, где уже поставлена точка.
Не антагонисты, а партнеры
Первоначально конкуренция между FireWire и USB не могла присниться даже в страшном сне ни одному из их разработчиков — слишком уж на разные сферы применения они были ориентированы. Впрочем, в чем-то они, конечно, походили друг на друга. Так, оба стандарта были последовательные, поскольку уже тогда было очевидно, что попытка улучшать параллельные интерфейсы — путь тупиковый: пример SCSI, который по мере роста скорости терял универсальность и дальность действия, был перед глазами. Оба стандарта были рассчитаны на подключение очень большого числа устройств (127 для USB и 63 для FireWire, что, опять же, было новым веянием — даже SCSI поддерживал всего до 15 устройств, а остальные и того меньше) всего к одному контроллеру, а в особо клинических случаях — и к одному порту. Но вот скорость передачи данных — принципиально разная. На фоне массовых интерфейсов того времени USB выглядел достаточно быстрым: 12 Мбит/с. Это не так уж мало, если сравнить с возможностями старого последовательного RS232C, в теории способного лишь на 115 Кбит/с. Однако это уж точно и не много, поскольку основной и уже устаревший тогда внутренний интерфейс (ISA) хотя бы в теории «тянул» 16 МБ/с. Кстати, улучшенные спецификации параллельного порта позволяли достичь скоростей в 4 Мбит/с, т. е. были быстрее, чем самый медленный из вариантов USB, но медленнее, чем «полноскоростной». В общем, сфера применения была очерчена четко. Принтерам и прочему оборудованию, использующему параллельный порт (дешевые сетевые адаптеры, некоторые накопители и т. п.) полагается USB Full Speed, который позволит увеличить скорость работы втрое и не потребует городить для каждого из устройств собственный интерфейсный порт. Мыши, клавиатуры, игровая периферия, модемы для телефонных линий и прочее, что обходится COM-портом или специализированными примитивными интерфейсами — каждому из вас USB Low Speed будет много, но всем вместе хватит. Быстрых в современном смысле этого слова массовых устройств тогда особо и не было.
Но были «не массовые», то есть профессиональные. Профессионалам нужна была полноценная замена SCSI, который уже перестал удовлетворять производителей в качестве внешнего интерфейса. Поэтому первые реализации FireWire «в железе» еще до фактической стандартизации уже поддерживали скоростной режим в 25 Мбит/с — более чем вдвое больше, чем USB. Затем из того же куска провода научились выжимать 50 Мбит/с, потом 100, потом 200, и наконец, когда шина была уже готова к стандартизации, максимальным скоростным режимом стало 400 Мбит/с. Сейчас эта цифра кажется небольшой, но тогда для внешнего интерфейса это было что-то невообразимое. Достаточно вспомнить, что «крутейший» UltraSCSI давал лишь 40 МБ/с, а лучший вариант IDE десятилетней давности (позволивший, кстати, стандарту развиваться дальше, несмотря на предположения о его скорой смерти) АТА33 — соответственно, 33 МБ/с. Что из этого следует? Всего-навсего то, что FireWire оказалось достаточно даже для подключения основных (внутренних) винчестеров! И не только их :) Для работы с накопителями в стандарт было внесено практически полное подмножество команд SCSI, но была там кроме них и полная реализация протоколов АТМ. Сейчас это «слово из трех букв» кажется большинству незнакомым (вызывая в лучшем случае ассоциации с банкоматами :)), но 20 лет назад АТМ на полном серьезе рассматривался как сетевой протокол будущего — Ethernet-то, по большинству прогнозов, должен был умереть. Ему кое-как дался переход от 10 к 100 Мбит/с, но дальнейших перспектив не прослеживалось, так что производители сетевого оборудования и серверов хватались за любую соломинку, позволяющую развиваться дальше, ибо очевидно было, что 100 Мбит/с на перспективу слишком мало. Так вот, одна из ипостасей FireWire — это полноценная сеть со скоростью 400 Мбит/с. Опять же, сейчас это дрожи в конечностях не вызывает, даже беспроводные сети умеют работать быстрее (пусть и с рядом оговорок). А вот тогда... Тогда эту самую «сотку» только-только начали осваивать, в мире продолжали трудиться сети со скоростью 2, 4, 10 или 16 Мбит/с, а в гигабитный Ethernet верили только энтузиасты (кстати, неизвестно еще было, и кто станет окончательным победителем на скорости в 100 Мбит/с — Ethernet, 100VG AnyLAN (близкий по духу к Token Ring) или АТМ). А дальше потенциально могло наступить время FireWire, для чего в шину и были заложены соответствующие возможности и протоколы. В таком случае, возможно, некоторые решения, ставшие привычными лишь к концу нулевых, воспринимались бы как должное гораздо раньше: например, любой винчестер с интерфейсом FireWire — это уже фактически NAS. Причем его вовсе не обязательно было бы располагать рядом с розеткой: еще при разработке первых версий стандарта задумались об электропитании «прожорливых» устройств (то, что в рамках USB реализовали лишь совсем недавно и ограниченно), предоставив им теоретическую возможность получать до 45 Вт (1,5 А 30 В) непосредственно через шину.
Еще одним интересным следствием сетевой природы FireWire являлось потенциальное равноправие всех подключенных устройств. USB изначально строился по принципу «ведущий—ведомый», так что по мере распространения «умных» устройств (типа тех же смартфонов или планшетов) пришлось придумывать расширения протокола, чтобы они могли работать как подчиненное устройство при подключении к компьютеру, но самостоятельно «переварить» какую-нибудь флэшку. Для FireWire делать аналог USB On-the-Go не требовалось — такая функциональность в шину была заложена еще на старте.
Итак, сферы деятельности обоих современных (на тот момент) последовательных интерфейсов четко разделились. То, что их оставалось два, формально не способствовало прекращению бардака на рынке, но вместить все-все-все в рамки одной шины казалось невозможным — слишком уж велика разница между потребностями мышей или сканеров и винчестеров. Теоретически ничто не мешало и мышей «пересадить» на FireWire, но... Сделать это на практике мешал здравый смысл: уж слишком дорогим бы получился манипулятор :) Поэтому будущее глазами большинства игроков рынка виделось простым: в каждом компьютере должно быть полдюжины портов USB для всякой низкоскоростной массовой мелочевки и два-три высокоскоростных порта FireWire. Потолок первой шины был обозначен четко и навсегда — 12 Мбит/с. По поводу второй же сразу было заявлено, что она будет со временем масштабироваться до скоростей 800 Мбит/с, затем 1,6 и, наконец, 3,2 Гбит/с. Почему эти возможности не были сразу внесены в стандарт? Это попросту никому не требовалось. Даже винчестеры лишь относительно недавно превзошли вторую из «будущих вершин» FireWire по физическим скоростям, да и более быстрый интерфейс у них появился немногим раньше: первая инкарнация SATA — это лишь 1,5 Гбит/с. Ну и зачем было делать двадцать лет назад шину, сразу рассчитанную на скорости, неподвластные ни периферии, ни даже внутренним устройствам? Незачем. Потому и не делали. Но чтобы покупатели технологий не пугались, в стандарт сразу же была заложена возможность дальнейшего увеличения скоростей.
Синица в руках и журавль в небе
При всей красоте спецификаций и заложенных в стандарт возможностей дальнейшего роста, одной из первых серьезных проблем стало то, что с массовыми реализациями интерфейса для профессиональной сферы применения никто не торопился, поскольку никуда не торопились и сами профессионалы, продолжавшие использовать уже имеющееся оборудование со SCSI-интерфейсом. Впрочем, один потенциальный «драйвер» у FireWire появился сразу: цифровые камеры формата MiniDV были рассчитаны на подключение к компьютеру именно посредством данного интерфейса. Но им и самим сначала нужно было как-то распространиться на рынке.
USB на первых этапах испытывала те же проблемы, но поскольку она предназначалась для массовых устройств, то быстро стала обязательной, благо контроллер «прописался» прямо в чипсете. В итоге в конце 90-х пара портов этой шины была уже в каждом новом компьютере, а вот подключать к ним было нечего. Однако по мере роста парка USB-совместимой техники, а также после выхода Windows 98 и 2000, поддерживающих этот новый интерфейс, производители периферии им заинтересовались. Скоростной же и удобной шиной FireWire мало кто интересовался, поскольку она как раз продолжала оставаться опциональной при всех своих преимуществах. А некоторые из ее преимуществ ПО не использовало вовсе — например, поддержка локальных сетей на базе FireWire, на разработку которой создатели интерфейса потратили немало ресурсов, появилась только в Windows ME и ХР, к более ранним версиям ОС Microsoft она «прикручивалась» только при помощи платного программного обеспечения. Естественно, в таких условиях желающих пользоваться FireWire не наблюдалось: пусть Ethernet и медленнее, но он дешевле. Кроме того, сетевые возможности FireWire сильно подкосили такие, казалось бы, малозначимые компоненты, как... кабели. Дело в том, что в первой версии стандарта (IEEE1394) был заложен лишь один вариант кабеля: длиной 4,5 метра. Это делало шину интересной для, например, непосредственного соединения настольного компьютера с ноутбуком при необходимости передать с одного на другой большое количество данных — благо поддержка более медленного Ethernet еще не была повсеместной, а для (совсем) медленного USB требовались специальные дорогие «кабели». Но пытаться строить на базе FireWire сеть даже в небольшом офисе уже было бы сложно даже при сильном желании — по чисто техническим причинам.
Вторым странным решением разработчиков была опциональность питания: реализовать везде и всюду максимальные 45 Вт, конечно, было бы чересчур сложно, а то и просто невозможно, однако оговорить какой-то минимум в стандарте имело смысл. Его и задали: 0 Вт.
На практике это выглядело как появление в рамках стандарта двух разъемов: с шестью и четырьмя контактами. Последнее как раз ограничивало интерфейс двумя парами проводов, необходимыми для реализации высокоскоростных протоколов, а питанием производитель конечного устройства должен был озаботиться самостоятельно. В результате потенциальная возможность подключать одним кабелем даже «прожорливые» устройства так и осталась потенциальной: рынок FireWire и без того был узким, и еще сильнее ограничивать целевую аудиторию просто не имело смысла. Ограниченные же, но гарантированные возможности USB по питанию оказались более удобными — на них можно было полагаться всегда. Поэтому шину USB начали применять даже там, где это не предполагалось — например, во внешних накопителях на базе винчестеров. FireWire для этого подходила куда лучше, но на практике единственным ее преимуществом оказалась более высокая скорость работы. Весомо, но недостаточно для массовости. Первые USB-накопители же были очень медленными, но их хотя бы было куда подключать.
Таковы были технические проблемы первой реализации стандарта. Кроме них нашлись и другие: лицензионные отчисления, которыми решено было облагать каждый порт (даже не устройство!). Некоторые считают именно их определяющими, но мы с этой версией не совсем согласны: на практике пользователи обычно готовы доплачивать, если получают за это что-то осязаемое. В частности, те, кто работал с цифровым видео на кассетах MiniDV, получали возможность это делать — и платили за нее столько, сколько потребуют. Для остальных же интерфейс FireWire оставался практически бесполезным, а вот оплачивать потенциальные возможности на перспективу желающих обычно мало :) В таких условиях, естественно, не торопились и производители — а зачем, если потенциальный рынок сбыта не прослеживается? Что-то могло изменить появление поддержки FireWire чипсетами для системных плат (ведь поддержка USB в них появилась раньше, чем стала реально востребованной), но... И здесь, похоже, критичной оказалась не цена — просто единственным производителем чипсетов (которых тогда было много, причем разных для разных платформ, так что можно было даже говорить о рынке чипсетов), освоившим поддержку первой версии FireWire, оказалась тайваньская компания Silicon Integrated Systems. Сегодня марка «SiS» многим ничего не говорит, так что вкратце сообщим, что ее продукция всегда относилась к бюджетному сегменту, встречаясь в основном в самых дешевых компьютерных системах. Реализация же «продвинутого профессионального» интерфейса расширить свое присутствие на рынке компании SiS никак не помогала, так что вскоре была прекращена. Тем более что началось...
Начало конца
На рубеже столетий консорциум по продвижению USB внезапно перестал повторять мантру о том, что дальнейшее развитие стандарта не планируется. Напротив, все заговорили о USB 2.0. Речь о серьезной модернизации шины не шла — просто предполагалось добавить еще один скоростной режим, причем действительно скоростной: 480 Мбит/с. Серьезный скачок в 40 раз заставлял предположить, что дальше ничего «выжать» из интерфейса без коренной переделки не получится — так оно в итоге и вышло: «супер»-скоростные режимы USB 3.x реализованы принципиально иначе, причем на большем количестве проводов и спустя много (по меркам индустрии) лет. Но и увеличение производительности до 480 Мбит/с должно было сделать USB конкурентом FireWire, чего при изначальной разработке обоих стандартов производители пытались избежать. Причем поддержка USB 2.0 должна была стать массовой и дешевой — в идеале на уровне USB 1.1.
Однако определенная временна́я фора у уже представленного на рынке интерфейса все же была: предварительную версию спецификаций USB 2.0 опубликовали в 2000 году, окончательную — в 2001-м, а в чипсетах поддержка начала появляться лишь в конце 2002 года, причем, понятно, затрагивало это лишь самые новые компьютеры, а не весь имеющийся парк техники. К этому моменту контроллеры FireWire уже присутствовали на рынке, причем успели резко подешеветь: если в конце 90-х добавление поддержки этого интерфейса в компьютер могло обойтись в $100 и больше, то в самом начале нулевых — всего долларов в 20. Примечательно, что первые появившиеся в продаже дискретные контроллеры USB 2.0 стоили примерно столько же. И сразу же выяснилось, что, например, FireWire-накопители работают быстрее, чем аналогичные устройства с интерфейсом USB 2.0, несмотря на более высокую теоретическую пиковую пропускную способность последнего. Конечно, в этом нет ничего удивительного: один интерфейс под такое применение «пилился» специально (равно как и программный протокол SBP2), второй же начал использоваться в накопителях лишь потому, что попался под руку (и ПО разрабатывалось аналогичным образом — в конце концов после перехода на USB 3.0 от UMS пришлось отказываться, переходя на UASP, куда более похожий на SBP2, нежели на предшественника). В общем, казалось бы, примерный паритет по (не)распространенности при наличии технических преимуществ FireWire. Однако тут сыграла роль совместимость различных версий USB друг с другом, причем полная: новые скоростные устройства могли хоть как-то работать в ставших уже массовыми портах первых версий, так что иногда они приобретались просто «на будущее». Пользователям же FireWire на что-либо надеяться было сложно: порты либо есть, либо их нет совсем. Да, во многих системах они были (благодаря снижению цен производители стали припаивать дискретные контроллеры непосредственно к платам), но далеко не во всех. А хоть какая-то поддержка USB стала почти повсеместной.
В те же годы начали постепенно забывать и о сетевых возможностях FireWire. Во́йны стандартов середины 90-х уже закончились победой Ethernet. Более того, появились спецификации, позволяющие в будущем на основе обычной витой пары освоить и гигабитные скорости. Нельзя, правда, сказать, что витая пара оставалась при этом совсем той же: все-таки «сотка» в кабеле использовала две пары проводов, а гигабиту нужно все четыре, что в некоторых случаях требовало менять и кабельное хозяйство. Но, по крайней мере, определенная совместимость стандартов была, и перспективы тоже прослеживались. При этом даже с 10 Мбит/с на 100 Мбит/с переходили поэтапно, так что и освоение гигабита представлялось аналогичным (забегая вперед — так оно и произошло). Поэтому есть у FireWire сетевые возможности, нет у FireWire сетевых возможностей — какая разница, если прямо сейчас ими воспользоваться не получится, а в дальнейшем проще будет пользоваться не ими.
Конец начала
Впрочем, как уже было сказано выше, сама по себе поддержка шины FireWire подешевела, да и контроллеры перестали быть экзотикой, зачастую доставаясь пользователю «бесплатно» — в нагрузку к прочим компонентам компьютера или ноутбука. А учитывая перспективы дальнейшего увеличения скорости до 3,2 Гбит/с (чего на тот момент никто из потенциальных конкурентов даже формально еще не обещал) и прочие технические преимущества, можно было оценивать перспективы FireWire с осторожным оптимизмом, что все и делали. А некоторые потенциальные преимущества, типа электропитания (вопрос, остававшийся болезненным для USB и начавший становиться актуальным даже для Ethernet — как только его начали использовать не только для соединения компьютеров), можно было легко превратить в реальные в рамках обновлений спецификаций, благо таковые готовились.
Обновления увидели свет в виде стандарта IEEE1394b, который FireWire... окончательно похоронил, причем смог бы это сделать даже без посторонней помощи. Да, в нем были исправлены многие предыдущие недоработки и добавлено то, что нужно было добавить ранее. Но и то не все. Так, например, гарантированный минимум по питанию так и остался нулевым, хотя эту-то проблему решить стоило, и с учетом прочего это можно было сделать относительно малой кровью. А кое-какие проблемы были решены слишком поздно: например, появилась поддержка обычной витой пары на расстояниях до 100 метров, но только на скорости 100 Мбит/с. Будь это сделано сразу, то есть в 1995 году, FireWire успела бы ввязаться в войну стомегабитных стандартов. Однако на дворе был уже 2003 год, несколько лет прошло с момента анонса Gigabit Ethernet, а более медленные реализации уже стали стандартом де-факто на рынке. Интересной выглядела поддержка оптических кабелей, но лишь в теории — слишком они в те годы были дорогими. Кстати, эта проблема сохранялась и позже, так что давно обещанной некоторыми производителями «смерти меди» ввиду тотального перехода интерфейсов на оптику даже сейчас не наблюдается.
Что было реализовано в новом стандарте, так это поддержка скорости в 800 Мбит/с — на тот момент максимальной для внешних интерфейсов. Однако и с ней все получилось как всегда. Даже наглядный пример шины USB 2.0, которую первое время «вытягивала» лишь совместимость со старыми версиями стандарта, ставшими неотъемлемой составляющей новых спецификаций, ничему не научил разработчиков FireWire: новая скоростная версия требовала специальных кабелей и разъемов. Вместить все в обычные две пары проводов не удалось — потребовалась третья.
Соответственно, и портов уже стало три разных типа: FireWire 400 «без питания», FireWire 400 «с питанием» и FireWire 800. Они были частично совместимы друг с другом, что позволяло в крайнем случае использовать специальные кабели и переходники, но совсем не добавляло энтузиазма разработчикам устройств. Кроме того, новые разъемы оказались архаично большими, что несколько не укладывалось в уже тогда заметную тенденцию миниатюризации устройств. Разработчики USB эту тенденцию не сразу, но все же учли: разъемы типа Mini-B были представлены в виде дополнения к спецификации 2.0 — еще до начала физического ее внедрения и в качестве ответа на самодеятельность производителей периферии, которым был уже нужен компактный разъем (в итоге появилось некоторое количество нестандартных вариантов, «отмерших» после выхода в свет стандартного). Компактный же разъем FireWire существовал в единственной версии: без питания. Совсем без. И только с поддержкой скоростных режимов до 400 Мбит/с.
Но даже прорвавшись через все недоработки, в те годы потенциальный пользователь нередко оказывался в положении, когда скоростной режим... просто не включался. Программная поддержка первых версий FireWire со стороны Microsoft, например, была очень хорошей и своевременной: в частности, этот интерфейс поддерживался еще в Windows 98, причем для соответствующих накопителей отдельные драйверы не требовались (в отличие от USB Mass Storage). Возможность создания локальных сетей также была встроена в Windows ME и XP, хотя особой популярности по описанным выше причинам не снискала. А вот поддержки IEEE1394b в Windows XP не было. Она появилась официально лишь с выходом Service Pack 2, только вот собственно режим со скоростью 800 Мбит/с работал через раз. Причем обычной ситуацией при проблемах с ним было снижение скорости даже не до 400, а до 200 Мбит/с. «Пляски с бубном» вокруг альтернативных драйверов и ПО проблему зачастую решали, но рассчитывать при этом на массовое распространение соответствующих устройств среди пользователей было бы, мягко говоря, опрометчиво. Куда лучше дело обстояло на платформе Apple, где FireWire 800 долгое время считался одним из штатных высокоскоростных интерфейсов, однако для массового распространения на рынке этого было маловато.
Кроме того, в те годы уже начал постепенно исчезать класс устройств, в котором применение FireWire было безальтернативным — видеокамеры. Точнее, сами по себе они остались на месте, но внедрение HD-форматов шло параллельно с отказом от кассет и переходом к обычным «файловым» носителям, типа флэш-карт или жестких дисков. При таком раскладе процедура «захвата видео с камеры» превратилась в простое копирование файлов на компьютер — быстрое и, в общем-то, не слишком зависящее от возможностей интерфейса. По большому счету, вообще перестало иметь значение, какой там у камеры интерфейс, поскольку нужные файлы можно было просто скопировать с флэшки. Разумеется, работающие с кассетами видеокамеры долго не сдавались, имея преимущество по цене носителей, но и в них начала появляться поддержка USB 2.0: оказалось, что этого интерфейса им достаточно. А верхом цинизма стали устройства типа Pinnacle Studio Plus 700-USB: внешнее устройство захвата с поддержкой FireWire (для подключения камер MiniDV), но соединяющееся с компьютером через USB 2.0. Так универсальность начала побеждать специализированное решение — как оно часто и бывает.
Эпитафия
Нельзя сказать, что смерть интерфейса оказалась такой уж быстрой — на деле он вполне «дожил» и до текущего десятилетия, а в конце предыдущего FireWire-контроллер встречался на системных платах как бы не чаще, чем во времена актуальности этой шины. Вряд ли, конечно, производители рассчитывали на ренессанс — просто контроллеры стали стоить настолько дешево, что было несложно учитывать интересы немногих владельцев FireWire-периферии.
А вот перспективы уже не просматривались. Хотя все огрехи ранних версий спецификаций были исправлены, это уже не интересовало ни производителей, ни пользователей. К примеру, поддержка сетей на базе витой пары со скоростью 800 Мбит/с на расстоянии до 100 метров была внесена за несколько месяцев до того, как Microsoft выкинула возможность организации FireWire-сетей из своих операционных систем вообще. Действительно: а смысл? Появись такое в 90-е или хотя бы в 2003 году — как альтернатива Gigabit Ethernet могло бы и сыграть. Но в 2006-м уже было поздно. Никого не заинтересовала и тихо анонсированная в конце 2007 года спецификация S3200, узаконившая скоростной режим в 3,2 Гбит/с — на тот момент внимание индустрии было приковано к работе над USB 3.0 с ее 5 Гбит/с. Фактически, уже тогда FireWire перешла в состояние догоняющей: USB пришлось серьезным образом «перелопатить», но более высокая пропускная способность с перспективой роста в ее случае оказалась вполне реализуемой при сохранении совместимости с уже существующим оборудованием. У FireWire же не оказалось ни большого парка совместимого оборудования, ни перспектив. Поэтому упомянутая выше относительно массовая поддержка интерфейса в компьютерах ограничивалась, как правило, «оригинальной» FireWire 400 — к ней-то хоть было чего подключать.
На данный же момент времени об интерфейсе FireWire пора забыть. Конечно, можно свободно приобрести PCIe-карту расширения для десктопа, поддерживающую скорость передачи данных 800 Мбит/с, и даже найти какое-нибудь оборудование для подключения к ней… но смысл? :)
Как видим, техническое превосходство и универсальность решения вовсе не всегда идет на благо интерфейсу — этими преимуществами еще нужно суметь воспользоваться. Не будь у FireWire конкурентов — современный мир мог бы быть несколько иным. Однако на практике простые (вплоть до примитивизма) и дешевые USB и Ethernet захватили 100% рынка «проводного подключения». Это уже несколько не те USB и Ethernet, конечно, которые существовали 20 лет назад (хотя бы по пропускной способности, увеличившейся на пару порядков, что требует совсем других технических решений), но медленное поэтапное развитие позволило им стать отраслевыми стандартами, несмотря на все их недостатки. Просто все нужно было делать вовремя и сохраняя совместимость с предыдущими шагами — как видим, такой вариант оказывается вполне рабочим. А вот создание «самого лучшего стандарта» без внятного целевого назначения приводит к таким историям, какая произошла с FireWire и которой вполне можно было бы избежать, учитывай разработчики опыт других стандартов и исправляй вовремя свои собственные ошибки.