OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 23 Апрель, 2024 22:09

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




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

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

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


Ну, 1.6 зато юникодная, как и линукс, кажись.

Репозиторий есть, https://svn.oberoncore.ru/community только он закрытый, доступ только по паролю, пароль у администратора, т.е. у Бориса Рюмшина :)


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Димыч писал(а):
Забавно, я ожидал как минимум некоторого оживления по поводу того, что есть первые результаты :)
Не, конечно, я то буду делать перевод и ББ и AGG в любом случае, это мне надо, но вот от комьюнити молчания я не ожидал :)
Дмитрий, уверен молчание вызвано не тем, что портирование нужно только Вам одному. Да Вы и без меня это прекрасно знаете. Рассматривали ли Вы мое предложение? Можно в личку.
P.S. В моей системе модуль Hello не запустился.
Вложение:
Комментарий к файлу: Отчет
bug.zip [1.47 КБ]
Скачиваний: 418


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

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

Про предложение этот пост?
Если так, то отвечу.

В различных вариантах динамической библиотеки необходимости нет. Есть необходимость сделать загрузчик, который запускал бы операционную среду, т.е. грузил бы часть модулей сразу, а потом остальные уже динамически.
На текущий момент это реализуется посредством создания libBB.so файла, загружающего модуль Kernel, который затем производит раскрутку.
Возможно, в дальнейшем можно будет доработать DevElfLinker с тем, чтобы формировались самостоятельно запускаемые файлы, без необходимости в дополнительной заглушки в виде файла BlackBox, получаемого из исходника BlackBox.c


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

Зарегистрирован: Вторник, 05 Февраль, 2008 11:33
Сообщения: 23
2 Димыч
Было бы замечательно, если бы Вы нашли возможность использовать менее неожиданный архиватор.
Не знаю как в SuSe, а в репозитории RedHat rar(unrar) отсутствует.


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

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Ali писал(а):
2 Димыч
Было бы замечательно, если бы Вы нашли возможность использовать менее неожиданный архиватор.
Не знаю как в SuSe, а в репозитории RedHat rar(unrar) отсутствует.

С этим можно согласиться. Но чтобы Вы не теряли времени скажу: на официальном сайте архиватора есть бинарники под Линукс.


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

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Димыч писал(а):
Подсистема Dev - это собственно компилятор. Без его наличия (работоспособности) среда будет просто операционной средой, исполняющей то, что было собрано на Windows. Что, в общем-то не так интересно.
Тогда спрошу по-другому: что заставляет думать, что она ещё не переведёна? Понятно, что модули для работы с COM не заработают, но они в Линуксе и не нужны.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Стоп-стоп, компилятор не требует модификаций для Линукса. Модули двоично совместимы.


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

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
У меня запустилась сборка под номером два (в Mandriva Linux 2008). Может, уже имеет смысл выложить сборку в репозиторий и обрисовать какой-никакой план дальнейших действий по развитию, для желающих присоединиться.


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Димыч писал(а):
Про предложение этот пост?
Если так, то отвечу.
Этот ответ Кушниру. Предложение было в первом моем посте здесь. Хотелось бы знать что Вы о нем думаете.


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Илья Ермаков писал(а):
Стоп-стоп, компилятор не требует модификаций для Линукса. Модули двоично совместимы.


Все верно, компилятор в чистом виде не требует модификации.
Однако, та часть фреймворка, с которой он взаимодействует, в частности (на чем я споткнулся) StdLog, который, в свою очередь, использует HostDialog, требует переделки под Linux.
Кроме того, мне так и не удалось придумать, как подменить Kernel и не пересобирать всю остальную систему. Замена секций импорта оказалась самой надежной, хотя и довольно кропотливой возможностью для запуска ББ под Linux. Что приводит к полной пересборке всех подряд модулей, которые так или иначе задействованы.


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
GUEST писал(а):
P.S. В моей системе модуль Hello не запустился.
Вложение:
bug.zip


Судя по цепочке вызовов, в вашей системе libdl.so и/или libc.so имеют нумерацию, отличную от моих. Посмотрите наличие указанных файлов с суффиксами, какие версии установлены? Если это предположение верно, то в заголовках модулей LinDL и LinLibc надо указать точный номер библиотеки, например, libdl.so.3 и пересобрать libBB.so.


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
В номерах разницы нет. С тем почему не запускалось разобрался. Дело как раз в упомянутом флаге PROT_EXEC. После его установки заработал Hello. Вот что strace выдает.


Вложения:
Комментарий к файлу: Трассировка
opps.zip [1.83 КБ]
Скачиваний: 416
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы перевода BlackBox под Linux
СообщениеДобавлено: Четверг, 25 Декабрь, 2008 12:09 

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

Дмитрий, попробуйте запустить ББ c параметром командной строки /USE

Описание пакета исправлений Delta писал(а):
Ключи командной строки
Ключи командной строки могут быть также прописаны в файле System/Rsrc/CommandLine.txt следующего вида:

COMMANDLINE
/ключ1
/ключ2
...

BlackBox использует следующие ключи командной строки:
/USE dir использовать каталог dir как рабочий профиль (см. Руководства пользователя - Среда - Серверная установка). Если dir содержит пробелы, то должна быть взята в кавычки;<...>

Тогда ББ будет компилировать изменённые исходники в тот каталог, который вы укажете, не затрагивая кодовые файлы в системном каталоге ББ. (если я правильно понял механизм работы)


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Лучше всего слинковать всё необходимое. Примерно так
Код:
DevLinker.Link HostBlackBox.exe :=
Kernel$+ Files HostFiles StdLoader Math Strings Dates Meta Dialog Services
Fonts Ports Stores Log Converters Sequencers Models Printers Views
Controllers Properties Printing Mechanisms Containers
Documents Windows StdCFrames Controls StdDialog StdApi StdCmds StdInterpreter
HostRegistry HostFonts HostPorts OleData HostMechanisms HostWindows
HostPrinters HostClipboard HostCFrames HostDialog HostCmds
HostMenus HostPictures TextModels TextRulers TextSetters TextViews
TextControllers TextMappers StdLog TextCmds
FormModels FormViews FormControllers FormGen FormCmds
StdFolds StdLinks StdDebug HostTextConv
StdMenuTool  StdStamps StdScrollers
OleStorage OleServer OleClient Init
1 applogo.Ico 2 doclogo.Ico 3 SFLogo.ico 4 CFLogo.ico 5 DtyLogo.ico
1 Move.cur 2 Copy.cur 3 Link.cur 4 Pick.cur 5 Stop.cur 6 Hand.cur 7 Table.cur

Теперь можно править что угодно.


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Димыч писал(а):
На текущий момент это реализуется посредством создания libBB.so файла, загружающего модуль Kernel, который затем производит раскрутку.

Есть ещё один спрособ: использовать специальный загрузчик.

Цитата:
Возможно, в дальнейшем можно будет доработать DevElfLinker с тем, чтобы формировались самостоятельно запускаемые файлы, без необходимости в дополнительной заглушки в виде файла BlackBox, получаемого из исходника BlackBox.c

А вот это совсем непросто.


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Лучше всего слинковать всё необходимое. Примерно так
Код:
DevLinker.Link HostBlackBox.exe :=
Kernel$+ Files ...

Теперь можно править что угодно.
и
Пётр Кушнир писал(а):
Дмитрий, попробуйте запустить ББ c параметром командной строки /USE

В итоге я использовал оба способа.
Завел две папки, HOST и TARGET, в каждой по инсталляции ББ. В папке HOST слинковал монолитный exe, который затем использовал для запуска с параметром /USE TARGET. В TARGET собирается целевая система, без какого-либо переименования модулей. Удобно. Спасибо за подсказки.


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

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

1) Эта работа осуществима.

Получен код, способный запускаться в Linux-среде. Пускай процедура запуска двухходовая (заглушка+libBB.so), однако она работающая.

2) По подсказке товарищей сделан механизм, позволяющий обеспечить кросскомпиляцию ББ практически без правок исходного кода. Суть метода в том, что есть две инсталляции ББ, одна из которых является компилирующей, а другая - собираемой. Компилирующая использует монолитный exe, которому не нужны сторонние библиотеки, а собираемая используется для сборки libBB.so и содержит другой kernel.

3) Попытка "сбороть" компилятор и раскрутить подсистему Dev на Linux не удалась.

Мне не удалось запустить компиляцию без графической среды, т.е. без использования подсистемы Text. Если есть возможность откомпилировать модуль строго по имени в строке (что-то вроде DevCompile???("module"), подскажите).

4) Для изготовления оконного интерфейса ББ на Linux можно взять X Window.

Тому есть несколько причин - есть готовые заголовочные файлы (после некоторой доводки запущена оконная программа); она не сложнее WinAPI, на котором сделан ББ для Windows; она работает весьма и весьма стабильно.

5) Под Linux заработали как ББ 1.5, так и ББ 1.6.

6) Несмотря на кросскомпиляцию, сборку лучше выкладывать в родном для Linux формате (*.zip) (первые архивы были в *.rar).

7) Необходимо подробно рассмотреть вопрос использования механизмов защиты памяти в Linux. На некоторых системах ББ просто не стартует, если не указать в коде флаг PROT_EXEC для функции mmap.

Продублировано отсюда


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

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Димыч писал(а):
6) Несмотря на кросскомпиляцию, сборку лучше выкладывать в родном для Linux формате (*.zip) (первые архивы были в *.rar).
Разработкой, следует понимать, будете заниматься только вы один?


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Димыч писал(а):
3) Попытка "сбороть" компилятор и раскрутить подсистему Dev на Linux не удалась.

Мне не удалось запустить компиляцию без графической среды, т.е. без использования подсистемы Text. Если есть возможность откомпилировать модуль строго по имени в строке (что-то вроде DevCompile???("module"), подскажите).

OpenBugs не оно, разве? Механизм скриптов можно взять.


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Пётр Кушнир писал(а):
Разработкой, следует понимать, будете заниматься только вы один?

Нет, конечно. С администрацией Oberoncore договорились сделать пространство на SVN, сейчас решается как это будет выглядеть. Одному мне это будет тяжко, хотя и подъемно.

GUEST писал(а):
OpenBugs не оно, разве? Механизм скриптов можно взять.

Похоже, что нет. Как я понял, они схитрили. Там есть модуль Console, который умеет общаться с Linux-консолью. Так вот при запуске ББ просто уходит в цикл read-execute-write, внутри которого, собственно, уже ничего в ББ не меняется. Работает готовый код.
Компиляцию они делали на Windows.


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

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


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

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


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

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