OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 18 Апрель, 2024 04:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 297 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Вторник, 16 Декабрь, 2008 22:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Димыч писал(а):
Запустил я ББ на Линукс. Это оказалось несколько сложнее, чем я ожидал, но все же не так страшно, как казалось.

GUEST писал(а):
Димыч писал(а):
Я так и не понял, как происходит инициализация ББ, поэтому попытка загрузки неслинкованного модуля у меня стабильно приводила к трапу.
В модуле Kernel выделение памяти управляется функциями библиотеки calloc/free, а для динамической загрузки память должна отображаться mmap с флагом PROT_EXEC. Попробуйте добавить её и munmap в модуль Libc.


А вас не затруднит объяснить, в чём суть проведённых манипуляций? Ну или хотя-бы покажите, где читать толковые вещи про сабж?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 17 Декабрь, 2008 13:27 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Димыч писал(а):
Что НЕ сделано
Не сделана динамическая загрузка.
Я так и не понял, как происходит инициализация ББ, поэтому попытка загрузки неслинкованного модуля у меня стабильно приводила к трапу.

Утро вечера мудреннее (с) не мое

Поскольку System.Dialogs - почти полностью абстрактный модуль, то и в трап вылетал ASSERT.
Заработала динамическая загрузка модуля.
Из LinInit производится вызов LinDialog.Call("SoloHello.Hello()", "", res).

Модуль загружается динамически. И выполняется. Он должен быть пересобран, но это уже вторично.
Результат во вложении.


Вложения:
black_box_on_linux_2.rar [2.14 МБ]
Скачиваний: 388
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Среда, 17 Декабрь, 2008 23:59 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Пётр Кушнир писал(а):
А вас не затруднит объяснить, в чём суть проведённых манипуляций? Ну или хотя-бы покажите, где читать толковые вещи про сабж?
Насколько я понимаю собираются различные варианты динамической библиотеки для использования в Linux-среде. Если не прав, пусть Дмитрий поправит.


Последний раз редактировалось Сергей Оборотов Пятница, 19 Декабрь, 2008 21:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 22:12 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
adimetrius писал(а):
можно воспользоваться прямыми вызовами WinAPI
Завязка на винапи - удар по переносимости.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Пятница, 19 Декабрь, 2008 00:27 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
GUEST писал(а):
Пётр Кушнир писал(а):
А вас не затруднит объяснить, в чём суть проведённых манипуляций? Ну или хотя-бы покажите, где читать толковые вещи про сабж?
Насколько я понимаю собираются различные варианты динамической библиотеки для использования в Linux-среде. Если не прав, пусть Дмитрий поправит.
Хм, это очевидность. Мне же (и я надеюсь, не только мне) интересна суть, что сделано, как сделано. в чём вообще состоит сущность портирования из Win в Linux? Раз вы делаете, следовательно понимаете, а я не понимаю, прошу вас объяснить... А то получается шаманство, тайное знание и прочее... :)


Последний раз редактировалось Пётр Кушнир Вторник, 23 Декабрь, 2008 23:47, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Пятница, 19 Декабрь, 2008 13:10 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
У меня есть интерес по переносу GUI на GTK+. Начинать надо с GLIb. Кому еще это интересно?

Links:
http://developer.gnome.org/doc/GGAD/ggad.html
http://www.advancedlinuxprogramming.com/downloads.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Пятница, 19 Декабрь, 2008 16:01 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Выкладываю обещанное описание сделанной работы по переводу ББ на Linux.
Дмитрий Соломенников ака Димыч.

Постараюсь ответить на вопросы, надеюсь, что они будут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Пятница, 19 Декабрь, 2008 16:12 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
hothing писал(а):
У меня есть интерес по переносу GUI на GTK+. Начинать надо с GLIb. Кому еще это интересно?

Links:
http://developer.gnome.org/doc/GGAD/ggad.html
http://www.advancedlinuxprogramming.com/downloads.html

За основу можно взять библиотеку xds-gtk2, хотя я ее сделал для Modula-2, что будет препятствием к прямому использованию в ББ.

Мой опыт по переводу GTK говорит о том, что надо сделать какую-то автоматическую систему, которая бы либо из исходников С (*.h) либо из исходников freepascal (*.inc) делала бы файлы на ББ.
Тогда все будет ОК. Руками это долго и нудно.
А начинать надо действительно с Glib, потом Gdk, потом Gtk.
Затем, если будет нужда - atk, pango и прочее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Пятница, 19 Декабрь, 2008 23:57 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Пётр Кушнир писал(а):
GUEST писал(а):
Насколько я понимаю собираются различные варианты динамической библиотеки для использования в Linux-среде. Если не прав, пусть Дмитрий поправит.
Хм, это очевидность. Мне же (и я надеюсь, не только мне) интересна суть, что сделано, как сделано. в чём вообще состоит сущность портирования из Win в Linux? Раз вы делаете, следовательно понимаете, а я не понимаю, прошу вас объяснить...
Это и есть суть того, как сейчас Дмитрий Соломенников осуществляет портирование. О деталях он расказал. Что не понятно - спрашивайте.
Пётр Кушнир писал(а):
А то получается шаманство, тайное знание и прочее... :)
Не совсем. Все исходники открыты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Суббота, 20 Декабрь, 2008 01:14 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
UPD: Здесь была цытата сообщения GUEST, не несущая смысловой нагрузки.
Спасибо за Дмитрию за объяснение проделанной работы, которое он выложил на своём сайте.


Последний раз редактировалось Пётр Кушнир Вторник, 23 Декабрь, 2008 23:49, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 12:23 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Димыч писал(а):
Выкладываю обещанное описание сделанной работы по переводу ББ на Linux.
Дмитрий Соломенников ака Димыч.

Постараюсь ответить на вопросы, надеюсь, что они будут.

Забавно, я ожидал как минимум некоторого оживления по поводу того, что есть первые результаты :)
Не, конечно, я то буду делать перевод и ББ и AGG в любом случае, это мне надо, но вот от комьюнити молчания я не ожидал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 13:31 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
В свете массового перевода школ на Линукс Ваша работа имеет большое значение. Пожалуйста, продолжайте!!

Для справки. В нашей области, как пилотном регионе по переходу на Линукс, признанными базовыми версиями являются Mandriva и Ubuntu.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 14:57 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Димыч писал(а):
Димыч писал(а):
Забавно, я ожидал как минимум некоторого оживления по поводу того, что есть первые результаты :) Не, конечно, я то буду делать перевод и ББ и AGG в любом случае, это мне надо, но вот от комьюнити молчания я не ожидал :)

Мне пока говорить не о чем. Заканчиваем внедрение ББ на информсистеме ярославского ИРО, доделываем, дотачиваем, докручиваем. Времени тупо не хватает даже на формирование нормального пакета статотчётов - ибо конец года.

Попробовать Ваши достижения очень хочется, но пока не получается, к моему большому сожалению! С темой программирования под Линукс лично мне надо ещё знакомиться очень плотно (чем планирую заняться после праздников), да и тема ББ под линуксом не из простых.
Скажу, что Ваши усилия по запуску ББ в линуксе лично меня очень обрадовали, потому что появилась очень важная отправная точка.

Комьюнити у нас не из больших, скажем так. Но считаю, что с линуксовым ББ есть шанс значительно расширить сообщество.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 15:02 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Димыч писал(а):
Димыч писал(а):
Выкладываю обещанное описание сделанной работы по переводу ББ на Linux.
Дмитрий Соломенников ака Димыч.

Постараюсь ответить на вопросы, надеюсь, что они будут.

Забавно, я ожидал как минимум некоторого оживления по поводу того, что есть первые результаты :)
Не, конечно, я то буду делать перевод и ББ и AGG в любом случае, это мне надо, но вот от комьюнити молчания я не ожидал :)

Я вот специально поставил на ноутбук Мандриву, пару дней обжиться - и попробую. :)
А вопрос такой: может ли Блэкбокс использовать библиотеки(аналоги dll) линукс, и если не может, то что надо чтобы смог?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 16:16 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Димыч писал(а):
Забавно, я ожидал как минимум некоторого оживления по поводу того, что есть первые результаты :)
Не, конечно, я то буду делать перевод и ББ и AGG в любом случае, это мне надо, но вот от комьюнити молчания я не ожидал :)
К сожалению, не мог проверить работоспособность раньше. Появилось время только вчера - в единственный выходной прошлой недели.
Распаковал архив, запустил модуль совместимости с Линкусом и запустил само ББ. Он написал в stdout десять раз "it's works", и, насколько я понял, завершился. А может я и сам его завершил, не помню : ).

В блоге Вы написали о необходимости переноса подсистемы Dev. Зачем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 16:17 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Пётр Кушнир писал(а):
Я вот специально поставил на ноутбук Мандриву, пару дней обжиться - и попробую. :)
А вопрос такой: может ли Блэкбокс использовать библиотеки(аналоги dll) линукс, и если не может, то что надо чтобы смог?
Вроде бы в Lin* подсистемах где-то видел использование библиотеки <какое-то_имя>.so.2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 17:39 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Valery Solovey писал(а):
Пётр Кушнир писал(а):
Я вот специально поставил на ноутбук Мандриву, пару дней обжиться - и попробую. :)
А вопрос такой: может ли Блэкбокс использовать библиотеки(аналоги dll) линукс, и если не может, то что надо чтобы смог?
Вроде бы в Lin* подсистемах где-то видел использование библиотеки <какое-то_имя>.so.2.


Может и использует. Причем точно так же, как и в Windows-версии.
В заголовке модуля указывается имя подключаемой библиотеки.
Например, библиотека LinLibc содержит такой заголовок:
Код:
MODULE LinLibc ["libc.so.6"];

Здесь libc.so.6 - имя подключаемой бибилиотеки.

Важно заметить, что при подключении динамически загружаемых библиотек необходимо указывать соглашения о вызове для процедур. Как правило (но не всегда!), в Linux нужно указывать соглашение о вызовах [ccall]. Для этого надо в секции импорта указать SYSTEM (после этого начинают работать системные флаги, в частности, ccall), и после слова PROCEDURE указать [ccall]. Например так:
Код:
PROCEDURE [ccall] sigfillset* (set: Ptrsigset_t): INTEGER;

Какое соглашение о вызовах использует библиотека, необходимо смотреть в исходниках (заголовочных файлах) или в документации.

Подробно это описано в документации ББ в разделе "Особенности платформы".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 17:40 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Valery Solovey писал(а):
В блоге Вы написали о необходимости переноса подсистемы Dev. Зачем?

Подсистема Dev - это собственно компилятор. Без его наличия (работоспособности) среда будет просто операционной средой, исполняющей то, что было собрано на Windows. Что, в общем-то не так интересно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 18:26 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Димыч писал(а):
Важно заметить, что при подключении динамически загружаемых библиотек необходимо указывать соглашения о вызове для процедур. Как правило (но не всегда!), в Linux нужно указывать соглашение о вызовах [ccall]. Для этого надо в секции импорта указать SYSTEM (после этого начинают работать системные флаги, в частности, ccall), и после слова PROCEDURE указать [ccall]. Например так:
Код:
PROCEDURE [ccall] sigfillset* (set: Ptrsigset_t): INTEGER;

Какое соглашение о вызовах использует библиотека, необходимо смотреть в исходниках (заголовочных файлах) или в документации.

Подробно это описано в документации ББ в разделе "Особенности платформы".


Спасибо.

Димыч писал(а):
Valery Solovey писал(а):
В блоге Вы написали о необходимости переноса подсистемы Dev. Зачем?

Подсистема Dev - это собственно компилятор. Без его наличия (работоспособности) среда будет просто операционной средой, исполняющей то, что было собрано на Windows. Что, в общем-то не так интересно.

Может имеет смысл положить линуксовую версию (всё что нужно для запуска в линуксе) в репозиторий, чтобы все имели возможность внести свой вклад.
Кстати, заметил, что модификации производятся с версией ББ 1.5. Интересно узнать, почему не с 1.6 (может, даже с 1.6 Community)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Понедельник, 22 Декабрь, 2008 18:47 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Пётр Кушнир писал(а):
Димыч писал(а):
Valery Solovey писал(а):
В блоге Вы написали о необходимости переноса подсистемы Dev. Зачем?

Подсистема Dev - это собственно компилятор. Без его наличия (работоспособности) среда будет просто операционной средой, исполняющей то, что было собрано на Windows. Что, в общем-то не так интересно.

Может имеет смысл положить линуксовую версию (всё что нужно для запуска в линуксе) в репозиторий, чтобы все имели возможность внести свой вклад.
Кстати, заметил, что модификации производятся с версией ББ 1.5. Интересно узнать, почему не с 1.6 (может, даже с 1.6 Community)?

Что было под рукой, с того и начал. :) 1.5. обкатана как следует, вот поэтому и взял ее.

Встречный вопрос: в репозиторий - это куда? К Зинну?
Вообще имеет смысл где-то завести свой SVN (я может что-то уже пропустил и SVN работает?) :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 297 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 15  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB