Журнал «Компьютерра» N 38 от 17 октября 2006 года
Шрифт:
Рассказывали о многом. Самые общие, неспециализированные материалы выносятся в отдельное «шоу достижений», состоящее из нескольких тематических кейноутов (keynotes), представляемых руководителями соответствующих подразделений Intel. Открывающий Форум CEO Intel Пол Отеллини, например, отчитался о достижениях корпорации за минувшие полгода, подробно остановившись на таких «вкусных» вещах, как завоевавшая корону лучшего в мире процессора архитектура Intel Core, невероятное еще не так давно сотрудничество с Apple, полностью перешедшей на соответствующие процессоры; поведал об успехах в применении 65-нм технологического процесса и перспективах быстрого внедрения 45 нм, о прорыве в «потребительских» качествах новых серверных Intel Xeon, о кремниевом лазере и терабитном процессоре, о новой мобильной платформе и многом другом. Что и говорить - корпорации, безусловно, есть чем похвастать. Позднее на отдельном брифинге для прессы СЕО Intel рассказал о некоторых деталях новой модели исследований, пообещав в ближайшие годы придерживаться «чередующейся» схемы, в которой каждый первый год будет выпускаться «улучшенная версия» уже существующей архитектуры (вроде перехода от Pentium M к Core Duo), а каждый второй - «выкатываться» принципиально новая (Core Duo «Yonah» - Core 2 Duo «Conroe»), причем две подобные архитектуры - Nehalem и Gesher уже находятся в разработке (кроме имен о них пока ничего не известно).
А вот директор отдела технологий Intel Джастин Раттнер затронул куда более серьезные вещи - серверы и связанные с ними технологии в свете объявленного Intel
Безопасности во всех ее ипостасях на IDF было уделено очень много внимания. На подходе уже первые системы с ее аппаратной поддержкой, и в ближайшие несколько лет разработка «безопасных приложений» и «безопасных операционных систем», несомненно, будет одной из актуальнейших «программистских» тем. Шифрование на канальном уровне - лишь один из аспектов общей проблемы, коротко описывающейся так: главная угроза корпоративным сетям исходит не «извне», а «изнутри» - хакеры предпочитают «внедриться» в сеть, «стать одним из своих», вместо того чтобы преодолевать навороченные файрволлы и IDS на ее границах. И та же LinkSec, востребованная, если хакер попытается физически подключить к сети «чужой» компьютер или иное «прослушивающее» оборудование, будет абсолютно бесполезна, если в одну из машин «доверительной» сети окажется внедрен троянец.
Что делать? Виртуализироваться! Виртуализация, позволяющая создавать на одном компьютере изолированные друг от друга виртуальные машины, и безопасность идут рука об руку, поскольку вместо комплекса мер по защите компьютера в целом - файрволла, антивируса, разграничения прав доступа - достаточно реализовать защиту только сравнительно маленькой программки - менеджера виртуальных машин (VMM). Во-первых, с его помощью можно выстраивать «доверительную пирамиду»: VMM при создании очередного раздела на компьютере проверит «цифровую подпись» загрузчика операционной системы, загрузчик проверит подписи всех исполняемых файлов и данных операционной системы, операционная система будет проверять подписи у всех запускаемых программ, программы - у всех запускаемых скриптов и используемых данных и т. д., где каждый уровень, который мы уже считаем надежным, проверяет надежность следующего уровня. Если аппаратно обеспечить гарантию подлинности самого первого уровня, с которого начинается «пирамида», - а именно это и делают TPM, LaGrande и иже с ними, то на подобном компьютере будет принципиально невозможно запустить что-либо неподписанное кем-то, кому мы доверяем, - в частности, того же троянца. Во-вторых, виртуализация гарантирует, что если «вредная» программа все-таки будет запущена (например, где-то в описанной схеме встретится незащищенный слой, систему безопасности для собственного удобства отключит сам пользователь или, что еще неприятнее, из-за ошибки в софте «подписанная» программа сделает что-нибудь «неприличное» [Как вы помните, «борьба за безопасность» началась еще с введения бита NX/XD, который позволял предотвратить один из самых распространенных видов подобных атак, заставляющих недостаточно аккуратно написанное приложение выполнить произвольный «чужой» код, послав на его вход специально подобранную последовательность данных]), то «погибнет» лишь один из «отсеков корабля», а не вся система. Скажем, дыра в WinAMP или многострадальном Internet Explorer, использующихся в неслужебных целях, не станет причиной компрометации бизнес-приложения, работающего с важными данными, поскольку пробившийся в одну виртуальную машину низкой защиты хакер попросту не увидит недоступные для него остальные машины, на которых запущены более критичные вещи.
Что же нам предлагают? По правде говоря, для меня стало откровением, что несмотря на отсутствие поддерживающего ее программного обеспечения, первая на рынке технология виртуализации VT-x, которую процессоры Intel поддерживают уже около года, за это время несколько раз оптимизировалась по быстродействию, так что производительность использующих ее программ на Core 2 Duo будет заметно выше, чем на первых Pentium D (даже с учетом разницы в производительности самих этих процессоров). Впрочем, сегодня ведущие производители виртуальных машин уже поддерживают VT-x, хотя и не реализуют всех ее потенциальных возможностей, что, впрочем, неудивительно, если учесть, что необходимый для полного раскрытия технологии объем работ сопоставим по сложности с созданием новой операционной системы, да и ОС в идеале должны бы пройти соответствующую оптимизацию. Камень преткновения в данном вопросе - это необходимость реализации работающих на уровне виртуальной машины драйверов для железа и их поддержки операционной системой. Дело в том, что все нынешние ОСи попросту не умеют совместно с другими ОСями одновременно использовать одно и то же оборудование - скажем, общую видеокарту, и приходится либо реализовывать средствами виртуальной машины виртуальный же графический адаптер, жертвуя производительностью и функциональностью, либо ставить, грубо говоря, две видеокарты - по одной на каждую из ОСей, что тоже едва ли можно назвать удачным выходом. Кроме того, если мы собираемся использовать VMM не только для одновременного запуска Linux и пары копий Windows на одной машине, а для более «прогрессивных» схем, в которых, например, предлагается каждому критичному приложению выделять по собственной копии операционной системы, то без поддержки со стороны ОС и запустить это приложение - проблема (потребуется ждать создания новой виртуальной машины и загрузки в ней ОСи, после чего вручную запускать нужную программу), и работать с ним (было бы лучше, если б запущенная на другой виртуальной машине программа выглядела как обычное приложение, а все технические тонкости были спрятаны), и ресурсов на это уйдет слишком много (о быстродействии во многих случаях можно забыть). Словом, объем работы огромен, он наверняка займет еще несколько лет. Так что первые ее по-настоящему интересные плоды мы, вероятно, увидим тогда же, когда и второе поколение виртуализации от Intel, известное сейчас под кодовым названием VT-d.
Для разработчиков VT-d - большой шаг вперед. Например, в этой технологии появится аппаратная поддержка двойной трансляции виртуальной памяти, что позволит обойтись в виртуальных машинах без реализации ее функциональности чисто программным путем, довольно медленным и требующим большого непроизводительного расхода оперативной памяти. Появится возможность предоставления быстрого, без участия VMM доступа к выбранным MSR-регистрам процессора [Эта фича уже реализована в VT-x процессоров архитектуры Intel Core]; появится возможность не сбрасывать при каждом переключении между виртуальными машинами таблицу трансляции виртуальной памяти TLB, - все это тоже должно сильно увеличить быстродействие VT-d по сравнению с VT-x. Появится защита DMA-операций, улучшится поддержка прерываний - что, в свою очередь, повысит безопасность, закрыв некоторые потенциальные дыры. Кстати, интересно, что почти все из вышеперечисленного предлагает в своей технологии Pacifica компания AMD, незадолго до Форума начавшая поставки соответствующих процессоров. Так что Intel, безоговорочно лидировавшая в этой области, рискует на полгода-год - до выхода процессоров и чипсетов с поддержкой VT-d - остаться в хвосте. Впрочем, решение AMD не совместимо с решением Intel, и решатся ли разработчики на «оптимизацию» своего ПО «под AMD» - пока непонятно.
Любопытный доклад был посвящен созданию виртуальной машины «от Intel». В свое время, когда еще только появлялись первые процессоры VT-x, я спрашивал на московском Форуме представителей Intel о перспективах создания компанией собственного ПО, дабы потребители могли воспользоваться этой технологией (как известно, Intel разрабатывает и продает довольно много программных продуктов для собственного железа, начиная с компиляторов и заканчивая средствами отладки), но тогда мне сказали, что создание VMM ляжет на плечи сторонних разработчиков (в числе которых, кстати, фигурирует Microsoft), а Intel в лучшем случае поддержит OpenSource-проекты, но уж никак не станет создавать собственный стандарт. Однако ситуация, похоже, меняется, и вместо разговоров о довольно невнятном опенсорсном проекте Xen, на котором демонстрировалась работа VT-x, но который, на мой взгляд, страшно далек был не только от «народа», но и от подавляющего большинства сисадминов [Хотя Novell, включившая Xen в свои версии Linux, пожалуй, со мной не согласится], на Форуме разговор шел уже о более чем понятном и весьма многообещающем Open Virtual Iron, реализующем полноценную, удобную и довольно «навороченную» виртуализацию. Сама Virtual Iron - стартап, предлагающий коммерческое ПО, и подобный поворот в сторону «открытости», да еще и подробно освещенный Intel, выглядит как попытка установить некую собственную «стандартную платформу» в виртуализации.
Что касается более отдаленных перспектив, то Intel уже давно обещает появление поддержки виртуализации на уровне самих устройств, что снимет многие проблемы с их использованием в виртуализированных системах. Но в отличие от VT-d, здесь все зависит не только от Intel, поскольку соответствующие усовершенствования придется вносить во все многообразие современного компьютерного оборудования (помнится, года два назад речь шла даже о специальных клавиатурах, мониторах и мышах!), что потребует перестройки на новый лад огромного количества разработчиков. Оглянитесь вокруг в поисках тотального перехода на давным-давно вышедший PCI Express, который прославляли как безусловный стандарт самого ближайшего будущего, - и вы увидите, что подавляющее большинство разработчиков как использовали старый добрый PCI и более быстрый PCI-X, так и продолжают использовать. Тем не менее комитет PCI-SIG продолжает работу над выработкой спецификаций на устройства, в которых виртуализация будет поддерживаться аппаратно, и наверняка включит их в очередную версию стандарта PCI.
После двухъядерных процессоров, о которых столько говорили в прошлом году, четырехъядерники этого года уже не являются чем-то сильно новым с технологической и маркетинговой точек зрения. Так что вместо отдельных сессий для специалистов они удостоились лишь упоминаний в паре докладов, в которых в очередной раз было подтверждено, что «четыре ядра» от Intel будут объединением двух обычных двухъядерных процессоров в общем корпусе, примерно таким, каким было второе поколение Pentium D, набиравшееся из пары одноядерных кристаллов CedarMill. С одной стороны, это очень выгодно для Intel, поскольку с ее хорошо отлаженной технологией производства подобных «гибридов» она может представить эти «камни» в самые кратчайшие сроки и по минимальной себестоимости. С другой - разделение на «пары» ядер хорошо далеко не для всех приложений, и по некоторым сообщениям, даже оптимизированное параллельное ПО к Kenthsfield’у отнесется равнодушно, в отличие от по-настоящему прорывных в этом отношении Yonah и Conroe. Кроме того, два ядра - это удвоение тепловыделения и нагрузки на схемы питания процессорного сокета, что отрицательно скажется и на только-только завоеванном звании «самых холодных процессоров», и на совместимости с материнскими платами. Главный конкурент - AMD - сейчас активно «играет» на обоих моментах, заявляя, что у нее этих проблем, благодаря использованию «монолитного» четырехъядерного чипа и переходу на 65-нм технологический процесс, не будет. Правда, не стоит забывать, что у нее все это будет после, а у Intel пусть даже «неидеальный», но работающий четырехъядерник - уже сейчас, и не исключен даже такой вариант, что первые четырехъядерные «камни» от AMD выйдут к тому моменту, когда Intel подготовит 45-нм технологический процесс и выпустит на его основе находящиеся сейчас в разработке собственные «монолитные» квады, с перспективой их объединения по той же схеме «двух кристаллов в одном корпусе» в октеты.
Еще один довольно острый вопрос - будут ли востребованы все эти многоядерные процессоры, в том плане, что большое количество ПО до сих пор не оптимизировано даже под двухъядерные CPU. Исключением, пожалуй, можно считать серверы, которые во все времена были многопроцессорными, а потому - рассчитанными на использование распараллеленного ПО: для них переход на новые «камни» обещает пройти гладко. Правда, очень большую роль тут играет обслуживающая процессор инфраструктура, которая нередко стоит куда дороже собственно процессора, а с этим делом у Intel в последнее время дела обстояли не очень хорошо, что выразилось в ослаблении позиций в традиционно консервативном серверном сегменте и тоже дало лишний козырь AMD, последние несколько лет ориентирующейся как раз на развитие собственной инфраструктуры, «платформы» с максимально продолжительным сроком жизни и вдобавок открытой для всех желающих ее улучшить. Поэтому единственная демонстрация на Форуме, в которой напрямую сравнивались Intel и AMD, была посвящена именно серверным четырехъядерникам. Проводивший ее Пэт Гелсингер устроил небольшую эффектную сценку с демонстрацией «в реальном времени» двух соревнующихся систем и образцово-показательными замерами, в которых двухъядерный Xeon значительно обошел двухъядерный Opteron не только по скорости, но и по энергопотреблению, после чего был за пару минут заменен на четырехъядерный, который увеличил отрыв в производительности еще больше, почти до двукратного, и все равно показал меньшее энергопотребление. Но несмотря на бодрые реляции о том, что TDP для серверных квадов по сравнению с дуалами увеличен не будет, а грядущие низковольтные версии еще и снизят его до 50 Вт, боюсь, в реальной жизни дела будут обстоять не столь радужно. Все же не случайно запущенный на сцене четырехъядерник работал на гораздо более низкой частоте, чем его двухъядерные оппоненты, а в качестве тестового приложения было выбрано прекрасно распараллеливающееся практически на любых системах перемножение пары огромных матриц, на котором было показано отнюдь не двукратное увеличение производительности, ожидающееся от квадов.