OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 15 Декабрь, 2017 09:11

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




Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
СообщениеДобавлено: Четверг, 15 Ноябрь, 2012 12:32 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 430
Откуда: Егорьевск
Евгений Темиргалеев писал(а):
Решил начать отдельную тему, так сказать с чистого листа, хотя задача суть та же, что и обозначена в viewtopic.php?f=102&t=3540.

Привожу оговоренный вчера (http://www.inr.ac.ru/~info21/nov.htm) план действий: формирование полноценной сборки консольного каркаса ББ под линух, т.е. обеспечение функционирования в консоли:
System/Docu/Sys-map
Код:
Map to the BlackBox Core

BlackBox Component Framework

   Containers      Controls
      Properties
      Controllers   Printing
      Views
   Converters   Models   Ports
   Stores      Fonts

BlackBox Component Library
   Integers
   Files   Dialog
   Math   Strings   Dates
   Services      Meta

Задача поделена на три подзадачи и пакет будет публиковаться частями, по мере решения каждой:
1) "Пускач": суть остановились на способе (2) (статическая линковка Сишного пускача с дин. библиотекой), следуя критерию минимальности исходника сишного пускача (viewtopic.php?f=102&t=4089). Доделать/дооформить правки Kernel, HostFiles и инструкцию сборки. В качестве добавки сюда пойдёт (для примеров) LinSimpleConsole (и если что ещё есть в пакете lin-simple-console)
2) Проанализировать и составить полный список требующих реализации хуков BBCF и BBCL. Реализовать недостающие и доработать имеющиеся реализации хуков, в том числе набор затычек, которые закрывают обращение компонентов BBCF и BBCL к "рисованию".
3) Доработать (дооформить, документировать) имеющиеся реализации чисто-консольных компонентов для линуха (реализацию CommTCP и подобное).

---
Оформление также обязательно подразумевает работу по выявлению (по возможности) и перечислению работы всех контрибуторов.


С загрузчиком определились, осталось только разобраться с загрузчиком на основе Си (LinLinker). Их на самом деле два -- оригинальный LinLinker и DevBootLinker Trurl-а, декабря 2006-го года. Надо разобраться, какой лучше, и включить в сборку. Только в DevBootLinker, а не LinLinker.

Для загрузчика, основанного на ELF: Kernel_so_init.SetKernelBaseStack использовать нет необходимости в случае, если из libBB.so не вызывать экспортируемых процедур (т. е. для libBB.so := Kernel$+ Files HostFiles StdLoader не требуется). Если вызывать экспортируемую процедуру, то внутри неё можно вызывать Kernel.Start вместо использования Kernel_so_init.SetKernelBaseStack, т. к. в Kernel.Start устанавливается новое значение baseStack (SYSTEM.GETREG(SP, baseStack)).

Модули подсистемы Comm (CommTCP, CommV24) реализованы.

Модули BBCL работают.
Из BBCF полноценно работают Converters, Models, Ports, Stores.
Подсистема Text работает в "слепом" режиме (т. е. работает, но на экране ничего не отображается).
DevCompiler.CompileThis, DevLinker, DevElfLinker -- работают полноценно.

Локализация (в т. ч. русский язык) работает.

Работоспособность проверена на ОС:
GNU/Linux: Fedora Core 17, Ubuntu 12.04 LTS
OpenBSD 5.2
FreeBSD 9.0
Поддержку других операционных систем (NetBSD, DragonflyBSD, Mac OS X, Minix3?, Solaris?) сделать не сложно (особенно если они поддерживают формат ELF).

HostPackedFiles -- реализован, DevPacker работает.

Из нужного ещё остаётся Printing -- не реализовано.

Ещё до сих пор не доделана реализация обработки исключений по переполнению стека в Kernel. Может быть в Linux это легко исправить, в OpenBSD -- точно нет. Я написал им письмо, они ответили, что это ошибка в операционной системе, пока не исправили.

Я больше не буду заниматься консольной версией, т. к. из нужного всё работает, кроме печати, и переключаюсь на GUI-верию.


Последний раз редактировалось Alexander Shiryaev Воскресенье, 18 Ноябрь, 2012 23:43, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Ноябрь, 2012 23:20 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4474
Откуда: Россия, Орёл
Хорошие новости. Первый пункт плана по сути выполнен. Следующие буду по мере возможности и освоения Ваших материалов дорабатывать.

Успехов с гуём.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 16 Ноябрь, 2012 19:41 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 430
Откуда: Егорьевск
Разобрался с HostPackedFiles, заработало. Только надо указывать, откуда загружать запакованные файлы, т. к. HostFiles.appName убрали. Сделал через переменную окружения BB_PACKED_NAME.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 18 Ноябрь, 2012 23:44 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 430
Откуда: Егорьевск
Добавил поддержку FreeBSD.


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

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


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

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


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

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