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

User Tag List

Страница 1 из 32 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 320

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

  1. #1
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Библиотеки-модули-программы...

    Захотелось мне тут помечтать. Вот и размечтался....

    Перелопачивал тут намедни в очередной раз свою библиотеку модулей, попутно одним глазом посматривая в разные доки на тему независимых релоцируемых модулей для разных платформ. И представил себе такую ниибаццо(С) вдохновляющую картину.
    Каждый спектрумист имеет у себя некий системный диск. На него свалены самые нужные в повседневной жизни программы- коммандеры, редакторы, прочий хлам. Обычно нужного софта там скапливается порядком- иногда и на целый диск получается. А ведь, если разобраться, большая часть кода всех утилит состоит из пользовательского интерфейса, дискового функционала, какого-то графического движка.
    А теперь представим себе системный диск, на котором находится несколько десятков бейсик-файлов размером от 3 до 10 секторов и кучка библиотек, используемых в разном сочетании разными программами. (Ясен перец, в случае винта и единой ФС это выглядит вообще вкусно). Бейсик-файл содержит загрузчик уникального для каждой программы кодового блока, распаковщик (в общем случае), список используемых библиотек и линковщик. После запуска загрузчик распаковывает в память кодовый блок, ищет, распаковывает и линкует к нему найденные модули и запускает все это дело.
    Понятно, что при таком подходе будут как плюсы, так и минусы. Начну с первых:
    + экономия дискового пространства (не всегда, но в общем случае)
    + простота исправления одного глюка в ряде программ (и соотвецно добавления новых глюков %)))
    + разработчикам можно меньше заморачиваться- главное иметь библиотеку, ее интерфейс и работать с ней
    Пока хватит, можно к минусам перейти:
    - много (и долго!) придется елозить по диску пока соберутся нужные библиотеки, а потом слинкуются
    - куча мелких файлов может и займут мало места, но быстро забьют каталог
    - трудности с переносом и копированием программ
    - возможные проблемы с совместимостью- разные версии, разные интерфейсы...
    Тоже пока хватит.
    Теперь можно указать некоторые пути удаления минусов.
    1) сжимать библиотеки пакерами. Благо там внутри довольно много "лишней" информации может быть
    2) собирать набор библиотек в архив и искать уже в нем (уже не говорю о кешировании каталога для быстрого поиска)
    3) утилита автосборщик, собирающая из загрузчика и кучки библиотек единый упакованный моноблок, запускаемый на любой машине, решает третий минус

    Вот, в принципе, все. На самом деле, минусов и плюсов куда больше, чем я тут указал.
    Что скажет многоуважаемый All?

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

  3. #2
    Member Аватар для jim
    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    87
    Благодарностей: 19
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    дело нужное. я так же мыслю. давно пора унифицировать спексофт. 21 век на дворе.

  4. #3
    Activist Аватар для Jukov
    Регистрация
    03.12.2005
    Адрес
    Серов
    Сообщений
    471
    Благодарностей: 65
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я пытался сделать библиотеку как раз для этого дела, чтоб были скрол бары, менюшки, мышь, удобный вывод текста, в котором присутсвуют все символы ГОСТ-альтернативной кодировки. Всё это вылилось в одной программе - CUTTER. Дело застопорилось на дисковых процедурах. Идею использовать одну библиотеку для всех системных программ одназначно поддерживаю.
    Кворум-192, Кворум-128 CP/M, Кворум-64, ZS-Scorpion 256 Turbo+&Caro ZX_MC, Мастер48К

  5. #4
    Activist Аватар для captain cobalt
    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Благодарностей: 4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё можно выходить из программы не по RESET, а в ось. При этом библиотеки остаются в памяти. При запуске следущей программы не нужно опять подкачивать библиотеки, достаточно загрузить программу и слинковать её с библиотеками в памяти.

  6. #5
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Ещё можно выходить из программы не по RESET, а в ось. При этом библиотеки остаются в памяти. При запуске следущей программы не нужно опять подкачивать библиотеки, достаточно загрузить программу и слинковать её с библиотеками в памяти.
    Библиотеки под ось и библиотеки в описанном выше виде- разные вещи. Для обычной программы требуется определенный набор библиотек, лишних не надо- на них просто нет памяти. Тем более что после стартовой линковки они уже не пригодны для дальнейшего использования в другой библиотеке- они будут настроены на конкретный адрес.
    Ну вдобавок можно реализовать API для runtime-линковки модулей.

  7. #6
    Activist Аватар для captain cobalt
    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Благодарностей: 4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Библиотеки под ось и библиотеки в описанном выше виде- разные вещи.
    Тем не менее, следует хотя бы рассмотреть возможность брать библиотеки не с диска, а из памяти.
    Цитата Сообщение от Vitamin
    Для обычной программы требуется определенный набор библиотек
    Ещё есть хорошая и полезная штука - плагины.
    Их набор заранее неизвестен и может настраиваться пользователем.
    Цитата Сообщение от Vitamin
    лишних не надо- на них просто нет памяти
    Это у 128 может не хватит.
    А у 256 и тем более 512 и выше запросто может хватить не только на все библиотеки, но и на несколько программ, чтобы запускать их из памяти.

    Не следует рассуждать о 128-only.
    Цитата Сообщение от Vitamin
    Тем более что после стартовой линковки они уже не пригодны для дальнейшего использования в другой библиотеке- они будут настроены на конкретный адрес.
    Непонятно.
    Библиотека сидит в памяти, настроенная на адрес.
    Ну и пусть там сидит.
    Это её вновь загружаемых клиентов надо линковать с учётом этого адреса.

  8. #7
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Владивосток
    Сообщений
    2,997
    Благодарностей: 1285
    Записей в дневнике
    5
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот здесь я не про то же говорил?
    С уважением, Станислав.

  9. #8
    Guru
    Регистрация
    15.01.2005
    Адрес
    USSR
    Сообщений
    2,038
    Благодарностей: 331
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если я отдам все исходники в формате GENS3/GENS4, без комментариев или с комментариями матом, это новых программистов устроит?
    Готов.
    Сам уже ничего не помню, прошло около 15 лет.
    Извиняюсь.

  10. #9
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE
    А вот здесь я не про то же говорил?
    О том же. Но с точки зрения исходников. Здесь же разговор идет о бинарных библиотеках.
    "Конструктор" из исходников- первый шаг к этому. Имея на руках только бинарник и список точек входа исчезает проблема ковыряния и разбирания что и как работает (и соотвецно исчезают соблазны доделать все под себя).

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

    По умолчанию

    Цитата Сообщение от Vitamin
    О том же. Но с точки зрения исходников. Здесь же разговор идет о бинарных библиотеках.
    "Конструктор" из исходников- первый шаг к этому. Имея на руках только бинарник и список точек входа исчезает проблема ковыряния и разбирания что и как работает (и соотвецно исчезают соблазны доделать все под себя).
    Именно об этом я и говорил 100 лет назад. Shaos даже сделал многое в плане реализации данной мысли. Правда для спринтера, но применимо и для спека. За основу только не берите пц и линух вид либл. Используйте амижные. опъяснять не пуду пачаму=)))
    А про либлы от Shaos'a - спросите у него на его форуме http://www.nedopc.org/forum/
    http://amigasc.nm.ru

    Free coder and hardwareman
    Amiga addicted

Страница 1 из 32 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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