OberonCore
https://forum.oberoncore.ru/

Linux Console:Полная консольная (серверная) версия под Linux
https://forum.oberoncore.ru/viewtopic.php?f=133&t=4085
Страница 5 из 5

Автор:  Alexander Shiryaev [ Четверг, 15 Ноябрь, 2012 12:32 ]
Заголовок сообщения:  Re: Linux Console:Полная консольная (серверная) версия под L

Евгений Темиргалеев писал(а):
Решил начать отдельную тему, так сказать с чистого листа, хотя задача суть та же, что и обозначена в 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-верию.

Автор:  Евгений Темиргалеев [ Четверг, 15 Ноябрь, 2012 23:20 ]
Заголовок сообщения:  Re: Linux Console:Полная консольная (серверная) версия под L

Хорошие новости. Первый пункт плана по сути выполнен. Следующие буду по мере возможности и освоения Ваших материалов дорабатывать.

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

Автор:  Alexander Shiryaev [ Пятница, 16 Ноябрь, 2012 19:41 ]
Заголовок сообщения:  Re: Linux Console:Полная консольная (серверная) версия под L

Разобрался с HostPackedFiles, заработало. Только надо указывать, откуда загружать запакованные файлы, т. к. HostFiles.appName убрали. Сделал через переменную окружения BB_PACKED_NAME.

Автор:  Alexander Shiryaev [ Воскресенье, 18 Ноябрь, 2012 23:44 ]
Заголовок сообщения:  Re: Linux Console:Полная консольная (серверная) версия под L

Добавил поддержку FreeBSD.

Страница 5 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/