Важная информация

User Tag List

Страница 7 из 32 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 320

Тема: Библиотеки-модули-программы...

  1. #61
    Activist Аватар для acidrain
    Регистрация
    01.03.2005
    Адрес
    Russia, Krasnodar
    Сообщений
    433
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shaos
    Линк на либмана я пару раз упоминал на этом форуме - 0 заинтересовавшихся

    Если интересующихся наберется >= 3, то обещаю портировать со спринтера на спектрум - примеры либ в этом формате имеются, штука сильно перспективная была, да вот тока спринтер загнулся...
    Дык заинтересованых нет? Может заинтересуетесь?
    http://amigasc.nm.ru

    Free coder and hardwareman
    Amiga addicted

  2. #61
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #62
    Member Аватар для yoko_ono
    Регистрация
    04.09.2006
    Адрес
    Краснодар
    Сообщений
    58
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Я же говорю несколько о другом. О runtime-самосборке программ из имеющихся на диске библиотек. В этом случае не страшна и самомодификация и имеется полная власть над памятью. За это дело придется платить задержками при загрузке (или собрать все в моноблок и получить обычную программу).
    Ой ли - так прям и полная? Вы же сами говорите - либы совершенствуются и, следовательно, увеличиваются в размерах - и становится невозможно угадать кол-во свободной памяти!
    Одно дело пц, с 4 гигами виртуалки и 32битной адресацией, а другое дело - спектрум...

    ЗЫ. Изначально моя мысль стремилась к следующему- доработать мою модульную структуру до вида, применимого в некоторых моих программах.
    То есть, вы намеренно решили затормозить загрузку программы для end-юзера? Чтобы он слушал спазмы дисковода, шныряющего по всему диску, ради сомнительного удобства программиста?...

  4. #63
    Master Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну блин мы и понаписали а толку пока действительно мало

    Цитата Сообщение от acidrain
    либ на какой стадии линкуется с прогойй - когда ее только компилируешь или когда ее запускает конечный юзер?
    возможны варианты:
    1. библиотека линкуется с программой статически т.е. на этапе компиляции/линковки
    2. система поднимает библиотеку при старте программы
    3. библиотека подгружается по запросу из программы (это как раз те примеры что я приводил)

    кстати, когда я говорил что Windows/Linux реализация более гибкая я имел в виду как-раз эти три варианта. зачем все это:
    1. программа не зависит от того какие библиотеки есть на машине пользователя
    2. размер программы - маленький. никаких дополнительных телодвижений (руками загружать/истать адрес функции) не надо
    3. для реализации "плагинов" в этом случае программа может работать с библиотеками которых не было во время ее создания через некое API


    еще раз про handle возвращаемый из LoadLibrary - это просто число никак не связанное с адресом загрузки


    а теперь IMHO: динамические библиотеки нужны в основном для системных программ, на спекки ими пользоваться будет не сильно удобно поскольку мы завязаны на floppy-ки.

  5. #64
    Master Аватар для ng_dead
    Регистрация
    22.02.2006
    Адрес
    Москва
    Сообщений
    522
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yoko_ono
    Вы же сами говорите - либы совершенствуются и, следовательно, увеличиваются в размерах
    Из чего это следует? Может ноаборот... уменьшаются?
    Цитата Сообщение от yoko_ono
    и становится невозможно угадать кол-во свободной памяти!
    А что гадать то? Не надо гадать. В самом примитивном случае, строится табличка распределения памяти между библиотеками...
    Time to burn! You losers better learn -
    No one controls our goddamn lifesl

    Дельта-С 128
    Amiga 600
    Raspberry Pi Rev. B

  6. #65
    Master Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yoko_ono
    То есть, вы намеренно решили затормозить загрузку программы для end-юзера? Чтобы он слушал спазмы дисковода, шныряющего по всему диску, ради сомнительного удобства программиста?.
    возможно я не правильно понял исходный пост Витамина, но он в последней строчке написал:
    Цитата Сообщение от Vitamin
    утилита автосборщик, собирающая из загрузчика и кучки библиотек единый упакованный моноблок, запускаемый на любой машине, решает третий минус
    т.е конечный пользователь всей этой кухни не увидит, возможно кроме некоторых тормозов при старте для настройки библиотек на конкретные адреса

  7. #66
    Banned Аватар для psndcj
    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно я встряну? Ну совсем чуть-чуть...

    Лично мне для тех программ - типа системных (конверторы и различные пакеры) - пригодились бы всего-навсего пара плагинов - работа с диском (сэйв/лоад/выбор файла из каталога/ввод имени для сэйва) и некое подобие ГУИ (то есть надпись чтоб вывести если надо ну могет и выбрать чтонить на экране). в принципе это я уже сам для себя написал - правда в непотребном виде, удовлетворяющем меня одного. Реализовано именно как инклуд на этапе компиляции (то есть либа - так? =) )

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

    Насчет времени загрузки и прочего - если не лазить в каталог для определениякоординат файла на диске, то загрузка 2-3 файлов будет практически незаметна даже на реале... А при отсутствии операционки что-то я сомневаюсь в появлении программ, использующих десятки (сотни!!! =) ) подобных модулей... Лично я могу придумать еще парочку реально нужных и все...

    Извините, что я тут в грязных в сапогах и в душу, ладно?

  8. #67
    Member Аватар для yoko_ono
    Регистрация
    04.09.2006
    Адрес
    Краснодар
    Сообщений
    58
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от icebear
    Это был бы т.н. singleton pattern. А что же вы делаете с данными в этом случае? Тоже одни на всех вызывающих? Как же потоки работают?
    Просто либы пишутся в реентерабельном стиле. Все локальные данные - на стеке, если надо - для каждого приложения заводится объект, адрес которого передаётся функциям.
    Данные естественно одни, ибо нет системы виртуальной памяти. Потоков тоже нет (в АОС) - только отдельные task'и.

  9. #68
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yoko_ono
    становится невозможно угадать кол-во свободной памяти!
    Здесь согласен, проблема. Надо искать пути выхода.
    (тем не менее, при динамической линковке и "либах в банках" ее угадать не менее невозможно)

    Цитата Сообщение от yoko_ono
    То есть, вы намеренно решили затормозить загрузку программы для end-юзера? Чтобы он слушал спазмы дисковода, шныряющего по всему диску, ради сомнительного удобства программиста?...
    Есть такая штука- кеширование.... Обычно изрядно облегчает жизнь и ускоряет работу.

    Мдаблин... Прям военные действия... Хотя должен признать, единственный мой конструктивный диалог это с yoko_ono (хотя и не без предвзятости). Все остальное место ветки acidrain доказывает, что одно и то же понятие на амиге и винде называется по разному и всячески игнорирует ответы на свои же вопросы (это я о просьбе показать пример подключения библиотеки и вызова функции).
    2Shaos: информацию по libman я прочитал сразу, как только acidrain выложил ссылку. И задал несколько вопросов, получив ответы только на половину. Так что согласен, что интереса- 0...

    2acidrain: давай начнем с терминологии (надо было с этого и начинать...). итак, имеем 3 вида управления кодом программы
    1) Статическая линковка. Объектные файлы, созданные заранее, подключаются к бинарнику на этапе компиляции и присутствуют в исполнимом файле. Во время работы не требуется никаких дополнительных движений со стороны программы чтобы подключить эти объектные файлы, просто прямые вызовы на функции. В простейшем случае, объектные файлы, скомпилированные из разных исходных текстов собираются в итоговый бинарник. При подключении одной и той же библиотеки в две разные программы данные физически дублируются. Примеры- a,obj,lib файлы (первое что на ум пришло)
    2) Динамическая линковка. Объектные файлы подключаются во время работы программы путем открытия библиотеки (неважно, кто это делает, ОС или само приложение). Дальнейший вызов функций осуществляется на основе имеющегося описателя подключенной библиотеки. При подключении одной и той же библиотеки в две разные программы (для многозадачных ОС), код не дублируется. Примеры- so,dll.
    3) Прочее. В частности, отсутствие линковки на уровне бинарных файлов, только на уровне исходных текстов на этапе компиляции. Использование только внутренних функций или функций ОС (в общем случае, если таковая имеется).

    Есть вопросы? исправления? дополнения?

  10. #69
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    т.е конечный пользователь всей этой кухни не увидит, возможно кроме некоторых тормозов при старте для настройки библиотек на конкретные адреса
    После прохода автосборщика в итоге получаем обычный бейсик-файл, в котором уже все внутри и никаких дополнительных телодвижений на подгрузку не делается. Т.е. по сути превращаем динамически-статическую (у меня именно такой вариант, не вписывающийся в мою же классификацию ) линковку в чисто статическую.

  11. #70
    Veteran Аватар для icebear
    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yoko_ono
    Просто либы пишутся в реентерабельном стиле. Все локальные данные - на стеке, если надо - для каждого приложения заводится объект, адрес которого передаётся функциям.
    Ах вот оно что! Винда наоборот Не в эту тему вопрос - а событийная модель там есть?

    Цитата Сообщение от yoko_ono
    Данные естественно одни, ибо нет системы виртуальной памяти. Потоков тоже нет (в АОС) - только отдельные task'и.
    Погоди, а разве амига не умеет читать с диска и чего-нибудь ещё делать параллельно? Как это можно сделать без потоков (в том смысле, что бы работало всегда и везде)?

    И ещё оффтоп: на аватаре кошка из Ивана Васильевича?

Страница 7 из 32 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Управление эмулятором из zx-программы
    от Spectre в разделе Эмуляторы
    Ответов: 42
    Последнее: 29.08.2006, 12:58
  2. Кто может помочь в создании программы
    от Лебедев в разделе Люди
    Ответов: 9
    Последнее: 22.07.2006, 09:41
  3. Ответов: 7
    Последнее: 09.05.2006, 20:32
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

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