Дык заинтересованых нет? Может заинтересуетесь?Сообщение от Shaos
Дык заинтересованых нет? Может заинтересуетесь?Сообщение от Shaos
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ой ли - так прям и полная? Вы же сами говорите - либы совершенствуются и, следовательно, увеличиваются в размерах - и становится невозможно угадать кол-во свободной памяти!Сообщение от Vitamin
Одно дело пц, с 4 гигами виртуалки и 32битной адресацией, а другое дело - спектрум...
То есть, вы намеренно решили затормозить загрузку программы для end-юзера? Чтобы он слушал спазмы дисковода, шныряющего по всему диску, ради сомнительного удобства программиста?...ЗЫ. Изначально моя мысль стремилась к следующему- доработать мою модульную структуру до вида, применимого в некоторых моих программах.
ну блин мы и понаписали а толку пока действительно мало
возможны варианты:Сообщение от acidrain
1. библиотека линкуется с программой статически т.е. на этапе компиляции/линковки
2. система поднимает библиотеку при старте программы
3. библиотека подгружается по запросу из программы (это как раз те примеры что я приводил)
кстати, когда я говорил что Windows/Linux реализация более гибкая я имел в виду как-раз эти три варианта. зачем все это:
1. программа не зависит от того какие библиотеки есть на машине пользователя
2. размер программы - маленький. никаких дополнительных телодвижений (руками загружать/истать адрес функции) не надо
3. для реализации "плагинов" в этом случае программа может работать с библиотеками которых не было во время ее создания через некое API
еще раз про handle возвращаемый из LoadLibrary - это просто число никак не связанное с адресом загрузки
а теперь IMHO: динамические библиотеки нужны в основном для системных программ, на спекки ими пользоваться будет не сильно удобно поскольку мы завязаны на floppy-ки.
Из чего это следует? Может ноаборот... уменьшаются?Сообщение от yoko_ono
А что гадать то? Не надо гадать. В самом примитивном случае, строится табличка распределения памяти между библиотеками...Сообщение от yoko_ono
Time to burn! You losers better learn -
No one controls our goddamn lifesl
Дельта-С 128
Amiga 600
Raspberry Pi Rev. B
возможно я не правильно понял исходный пост Витамина, но он в последней строчке написал:Сообщение от yoko_ono
т.е конечный пользователь всей этой кухни не увидит, возможно кроме некоторых тормозов при старте для настройки библиотек на конкретные адресаСообщение от Vitamin
Можно я встряну? Ну совсем чуть-чуть...
Лично мне для тех программ - типа системных (конверторы и различные пакеры) - пригодились бы всего-навсего пара плагинов - работа с диском (сэйв/лоад/выбор файла из каталога/ввод имени для сэйва) и некое подобие ГУИ (то есть надпись чтоб вывести если надо ну могет и выбрать чтонить на экране). в принципе это я уже сам для себя написал - правда в непотребном виде, удовлетворяющем меня одного. Реализовано именно как инклуд на этапе компиляции (то есть либа - так? =) )
Если бы были реально написаны модули с подобными возможностями, которые можно было бы просто использовать - не сомневаюсь, что я стал бы их использовать...
Насчет времени загрузки и прочего - если не лазить в каталог для определениякоординат файла на диске, то загрузка 2-3 файлов будет практически незаметна даже на реале... А при отсутствии операционки что-то я сомневаюсь в появлении программ, использующих десятки (сотни!!! =) ) подобных модулей... Лично я могу придумать еще парочку реально нужных и все...
Извините, что я тут в грязных в сапогах и в душу, ладно?
Просто либы пишутся в реентерабельном стиле. Все локальные данные - на стеке, если надо - для каждого приложения заводится объект, адрес которого передаётся функциям.Сообщение от icebear
Данные естественно одни, ибо нет системы виртуальной памяти. Потоков тоже нет (в АОС) - только отдельные task'и.
Здесь согласен, проблема. Надо искать пути выхода.Сообщение от yoko_ono
(тем не менее, при динамической линковке и "либах в банках" ее угадать не менее невозможно)
Есть такая штука- кеширование.... Обычно изрядно облегчает жизнь и ускоряет работу.Сообщение от yoko_ono
Мдаблин... Прям военные действия... Хотя должен признать, единственный мой конструктивный диалог это с yoko_ono (хотя и не без предвзятости). Все остальное место ветки acidrain доказывает, что одно и то же понятие на амиге и винде называется по разному и всячески игнорирует ответы на свои же вопросы (это я о просьбе показать пример подключения библиотеки и вызова функции).
2Shaos: информацию по libman я прочитал сразу, как только acidrain выложил ссылку. И задал несколько вопросов, получив ответы только на половину. Так что согласен, что интереса- 0...
2acidrain: давай начнем с терминологии (надо было с этого и начинать...). итак, имеем 3 вида управления кодом программы
1) Статическая линковка. Объектные файлы, созданные заранее, подключаются к бинарнику на этапе компиляции и присутствуют в исполнимом файле. Во время работы не требуется никаких дополнительных движений со стороны программы чтобы подключить эти объектные файлы, просто прямые вызовы на функции. В простейшем случае, объектные файлы, скомпилированные из разных исходных текстов собираются в итоговый бинарник. При подключении одной и той же библиотеки в две разные программы данные физически дублируются. Примеры- a,obj,lib файлы (первое что на ум пришло)
2) Динамическая линковка. Объектные файлы подключаются во время работы программы путем открытия библиотеки (неважно, кто это делает, ОС или само приложение). Дальнейший вызов функций осуществляется на основе имеющегося описателя подключенной библиотеки. При подключении одной и той же библиотеки в две разные программы (для многозадачных ОС), код не дублируется. Примеры- so,dll.
3) Прочее. В частности, отсутствие линковки на уровне бинарных файлов, только на уровне исходных текстов на этапе компиляции. Использование только внутренних функций или функций ОС (в общем случае, если таковая имеется).
Есть вопросы? исправления? дополнения?
После прохода автосборщика в итоге получаем обычный бейсик-файл, в котором уже все внутри и никаких дополнительных телодвижений на подгрузку не делается. Т.е. по сути превращаем динамически-статическую (у меня именно такой вариант, не вписывающийся в мою же классификацию ) линковку в чисто статическую.Сообщение от elf/2
Ах вот оно что! Винда наоборот Не в эту тему вопрос - а событийная модель там есть?Сообщение от yoko_ono
Погоди, а разве амига не умеет читать с диска и чего-нибудь ещё делать параллельно? Как это можно сделать без потоков (в том смысле, что бы работало всегда и везде)?Сообщение от yoko_ono
И ещё оффтоп: на аватаре кошка из Ивана Васильевича?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)