Журнал Системный Администратор, Ноябрь 2004

Журнал Системный Администратор

Ноябрь 2004

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке

Версия для печати Вернуться к оглавлению

Обзор эмулятора mips64emul

Александр Байрак

В этой статье я хотел бы вам рассказать об одном очень интересном эмуляторе – mips64emul. В последнее время меня заинтересовала тема эмуляции во всех ее проявлениях. Начиная от эмулирования системных вызовов какой-либо ОС, заканчивая полноценными виртуальными машинами. В конечном итоге виртуальная машина – это тот же самый эмулятор, отличие лишь в том, что эмулируется весь компьютер целиком. Самые известные представители ряда виртуальных машин – VMWare, Bochs, Virtual PC. И вот тут мы подходим к самому интересному, все вышеперечисленные программы эмулируют архитектуру x86. Соответственно под ними у нас есть возможность запустить ОС, созданные для этой архитектуры. Но ведь есть и другие архитектуры – PPC, m68k, SPARC, MIPS, и т. д. Потратив некоторое время на поиски программ, способных эмулировать процессоры, отличные от x86, я нашел много чего интересного. Изыскания относительно одной из находок перед вами.

Официальный сайт проекта mips64emul – http://www.mdstud.chalmers.se/~md1gavan/mips64emul. Как ясно из названия, он эмулирует процессоры MIPS. Данная программа способна эмулировать как 64-, так и 32-битные процессоры MIPS. MIPS в настоящее время используются достаточно широко: 90% всех компьютеров от Silicon Graphics используют эти процессоры, также они используются в игровой приставке Sony Play Station 2 и во многих других устройствах.

Перейдем от теории к практике. Все свои эксперименты я проводил на P3-550 МГц/320 Мб RAM под управлением ОС FreeBSD 4.10. Также ее можно использовать под управлением другой BSD-системы или Linux.

Берем с сайта разработчика последнюю версию программы. Я использовал версию 0.2. Процесс установки mips64emul очень прост и каких-либо затруднений не вызвал:

./configure – help

Внимательно читаем, может быть, вам понадобится для своих нужд добавить какие-либо опции.

./configure

gmake

gmake install

 

mips64emul поддерживает эмуляция достаточно большого количества компьютеров с mips-процессорами:

n  DEC Station: PMAX(3100), 3MAX(5000), 3MIN(5000), 3MAX+(5000,5900), 5800, 5400, MAXINE(5000), 5500, 5100(MIPSMATE).

n  ARC: NEC-RD94, PICA-61, NEC-R94, Deskstation Tyne.

n  Sony Playstation 2 (CPU R5900).

n  Cobalt (CPU RM5200).

n  Различные машины от SGI (IPxx ).

n  Некоторые карманные компьютеры с MIPS-процессорами.

 

Поддерживаемые типы процессоров:

n  R2000, R2000A, R3000, R3000A, R4000.

n  R4300, R4400, R4600, R4700, R5000.

n  RM5200, R5900, VR5432, R6000, RM 7000.

n  R8000, R10000, R12000, R14000, 5K.

 

Далее, для каждого компьютера нужна ОС. На сайте разработчика я прочитал, что на данный момент под эмулятором можно свободно запустить следующие ОС:

n  NetBSD/pmax;

n  OpenBSD/pmax;

n  Ultrix/RISC;

n  Sprite.

С последними двумя я, к сожалению, не работал, и, как следствие, дистрибутивов этих ОС у меня нет. Если принять во внимание, что это коммерческие ОС, уже официально не поддерживаемые производителем, я не стал тратить время на поиск дистрибутивов и для дальнейших экспериментов выбрал NetBSD. Во-первых, с ней я работаю чаще, нежели с OpenBSD, во-вторых, поддержка архитектуры pmax в OpenBSD была закончена в версии 2.9 (она вышла 1 июня 2001 года). А последняя версия NetBSD (на момент написания – 1.6.2) отлично поддерживает pmax и по сей день.

Не буду подробно останавливаться на процессе установки NetBSD, потому как есть замечательная статья Андрея Бешкова [1].

Для начала нам нужно создать виртуальный жесткий диск, на который мы будем устанавливать ОС.

dd if=/dev/zero of=/disk.img bs=1 count=512 seek=1100000000

После выполнения команды у нас получится файл размером 1050 Мб. Естественно, размер диска вы можете уменьшить или увеличить в зависимости от своих потребностей.

Далее нам нужно определиться с методом установки: NetBSD можно поставить непосредственно с boot CD-диска либо по сети, перед этим загрузившись с помощью установочной дискеты. Я выбрал первый вариант. Берем с ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso.

Его размер около 75 Мб. Далее запускаем наш эмулятор, указав ему грузиться с диска:

mips64emul –X –D2 –d disk.img –d bc:pmaxcd.iso –j netbsd.pmax

 

Давайте разберемся с опциями, которые мы указываем:

n  -X – использовать X11.

n  -D2 – эмулировать DEC Station 5000/200.

n  -d disk.img – указываем файл, который является нашим виртуальным диском.

n  -d bc:pmaxcd.iso – указываем загрузочный диск.

n  b – boot;

n  c – CD-ROM.

n  -j – указываем имя ядра.

Для тех, кто решил устанавливать систему по сети, сообщаю порядок действий.

Сначала нужно списать образ загрузочной дискеты c ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz. Далее нужно распаковать полученный архив:

gunzip netbsd-INSTALL.gz

После чего запустить mips64emul:

mips64emul –X –D2 –d disk.img netbsd-INSTALL

Так же в случае процесса установки по сети придется настроить сеть. Сетевой интерфейс будет называться le0. Настройка сети каких-либо проблем не вызывает, вам нужно лишь указать имя хоста, IP-адрес, маску сети, адрес шлюза и IP DNS-сервера.

Процесс инсталляции ОС занимает достаточно продолжительное время, так на моей системе он занял чуть больше четырех часов. Да, к сожалению, уже на этом этапе можно заметить, что работает все медленнее, чем хотелось бы. После того как процесс установки завершен, можно посмотреть, что у нас получилось:

mips64emul –X –M64 –D2 –d disk.img

Все опции запуска нам уже знакомы, за исключением –M. Это опция служит для задания количества оперативной памяти, т.е. в данном случае я указал, что на эмулируемом компьютере установлено 64 Мб памяти.

Система загружается порядка 5 минут. Я никогда не работал на настоящей DEC Station 5000/200, но думаю, что на ней загрузка системы ничуть не быстрее, потому как тактовая частота процессора всего 25 МГц. После запуска, без дополнительной настройки мы можем запустить X-windows, выполнив команду startx. В качестве window manager используется стандартный twm. Более подробно о настройке NetBSD вы можете прочитать в моей статье [2].

Исходя из документации к mips64emul, помимо вышеуказанных ОС, можно запустить другие системы, созданные для процессоров MIPS. Например, NetBSD/sgimips, NetBSD/arc, NetBSD/cobalt, NetBSD/playstation2 (http://www.netbsd.org), Linux/SGI (http://www.linux-mips.org). И некоторые другие малоизвестные реализации Linux для MIPS-процессоров. Ради справедливости нужно заметить, что поддержка всего вышеперечисленного пока находится в экспериментальном режиме. Но судя по тому, как динамично развивается проект (а ему меньше двух лет), можно предположить, что все эти ОС в скором времени можно будет запускать абсолютно спокойно.

А какая практическая польза от использования этого эмулятора, спросите вы. Я лично использую его исключительно из «спортивного» интереса. Но он окажется очень полезным для программистов, пишущих приложения, нацеленные на MIPS-процессоры, но по какой-либо причине не имеющие его под рукой. Также это отличный полигон для изучения данной архитектуры в академических целях.

Буду рад услышать описания ваших экспериментов, связанных с этим эмулятором. Пишите!

Литература:

1. Бешков А. NetBSD: установка и настройка. – Журнал «Системный администратор», №9, август 2003г., также доступна электронная версия – http://onix.opennet.ru/netbsd/netbsd.html.

2. Байрак А. Первые шаги в NetBSD. Часть 1. – Журнал «Системный администратор», №6, июнь 2004 г.




Все права зарезервированы. Этот материал принадлежит или лицензирован компании PLARANA INC. Только для частного использования. Любое распространение запрещено без письменного разрешения PLARANA INC
Версия для печати Вернуться к оглавлению