[Перевод] Дело совершенно секретного iPod
Это был обычный серый день в конце 2005 года. Я сидел на рабочем месте и писал код для следующей версии iPod. Вдруг без стука ворвался директор ПО для iPod, начальник моего начальника, и закрыл дверь. Он перешел сразу к делу: «У меня есть специальное задание для тебя. Твой руководитель об этом не знает. Ты будешь помогать двум инженерам из Министерства энергетики США собирать уникальный iPod. Отчитываешься только передо мной».
На следующий день мне позвонили с ресепшена и сказали, что двое мужчин ждут в вестибюле. Я спустился познакомиться с ними. Это были Пол (Paul) и Мэтью (Matthew) — инженеры, которые хотели собрать собственный iPod. Мне хотелось бы сказать, что они пришли в темных очках и смотрели в отражения окон, чтобы убедиться, что за ними не следят, но нет, это были самые обычные тридцатилетние инженеры. Я впустил их, и мы пошли в переговорку.
Они не работали на Министерство энергетики, они работали в подразделении Bechtel (Бэктел), в крупном оборонном подрядчике министерства. Они хотели добавить собственное оборудование в iPod и записывать с него данные на диск. Более того, они хотели все замаскировать, чтобы со стороны казалось, что это обычный iPod.
Они делали всю работу, моя задача была предоставлять им необходимую со стороны Apple помощь.
Я узнал, что чиновник из Министерства энергетики связался со старшим вице-президентом по аппаратному обеспечению и попросил помощи в создании модифицированных iPod. Старший вице-президент спустил запрос вице-президенту подразделения iPod, тот передал его директору ПО iPod, а он пришел ко мне. Моему начальнику сказали, что я работаю над специальным проектом и вопросы здесь неуместны.
Background
Я был вторым программистом, которого наняли для проекта iPod, когда он появился в 2001 году. Тогда еще маркетинг Apple не придумал название iPod, а продукт имел кодовое имя P68. Первый программист позднее стал директором по разработке ПО для iPod, именно он пришел ко мне с этим заданием. Я написал файловую систему для iPod, а позднее и SQLite базу данных, которая отслеживала все композиции. Со временем я поработал практически над каждой частью операционной системы iPod за исключением аудиокодеков, которые превращали MP3 и AAC в звук.
(Эти аудиокодеки были написаны двумя инженерами с учеными степенями из Беркли и Стэнфорда. Когда они не спорили друг с другом, какой университет лучше, они писали наполненный математикой код, к которому я боялся прикоснуться. Вы бы не позволили обычному инженеру возиться с этим кодом, так же как и не позволили бы веломеханику чинить коробку передач Porsche. Время от времени они играли в покер, и я — вместе с ними. Единственная причина, почему я не потерял все свои деньги, — один из них наслаждался водкой.)
Компиляция операционной системы iPod из исходных кодов, загрузка на устройство, тестирование и отладка — весьма сложный процесс. Когда к нам приходит новый инженер, мы даем ему неделю, чтобы он разобрался с ним, прежде чем начать давать задания.
Операционная система iPod самостоятельна и не основана на других операционных системах Apple, таких как классическая Mac OS или Darwin, Unix-ядро которой лежит в основе macOS, iOS, iPadOS, WatchOS и tvOS. Оригинальное оборудование iPod опирается на аппаратную платформу, которую Apple купила у компании Portal Player. Portal Player предоставила низкоуровневые аспекты ОС iPod, такие как управление питанием, дисковые драйверы и ядро реального времени (которое лицензирует компания Quadros). Apple также купила и высокоуровневые части ОС iPod у компании Pixo. Pixo была открыта несколькими годами ранее бывшим инженером Apple с целью написать универсальную операционную систему для мобильных телефонов и продавать ее компаниям типа Nokia и Ericsson. Код Pixo ладит с графическим интерфейсом и текстом в Unicode (что очень важно для локализации), управляет памятью и обрабатывает события. Конечно, со временем инженеры Apple модифицировали этот код, переписав большую его часть.
ОС iPod написана на С++. Так как эта ОС не поддерживает сторонние приложения, то и не существовало публичной документации, как ОС работает.
И наконец, команда разработки iPod работала на Windows. У Apple тогда еще не было инструментов для разработки под ARM, потому что это было до появления iPhone. Команда разработки использовала инструменты от ARM Ltd, а они работали только на Windows и Linux.
Моя работа состояла в том, чтобы скоординировать работу Пола и Мэтью по запуску операционной системы, с которой они никогда раньше не работали.
Быстрый старт
Я забронировал пустой офис для Пола и Мэтью в нашем здании. Попросил IS&T (департамент информационных технологий Apple) настроить офисную сеть так, чтобы они могли подключаться только к интернету и не имели доступа к внутренней сети Apple. Wi-Fi у Apple всегда находится «снаружи» внутренней сети. Даже если ты подключаешься к Wi-Fi внутри здания, тебе все равно потребуется VPN, чтобы попасть во внутреннюю сеть. Это не было сотрудничеством между Apple и Bechtel с договором и оплатой, Apple помогала Министерству энергетики неофициально. И доступ в таких условиях был ограничен.
Нечего и говорить, что Пол и Мэтью не имели доступа к серверу с исходным кодом. Я дал им копию актуальной версии кода на DVD и объяснил, что диск не может покидать здание. Более того, им позволялось хранить модифицированную версию ОС iPod, но не модифицированные исходники.
Apple не предоставляла им никаких аппаратных или программных инструментов. Я дал им технические характеристики компьютеров на Windows, которые нужны вместе с ARM-компилятором и JTAG-отладчиком. Они также купили несколько десятков iPod для работы.
Как и во всех зданиях Apple, каждый должен был предъявить карточку-пропуск перед входом, чтобы открыть дверь и пройти в здание. На каждом этаже была еще одна дверь и считыватель пропусков, так что туда входили только люди с допуском.
Каждый день Пол и Мэтью звонили мне из вестибюля, так как у них не было пропуска. Я впускал их как гостей и сопровождал до их офиса. В конце концов я достал для них пропуски вендоров, как будто они хотели продать Apple кофе или микросхемы. Таким образом мне больше не приходилось сопровождать их каждый день. Я программист, а не нянька.
Наши лучшие люди
Пол и Мэтью были умными — лучшими, пожалуй — и с небольшой помощью они разобрались достаточно быстро. Я показал им, как настроить инструменты разработки, собрать операционную систему из исходных кодов и как загрузить ее на iPod. Мы внесли небольшие изменения в графический интерфейс, чтобы они могли видеть, какую именно сборку они запускают. Я также показал, как работать с аппаратным отладчиком JTAG, который был достаточно привередлив. И они с головой окунулись в свою работу.
Изучая операционную систему, они объясняли, что хотят сделать, по крайней мере в общих чертах. Они добавили в iPod специальное оборудование, которое генерирует данные, и хотели записывать с него данные. Они приложили максимум усилий, чтобы я не увидел это оборудование, и я не увидел.
Мы обсуждали способы спрятать данные, которые были записаны. Как дисковый инженер я предложил им создать дополнительный раздел на диске и там хранить данные. Так, даже если кто-то подключит iPod к ПК или Mac, то iTunes воспримет устройство как обычный iPod. Более того, iPod будет выглядеть как обычно и в Mac Finder, и в Windows Explorer. Идея им понравилась.
Затем они хотели добавить простой способ начинать и останавливать запись. Мы взяли наиболее длинный путь в настройках и добавили туда пункт с непримечательным названием. Я помог им сделать это в коде ОС, который был чуть более чем неочевидным. В остальном устройство функционировало как обычный iPod.
На тот момент самым новым iPod был iPod пятого поколения, более известный как «iPod с видео». В сравнении с iPod nano, который стал популярным вскоре после этой истории, корпус iPod было относительно просто вскрыть и собрать обратно, не оставив при этом заметных следов. Более того, iPod пятого поколения имел диск на 60 ГБ, то есть было достаточно места и для песен, и для дополнительных данных. Ну и наконец это был последний iPod, для которого Apple не проверяла цифровую подпись ОС.
Это было важно, так как это сделало iPod пятого поколения в некотором смысле взламываемым. Энтузиасты наслаждались возможностью запустить на нем Linux, что было сложно без специальных знаний и инструментов, которыми обладала Apple. Мы, команда инженеров iPod, были впечатлены, но компании Apple это не нравилось. Начиная с iPod nano, операционные системы были подписаны цифровой подписью, чтобы пресечь действия хакеров. Загрузчик проверял цифровую подпись до загрузки ОС: если она не совпадает, то устройство не загрузится.
Я не думаю, что Пол и Мэтью когда-нибудь просили Apple подписать их версию операционной системы, чтобы была возможность запустить ее на iPod nano. Я даже уверен, что Apple бы не согласилась. В любом случае, большой iPod пятого поколения был идеальным для таких целей.
Спустя несколько месяцев непрерывной работы в их импровизированном офисе Пол и Мэтью завершили интеграцию их специального оборудования в iPod и свернули проект. Они вместе с компьютерами и отладочными устройствами вернулись обратно в офис Bechtel в Санта-Барбаре. Они вернули мне DVD с исходниками и пропуска. Они сказали мне «прощай», и я больше никогда их не видел. DVD годами лежал на полке в моем офисе, пока я не увидел его при уборке.
Что они делали?
Министерство энергетики огромное. Его бюджет на 2005 год — 24.3 миллиарда долларов. Оно отвечает за ядерное оружие и ядерно-энергетические программы США, включая Лос-Аламосскую национальную лабораторию, которая была частью Манхэттенского проекта. Как говорится в бюджетном запросе Министерства энергетики:
Размер бюджета на 2005 финансовый год предлагается в размере $ 9,0 млрд. для достижения целей, связанных с обороной. Бюджетная заявка подтверждает обязательства в отношении требований ядерного сдерживания, изложенных в Обзоре ядерной политики администрации, и продолжает финансировать агрессивную стратегию по уменьшению угрозы оружия массового уничтожения.
Мое предположение, что Пол и Мэтью собирали что-то вроде невидимого счетчика Гейгера. Что-то такое, что агенты Министерства энергетики могут использовать в открытую. Что-то такое, что выглядит непримечательно и проигрывает музыку и функционирует как обычный iPod. Вы можете гулять по городу, слушать свою любимую музыку и обнаруживать наличие радиоактивности — например, украденного урана — или свидетельства разработки «грязной бомбы» без шансов, что общественность или пресса об этом узнают. Как и множество других электронных гаджетов, счетчик Гейгера становится все меньше и дешевле. И меня особенно позабавило, что я наткнулся на Radiation Alert Monitor 200, который напоминает классический iPod.
Когда я спрашивал Пола и Мэтью, что они делают, они меняли тему и начинали спорить, куда идти на обед. Ох уж эти гики.
Особый iPod, которого не было
Только четыре человека в Apple знали про этот секретный проект. Я, директор по разработке ПО iPod, вице-президент подразделения iPod и старший вице-президент по аппаратному обеспечению. Никто из нас больше не работает в Apple. И нет никаких записей. Все связи были только на словах.
Если вы спросите у Apple о проекте особого iPod, то специалисты по связям с общественностью честно ответят, что у Apple нет записей о таких проектах.
Но теперь вы знаете.