Накось макось. Разбираем приложение для Mac OS 9, чтобы дать ему вторую жизнь

Те­бе, веро­ятно, уже надо­ело читать статьи о прог­раммах для Windows? Поп­робу­ем испра­вить эту нес­пра­вед­ливость и вспом­ним про Apple Macintosh. Тот самый, вин­тажный, на про­цес­соре PowerPC. Сегод­ня мы будем пре­пари­ровать написан­ное под эту древ­нюю тех­нику при­ложе­ние, что­бы дать ему вто­рую жизнь.

Мо­жет быть, ты пом­нишь, что мы уже обра­щались к этим компь­юте­рам в статье «Ли­посак­ция для fat binary. Лома­ем прог­рамму для macOS с под­дер­жкой нес­коль­ких архи­тек­тур», но тог­да мы раз­бирали при­ложе­ние (точ­нее, биб­лиоте­ку) в ста­тике, при­чем без дос­тупа к Mac, на компь­юте­ре с Windows. В этот раз мы не толь­ко изу­чим код прог­раммы, но и поп­робу­ем прос­ледить за ее поведе­нием в естес­твен­ной сре­де оби­тания.

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

Итак, пос­танов­ка задачи. Име­ется инстал­ляци­онный пакет неко­его вин­тажно­го при­ложе­ния для Mac OS 9.0.4. При­ложе­ние дол­жно работать со ска­ниру­ющим железом кон­ца прош­лого сто­летия при наличии авто­риза­ции в про­цес­се заг­рузки. Пос­коль­ку за дав­ностью лет это железо пережи­ло и сов­мести­мый Mac с уста­нов­ленной на нем Mac OS 9, и авто­риза­цию, но работать с ним таки надо, поп­робу­ем дать ему вто­рую жизнь под­ручны­ми средс­тва­ми.

Нач­нем с эму­лято­ра, на котором мож­но нор­маль­но запус­тить нашу прог­рамму в Windows. Надо ска­зать, я спе­циаль­но оста­новил­ся на столь экзо­тичес­кой сис­теме, что­бы тебе было не скуч­но. Такие популяр­ные эму­лято­ры под Windows, как VMware и VirtualBox, не под­держи­вают уста­рев­ший про­цес­сор PowerPC, поэто­му выбирать нам при­дет­ся из более при­чуд­ливых вари­антов. Нагуг­лив спи­сок под­держи­вающих этот про­цес­сор эму­лято­ров (а он негуст: Basilisk, QEMU, SheepShaver), находим в нем самое эпа­таж­ное наз­вание (SheepShaver — ове­чий депиля­тор) и начина­ем возить­ся с уста­нов­кой.

Нес­мотря на весь­ма широкую рас­простра­нен­ность, а так­же оби­лие инс­трук­ций и обсужде­ний, уста­новить эму­лятор и зас­тавить работать в нем при­ложе­ние было неп­росто. Пер­вый при­шед­ший в голову спо­соб — зай­ти на «Рут­рекер», ска­чать отту­да готовый ком­плект и уста­новить по тамош­ней инс­трук­ции — никуда не годит­ся, о чем крас­норечи­во сви­детель­ству­ет мно­жес­тво бес­помощ­ных и безот­ветных ком­ментов под раз­дачей.

Спо­соб более серь­езно­го челове­ка — зай­ти на спе­циали­зиро­ван­ный сайт Emaculation.com и вос­поль­зовать­ся раз­мещен­ной там инс­трук­цией. Пос­коль­ку в ней тоже мно­жес­тво неоче­вид­ных и кон­трин­туитив­ных под­водных кам­ней, про­дуб­лирую ее здесь с собс­твен­ными ком­мента­риями.

Для начала, конеч­но же, надо ска­чать сам SheepShaver. Мож­но вос­поль­зовать­ся стя­нутой с тор­рента вер­сией, но лич­но у меня она вызыва­ла устой­чивую ошиб­ку отсутс­твия драй­вера cdenable.sys, который, как выяс­нилось, для запус­ка и не нужен. Поэто­му луч­ше сра­зу ска­чать прог­рамму по ссыл­ке из инс­трук­ции или поис­кать нор­маль­ный источник.

Для нас­трой­ки эму­лято­ра запус­каем файл SheepShaverGUI.exe, в кон­фигура­цион­ном окне видим семь вкла­док. Не пугай­ся, все они нам не понадо­бят­ся. Нач­нем с пер­вой (сле­ва нап­раво).

Пой­дем сни­зу вверх. Mount drives — тома компь­юте­ра, которые будут рас­шарены для эму­лято­ра, в нашем слу­чае это C: и D:. Вклю­чение чек­бокса Enable "My Computer" icon... рас­шарива­ет и эту икон­ку тоже. Если ты не собира­ешь­ся возить­ся с аппа­рат­ным дис­ководом, то луч­ше отклю­чить свя­зан­ные с ним поля, иду­щие выше, как это сде­лано у меня на скрин­шоте.

В нашей задаче он не пот­ребу­ется, а вот от проб­лем, свя­зан­ных с упо­мяну­тым выше драй­вером cdenable.sys, луч­ше дер­жать­ся подаль­ше. Тем не менее гру­зить­ся все‑таки луч­ше с вир­туаль­ного CD-ROM, пос­коль­ку в исходном сос­тоянии эму­лятор девс­твен­но чист и нам пот­ребу­ется уста­новить на него сис­тему с род­ного обра­за дис­ка. Вот так мы и дош­ли до самого глав­ного — Volumes, спис­ка вир­туаль­ных томов, на которых будет хра­нить­ся сис­тема и про­чая информа­ция «род­ных» дис­ков эму­лиро­ван­ной Mac OS.

В вер­хней стро­ке этой таб­лицы нуж­но ука­зать ISO-образ заг­рузоч­ного CD, с которо­го эму­лятор гру­зит сис­тему (ты же не забыл, что изна­чаль­но в эму­лято­ре нет ОС?). Некото­рые поль­зовате­ли совету­ют не замора­чивать­ся с пол­ной уста­нов­кой сис­темы, а гру­зить ее пря­мо с дис­ка (на популяр­ном в Рос­сии тор­ренте или на Redundantrobot мож­но най­ти обра­зы заг­рузоч­ных дис­ков, содер­жащих минималь­ную вер­сию macOS, поз­воля­ющую эму­лято­ру заг­рузить­ся и поч­ти пол­ноцен­но работать), но нор­маль­ные хакеры, вро­де нас c тобой, с негодо­вани­ем отверга­ют это трус­ливое пред­ложение и ска­чива­ют пол­ный уста­новоч­ный дис­три­бутив Mac OS 9.0.4, нап­ример с Winworldpc, Macintoshrepository или Macintosh Garden OS Collection.

Пе­ред тем как про­писать образ дис­ка в эму­лятор, не забудь уста­новить атри­бут Read Only фай­лу обра­за ISO, ина­че при заг­рузке мож­но зап­росто сло­вить вот такую ошиб­ку (заг­рузоч­ный CD дол­жен быть защищен от записи, ведь логич­но?).

Кста­ти, имен­но поэто­му я и совето­вал не гру­зить­ся с усе­чен­ного обра­за сис­темы на вир­туаль­ном дис­ководе, а чес­тно уста­нав­ливать ее на вир­туаль­ный диск — если потом понадо­бит­ся уста­нав­ливать серь­езный инстал­ляци­онный пакет в эму­лятор, то при попыт­ке про­писать что‑либо в сис­темный каталог (а все серь­езные инстал­ляци­онные пакеты дела­ют это) воз­ника­ет вне­зап­ная ошиб­ка Diskette is Write Protected.

Те­перь по поводу соз­дания и уста­нов­ки самого вир­туаль­ного дис­ка. Соз­дать его мож­но (и нуж­но), нажав кноп­ку Create на вклад­ке Volume.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *