История с запуском Microsoft Windows XP на
компьютерах Apple Mac с процессорами Intel наконец-то
закончилась - операционка благополучно
запущена, главный приз (около 13.000 долларов) перешел
победителям, пользователи счастливы, Apple,
вероятно, пребывает в унынии. А мы сегодня
представляем интервью с одним из двух
победителей - человеком по имени Jesus Lopez (ник
blanka).
Что двигало вами при выполнении задачи?
Было сразу несколько причин, почему этот
проект привлек мое внимание:
- От него могло получить пользу сразу
множество людей. - Для меня Mac Mini казался идеальным
компьютеров для использования в
автомобиле, этот проект я вынашивал
несколько месяцев - установить на него GPS,
Internet, проигрыватель и т.п. К сожалению
большинство софта для автомобильных
компьютеров оказалось под Windows... - Задача по запуску XP на Mac-е казалась
неразрешимой, а я люблю решать трудные
задачи, тем более доказывать нечто
невозможное. - Я уже довольно давно не программировал
на низком уровне, всегда хорошо вспомнить
старые добрые времена 🙂 - Да и денежный приз вполне оправдал и окупил то время, что я на него потратил.
Как же работает ваш Boot Loader/CSM?
Ну если вкратце, то делает он следующее:
- Переконфигурирует i945 и ICH7 чипсет на
использование памяти, обычной для BIOS. - Программирует эти области памяти
специально написанным новым BIOS-ом. Он
написан в 16-битной реальном режиме (один
из режимов адресации процессоров 80х86, в
котором не поддерживается трансляция
виртуальных адресов в физические, а
используется адресация, принятая в
процессорах 8088/8086). В нем реализованы все
прерывания посредством переключения в 32-битный
защищенный режим и вызова кода CSM. - Код CSM реализует набор унаследованных
прерываний через EFI API. Все остальные
нереализованные прерывания
обрабатываются встроенным дебаггером. - Так же мы сделали протоколы загрузки - El
Torito (загрузочный
CD), MBR и загрузочные сектора, они далее
указывают на код, который должен быть
выполнен. - Код, будучи найденным, загружается в
память, загрузчик переключается в 16-битный
режим и передает управление ему, коду.
Вкратце вот так. В дополнение пришлось
патчить некоторые куски Windows дабы сгладить
некоторые различия в железе между Apple и
стандартной архитектурой AT. Мы, например,
столкнулись с отсутствием контроллера
клавиатуры 8042 и невозможностью работы в текстовых VGA
режимах - это и до сих пор невозможно, но я
думаю это вполне реализуемо.
Какую главную проблему вы можете отметить?
Очень трудно определить почему Windows не
делает то, что положено. Подвисания, черные
экраны, перезагрузки... Это очень и очень
трудно отлаживать.
Сколько времени прошло до первого релиза?
Я впервые услышал о конкурсе 25 Января 2006
года и попросил товарища купить iMac в тот же день.
На следующий Amazon доставил их... Остальное
уже история.
Сейчас мы видим огромные проблемы с
драйверами. Как вы думаете, их удастся
решить?
Надо сказать, что я очень впечатлен теми
усилиями, которые сообщество вкладывает в
этот проект. Люди выпускают драйвера каждый
день и появляется все больше людей, которые
хотят помогать. я думаю это всего лишь вопрос времени и в конце концов мы запустим
3D ускорители на железе Apple.
Спасибо вам за разговор.
Я хочу поблагодарить людей за интерес к
этому проекту, в конце концов он и сделал
его возможным.