Если я могу интерпретировать ваш вопрос, да, есть способ ускорить ваше программное обеспечение и кэшировать вещи, если вы хотите разрешить сохранение состояний, то есть файлов под вашим контролем, которые просто нужно открывать при входе пользователя в систему и настройках программы, которые всегда тот же самый.
Вы можете сделать это на MacOS, Linux и Windows: если все сделано правильно, это может значительно повысить скорость работы системы, снизить общую температуру системы и увеличить срок полезного использования носителя. Есть несколько факторов, которые будут важны при принятии решения, подходит ли это для вашего случая использования:
Объем физически доступной оперативной памяти (менее 8 ГБ на MacOS или Windows 64bit может быть катастрофически поврежден)
Количество основных программ и служб, которые должны быть запущены
Производительность оборудования и общие характеристики
В определенных случаях, когда контейнеры или виртуальные машины невозможны или неосуществимы, и желательна либо высокая производительность и / или абсолютная воспроизводимость, это определенно верный путь.
При входе в систему пользовательский скрипт запуска автоматически резервирует часть памяти и создает символическую ссылку в виде директории: ramdisk. Затем все программные файлы и файлы данных копируются с SSD на виртуальный диск. Затем соответствующие программы автоматически запускаются с использованием подготовленных вами настроек и открывают файлы с историей в настройках системы на автозапуск.
Ниже приведен своего рода рецепт, которому может следовать ваш сценарий.
Создать определенный профиль пользователя, который «содержит» или имеет доступ ко всем нужным программам и данным; тот, где все ненужные программы не запускаются. Отключите службы, программы, сетевые подключения, экранные заставки и т.д. И, по возможности, делайте это из (пользовательских) настроек системы.
Убедитесь, что у вас много памяти и профилируйте загрузку системы в тех условиях, которые вы хотите воспроизвести. Составьте список программ, которые вам нужны: найдите исполняемые файлы, расположение временных файлов и созданные пользователем файлы и ресурсы. Это файлы, которые вы хотите скопировать на свой виртуальный диск. Это хорошее время для настройки размера вашего виртуального диска. Переименуйте временные файлы и сохраните их в качестве резервных копий в исходном месте. Затем создайте символические ссылки, которые указывают на исходные временные файлы на размещенные на ramdisk. Скопируйте ваши пользовательские ресурсы, а затем вызовите программу, чтобы инициировать пользовательские файлы, с которыми вы хотите, чтобы она открывалась, а также любые флаги, которые вам могут понадобиться.
Это все, что нужно сделать. Только не позволяйте вашей системе переходить в спящий режим или отключать питание ...
MACOS
Я делаю это для критически важной инфраструктуры на железном железе во время художественных инсталляций и аудиовизуальных представлений. Я на самом деле делал это недавно на MacOS Sierra, в данном случае это было для живого видео-исполнения с resolume arena и захвата экрана с помощью сифона.
#!/usr/bin/env bash
# use these cache dirs
dirs="com.resolume.arena info.v002.syphon.Syphon-Recorder"
# get available memory
size_mb=$(sysctl hw.memsize | awk '{print $2;}')
# use half the memory
size_mb=$[size_mb/2048]
origin="${HOME}/Library/Caches"
ramdisk="/Volumes/ramdisk"
diskutil erasevolume HFS+ "ramdisk" hdiutil attach -nomount ram://$[size_mb]
if [ -d ${ramdisk} ]; then
for dir in ${dirs}
do
/bin/mkdir -p ${ramdisk}/${dir}
if [ -d ${origin}/${dir} ]; then
if [ ! -L ${origin}/${dir} ]; then
/bin/mv ${origin}/${dir} ${origin}/${dir}.bak
fi
fi
if [ -L ${origin}/${dir} ]; then
/bin/rm ${origin}/${dir}
fi
if [ ! -L ${origin}/${dir} ]; then
/bin/ln -v -s -f ${ramdisk}/${dir} ${origin}/${dir}
fi
done
fi
/bin/mkdir -p ${ramdisk}/Applications/Resolume
/bin/mkdir -p ${ramdisk}/RAMDISK_REPOSITORY/
echo "Copying Resolume to ramdisk"
/bin/cp -r "/Applications/Resolume Arena 5.0.2/" "${ramdisk}/Applications/Resolume/"
/bin/cp -r "/Users/Shared/RAMDISK_REPOSITORY/" "${ramdisk}/RAMDISK_REPOSITORY/"
cd /Applications/syphon
/usr/bin/open Syphon\ Recorder.app/
cd /Volumes/ramdisk/Applications/Resolume/
/usr/bin/open Arena.app/
exit
LINUX
В среде Linux Arch - это отличная платформа, на которой вы можете по-настоящему поддерживать установку, устанавливая только то, что вам нужно. В экстремальных ситуациях инженер может выбрать копирование всей системной папки на виртуальный диск (например, с SD-карты с относительно низкой спецификацией только для чтения (для предотвращения повреждения SD-карты) или даже из сетевого расположения. Код выше должен работать с несколькими модификациями.
WINDOWS
Я лично не делал этого на Windows, но это возможно. Проверьте это, если вам нужен виртуальный диск в Windows:
Windows ERAM на GitHub