История изменений
Исправление X512, (текущая версия) :
Я не нахожу в гугле подтверждений твоим словам.
https://en.wikipedia.org/wiki/Ceres_(workstation)
Точнее, я не нахожу ничего про линкер Оберона вообще.
Вот исходник динамического загрузчика: StdLoader. Вообще исходники и документация Оберона плохо гуглятся, потому что они в бинарном формате по типу *.doc у MS Word.
А если учесть, что по мере роста программы линейно увеличивается число модулей. использующих этот модуль, то получается O(N*M log(N)) — квадратичная сложность, что есть полный отсос.
Не знаю что у вас за расчёты, но у меня Оберон система с GUI и около сотни модулей запускается за миллисекунды. В разы быстрее многих поделок на C/C++.
Потому люникс перешел на PIC, где отступы считаются относительно текущей инструкции, благадаря чему один и тот же модуль может без изменений размещаться в бесконечном числе процессов.
При желании можно сделать так, чтобы модуль загружался по одному виртуальному адресу во все процессы, тогда можно будет использовать общую память и делать релокацию один раз.
Исправление X512, :
Я не нахожу в гугле подтверждений твоим словам.
https://en.wikipedia.org/wiki/Ceres_(workstation)
Точнее, я не нахожу ничего про линкер Оберона вообще.
Вот исходник динамического загрузчика: StdLoader. Вообще исходники и документация Оберона плохо гуглятся, потому что они в бинарном формате по типу *.doc у MS Word.
А если учесть, что по мере роста программы линейно увеличивается число модулей. использующих этот модуль, то получается O(N*M log(N)) — квадратичная сложность, что есть полный отсос.
Не знаю что у вас за расчёты, но у меня Оберон система с GUI и около сотни модулей запускается за миллисекунды. В разы быстрее многих поделок на C/C++.
Потому люникс перешел на PIC, где отступы считаются относительно текущей инструкции, благадаря чему один и тот же модуль может без изменений размещаться в бесконечном числе процессов.
При желании можно сделать так, чтобы модуль загружался по одному виртуальному адресу во все процессы, тогда можно будет использовать общую память и делать релокацию один раз.
Исходная версия X512, :
Я не нахожу в гугле подтверждений твоим словам.
https://en.wikipedia.org/wiki/Ceres_(workstation)
Точнее, я не нахожу ничего про линкер Оберона вообще.
Вот исходник динамического загрузчика: StdLoader.
А если учесть, что по мере роста программы линейно увеличивается число модулей. использующих этот модуль, то получается O(N*M log(N)) — квадратичная сложность, что есть полный отсос.
Не знаю что у вас за расчёты, но у меня Оберон система с GUI и около сотни модулей запускается за миллисекунды. В разы быстрее многих поделок на C/C++.
Потому люникс перешел на PIC, где отступы считаются относительно текущей инструкции, благадаря чему один и тот же модуль может без изменений размещаться в бесконечном числе процессов.
При желании можно сделать так, чтобы модуль загружался по одному виртуальному адресу во все процессы, тогда можно будет использовать общую память и делать релокацию один раз.