Капсула времени

в 11:06, , рубрики: linux, windows, будущее здесь, док-станция, Исследования и прогнозы в IT, История ИТ, метки: , , ,

Этот текст был написан 6 лет назад для бумажного компьютерного журнала, ориентированного на школьников старших классов и тому подобную пионерию. Из этого следует весьма раздолбайский стиль изложения. Журнал и все его сайты канули в Лету, так что текст пришлось восстанавливать из archive.org. Прошу воспринимать это как привет комсомольцам 2020 года из 1970-го. Кое-какие из описанных технологий сейчас начали внедряться. Прогресс Андроида и выход Windows Phone 8 намекнули на то, что пора выковырнуть залитое бетоном послание из прошлого. На тот момент времени автор был студентом неайтишной специальности и использовал Linux как домашнюю систему в качестве хобби. Алкоголь и наркотики во время написания статьи не употреблял, сейчас тоже. Текст слегка подредактирован под требования Хабра. Поскольку Песочницу топик прошел, публикую в хабах. Надеюсь, тематику выбрал правильно и жестоких санкций за оффтопик не будет

В околокомпьютерной прессе частенько появляются рассуждения на тему «Что будет, если не будет Windows?». Данная тенденция не обошла (первоначальная публикация) и Мой Компьютер (журнал, для которого готовилась публикация — прим. авт.). Обычно обсуждаются проблемы подбора нужного софта и/или лицензионные вопросы на основании личного опыта автора. В данном же случае я попытался восполнить пробел и представить, что будет, если разработчики компьютерного железа вообще не будут обременены обеспечением совместимости с Windows. Статья является личным бредом автора и абсолютно ни на что не претендует – см. заглавие

Итак, перенесемся в альтернативную историю. Время – наше, т.е. 2006 год. Компьютерное железо по параметрам вполне аналогично. Процессоры настольных компов – несколько гигагерц, у карманных от 100МГц до 600МГц, памяти до нескольких сот метров, жёсткий диск не больше сотни гиг. Но Windows используется лишь на трети от общего числа всех компьютеров мира. Другую треть держит MacOS X, а еще треть – Linux. Исходя из этого, разработчики железа обеспечивают совместимость с операционными системами, а не наоборот. Две другие системы частично или полностью открыты, поэтому работают на чем угодно.

Зарисовка первая. Настольный компьютер.
Итак, зарисовка первая. Настольный компьютер.
Что мы видим, включая компьютер? Нет, не кнопку Power, раньше. Правильно, заставка BIOS. Это самый древний и ненужный кусок современной PC. BIOS инициализирует большую часть оборудования, загружает загрузчик, передает ему управление и обеспечивает некое подобие универсальных драйверов для оборудования. Программисты DOS уже догадались, что речь идёт о прерываниях. Эти прерывания нужны только загрузчику и перестают использоваться уже при загрузке ядра операционки. К тому же, это еще одна лазейка для вирусов. Биос превратился в умную прошивку, которая стандартизована и не очень-то зависит от конкретной платы. Яблочники понимают, что я пытаюсь безграмотно описать OpenFirmware. Поскольку флэш-память дешевая, эта прошивка занимает 32Мб и содержит универсальный загрузчик наподобие GRUB. В остатке размещен мини-Линукс, из которого можно починить рухнувшую операционную систему, а по сети сбросить восстановленные данные или восстановиться из бэкапа. Прошивка распространяется в открытых кодах, за исключением специфичных для данной платы модулей.

Проблема разбиения винта также успешно решена. Широко используется система LVM (Logical Volume Manager), которая позволяет изменять размеры разделов на ходу, даже не прерывая чтения/записи на них. Разумеется, изменяемые разделы поддерживаются загрузчиком и всеми операционными системами. Этот LVM легким движением руки преобразуется в программный RAID, который подхватывается железным RAID-контроллером с соответствующей прибавкой скорости. В комбинации с поддержкой горячего подключения для любого винта это позволяет любые манипуляции с дисками. Появляется возможность совершать резервное копирование не прерывая работы, если просто подключить второй диск как RAID-1 и просто прекратить запись на него в нужный момент. Если при такой работе вдруг внезапно заканчивается свободное место, то можно прибить RAID и расширить раздел с данными на второй диск. Кстати, горячее подключение доступно и для обычных IDE дисков – посредством комбинированного 84-жильного кабеля (помесь IDE шлейфа с кабелем питания) и простейшего пассивного переходника.

Видео. Тут изменений много. Сразу бросается в глаза надпись на коробке с карточкой: «Memory: 256 Mb installed, up to 2 Gb can be used». Все очень просто, память может гибко разделяться между видео и системой. Если рендерится супер-пупер 3D-сцена, подкинуть памяти для видео можно через PCI-E. Да, такая память медленнее, чем бортовая. Но прибавка в скорости все равно будет. И наоборот, при тяжелом расчете можно позаимствовать немного видеопамяти, оставив 4 Мб для фреймбуфера, и использовать ее в качестве системной. По такому же принципу видеопроцессоры используются для разнообразных вычислений. Зачем греть воздух по сути бездействующим процессором, выполняя довольно-таки ресурсоёмкие приложения (скажем, кодировании видео или сложной обработке звука)? Можно использовать кучу транзисторов в видеочипе для выполнения сложных вычислений и получить хороший прирост в скорости. Или представьте, например, исполняемый практически полностью на видеопроцессоре декодер HDTV. Еще могу предположить появление двухпроцессорных видях и видеочипов в сокетах: купил GeForce 6200, подкопил деньжат (удачно сдал сессию/бутылки, получил наследство) и заменил проц на GeForce 6800.

Звук. В данной области я не спец, так что заранее прошу прощения за ошибки. Здесь изменения аналогичны тем, что произошли в стане видях. Появилась единая и общепринятая библиотека OpenAL – она, подобно своему графическому аналогу, позволяет абстрагироваться от проблем совместимости с конкретной звуковушкой. В итоге у нас все операции со звуком выполняются на специализированном (и очень быстром) процессоре. Если же карточка старая и не поддерживает аппаратно все фичи новой версии стандарта, то они выполняются на центральном процессоре. На этом закругляюсь и перехожу к следующей части.

Зарисовка вторая. Ноутбук.
Здесь проницательный читатель должен остановиться и подумать: «А чем таким принципиальным ноутбук отличается от настольного компьютера?» В мире с Окнами — ничем, кроме гибкого управления питанием и компактности устройства. К компактности в данном случае относиться встраивание всяческих (обычно дискретных) устройств, например картоводов и Bluetooth-адаптеров. В данном случае проблематично придумать что-то оригинальное. Если не отходить от обычной архитектуры.

Но мы не обременены совместимостью, так что можно представить очень легкий и малопотребляющий ноутбук на счетверенном ARM-е. Вместо одного быстрого и прожорливого Пня/Атлона/G4 устанавливаются четыре крайне экономных и не слишком высокочастотных процессора ARM, например Intel XScale частотой 200-300МГц или (что еще лучше) Texas Instrument OMAP. Лучше – из-за сопроцессора на кристалле, который показывает ураганную производительность на мультимедийных задачах.

Приведу пример из жизни. Проц OMAP 311, частота 126 МГц, тестовая машина – Palm Tungsten E, плейер – Kinoma. Закодированный в DivX ролик с разрешением 320х240, битрейтом около 300 кбит/с и без звука, при проигрывании в режиме Benchmark воспроизводится со скоростью 250fps. Но я отвлекся. Просто хочется сказать, что четырёх процессоров должно хватить для решения практически любой задачи, характерной для мобильного пользователя. Для любителей тяжелых игрушек на природе остаются обычные ноутбуки со стандартным временем работы. Изящно решена проблема с док-станциями. Абсолютно естественно, что пользователь хочет пользоваться ноутбуком и дома, но уже со всеми удобствами: полноразмерной клавиатурой, мышью, монитором, быстрым и главное объёмистым диском, а так же процессором. Сами док-станции изменили свое назначение, но об этом немного ниже.

Сейчас, придя домой, пользователь просто соединяет ноутбук и настольный ПК сетевым кабелем (для эстетов есть WiFi) и получает на большом мониторе Рабочий Стол с ноутбука. Как это реализовано? Элементарно. Если объяснять на пальцах, то на настольном компе хранится копия винта ноутбука, которая на лету с ним синхронизируется. На эту копию установлен тот же софт, что и на ноут, но собранный под х86 (не забываем, что ноутбук и настольный ПК работают на процах разной архитектуры). Думаю, дальнейшее очевидно.

Такая конструкция успешно применяется в легких ноутбуках. Ноутбуки среднего размера/производительности создаются по классической схеме, а для самых мощных машин возродили продвинутые док-станции. Собственно, доком ТАКОЕ назвать сложно. Фактически, док представляет собой мать с процессором, винчестером, видеокартой и всеми нужными портами и слотами расширения. Разъем – это линк HyperTransport. И мы видим, как ноутбук легким движением руки превращается в симпатичную и мощную двухпроцессорную рабочую станцию. Стоит отметить, что это одна из немногих технологий, все еще поддерживаемая Виндовсом. Идея «умного дока» понравилась производителям КПК. И они подумали: «А если попробовать заменить ноутбук на КПК?» Попробовали. Получилось. Понравилось. Из этого вытекает третья зарисовка…

Зарисовка третья. КПК.
Разработчики нашли (на пыльных антресолях) идею расширяемого КПК. Сдули пыль, привели в соответствие с современной технологией и поставили на конвейер. Большая часть машинок комплектуется слотом CardBus, благодаря которому можно использовать разнообразные модули расширения, вплоть до дисковых приводов и проводных сетевух. Поддержка разнообразных сетевых интерфейсов позволяет организовать разделение ресурсов между настольной системой и КПК.

Привожу простой пример. По каким-то причинам нельзя посмотреть свежекупленный DVD на большом экране и приходится приспосабливать для этого «карманник». Пользователь вставляет диск в привод десктопа и запускает соответствующую прогу. Прога читает диск, на лету подгоняет изображение под экран, пережимает видео в DivX, звук в Ogg Vorbis (читай многоканальность остается) и выбрасывает в сеть. В итоге эффективно используется лишь процессор настольной системы. Мобильный процессор загружен слабо и соответственно потребляет мало энергии. Большая часть расчетов выполняется на видеопроцессоре. Да, аппаратный OpenGL добрался и сюда. Мы получаем практически полную совместимость по софту с настольными системами. Заметно облегчается труд разработчиков игр: Квейк прекрасно работает и на крутой игровой машине, и на карманном ПК.

Также удалось разработать док для КПК, к которому можно подключать внешний монитор, мышь и клавиатуру. Но разработчики пошли еще дальше. Теперь не существует громадного разрыва между ноутбуками и КПК, потому что восстали из мертвых машинки класса Handheld PC (фактически мелкие субноуты на КПК-шных агрегатах) и пользователь может выбрать машину по карману – в самом прямом смысле этого слова. Где провести границу между ноутбуками и карманными ПК – непонятно. Но могу предложить такой критерий КПК-стости, как отсутствие встроенного дискового привода (про внешние см. выше). Это определяет очень малое время подготовки компа к использованию – оно фактически определяется скоростью доставания девайса из кармана.

Интересно, что Windows для КПК практически вымер. Скорее даже не интересно, а вполне природно. И действительно, какие шансы на выживание может иметь система, которая для обрисовки собственного интерфейса в разрешении 640х480 требует процессор в 624 МГц, а на 520 уже тормозит? Читатель может возразить, что это нормально. Приведу аргумент, который эффективно подействовал уже на многих любителей окошек. Максимально близкая по конструкции и архитектуре операционка для настольных компов – это Windows 2000. Снесем с нее все приложения и отключим все сетевые сервисы, антивирусы, фаерволлы и прочие фоновые задачи. Оставим 128 Мб памяти (характерное значение для VGA-наладонников) и выставим разрешение экрана 640х480. Ну-ка, на каком процессоре начнутся тормоза при обрисовке интерфейса? И еще пример из личного опыта. Я очень давно присматривался к КПК, и в то у меня время еще оставались сомнения по поводу выбора платформы. Один знакомый купил iPaq H1940 и решил продемонстрировать мне возможности железяки. Я решил начать ознакомление с прибором с решительного тычка в кнопку «Пуск». То, что получилось из этого, напомнило попытки запуска Win98 на 486: меню просто обрисовывалось рывками. Комментарий владельца по этому поводу меня просто убил! Оказывается система притормозила процессор из-за иссякающей батареи. Сильно сомневаюсь, что частота опустилась с обычных 266МГц ниже, чем до 100МГц. Конечно, после демонстрации такой потрясающей скорости и юзабельности возможность покупки PocketPC даже не обсуждалась.

А теперь о грустном. Думаете, все это ждет нас в светлом будущем? А вот и нет. Подавляющее большинство таких технологий давно реализованы в железе, кроме ARM-бука. По крайней мере, я о нем не слышал. Начну по порядку. LinuxBIOS – вполне успешный проект, поддерживаемый такой конторой, как VIA. Платы серии EPIA содержат прошитое в Биос ядро. «Умная прошивка» есть практически на всех платформах, кроме РС. И комбинация этих технологий возможно будет использоваться в Яблочных Пеньках. Система LVM эффективно используется и описывалась в Моём Компьютере. Хотсвоп для обычных IDE винчестеров поддерживается. Описание есть в Интернете, надо только хорошо поискать.

Перераспределение памяти в направлении системной поддерживается со времен чипсета Intel 440 чего-то там. Какая связь? Очень простая. Некоторые из чипсетов данной серии не умеют кешировать память более определенного и весьма небольшого объема. Использование такой памяти напрочь убивает производительность. Поэтому программисты написали модуль ядра или, проще говоря, драйвер, который использовал эту память как виртуальный диск. В нем обычно размещали файл подкачки или использовали для других надобностей. Кстати, это пример того, как разработчики софта латают баги или недоработки разработчиков железа. По этой и по следующей теме см. ссылку(первые упоминания о CUDA — прим. авт.) Про звук ничего сказать не могу, все изложенное является личными измышлениями

Идем далее. Производительность проца OMAP я мерил сам, пальмоводы могут проверить. Для продвинутой синхронизации требуется лишь сетевой кабель или WiFi-точка доступа, софт есть уже сейчас. Хитрые двухпроцессорные ноутбуки выпускались серийно в 1992-1997 годах и назывались Apple PowerBook Duo, по ним достаточно информации хотя бы в Википедии.

КПК, расширяемый посредством слота PCMCIA (ну не было тогда CardBus) – iPaq серий 3000 и 5000. Handheld PC ныне выпускается в количестве аж одной модели. NEC MobilePro 900 под управлением Windows CE.NET. Многочисленные старые модели этого класса прекрасно используются под Linux или NetBSD для самых разнообразных задач. После всего этого напрашиваются неутешительные выводы- Microsoft намеренно тормозит прогресс компьютерного железа. Даже не тормозит, а направляет его по пути тупого увеличения частот и поддержки одного-двух производителей. Ведь лет 10-12 назад Windows NT классно работал на нескольких архитектурах. Думаете, почему каталог с инсталлятором WinXP называется i386? Да потому, что раньше были еще и alpha, powerpc, mips, ia64 (есть и сейчас для некоторых версий Win2000 и Win2003) и может быть что-то еще. Для карманных устройств наблюдается то же самое, свежими версиями WinMobile начиная с 2003 уже не поддерживаются быстрые, экономичные и 64-битные процы MIPS. Этому есть две причины. Во-первых, все эти системы абсолютно несовместимы по софту. Для Open Source такой проблемы не существует, перекомпилировать программу можно практически для любой платформы. Причина вторая – все большее отдаление Windows от корней. Я имею в виду то, что чем древнее Windows (только ветви NT и CE), тем больше они содержат кода OS/2 и UNIX. Кто там заявлял, мол «Вынь с нуля написана, а Юникс — суксь и оттуда ничего не брали»? А видели когда нибудь синий экран с ошибкой наподобие «/devices/floppy0/sdfg.sys not found»? Ничего не напоминает?

Про грядущий Windows Vista вообще молчу. По отзывам пользователей (или бесплатных бета-тестеров?), очень красиво тормозит на компьютере с поцессором Атлоне64 3200+ 1Гб оперативной памяти и видяхой GeForce 6600. Причем разработчики уже отказались от половины обещаных супер-пупер возможностей, например WinFS. И если мы когда-нибудь в 2008 году и увидим новый Windows, то это будет лишь слегка приукрашенный ХР. При всем этом видим в системных требованиях DirectX 9. Из этого вытекает несовместимость с профессиональными видеокартами, такими как nVidia Quadro или ATI FireGL. Серверный вариант, который ныне известен как Windows Server 2007, я вообще не могу представить. Есть лишь одна ложка мёда в этом чане с… дёгтем – нам обещают унификацию драйверов, по крайней мере графических. Это компенсирует нелюбовь разработчиков железа к разработке драйверов под Linux и даст хорошие и фирменные драйвера пользователям. Бред? Нет. Проект Ndiswrapper процветает и позволяет использовать унифицированные начиная с версии 2000 драйвера для сетевых карт под Linux и FreeBSD.

Автор: BubaVV

Поделиться

* - обязательные к заполнению поля