Вход в Зоопарк ручных компьютеров
gps мониторинг, транспортная логистика, gps слежение
Если вы видите баннеры при просмотре с КПК, то вам - СЮДА
Linux на эмулятор PocketDOS
Форумы Поиск Вход Для ПК
Прочие мобильные платформы на Linux
На страницу 1, 2, 3, 4  След.
Вт Май 03, 2005 2:07
Mike Kudritsky (Гуру, Москва)
Потихоньку ковыряясь с этим эмулятором, нарыл несколько интересных вещей.

Вот на чем я экспериментировал:
Rover S2 на Windows Mobile 2003 SE;
PocketDOS v1.09.0

Хоть эмулятор и называется PocketDOS, лично я бы его назвал эмулятором машины IBM PC AT на PocketPC. С плагином процессора i80486DX эмулируется вполне честная четверка.
На РРС с 64Мб памяти этой четверке вполне можно выделить 8Мб RAM, а для машин с 128Мб памяти - ИМХО 32 (а то и 64Мб RAM).

Далее скажу о тактовой частоте эмулируемого i80486DX процессора. На xScale 400MHz эмулируется 33МГц 486-процессор. На 677МГц - 50МГц процессор.

Есть у меня очень сильное подозрение, что на этой эмулируемой 486-машине можно установить Linux.
К этому выводу меня подтолкнул тот факт, что лично я без особых проблем установил и ЗАПУСТИЛ на эмуляторе честное 32-битное приложение. Это Free Pascal 1.9.6 (DOS version). www.freepascal.org
Для FreePascal компилятора DOS нужен только для старта подменяющих систему 32-разрядных программ (ну типа как раньше Novell NetWare тоже с ДОСа стартовал).

Для установки Linux потребуется емкая карточка (SD или CF на 1Гб) и образ дискетки с загрузчиком. Ведь эмулятор поддерживает загрузку либо встроенной в него DOS v6.22, либо с образа дискетки.

Конечно, Linux на такую систему придется ставить руками. Надо будет подготовить загрузочную дискетку и собственно разделы на SD-карте для установки софта.
Затея провалится, если SD/CF карты нельзя отформатировать под Linux-овые файловые системы - swap и ext2 (ext3).
Впрочем, слышал, что есть мини-Линуксы на одной дискете Smile

Вообще есть у меня сильное подозрение, что консольный Linux можно поставить на эмулятор...

Наконец, в нашем распоряжении есть эмулируемая машина c максимальными характеристиками: IBM PC AT i80486DX-50MHz 32Mb RAM. Так что надо подумать, что за Линукс сюда имеет смысл ставить.

P.S. Если затея удастся, то на PocketPC КПК получится АБСОЛЮТНО честный Linux...
Из средств коммуникации - только куча comm-портов (Bluetooth, IR, USB, ну и сам comm-порт, где есть). Сетевые карточки эмулятор увидеть не позволяет...
____________
Qtek S100, 2Gb SanDisk
Вт Май 03, 2005 4:00
lucky75 (Гуру, Moscow)
анрил. почему - даже скучно объяснять.
____________
FSC P7010, HP IPAQ 310, Nokia E61
Вт Май 03, 2005 9:34
Mike Kudritsky (Гуру, Москва)
nicetry писал(а):
анрил. почему - даже скучно объяснять.


А жаль, что скучно.
Я вот Фома неверующий. Проконсультируюсь на www.linux.org.ru
Пусть народ там мне все популярно объяснит. Собственно я отчасти понимаю твои сомнения и тем не менее придерживаюсь мнения, что практика - критерий истины.
____________
Qtek S100, 2Gb SanDisk
Вт Май 03, 2005 10:15
Alex Muratov (Гуру, Оттуда)
сомневаюсь что пож этим эмулятором заработает ядро Линукса. "Честный" эмулятор VM Ware на десктопе жрет просто прорву ресурсов.
____________
Cingular 8525 (alive!) + 2Gb microSD, и на полочке кучка пыльных PDA
Вт Май 03, 2005 17:26
Mike Kudritsky (Гуру, Москва)
Alex Muratov писал(а):
"Честный" эмулятор VM Ware на десктопе жрет просто прорву ресурсов.


Но PocketDOS тоже кушает ресурсы будь здоров как: из 400МГц процессора получается только 33МГц.
Ну а тут-то надо в ядре поддержка i486, стандартный чипсет (кстати, надо почитать что там эмулируется), FDD, HDD IDE, comm. И все!
Никаких тебе SCSI (вот бы где ресурсы жрались при эмуляции!), даже LPT не нужен.
Из файловых систем - только ext2 (ext3), swap и Fat16 (последнее не обязательно).

Поэтому спрошу на www.linux.org.ru - может где уже есть готовая дискетка с примерной поддержкой требуемого, ну или можно взять установщик Linux c дискет (а не с CD, как давно уже принято).
Если установщик стартанет с первой дискеты и установка дойдет до просьбы вставить 2-ю дискету, то эксперимент будет удачно завершен.
____________
Qtek S100, 2Gb SanDisk
Ср Май 04, 2005 5:15
Alex Muratov (Гуру, Оттуда)
400 MHz - липовые Wink при пересчете на Pentium 3 получится существенно меньше.
Не забывайте что эмулируется совершенно другой процессор, в то время как VM Ware этого делать не надо.
____________
Cingular 8525 (alive!) + 2Gb microSD, и на полочке кучка пыльных PDA
Ср Май 04, 2005 20:56
Mike Kudritsky (Гуру, Москва)
Alex Muratov писал(а):
400 MHz - липовые Wink при пересчете на Pentium 3 получится существенно меньше.


У меня на все это дело своя точка зрения.
В свое время я довольно плотно программировал на Pascal for Palm OS. Я там разрабатывал программы из оперы целочисленного программирования.
А именно, решал Задачу о назначениях (ЗН) венгерским методом.

Ну так вот, на простеньком процессоре EZ 16МГц Пальмы IIIxe ЗН считается с такой же скоростью, как и на i80286-16MHz машине.
На VZ 33MHz процессоре Sony SJ30 Задача о назначениях считается в 2 раза быстрее.

Поэтому у меня нет никаких оснований полагать, что гораздо более сложный процессор (нежели Motorola Dragnball) xScale работает хуже с целочисленной арифметикой.
Был бы для PocketPC нативный Паскаль, я бы все это проверил напрямую.

Другое дело, когда речь идет о вещественной арифметике. Тут, конечно, i80286 с арифметическим сопроцессором уделывает Motorola Dragnball EZ (VZ) по полной программе - раз в 10..15.

Так что я бы не стал занижать возможности современных КПК-шных процессоров.

Что касается эмулятора, то плагин процессора i80486DX там не от www.pocketdos.com. Это чисто GNU-шный проект и разработчики PocketDOS прямо говорят об этом. Они просто утянули этот эмулятор процессора под свой проект.

P.S. Да, забыл сказать. На www.linux.org.ru мне никто явно не указал на бредовость моих идей. Говорят - проверяй. Даже Linux посоветовали с большим соотношением возможности/размер.
Вот из-за чего у меня сосет под ложечкой:
1. Как известно, ядро Linux напрямую работает с железом ПК. То есть весь чипсет, BIOS, RAM, процессор должны быть качественно сэмулированы, чтобы могучий Linux не заподозрил подмены.
У меня здесь нет большой уверенности.
2. Карточка CF (SD) должна изображать совершенно честный IDE HDD. У меня нет уверенности, что ее можно будет разбить на разделы, в т.ч. на нативные Линуксовые ext и swap.
По крайней мере во встроенном в эмулятор DOS v6.22 по какой-то причине нет команды format, fdisk. Интересно, почему?
Почему это мне из эмулятора запрещается отформатировать карточку?
3. Тем не менее, слышал, что есть минилинуксы на одной дискете (!) То есть такому Линуксу вообще не нужен HDD. На CDROM такой Линуск точно есть - сам не юзал, но видел. А вот на дискете - не знаю. И не юзал, и не видел, как другие юзают.
Короче, простор для творчества ИМХО есть!
____________
Qtek S100, 2Gb SanDisk
Чт Май 05, 2005 0:28
longshadow (Гуру, Москва (Объедково))
Alex Muratov писал(а):
400 MHz - липовые Wink при пересчете на Pentium 3 получится существенно меньше.


"Воть иманно". (с)

Запудрил Интел всем мозги своими мегагерцами. Настолько запудрил, что они, как-то так, тихой сапой, стали мерилом производительности всей системы.

Цитата:
У меня на все это дело своя точка зрения.
В свое время я довольно плотно программировал на Pascal for Palm OS. Я там разрабатывал программы из оперы целочисленного программирования.


Ну так чисто вычислительная (в смысле "считательная" Smile) задача и работа мультизадачной ОС суть вещи, мягко говоря, разные.

Цитата:
Поэтому у меня нет никаких оснований полагать, что гораздо более сложный процессор (нежели Motorola Dragnball) xScale работает хуже с целочисленной арифметикой.


С арифметикой - не хуже. Но работа ядра требует еще и кучи пересылок процессор-память, кучи переходов и прочая-прочая. А вот тут-то и вылезет на свет божий мизерный кэш и узенькая и тормозная шина XScale. Даже в нативном режиме, не говоря уж об эмуляции. Говорю это как пользователь Шарпозавра, имеющего те самые 400MHz.

Для сравнения. Все помнят, как пальмовый эмулятор POSE работает на каком-нибудь PIII-400? Нормально работает. Так вот, тот же POSE, портированный на Заурус (изменился только GUI, вместо fltk использован Qt; движок эмуляции не изменялся совершенно)... э-э-э... гм... Ну, человеческая жизнь, пожалуй, коротковата, чтобы дождаться, пока он окошко с PalmOS отрисует. А мегагерцев, напомню, и там и там 400.

Цитата:
Другое дело, когда речь идет о вещественной арифметике. Тут, конечно, i80286 с арифметическим сопроцессором уделывает Motorola Dragnball EZ (VZ) по полной программе - раз в 10..15.


Вот как раз проблема с вещественной арифметикой, ИМХО, менее остра, чем проблема с производительностью системы процессор-память. На тех же Заурусах, в pdaXrom (одна из прошивок, альтернативная родной ШарпоТопии), отказались от эмуляции FPU, а стали собирать софт с -ffast-math, когда команды вещественной арифметики реализуются через целочисленную. Это сильно подняло производительность, хотя и увеличило размер исполняемого кода.

Цитата:
Так что я бы не стал занижать возможности современных КПК-шных процессоров.


Возможности, что и говорить, большие. Но сильно меньше, чем в этом нас пытаются убедить производители.

Цитата:
P.S. Да, забыл сказать. На www.linux.org.ru мне никто явно не указал на бредовость моих идей. Говорят - проверяй. Даже Linux


Никто и не говорит про "бредовость". Любая идея имеет право на попытку реализации.

Но даже если удастся получить в эмуляторе работающий Линукс, то вряд ли удастся получить юзабельный.
____________
ШарпоЗавр SL-C3K
SD-Консорциум, выпей йаду: у меня теперь два CF-слота.
Чт Май 05, 2005 4:07
Alex Muratov (Гуру, Оттуда)
с xScale для меня вообще ситуация не понятна. Это ARM процессор, если не ошибаюсь - RISC (знатоки не кидайте помидорами, я не разработчик процессоров, но эрудит Wink), система команд покрасивше чем в x86, всегда вроде говорили что RISC лучше CISC, а видим совершенно обратную картину - дохленький проц, хотя на первый взгляд должен быть мощным. Неужели все дело в узкой шине? Rolling Eyes
Конечно понятно почему на КПК стоит ARM, у него с энергопотреблением не в пример лучше чем x86.

А насчет эмулятора - нет предела совершенству, вопрос только в производительность упирается, что в конечном итоге - юзабельность. Можно посторить натоящий эмулятор, но если он будет работать эффектвно как процессор 8MHz, то нафиг он кому такой сдался.
Тот же POSE кстати, он мухлежом по полной программе занимается, насколько я помню из статей про него, "честная" версия работает этак раз в 10 медленнее оптимизированной версии, которая многие системные трепы выполняет сама, а не пытается эмулировать код PalmOS для этого.
____________
Cingular 8525 (alive!) + 2Gb microSD, и на полочке кучка пыльных PDA
Чт Май 05, 2005 4:52
longshadow (Гуру, Москва (Объедково))
Alex Muratov писал(а):
с xScale для меня вообще ситуация не понятна. Это ARM процессор, если не ошибаюсь - RISC


Именно RISC.

Цитата:
(знатоки не кидайте помидорами, я не разработчик процессоров, но эрудит Wink), система команд покрасивше чем в x86, всегда вроде говорили что RISC лучше CISC, а видим совершенно обратную картину - дохленький проц, хотя на первый взгляд должен


Считать что "RISC лучше CISC" - одно из распространненных заблуждений. Смысл RISC-подхода, говоря лапидарно, в том, чтобы предельно упростить АЛУ, получив таким образом очень быстро выполняющиеся команды. 1 такт = 1 команда. Команд, естеснно , сильно меньше, чем в CISC-процессоре (на то оно и RISC). Недостающие приходится реализовать программно через имеющиеся. Таким образом, сильно возрастает роль компилятора. Или программиста, если пишем на ассемблере. Кроме того, сами команды часто приходится-таки удлинять за счет всяких тегов-модификаторов-признаков. Проще говоря, в CISC можем иметь две разных команды для двух режимов адресации, делающие одно и то же. В RISC имеем одну, но с дополнительным полем признака в поле операнда. Вобщем, "аксептов" много - дешевый сыр бывает только в мышеловке.

Так что само по себе применение RISC-подхода не означает автомагического увеличения производительности для несинтетической программы по сравнению с CISC.

RISC бывает разный, проще говоря. Smile Бывает серверный PPC (не путать с покетписи Smile), Альфа и SPARC (все RISC), а бывает XScale.

Цитата:
быть мощным. Неужели все дело в узкой шине? Rolling Eyes


В узкой шине и маленьком кэше. И само ядро проще, чем у "больших" RISC'ов. Не в плане АЛУ, а в плане всяких конвейеров, предикторов и прочая. Все это - следствие необходимости снизить энергопотребление, тепловыделение и массогабаритные характеристики.

Цитата:
Конечно понятно почему на КПК стоит ARM, у него с энергопотреблением не в пример лучше чем x86.


ARM тоже бывает разный. Smile "Настольный" тоже бывает, наряду с "мобильным". И он совсем другой.

По поводу "бывает ARM и бывает ARM": помним, что такое Motorola Dragonball 68k? Это "облегченный" процессор на ядре m68000. Без MMU. А еще на этом же ядре m68k бывает 68020, 68040 и куча всякой всячины, на которых строили (строят) полноценные Юникс-системы с многозадачностью (для которой вынь да положь MMU).

Так же, как и интелЯ, кстати: бывает целерон, а бывает ксеон.

Цитата:
А насчет эмулятора - нет предела совершенству, вопрос только в производительность упирается, что в конечном итоге - юзабельность. Можно посторить натоящий эмулятор, но если он будет работать эффектвно как процессор 8MHz, то нафиг он кому такой сдался.
Тот же POSE кстати, он мухлежом по полной программе занимается, насколько я помню из статей про него, "честная" версия работает этак раз в 10 медленнее оптимизированной версии, которая многие системные трепы выполняет сама, а не пытается эмулировать код PalmOS для этого.


Во-во. Вот я знаю "самый честный эмулятор" x86 - bochs называется. Честно эмулит под Линухом x86 без всяких хелперов в kernel-space (чем страдает, или выигрывает vmware). Это, надо сказать, редкостный тормоз. Но честный и повалить хост-систему из-за глючного хелпера не может.

А остальные все мухлюют. И dosemu, и POSE. Про вмваре ваще молчим.
____________
ШарпоЗавр SL-C3K
SD-Консорциум, выпей йаду: у меня теперь два CF-слота.
Вс Май 08, 2005 4:16
Mike Kudritsky (Гуру, Москва)
Ну а я, то бишь Фома Неверующий, все-таки решил начать эксперименты по установке Линукса на эмулятор. Вот, какие я сделал шаги:
1. Скачал с
http://mulinux.sunsite.dk/lepton.html
образ дискетки Linux аж с ядром 2.4.28. Правда, форматируется дискетка под ext2 и размер нестандартный - 1772Кб.
Но все грузится на десктопе нормально. Все великолепно - и экран VGA, и куча Линуксовых утилит есть для тестирования оборудования (именно то, что надо - можно понять, что Линукс "думает" о PocketDOS).
2. Отсюда вязл Линукс поменьше (там есть дискетка как раз для lowmem system):
http://www.delilinux.de/
Дискетка форматируется под minix. При загрузке показывается обнаруженное оборудование и ... система вопрошает о следующей дискете Smile

Однако, внимание.
Эти дискеты (вернее, их образы) не видит ни монтировщик PocketDOS, ни родная для него утилита WinImage.
А между тем монтировщик PocketDOS видит только образы *.IMA и *.DSK
То есть файловые системы найденных мною систем (ext2, miniх) не имеют ни малейшего шанса для создания образов а-ля WinImage.

Остается последний шанс - пробовать в кардридере на десктопе сделать загрузочный Линукс из карточки SD и пробовать в PocketDOS грузиться с диска C: (карточку эмулятор безусловно считает диском C: без всяких монтирований).

А вопрос у меня к тутошнему бомонду один:
на Заурусах карточки SD (CF) можно отформатировать под Ext2? Или только под FAT?

P.S. Но даже при этой неудаче остается шанс подмонтировать загрузочную дискету чисто 32-разрядной системы. А именно речь идет о первой загрузочной дискете Win NT 4.0 Workstation.
Если установщик дойдет до вопрошания второй дискеты, то шанс на установку в PocketDOS чисто 32-разрядных систем (в т.ч. Linux) ИМХО есть...
____________
Qtek S100, 2Gb SanDisk
Вс Май 08, 2005 5:41
Mike Kudritsky (Гуру, Москва)
All

Ребята, я оказался полным кретином.
Совсем забыл про loadlin.exe

Короче, положил в одну директорию loadlin.exe и ядро linux
Далее командой
loadlin.exe linux
позволил ядру загрузиться! Shocked
Естественно, поскольку не было указано, куда монтировать root-а и т.п., то после диагностики оборудования - kernel panic.
Но самое главное - эффект достигнут. Матершина была только в самом конце загрузки ядра. Может она была и раньше, но инфа ядра так быстро проносилась перед глазами, что ничего заметить не успел...
На последней странице сообщений увидел, что шина "десктопа" - 50МГц, Линуксу не понравился FDD - какой-то нестандартный тип. IDE вроде как оказались стандартными!

Короче, эксперименты продолжаются!
____________
Qtek S100, 2Gb SanDisk
Вс Май 08, 2005 21:40
Mike Kudritsky (Гуру, Москва)
All

Хлопцi, с Днем Победы всех!
Ну а вот, что я наэкспериментировал до этого часа (копия моего поста на www.linux.org.ru):
<<<
Хлопцi, обращаюсь к Вам с просьбой.
Я пытаюсь запустить Linux из под эмулятора PocketDOS при помощи loadlin.exe. Другого пути пока не вижу.
Вот, что я сделал:

1. Попытался стартануть Linux из под следующего софта:
http://mulinux.sunsite.dk/mu/current/DOSTOOLS.zip
Это утилиты старта установки Linux из под DOS.
А вот откуда я брал сам Линукс:
ftp://sunsite.auc.dk/pub/os/linux/mulinux/mu/current/mulinux-14r0.tgz
Однако при попытке установить Линукс ядро пишет, что не может опознать процессор и дальше падает с тревожными симптомами.
Ядро версии 2.0.36.

2. Ну а вот отсюда я взял образ дискеты (1722Кб) с Линуском kernel 2.4.18:
http://mulinux.sunsite.dk/mu/lepton/lepton-0r3.raw
а вот так я сделал дискету:
http://mulinux.sunsite.dk/lepton.html
Получилась замечетаельная дискета - там лежит законченный Линукс kernel 2.4.18. Рабочий экран содержит bash-оболочки, файловый менеджер и кучу утилит диагностики оборудования - именно то, что надо для тестирования эмулятора.

Вся беда состоит в том, что образы дискет на файловых системах Linux (ext3, ext2, minix) не могут быть подмонтированы эмулятором (он понимает только FAT).
Я подмонтировал дискету в Fedora Core 2 и посмотрел - на ней всего 2 каталога: boot и dev
Загрузчик - lilo, хотя lilo.conf я на дискете не обнаружил...
Вот, что содержится в каталоге boot:

boot-bmp.b
boot.b
boot.msg
linux
logo.bmp
map
root.gz

Понятно, что здесь что значит. Очевидно, что linux - это ядро, а root.gz - сжатый образ файловой системы root-a...
В каталоге dev дискеты находится понятно что - драйвера дискет, HDD и т.п.

Файлы директории boot мне без особых проблем удалось перебросить на PocketPC (туда, где лежит loadlin.exe), но вот файлы директории dev отказываются жить на файловых системах, отличных от ext2 (ext3).

Конечно, попытка загрузить Linux командой:
loadlin.exe linux initrd=root.gz
Заканчивается неудачей. После распаковки файловой системы root-a ядро пишет: kernel panic, не могу создать FS root-a... Это ИМХО хорошо - фатальных ошибок нет...
Очевидно, что надо все-таки поиметь драйвера (директорию dev) и указать, что файловая система root-а должна создаваться в RamDrive (/dev/ram)...

Вот и вознгикает вопрос: как это сделать, имея загрузочную дискету Linux?
Я хочу получить такую же загрузку, что и с этой дискеты, но стартом с FAT16 при помощи утилиты loadlin.exe. Как это сделать?
Какие параметры при этом надо передавать ядру?

И, наконец, может народ посоветует еще какой-нибудь Linux, полностью стартующий с ДОС-патиции ДОС-командой (типа loadlin.exe) и монтирующий свои файловые системы в RamDrive (в RAM)?
Надо учесть, что мне пока удалось поиметь на PPC 10240Кб Ram для эмулятора...
>>>

Мои прогнозы: для kernel 2.0.36 пункта 1 экспериментов ничего путного не получится. Для пукнкта 2 экспериментов (kernel 2.4.1Cool все должно быть ОК, если удастся сформировать файловые системы Lunux (boot, root, dev) в RAM эмулятора...

P.S. Кстати, ядро грузится довольно шустро на эмуляторе.
____________
Qtek S100, 2Gb SanDisk
Пн Май 09, 2005 1:57
Alex Muratov (Гуру, Оттуда)
если уж такая пьянка пошла, то почему бы не собрать полноценное ядро linux под ARM? работать будет без симулятора. там конечно сложности будут с драйверами работающими с железом PPC.
____________
Cingular 8525 (alive!) + 2Gb microSD, и на полочке кучка пыльных PDA
Пн Май 09, 2005 8:33
Mike Kudritsky (Гуру, Москва)
Alex Muratov писал(а):
почему бы не собрать полноценное ядро linux под ARM?


Да потому, что история знает только один пример - iPAQ 39*. Это произошло только потому, что Compaq (Вендор) сама все сделала.

Я же предлагаю "дешевое" решение - в некотором роде стандартное ядро прикручивается к почти любой машине на РРС.
Как говорится, Linux запускается в окошке Windows. До сих пор ИМХО история знала только обратные примеры (Wine).

Но пока требуется или доказать, или опровергнуть мою гипотезу...
Если мне удастся прикрутить к Rover S2 Linux-Lepton, то задачу буду считать выполненной...
____________
Qtek S100, 2Gb SanDisk
На страницу 1, 2, 3, 4  След.

Если вы видите баннеры при просмотре с КПК, то вам - СЮДА



Форумы Handy.ru 


Powered by phpBB © 2001 phpBB Group