Любая рука - на осуществлении, чтобы понять, как программа загружается в память и выполнена

Я недавно создал приложение PHP/MySQL, которое хранит файлы PDFs/Word в таблице MySQL (целых 40 МБ за файл до сих пор).

Профессионалы:

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

Недостатки:

  • mysqldump теперь занимает looooong время, потому что существует 500 МБ данных файла в одной из таблиц.
  • Полный не очень память/CPU, эффективная, когда по сравнению с файловой системой

я назвал бы свою реализацию успехом, это заботится о резервных требованиях и упрощает расположение проекта. Производительность хорошо для 20-30 человек, которые используют приложение.

6
задан pierrotlefou 31 July 2009 в 03:19
поделиться

4 ответа

  • На странице руководства ld.so документируются несколько переменных среды, которые могут быть установлены. для настройки процесса динамической компоновки или предоставления дополнительных сведений.

например,

LD_DEBUG=all cat </dev/null
  • Вы можете легко получить исходный код для каждой задействованной части - ядра Linux, динамического компоновщика, библиотеки C, код запуска (crt0.o или аналогичный). Вы можете начать с изучения кода и внесения экспериментальных изменений.
3
ответ дан 10 December 2019 в 00:42
поделиться

Когда я посещал уроки ОС в колледже, мы использовали Начос . Это не операционная система как таковая , а своего рода «симуляция» операционной системы, работающая в пространстве пользователя. Он написан на C ++, и вы можете кросс-компилировать исполняемые файлы, которые Nachos затем может загружать и запускать. Вы можете играть с интерфейсом системного вызова и вообще экспериментировать сколько угодно, возясь с кодом.

Мы запускали его в лаборатории Solaris, и у меня возникли некоторые проблемы с его запуском на Linux на моей личной машине. , но это может быть забавная игрушка, если вы захотите вникнуть в код.

1
ответ дан 10 December 2019 в 00:42
поделиться

Я понимаю, что это, вероятно, много для того, что вы ищете, но написание собственного ассемблера и компоновщика было бы очень полезным. Я делал это, когда учился в колледже, и мне это нравилось. Насколько я помню, потребовалось около 120 часов работы, чтобы заставить его работать для основных вещей, которые я хотел. Я думаю, что этот проект больше всего на свете убедил меня в том, что карьера программиста - это для меня.

1
ответ дан 10 December 2019 в 00:42
поделиться

] Если вы хотите проверить, как упакован двоичный файл и его различные разделы, я думаю, что лучшей программой является objdump .

Выберите любой исполняемый файл и выполните:


objdump -S <executable>  > myfile.S

Еще одно хорошее упражнение:

  • Создает программу, использующую внешнюю библиотеку
  • Скомпилируйте программу с использованием статической компоновки
  • Запустите программу
  • Переименуйте библиотеку файл и проверьте, запускается ли программа
  • Скомпилируйте программу с использованием общей библиотеки
  • Переименуйте библиотеку и проверьте, работает ли программа

Это ответит на некоторые ваши вопросы о том, что происходит под занавесками и как.

3
ответ дан 10 December 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: