Автор |
Сообщение |
|
Дата: 21 Янв 2010 12:33:25
#
Добрый день,
Скажите пожалуйста, ктото пытался поставить программы Моторола RSS типа GP300/MAXTRAC и тд. под систему Linux (ubuntu) через DOS конвертор.
Реально ли это ?
Спасибо
|
|
Дата: 22 Фев 2010 13:52:37
#
Добрый день. Я делал такой эксперимент (ради забавы), а именно - через эмулятор Виндоуз. Результаты. как и ожидалось, смешные - программа висла и все. Тут надо еще понимать, что эмуляторы всегда плохо работали с проприетарными программами, мало того - с компортами. Поэтому вы просто сильно рискуете в какой-то момент потерять все данные или получить ошибку при программировании.
Мои выводы: проще купить дешевый старый ноутбук (от 486 до Пентиума без всяких наворотов, которые ДОС не будет поддерживать), и на нем программировать.
|
Реклама Google
|
|
|
Дата: 22 Фев 2010 15:33:10
#
У меня под VMware'овской виртуальной машиной с Windows XP нормально работает софт для программирования Waris'ов и GM350 (тот, который под Win3.1). Причина использования VMware - 64-х битная Windows XP на основном компе.
|
|
Дата: 22 Фев 2010 15:50:07
#
avk
Добрый день. Так тут вопрос с Линукс, а не с Виндоуз. В Линукс эмуляторы не так уж совершенны. Хотя их там много, и можно продолжить экспериментировать. Однако есть ли смысл?
|
|
Дата: 22 Фев 2010 15:55:09
#
renice
Так тут вопрос с Линукс, а не с Виндоуз. В Линукс эмуляторы не так уж совершенны.
Тот же VMware Workstation есть и под Linux. Если под ним мотороловский софт нормально работает под Windows, то есть все основания полагать, что и под Linux тоже заработает.
VMware, кстати, одна из лучших сред виртуализации.
|
|
Дата: 22 Фев 2010 16:08:58
#
Совсем недавно программил GP300 из Dosbox-а, который запускался в WinXP, которая в свою очередь запущена в VMware под линухом.
Думаю с такой ккривотой можно особо не морочиться, а установить на VMware сразу чистый дос.
|
|
Дата: 22 Фев 2010 16:58:01
#
avk
Может быть, я не проверял. Однако у Линукса несколько иная организация работы с ком-портами - в частности, там любое прерывание блокируется, чтобы избежать конфликтов. Так, при работе с портами (как с вирт. файлами
/dev/tty**) Линукс должен создавать файл, который будет запрещать работу с портом другим прогам. Вот непонятно, что будет, ежели эмулятор запустить? Создет ли он файл для блокировки?
Ну это я как программист уже заморачиваюсь..
|
|
Дата: 22 Фев 2010 17:31:41
#
renice
Однако у Линукса несколько иная организация работы с ком-портами - в частности, там любое прерывание блокируется, чтобы избежать конфликтов.
В этом я сильно сомневаюсь. Linux все-таки будет продвинутее, чем BIOS, который с COM-портами по опросу работает :)
Линукс должен создавать файл, который будет запрещать работу с портом другим прогам. Вот непонятно, что будет, ежели эмулятор запустить? Создет ли он файл для блокировки?
Даже если и не создает, то будет нужно просто придушить другие программы, которые пытаются в тот же COM-порт лезть, и все.
|
|
Дата: 22 Фев 2010 19:08:52
#
avk
Ну, именно потому что Линукс продвинут, он и блокирует порты) Это я обстоятельно говорю - я старый (с 1995 года аж) фанат Линукса) Писал в свое время проги под ком-порты для управления сотовыми терминалами и прочими штуками. Могу сказать, что в том самом эмуляторе (типа фриДОСе) работа с компортами была проблематичной тогда. Dosemu, соб-но, наскок я знаю, задумывалась как такая фигня, для людей, которые пугались линуксовых шеллов. Вроде как постепенный переход на новую ОС. Что сейчас может фриДОС я не знаю, надо экспериментировать. В некоторых эмуляторах Виндоуз проги для моты точно не идут (типа делал опыт в wine)
Может быть, надо более тщательно настраивать. А не проще ли купить старый ноутбук? Риска меньше станции повредить.. Потому как потом перепрошивать нудно и долго)
|
|
Дата: 22 Фев 2010 20:52:42
#
renice
Ну, именно потому что Линукс продвинут, он и блокирует порты
Вообще-то в начале вы говорили о блокировании Linux'ом прерываний, что было несколько странно слышать :)
Что же касается портов, то изначально по умолчанию - да. Но не только в Linux'е, но и практически во всех остальных *ix ОС есть хаки, позволяющие таки пользовательской программе обращаться напрямую к портам оборудования. И ими активно пользуется, например, XFree86 для доступа к регистрам видеокарты.
Относительно Linux'а по этому поводу можно почитать здесь: Direct IO access
Это я обстоятельно говорю - я старый (с 1995 года аж) фанат Линукса
Ну в 1991 году, когда я поставил свой первый Interactive Unix 3.0 (кстати, представитель семейства System V, бесплатной подделкой под которую и является Linux :) ), сам Linux еще в пеленках был :)
В некоторых эмуляторах Виндоуз проги для моты точно не идут (типа делал опыт в wine)
Все-таки надо различать эмулятор Windows типа wine, который просто транслирует Win32 API в Linux/Unix и при этом сам код программы выполняется напрямую без эмуляции, и полноценную виртуальную машину, когда эмулируется все железо и код перед тем, как исполняться, перелопачивается на предмет команд, обращающихся к железу.
А не проще ли купить старый ноутбук?
Каждая дополнительная железка - это дополнительный геморрой. Особенно старая, которая от старости тоже может взглюкнуть в самый неподходящий момент и запороть станцию. |
|
Дата: 22 Фев 2010 23:45:44
#
Добрый вечер!
Спасибо за ответы,
Я решила просто провести несколько эксперементов от не фиг делать
В досбокс макстрак не программировался.
|
|
Дата: 23 Фев 2010 00:19:33
#
Ну, буду по существу отвечать. Как коллега коллеге =)
Итак, вы пишете:
--- Вообще-то в начале вы говорили о блокировании Linux'ом прерываний, что было несколько странно слышать :)
Отвечаю - читать здесь:
http://tldp.org/HOWTO/Serial-HOWTO.html
Если курить весь мануал лениво, читать здесь
http://tldp.org/HOWTO/Serial-HOWTO-14.html#ss14.2
"...If you use the new device-filesystem (devfs) then see the next section. A lock-file is simply a file created to mean that a particular device is in use. They are kept in /var/lock...."
--- Что же касается портов, то изначально по умолчанию - да. Но не только в Linux'е, но и практически во всех остальных *ix ОС есть хаки, позволяющие таки пользовательской программе обращаться напрямую к портам оборудования.
Да, пользуются, только тут вопрос надо иначе поднимать - хорошо ли, когда
поверх ОС все делается? Отвечаю - плохо, особенно, когда работа ответственная.
--- Ну в 1991 году, когда я поставил свой первый Interactive Unix 3.0 (кстати, представитель семейства System V, бесплатной подделкой под которую и является Linux :) ), сам Linux еще в пеленках был :)
Отвечаю подробно. В 1991 году Линукса еще не было и быть не могло)
В 1991 году Линус только увлекся идеей создания Линукса)
И я не знаю, куда вы ставили Interactive Unix 3.0, думаю, вы мажор крутой - данная система была написана для 386 писюков, а стоили они в 1991 году как хороший автомобиль. В нашем ВЦ писюки, например, появились в 87 году, были это "дорогущие" 286, а до этого мы дружно работали на болгаро-советских монстрах. Тут мне за вами не угнаться явно, конечно, богатством в юности был обделен. Впрочем, в 1991 году сей клон Юникса был уже "золушкой", как думаю. Поэтому в 95 году я и выбрал Линукс, отказавшись от "соляровских" заморочек.
--- полноценную виртуальную машину, когда эмулируется все железо и код перед тем, как исполняться, перелопачивается на предмет команд, обращающихся к железу.
Ну, на досуге поизучаю вопрос, однако кажется мне, такая "полноценная" виртуальная машина не может считаться корректной с точки зрения ОС.
Но возникает еще вопросы - а зачем тогда нужен сам Линукс то??
Если подразумевалось, что работаем в Линуксе, значит, функции оной системы нужны.
Если не нужны - тогда зачем эмулятор? Надо будет подождать ответа от "вопрошающего". Если вопрос в деньгах стоит - так и сей эмулятор платный.
Ну и надо выяснить, поддерживается ли Убунту.
--- Каждая дополнительная железка - это дополнительный геморрой. Особенно старая, которая от старости тоже может взглюкнуть в самый неподходящий момент и запороть станцию.
С этим соглашусь безоговорочно. Но лучше уж работать со старом железом на старом железе, нежели эксперименты ставить - "взглючит" прога или нет.
Общий вывод - работать с мотой через эмулятор дело такое - типа вся ответственность лежит на владельце. Посему надо подходить чисто эмпирически - проверить, как в VMware (под Линукс, а не Виндоуз, ибо очевидно, что эмулятор под Виндоуз отличен от эмулятора под Линукс) будут работать проги мотовские.
Бум ждать, пока найдутся желающие) У меня желания пока нет, радиостанции дороже, нежели удовлетворение моего любопытства)) |
|
Дата: 23 Фев 2010 00:47:17
#
renice
Отвечаю - читать здесь:
http://tldp.org/HOWTO/Serial-HOWTO.html
Если курить весь мануал лениво, читать здесь
http://tldp.org/HOWTO/Serial-HOWTO-14.html#ss14.2
"...If you use the new device-filesystem (devfs) then see the next section. A lock-file is simply a file created to mean that a particular device is in use. They are kept in /var/lock...."
Вообще-то про прерывания написано здесь:
http://tldp.org/HOWTO/Serial-HOWTO-4.html#interrupt_
И опять же, ни слова про их запрещение, наоборот...
И я не знаю, куда вы ставили Interactive Unix 3.0
На 486DX50 с 16Мб оперативной памяти - тогда была, пожалуй, самая крутая конфигурация. Обычные рабочие машины были 386DX33 и DX40, а эта была типа сервера у нас.
вы мажор крутой - данная система была написана для 386 писюков, а стоили они в 1991 году как хороший автомобиль
Да, было дело. Но компьютер тот, естественно, был не лично мой, а рабочий.
Впрочем, в 1991 году сей клон Юникса был уже "золушкой", как думаю.
В те времена еще нет, на Interactive Unix 3.0 работали в то время немногие Интернет-провайдеры в Москве (причем у большинства он был с одним и тем же серийным номером :) ), но закат его пришел быстро - BSD открыла исходники и полезли разные FreeBSD/OpenBSD/NetBSD, соответственно, народ на них стал переползать (и я тоже), с другой стороны, те, кто разбогател, стали закупаться Sun'ами с Solaris'ом. А потом еще и UnixWare на базе System V Release 4.2 вышла, и Interactive Unix окончательно канул в лету :)
Ну, на досуге поизучаю вопрос, однако кажется мне, такая "полноценная" виртуальная машина не может считаться корректной с точки зрения ОС.
Тем не менее считается :) Удобная, кстати, вещь для отладки разного софта - в VMware есть такие вещи, как клонирование виртуальных машин (чтобы операционку каждый раз не переставлять с нуля), слепок состояния виртуальной машины, к которому можно откатиться в случае чего, сброс содержимого памяти в файл на диске (это если какой-нибудь хитромудрый софт во время инсталляци что-нибудь свое секретное в RAM disk пишет, а потом комп перезагружает, думая, что после этого ничего нигде не останется) и т.д. И практически все ОС и софты нормально живут под VMware, проверено многими годами работы. |
|
Дата: 23 Фев 2010 11:12:36
#
Добрый день.
--- Вообще-то про прерывания написано здесь:
И опять же, ни слова про их запрещение, наоборот...
Соб-но, блокировка ком портов (и других устройств) происходит именно для того, чтобы не было "конфликта прерываний". То есть - именно запрещение. Весь мануал про это и написан) Ну да ладно, если вы не хотите этому верить, дело хозяйское)
Однако вопрос Лена ставила иначе: можно ли работать с программами моты в Линуксе? Поэтому нам надо сформулировать грамотный ответ.
Вот мой вариант:
1. Видимо, не существует свободного ПО (именно - эмуляторы), которое полноценно и без риска потерять данные работает в Линуксе с проприетарными программами, работающими с железом (любые программы, не только мотовскими).
2. Однако есть коммерческое ПО (вышеупомянутое), которое можно рекомендовать для проведения экспериментов. Судя по сообщениям, такое ПО будет работать с
некоторыми программами моторолы. Поскольку такие программы работают с аппаратными средствами в обход ОС (судя по всему), а (ибо) любая современная ОС по умолчанию "перехватывает" все низкоуровневые обращения, подобный режим работы программ не следует рекомендовать сегодня для повседневного использования (т.н. "на свой страх и риск").
3. Производитель (в данном случае Моторола) не гарантирует работу в таком режиме своих программ. Поэтому для повседневного и корректного использования старых мотовских программ следует рекомендовать юзать железо и ОС, которые
рассчитаны на данное ПО.
4. С учетом того печального факта, что данное железо и ОС уже канули в лету)) надо продолжать делать эксперименты с виртуальными машинами, эмуляторами, потому что
работа со старым железом также рискованна (выход из строя "по пенсии").
5. По мере накапливания опыта работы таких программ с эмуляторами, можно будет составить общее впечатление и вынести окончательное заключение: типа что и как, какие подводные камни нас ожидают, какие глюки и т.д.
Прим.
---Ну, на досуге поизучаю вопрос, однако кажется мне, такая "полноценная" виртуальная машина не может считаться корректной с точки зрения ОС.
Тем не менее считается :) Удобная, кстати, вещь для отладки разного софта
Конечно, не считается) Отладка софта и работа с аппаратной частью абсолютно разные вещи. Это первое. Второе - вы сами представьте ОС, в которой "живет" вот такая программа (типа эмулятора), которая делает что-то поверх ОС (судя по тому, что вы пишете, так и происходит, но надо бы уточнить). Что это? Как назвать такое поведение? И где гарантия, что программы в виртуальной машине не вступят в конфликт с программами ОС? Гарантии нет и не может быть.
Что, конечно, не отменяет ценности виртуальных машин и эмуляторов в определенной области программирования. Например, в одной мне знакомой конторе на эмуляторах тестируют ядро Линукса. Ну и т.д.
|
|
Дата: 23 Фев 2010 14:01:52
#
renice
Соб-но, блокировка ком портов (и других устройств) происходит именно для того, чтобы не было "конфликта прерываний".
Оригинальное, однако, у вас представление о прерываниях и их конфликте... Прерывание - аппаратный сигнал, выдаваемый устройством по тем или иным событиям (в случае COM-порта это, в зависимости от того, как он запрограммирован, прием символа, заполнение входного буфера до определенного предела, передача символа, передача всего выходного буфера, изменение состояний управляющих сигналов (CTS,DSR,CD,RI) и так далее). Никакого отношения работа с прерываниями к блокировке устройства программой на верхнем уровне не имеет и определяется логикой работы драйвера микросхемы 8250/16450/16550/16650 (ну или чего там еще нового появилось в последнее время).
А конфликт прерываний в бытность шины ISA был обычное дело - эта шина не предусматривала разделение прерывания между несколькими устройствами, соответственно, если на одном прерывании сидело более одного устройства, и возникал их конфликт. С появлением шины PCI это уже давно кануло в лету.
Ну да ладно, если вы не хотите этому верить, дело хозяйское)
С вопросами веры - это в церковь. Мы находимся в той области, где все утверждения можно логически обосновать либо опровергнуть.
1. Видимо, не существует свободного ПО (именно - эмуляторы), которое полноценно и без риска потерять данные работает в Линуксе с проприетарными программами, работающими с железом (любые программы, не только мотовскими).
Кстати, из бесплатных и open source'ных вполне приличен VirtualBox от Sun'а: http://www.sun.com/software/products/virtualbox/specs.jsp. Как раз под Ubuntu есть. Но, правда, мотороловские радиостанции я под ним не программировал.
Поскольку такие программы работают с аппаратными средствами в обход ОС (судя по всему)
Во всяком случае VMware не работает с железом напрямую. Она использует стандартные механизмы операционки и на их основе их эмулирует железо для виртуальной машины. Простое доказательство тому - работа под обычным пользователем без администраторских прав, под которым ни под Linux'ом, ни под Windows нельзя получить прямой доступ к железу.
Второе - вы сами представьте ОС, в которой "живет" вот такая программа (типа эмулятора), которая делает что-то поверх ОС (судя по тому, что вы пишете, так и происходит, но надо бы уточнить).
Да не делает ничего VMware поверх ОС. С точки зрения ОС это обычная пользовательская программа, пользующаяся стандартным API операционной системы, и все.
И где гарантия, что программы в виртуальной машине не вступят в конфликт с программами ОС? Гарантии нет и не может быть.
Вот здесь гарантию как раз очень просто может быть. Достаточно запустить виртуальную машину под обычным пользователем без прав, а не под root'ом или Administrator'ом, и все. Тут уж точно виртуальная машина если и захочет, то никак не сможет вступить в конфликт с программами ОС :) |
|
Дата: 23 Фев 2010 14:12:18
#
avk
День добрый.
Давайте уж не флудить более) Я, конечно, понимаю, но вы уже о шине PCI (каким боком она тут у вас? с нашими компортами то?) начали говорить, хотя мы пишем о стандартном ком-порте тут более двух суток))
Посему - предлагаю держаться темы разговора, именно - размышлять, как и что делать с эмуляторами (запуском прог моты) в Линуксе.
|
Реклама Google |
|