Хотел бы прояснить кое-что насчёт запуска через пускач BlackBox.c.
Исходя из описания специфики загрузки библиотеки .so, приведённой выше, корректный сбор мусора сборщиком зависит от корректного значения вершины стека в переменной Kernel.baseStack. Тут понятно.

> -- Цитата:
> В результате Kernel.baseStack, запомненный в Kernel.Init, оказывается не верен после возврата управления в сишный пускач и вызова "главной" процедуры Init.Хотел бы знать: почему?
То есть, если не использовать приладу в виде SetKernelBaseStack, с помощью SYSTEM.GETREG(SP, baseStack) мы получаем некорректное значение. Так выходит?

С другой стороны, какое отношение имеет вершина стека пускача к вершине стека вызываемой библиотеки? У них ведь могут использоваться разные менеджеры памяти, каждый со своим сборщиком мусора.

Вдобавок хотел бы понять, почему в baseStack передаётся значение вершины стека со смещением 8 байт.