Серьезнейшей проблемой уже немолодого комплекса DSN стало то, что многие антенны, особенно 80-метровые, вот-вот исчерпают свой ресурс, так что их придется либо кардинально обновить, либо заменить новым оборудованием. Сейчас международное сообщество рассматривает самые разные варианты апгрейда DSN, причем выбор может быть сделан в пользу замены каждой огромной антенны комплексом сравнительно небольших, работающих согласованно. По такому принципу, например, ныне действует массив из двадцати семи 25-метровых радиоантенн Very Large Array в штате Нью-Мексико. На недавней конференции International Union of Radio Science в Дели то же самое предложено сделать и с узлами DSN, заменив их 217 тарелками диаметром по 3,8 м каждая.
Но наиболее радикальное предложение для системы связи с глубоким космосом опубликовано в октябрьском номере журнала Radio Science. Автор статьи - никому не известный инженер Лу Шеффер (Lou Scheffer) из калифорнийской компании Cadence Design Systems (занимающейся дизайном и проектированием микросхем), тем не менее его проект оказался настолько интересен, что вызвал оживленную дискуссию в мировом научном сообществе.
Шеффер предлагает строить не традиционный кластер тарелок, а фазированную решетку -на основе той же дешевой технологии, что используется для производства антенн беспроводной связи в электронике массового потребления. Проще говоря, гигантскую антенну можно составить из миллионов маленьких антенн на печатных платах, аналогичных антеннам в радионаушниках или GPS-приемниках. Управляя фазой каждой из них, компьютер сформирует фокусированный сигнал, который можно посылать в любом направлении, хотя у антенны нет подвижных частей.
Устройства на основе фазированной решетки используют эффект интерференции, когда электромагнитные волны от множества излучателей накладываются друг на друга нужным образом, усиливая или ослабляя результирующий сигнал. Такая конструкция позволяет изменять направление луча практически мгновенно. Более того, фазированная решетка может одновременно посылать сигналы в разных направлениях (в данном случае для связи сразу с несколькими космическими кораблями). В военных технологиях подобная аппаратура широко используется силами ПВО; применялись фазированные решетки и для приема спутникового телесигнала (в том числе и на самолетах).
В проекте Шеффера базовый компонент решетки представляет собой квадратную плитку 25х25 см, на которой размещается матрица из ста (10х10) антенн, напечатанных на плате, и управляющий ими микропроцессор. Тысячи таких плиток можно, подобно кафелю, укладывать на плоское бетонное основание, подсоединив к центральному компьютеру. Хотя мощность каждой из миниатюрных антенн составляет всего 10 мВт, массив из полумиллиона плиток способен генерировать сигнал вдвое сильнее, нежели у антенны знаменитой радиообсерватории Аресибо в Пуэрто-Рико. Поскольку плитки хоть сейчас можно изготавливать на уже имеющемся оборудовании, стоимость одного элемента не превысит 20 долларов (или 10 млн. долларов в пересчете на решетку из 500 тысяч плиток). По расчетам Шеффера, на сборку такой антенны, возможно, уйдет еще около 6 миллионов. Однако и в сумме эти затраты намного меньше, по сравнению, скажем, со 100 млн. долларов, в которые обошлось строительство нового радиотелескопа Green Bank в Западной Вирджинии (2000 г.).
Проект Шеффера, разумеется, не лишен недостатков, однако подробно их обсуждать, наверное, имеет смысл лишь в том случае, если администрация DSN примет необычную идею всерьез.
Российский SECтор
В качестве «первых уст» можно назвать Майкла Кузумано - профессора Массачусетского технологического института, написавшего множество статей и книг о рынке разработки ПО, включая бестселлер «Microsoft Secrets»[M. A. Cusumano, R. W. Selby, «Microsoft Secrets». Simon amp; Schuster, New York, 1998, 512 р.]. Интересно, что он совмещает научную деятельность с постом директора индийской (!) аутсорсинговой компании, занимающей шестую строчку в мировом рейтинге.
В своем выступлении Майкл очень убедительно, приводя множество графиков, продемонстрировал наметившуюся еще в 2002 году тенденцию к изменению рынка разработки программного обеспечения. По его мнению, выпуск готовых продуктов - удел крупных корпораций (масштаба Microsoft, Sun, Adobe) и узких рынков (операционные системы, игры, специализированные приложения). Основной массе разработчиков он рекомендует обратить взор на стремительно растущий сегмент сервисного обслуживания. Анализ рынка за последние пятнадцать лет доказывает, что самый быстрый рост присущ компаниям с «гибридной» моделью бизнеса. Фирмы, не отказавшиеся от разработки готового софта, но направившие основные усилия на сервисное обслуживание, достигли высоких показателей почти по всем параметрам и сохраняли стабильность даже в тяжелые времена краха дот-комов.
Нельзя не отметить замечательного Ларри Константайна, всемирно известного эксперта в области разработки архитектуры программного обеспечения[Очень рекомендую книжку Ларри Константайна и Люси Локвуд «Разработка программного обеспечения» (пер. с англ. - С-Пб.: Питер, 2004. 592 с.)]. Будучи последовательным критиком пользовательского интерфейса продуктов известных софтверных компаний, он, однако, этим не ограничивается, а предлагает свои изящные решения множества проблем. Его семинар я бы назвал одним из самых увлекательных на конференции. Константайн выступает соучредителем и главой научного отдела международной компании Constantine amp; Lockwood, занимающейся дизайном, образованием и консалтингом.
Алексей Одиноков из Intel еще раз подтвердил приверженность корпорации делу многоядерности и сообщил, что в следующем году ожидается выход четырехъядерного процессора, под который уже готовится масса программных библиотек, в том числе усилиями новосибирского и нижегородского центров разработки. Россия, подчеркнул Алексей, может считаться одним из главных мировых центров разработки ПО. И он особенно горд тем, что у нас нет ограничений на сложность архитектуры реализуемых проектов.
О том, что «Россия - страна архитекторов ПО», говорил на конференции и Кирилл Раннев из Borland: «Мы давно миновали этап „экспериментальной“ площадки для разработчиков ПО. Выбирая место для строительства центра разработки, компания рассматривала Индию, Сингапур и Филиппины, однако в конце концов отдала предпочтение России. Здесь наилучшее соотношение квалификации персонала к стоимости разработки. Достаточно сказать, что сейчас 28% разработчиков Borland живет именно в России». Из насущных проблем он отметил нехватку младшего менеджмента и квалифицированных «середнячков». По мнению Кирилла, подготовку программистов нужно начинать уже со школы, чтобы, окончив вуз, они были готовы сразу же приступить к работе. Майкл Кузумано по этому поводу отметил, что, конечно, суперпрограммистами не становятся, ими рождаются. Но сколько бы их ни было, этого мало, чтобы сделать страну преуспевающей на рынке. Главное в любой отрасли - сбалансированность. Здесь недостаточно усилий частных компаний. Обязательно нужна государственная поддержка естественнонаучного образования. И не стоит Россию превращать во вторую Индию, плодя простых «кодеров», - на нынешнем этапе это бессмысленно, так как даже численность населения двух стран несопоставима, а значит, Россия не сможет предложить конкурентоспособную цену в этом сегменте рынка аутсорсинга. Нашим компаниям и нашему государству Майкл рекомендует задуматься, в первую очередь, о повышении технической и математической подготовки кадров. Это позволило бы занять нишу между суперпрофессионалами, которые у нас и так есть, и «ремесленниками», целые армии которых работают в Индии, Китае и на Филиппинах.
Общепрограммные ценности
Причина, она же движущая сила кризиса в области софта, общеизвестна до такой степени, что хоть из зубов выковыривай. Программы как услуги - лозунг, наскучивший до зевоты. Со времен альтшуллеровской ТРИЗ известно: лучшая вещь - та, которой нет совсем, а функция выполняется. Нет офисного софта, нет почтовых программ, нет системных утилит… есть только Google. Простите, случайно вырвалось.
Дело даже не в Google. Просто Google стал удобным символом разрушительных инноваций. Вот Google набирает пару сотрудников, чтобы те повозились с OpenOffice (который в октябре обновился до второй версии). К чему бы это? Эрик Шмидт, CEO Google, говорит, что пока лишь к увеличению популярности OpenOffice средствами Google. А тут еще и партнерство с Sun Microsystems, которая собиралась включить Google Toolbar в состав OpenSolaris. Невеликий рост аудитории для Google, однако это лишь первые сантиметры бикфордова шнура к старой бомбе «программы как услуги», которая лежит уже давно, вот только взорвать ее никак не могут.
Может, у Google получится? Уже немного получается. В форумах то тут, то там проскакивают сообщения: бросаю любимое приложение, потому что в нем не ищет Google Desktop Search. Сегодня это ахиллесова пята шустрого почтовика The Bat!, почти идеального собирателя разноформатной информации MyBase, и многих-многих других программ. Для того чтобы данные обрабатывались удобными метасредствами (такими как Desktop Search), они должны храниться в стандартных форматах.
Стандартизация и доступность, правда, часто идут вразрез с удобством использования. Тот же Microsoft Office и работает чуть ли не на порядок быстрее, и глючит меньше, чем OpenOffice. Однако именно формат документов OpenOffice был заявлен в октябре в качестве стандарта в комитет ISO. И мало сомнений, что он пройдет в качестве такового.
Суть «разрушительных инноваций», впервые описанных Клэем Кристенсеном (Clay Christensen), заключается не в том, чтобы отнимать у населения больше денег, чем это делал прошлый монополист. Естественное разрушение монополий всегда происходит с большими скидками, и в этом смысле десять раз был прав Билл Гейтс, говоря, что «Open Source убивает рабочие места». Если десять человек могут делать то, что раньше было под силу лишь тысяче, а платить за труд можно в сотню раз меньше, тенденцию угадать нетрудно.
В самой империи Гейтса в октябре было более чем неспокойно. Компания медленно начала менять курс на «программы как услуги», а возглавил этот маневр человек со сказочным именем Рэй Оззи. Компания объявила онлайновые продукты Windows Live и Office Live (см. новость «Жизнь после Windows»), стараясь при этом не создать конкуренцию себе самой.
Резкий поворот большому кораблю дается нелегко - на вираже капитанский мостик решили покинуть такие известные мореплаватели, как Хейди Партови (Hadi Partovi), начальник портала MSN, и Дон Гань (Don Gagne), директор разработки Microsoft Office. Причем если Партови, по своему обыкновению, возглавил им же основанный стартап (он так уже делал в 1999 году, но потом вернулся обратно), то Дон Гань ушел вовсе в никуда: «чтобы сосредоточиться на своем увлечении автогонками». К концу года, как ожидается, Microsoft оставит Джим Оллчин, «крестный отец Windows». Авторы книги «Бизнес в стиле фанк», подчеркивая роль личности в компании, приводят слова, которые якобы произнес когда-то Билл Гейтс: «Если Microsoft оставят двадцать ключевых сотрудников, компанию можно закрывать».
Парочка Google/Microsoft выпукло символизирует дуализм подходов к софту. Однако побеги нового пробиваются и вне этих двух заметных центров роста. Все больше внимания разработчики и обозреватели уделяют веб-платфоме AJAX (Asynchronous JavaScript + XML). Технология AJAX позволяет создавать веб-приложения, которые ведут себя почти как добропорядочные настольные программы, то есть не тормозят и предсказуемым образом отзываются на действия, к которым пользователь уже приучился посредством GUI (таскание файлов мышью и пр.). Компании ThinkFree и Writely сейчас делают на AJAX какое-то подобие офисных программ.
Прошедший в Москве форум независимых разработчиков ПО ISDEF, однако, не выявил ничего концептуально нового: все то же собрание программистов, дискутирующих по поводу защиты своего shareware и обсуждающих, как лучше взять с пользователя десять долларов за регистрацию.
Заехавший в Москву технический директор компании Fujitsu-Siemens Computers Йозеф Регер прояснил некоторые интересные детали относительно серверов компании на платформе AMD. В прошлой колонке я задавался риторическим вопросом, что же такого уникального Fujitsu Siemens нашла у AMD, чего нет у Intel. Оказалось, что это вполне конкретная особенность: наличие контроллера памяти внутри процессора позволяет с легкостью создавать двух- и четырехпроцессорные системы без дополнительных микросхем. Это известный факт, но Fujitsu-Siemens пошла дальше. Она сделала сервер, который в зависимости от положения переключателя работает как четырехпроцессорный или как два двухпроцессорных. Зачем это нужно? Те приложения, которые хорошо распараллеливаются, выгоднее пускать на нескольких мелких серверах. Другие (например, CУБД) лучше работают в режиме SMP с большим объемом общей памяти. Переключение с двух- на четырехпроцессорный режим создает оптимальные условия для обоих типов приложений. В идеале, сказал Регер, система должна переключаться автоматически, а не рубильником, как сейчас, - и к этому идеалу он нещадно стремит своих инженеров.
Приехать в Санкт-Петербург собрался и глава Sun Microsystems Скотт Макнили. Правда, визиты в Россию не всегда способствуют успехам руководителей ИТ-компаний. В прошлом году в Москву приехала Карли Фьорина - и что же? Через несколько месяцев она уже не работала в HP. CEO Intel Крейг Баррет оказался покрепче - чтобы оставить свой пост, ему потребовалось заглянуть в нашу страну не один, а несколько раз.
ФМ-ВЕЩАНИЕ: Взгляд из-за зеркала
На ваших страницах постоянно печатаются спорные и довольно провокационные статьи. Но я никак не ожидал увидеть на них аналог протоколов сионских мудрецов.
Рефрен статьи: А мужики-то и не знают! Коварные вредители системные администраторы versus наши уважаемые бизнесмены, все в белом. Подобные ситуации неплохо были описаны, например, у Солженицына. Честные коммунисты сидят в лагере, в НКВД сидят враги народа, сажающие честных людей, а тов. Сталин не в курсе. Вот когда тов. Сталин узнает, сверкнет глазами, пыхнет трубкой, тогда и сгинут враги народа, все честные люди выйдут из лагерей, и настанет коммунизм. Но пока тов. Сталин, к сожалению, не в курсе…
Оказывается, наши несчастные бизнесмены уже давно взяты в заложники злобными рэкетирами системными администраторами и совершенно не владеют ситуацией в своих фирмах. Сисадмины по своему почину перекрывают Свободный Доступ в Интернет (!!!), заливают гигазы вареза на корпоративные компьютеры и занимаются прочим вредительством.
Печальная картина… Спасибо г-ну Мучнику за Правду. Вот кто, оказывается, виновен за нынешний уровень пиратства в России…
Видимо, тема действительно актуальная, раз Вы так резко отреагировали. Ведь в статье рассматривались результаты действительного голосования среди совершенно лояльной аудитории - покупателей софта. Я допускаю, что бизнесмены врут сами себе, чтобы показаться честными. Но ответы были анонимными. Ситуация, вполне вероятно, еще хуже, чем я описал. То, что многие сисадмины принципиально против легального софта, это секрет Полишинеля. Просто об этом не принято говорить вслух. Да, видимо, многие это делают ради искреннего желания сэкономить деньги начальства. Но это совершенно не оправдывает их позицию.
IMHO бизнесмены в большей степени, чем админы, являются политиками и будут говорить то, что им выгодно, независимо от анонимности опроса.
Преимущества и недостатки использования лицензионного софта для сисадмина таковы.
Техническая поддержка и обновления.
«Бонусы» при закупке лицензий.
Юридическая чистота.
Недостатки:
Невозможность поставить любой софт, который хочет сисадмин. Требуется действовать в рамках бюджета, зачастую весьма ограниченного.
Цена для сисадмина не является ни преимуществом, ни недостатком. О цене пусть болит голова у начальства. Идея о желании админов сэкономить деньги конторы, по моему мнению, гроша ломаного не стоит. Нормальный работник понимает, что его зарплата зависит исключительно от состояния рынка труда. Я ни разу не слышал, чтобы админ получил от начальства какие-либо бонусы за экономию денег. А вот про откаты только ленивый не писал. Чем дороже закупаемый товар, тем лучше лицу, производящему закупки. По моим наблюдениям, админы, которые работают в конторах, использующих пиратский софт, зарабатывают меньше, чем в покупающих ПО легально.
Итак, мы видим, что использование пиратского ПО выгодно начальству, но практически невыгодно админу.
Выходя на новую работу, я всегда провожу инвентаризацию имеющегося аппаратного и программного обеспечения. О результатах информирую начальство и рекомендую купить лицензии ПО, если их нет. Желательно все это делать в письменном виде и отдавать под расписку, и при проверке начальство уже не сможет кивать на админа: мол, это он вводил нас в заблуждение.
Под этой позицией я бы и сам мог подписаться. Но согласитесь, результаты поражают. Получается, что бизнесмены действительно врут сами себе, стараясь создать иллюзорную картину мира? То, что они врут специально, я мало допускаю. Ведь для себя они покупают, и среди наших покупателей около 40% - руководители различного уровня. Это позиция страуса, спрятавшего голову в песок, и отодвигание проблемы легализации софта на потом или желание руководителей сэкономить деньги? Или все-таки частично это своего рода негласный договор между руководителем и сисадмином (один не дает денег на покупку софта, другой уже и не просит - все равно не дадут, и вынужден ставить пиратский софт, и оба хорошо понимают, что они совершают противозаконные поступки)?
Я считаю, что бизнесмены врут. Цели этого для меня не важны. Я как-то читал результаты анонимного исследования про супружеские измены. Так вот: процент женщин, которые признались в адюльтере, был существенно ниже фактического результата, полученного с помощью анализа ДНК их детей. То же самое мы имеем при оценке коррупции. Те, кто берут взятки, всегда будут занижать их количество, в отличие от тех, кому их приходится давать.
***
Относительно негласного договора: во многих случаях это так. То есть вина как минимум обоюдная. Специально ставить пиратский софт, если есть возможность поставить легально купленный, не будет ни один админ - по причинам, изложенным выше.
ТЕМА НОМЕРА: 64 бита для всех
История знает много разных компьютеров и много разных технологических решений, применявшихся в них. Лампы, транзисторы, ИС, БИС и СБИС; CISC, RISC и VLIW; компьютеры большие и маленькие; процессоры удачные и неудачные. Компьютеры на троичной логике, аналоговые машины, стохастические вычислители и компьютеры с «байтом» из девяти битов - бывало всякое. Однако конечный результат эволюции известен всем - это «тьюринговые» компьютеры с процессором, линейной оперативной памятью и средствами ввода-вывода и накопления информации, основанные на детерминированных вычислениях, двоичной логике и восьмибитных «неделимых» атомах информации - байтах. Но поскольку в один байт много не запишешь, то собственно байтами процессоры оперируют редко (разве что совсем уж простые 8-битные микропроцессоры), используя гораздо более крупные объекты - машинные слова[По традиции, идущей от первого процессора семейства x86 - CPU Intel 8086, который оперировал 16-разрядными числами, словом (word) обычно называют два байта. Потом, когда x86-процессоры получили возможность работать и с 32-разрядными данными, для совместимости со старым программным обеспечением эти 32 бита стали представлять в виде двух 16-битных слов - вот и получилось четырехбайтное двойное слово (double word). Таким образом, четверное слово (quad word) соответствует 64-битным данным (8 байтам) и т. д.]. При этом самые популярные сегодня x86-процессоры прошли почти весь путь усложнения объектов, с которыми они работали, начав с 8 битов (Intel 8008, 8080, 8085), «выбившись в люди» на 16 битах (8086 и 80286), надолго застряв на 32 битах и вот наконец, два года назад, обретя 64-битность. Но что это такое, как оно устроено, как его использовать и что это дает обычному пользователю? Об этом - наш сегодняшний рассказ.
8, 16, 32, 64…
Что вообще такое «разрядность процессора»? Как ни странно, это отнюдь не максимальный размер обрабатываемых данных. Складывать и вычитать 64-битные числа x86-процессоры умеют еще со времен Intel Pentium MMX; более того - даже i486 мог работать не только с 64-битными, но и с 80-битными числами, записанными в формате длинной двойной точности с плавающей запятой (long double). И если уж проводить аналогию дальше, то обрабатываемые инструкциями SSE-наборов операнды (регистры XMM) вообще имеют длину 128 бит. Но поддержка инструкций MMX, x87 и SSE 1/2/3 отнюдь не делает процессор 64-, 80- или 128-битным. Грубо говоря, по возможностям вычислений 64-битный процессор теоретически почти ничем не отличается от 32-битного, но достаточно продвинутого собрата[На самом деле, 32-разрядные процессоры, например, не умеют перемножать целочисленные 64-битные числа и делить 128-битные целые числа на 64-битное число, но это уже детали]. Да, работать с ним не так удобно, но при желании можно. В любом случае, соответствующие данные (long long integer или __int64, в общепринятой терминологии языка C) в программах встречаются нечасто.
Так в чем же дело?
А в том, что и x87, и SSE - расширенные наборы инструкций, работающие со специализированными регистрами процессора. Они никак не затрагивают сердце процессора - его базовый набор инструкций (Instruction Set Architecture, ISA) и базовые регистры общего назначения (General Purpose Registers, GPR), равно как и некоторые «представления» процессора об окружающем его мире. Лирик, наверное, не упустил бы здесь возможности немного пофилософствовать на тему подобных «неощутимых» с первого взгляда, но очень глубоких по своей сути различий, но я не философ, а математик, и потому просто скажу, что на практике главное отличие GPR-регистров от всех остальных в том, что их можно использовать для адресации оперативной памяти. То есть 64-битный процессор - это не тот, который в принципе может работать с 64-битными числами (хотя это он тоже должен уметь делать, выполняя с 64-битными целыми числами все базовые арифметические операции), а тот, который способен этими числами «нумеровать» ячейки памяти.
Чтобы было понятнее, о чем идет речь, поясняю: стандартная модель записи целочисленных чисел позволяет записать в 32-разрядный GPR-регистр процессора архитектуры IA-32 любое целое число от 0 до 232-1. Оперативная память с точки зрения прикладных приложений представляется здесь в виде эдакой длинной ленты из ячеек определенного размера (1 байт в x86), причем все они «пронумерованы» - ячейка 0, ячейка 1 и так далее, вплоть до ячейки 4.294.967.295. Какие-то ячейки могут «отсутствовать» - в этом случае обращение к ним будет вызывать ошибку, однако потенциальная возможность обратиться к этой ячейке существует всегда. А вот у 32-разрядного процессора возможности обратиться к ячейке 4.294.967.295 нет в принципе - просто потому, что он не сможет «дать ей название».
Что это означает на практике? Только то, что ни одна «классическая» 32-битная программа не может использовать больше 4 Гбайт (232/210*210*210) памяти. Поэтому если вы спросите продавца о преимуществах 64-разрядного процессора, то именно эту сакральную фразу о «поддержке большого объема оперативной памяти» (вместе с вопросом «а оно вам надо?») и услышите. Но все-таки не спешите сводить эту возможность к установке в систему четырех двухгигабайтных планок SDRAM. Все далеко не так просто.
64-разрядность и оперативная память
Первая «особенность», о которой часто забывают, рассматривая 64-разрядные процессоры, - это то, что во всех современных компьютерах программы работают не с физической, а с виртуальной оперативной памятью, то есть программная адресация памяти может не совпадать с действительным расположением этой памяти в компьютере. В нашей модели длинной ленты ячеек мы можем нумеровать их в произвольном порядке (0, 6533, 21, 554, 54223563, 2, …). Это очень удобно в многозадачных операционных системах: по-разному пронумеровав ячейки и раздав их разным приложениям (после чего в памяти образуется каша, когда данные разных программ лежат вперемешку), на логическом уровне мы сохраняем линейность и стройность, поскольку каждая программа работает не с этой кашей, а с виртуальным пространством адресов, в которое попадают данные только этой программы, и расположенные именно так, как программе привычно.
Впрочем, перенумерацией дело не ограничивается, поскольку вместе с номерами указываются всяческие атрибуты - «только для чтения», «только для операционной системы» и пр. Вдобавок для некоторых ячеек можно указать, что они в оперативную память «пока не загружены». Встретив такую пометку, CPU генерирует специальную системную ошибку (Page Fault) и обращается за помощью к операционной системе, которая может, к примеру, загрузить данные для этой ячейки с жесткого диска (техника своппинга). Поэтому всегда следует помнить, что «ограничение 4 Гбайт» в первую очередь относится не к физической, а к виртуальной оперативной памяти, доступной процессу. А вот что стоит за этими четырьмя гигабайтами адресного пространства - скромные ли 128 Мбайт памяти SDRAM или кусочек от пары терабайтов дискового массива - неважно: собственно процессор этот «реальный мир» почти ничем не ограничивает.
Но все же - что дает разрядность? Если процессор поддерживает длинные физические адреса (в архитектуре x86 соответствующий режим называется Physical Address Extension, PAE[Если подробнее, то в PAE используется 52-битная адресация, позволяющая адресовать до четырех петабайт данных]), то мы можем поставить на сервер хоть 64 Гбайт оперативной памяти и выделять ее разным приложениям. Условия вроде «не более двух гигов для чипсета такого-то» - это ограничения именно чипсета, не умеющего обслуживать большой объем памяти, а не 32-разрядной системы. Поэтому в серверных приложениях, когда на одном сервере, как правило, запущено несколько десятков одновременно работающих приложений, пресловутый «барьер в 4 Гбайт» практически не ощущается. Но означает ли это, что сегодня 64-разрядный x86 никому не нужен?
Конечно, нет! 64-разрядность виртуальной памяти в приложениях востребована уже сейчас, просто эти «добавочные биты» используются другими способами.
Во-первых, какую-то часть виртуального адресного пространства может забирать операционная система. К примеру, MS Windows обычно использует для своих нужд старший бит виртуального адреса, ограничивая адресное пространство запущенного в ней приложения 31 битом и 2 Гбайт адресного пространства. А два гигабайта оперативной памяти, согласитесь, куда ближе к реальной жизни, нежели гипотетические четыре; и ситуацию, когда их начнет не хватать, представить гораздо проще. Можно, правда, попытаться использовать специальный режим, когда Windows будет предоставлять процессам не два, а три гига адресного пространства, но работает он, к сожалению, далеко не всегда, зачастую роняя при неправильной настройке операционную систему.
Во-вторых, линейное адресное пространство подвержено «засорению» - процессу, в ходе которого в нем образуются дырки, которые невозможно использовать. Программы часто оперируют не байтами и словами, а гораздо более крупными структурами, занимающими десятки, сотни и даже миллионы байт информации. Если мы использовали эту структуру, а затем необходимость в ней отпала, то в памяти остается дыра, совпадающая по размерам и расположению с местом, где лежали данные этой структуры. И удастся ли сию дыру использовать - еще бабушка надвое сказала. Иногда почти вся оперативная память состоит из дырок, не несущих никакой практической пользы, и места для записи даже небольшого объема данных не находится[Подобным особенно грешат операционные системы и среды разработки компании Microsoft: менеджер памяти, используемый в Windows, не столь эффективен, как его UNIX-собратья, и «мусора» в памяти оставляет гораздо больше. Иногда это приводит к тому, что нормально работающие на UNIX программы, использующие вдобавок сравнительно небольшой объем оперативной памяти, в MS Windows через некоторое время вылетают с ошибкой Out of memory].
В-третьих, существует такая интересная техника, как маппинг файлов на оперативную память. «Маппить» можно что угодно, причем это не только самый быстрый, но и один из самых удобных способов обработки файлов. Не нужно ничего читать из файла или записывать в него, не нужно думать об эффективном кэшировании данных - все происходит автоматически. Просто «мапнул» файл на память - и находившиеся в нем данные волшебным образом мгновенно оказались доступными приложению. В «настоящую» оперативную память они будут подгружаться только при обращении к ним, а в случае длительной «невостребованности» - вновь возвращаться на жесткий диск, освобождая место для чего-нибудь более актуального. Реализовать что-либо подобное «вручную» - практически невозможно. Но, к сожалению, на двух гигабайтах адресного пространства Windows особенно не развернешься[И на 4 Гбайт своп-файла, которыми нас обычно ограничивает Windows (ругать так ругать!), - зачастую тоже], поэтому техника маппинга задействуется только тогда, когда высокая скорость обработки файлов для приложения становится критичной.
Поэтому даже если бы в технологиях EM64T/AMD64 не было бы ничего сверх возможности оперировать с 64-битными указателями[Указатель на оперативную память (обычно просто говорят: указатель) - это ячейка памяти, в которой записывается номер другой ячейки. То есть, к примеру, мы можем как-то использовать в программе это число (номер ячейки) - присваивать его, изменять, увеличивать или уменьшать, а потом вызвать специальную операцию «разыменования» - взятия данных, расположенных по этому адресу в оперативной памяти. В C/C++ и подобных языках программирования указатели выделены в самостоятельный тип данных, и программист работает с ними «вручную»; в других языках «арифметику» указателей от программиста прячут, предлагая работать с более высокоуровневыми абстракциями, однако в машинном коде и оперативной памяти указатели встречаются почти всегда] на оперативную память, они по-прежнему оставались бы востребованными и своего покупателя все равно бы нашли. Но стоила бы в этом случае овчинка выделки?