Содержание оперативной памяти является очень важной информацией при изучении предыдущих действий с машиной. Оперативная память может содержать как части самих исполняемых процессов, так и части удаленных файлов, пользовательских сессий, криптографических ключей. При современном распространении сложных систем защиты информации, основанных на криптовании восстановление их ключей становиться чуть-ли не одной из основных задач для исследования. В защищенных системах зачастую оперативная память это единственное место где могут сохраниться защитные ключи и другая временная, но очень важная информация.
У меня, как и у многих жителей хабра есть домашний «балконный» сервер, на котором крутится множество сервисов, как личных, так и публичных — начиная от архива фотографий и Gitolite, и заканчивая несколькими веб-сайтами. Однажды я озадачился вопросом отделения личного от публичного с целью наведения порядка и усиления безопасности системы. Было решено публичные сервисы вынести в отдельные виртуальные машины, которые если даже подвергнутся взлому, то остальные данные не пострадают, а VM может быть легко восстановлена из резервной копии.
При этом я не люблю избыточность в каких бы то ни было проявлениях, и завести по виртуальной машине на каждый сервис хотелось с минимальными затратами таких ресурсов, как мое время и дисковое пространство. В качестве дополнительной «хотелки» выступала возможность обновлять однотипное ПО на всех виртуальных машинах одновременно, а не по отдельности.
Сегодня хочу вам рассказать о том, что такое Mayavi и с чем его запивают его едят.
Mayavi — это кроссплатформенное приложение для визуализации научных данных (и не только). Распространяется по лицензии BSD, что позволяет использовать его в коммерческих приложениях.
Что умеет?
Строить 2D и 3D модели на основе скалярных/векторных данных
Открывать файлы VTK, PLOT3D
Сохранять результаты рендера в различных графических форматах
Может даже рендерить результаты MRI(Магнитно-резонансная томография)
Работать с ним можно тремя способами:
1) Работать непосредственно в интерфейсе Mayavi.
2) Подгружать/передавать в Mayavi уже готовые данные.
3) Написать питоновский скрипт, в котором можно задать для Mayavi все желаемые возможности.