Pull to refresh
0
0
Send message
Ну «фантом» — это вряд ли годится, гипервизор вполне реальный и уже работает. Пишу документы.
Аппаратная виртуализация — это как раз и метод аппаратного разделения функциональных блоков.

Насчет микроконтроллера — все просто, вы хотите гонять на нем две разных подсистемы от разных производителей, причем не доверяете обоим, ну упасть они могут токо-так. Надо восстановить упавшую, не уронив вторую. Пример — подсистема связи в сети и подсистема управления мотором. Или web сервер, типа в https://www.olimex.com/Products/PIC/Development/PIC32-EMZ64/open-source-hardware плюс еще что-то независимое, но критичное.

Можно конечно забацать SoC с двумя процессорами, стандартное решение. Но оно и энергии жрать больше будет, и его еще делать под задачу надо, придумывать систему удаленного сброса и т.п. И если для банкомата энергия не критична, то есть куча приложений, где это чувствительно. Да и стоимость чипа выше.

Софтверное разделение функциональных блоков на различные VM — это просто естественное расширение обыкновенной многозадачности, но с повышенной security.
Вот плата Olimex, которая очевидно будет следующей

https://www.olimex.com/Products/PIC/Development/PIC32-EMZ64/open-source-hardware
Ух, это было бы круто!

Коротко — нет конечно, маленький размер (35КБ) получается из-за сильной аппаратной поддержки виртуализации в MIPS R5. Для всего более раннего пришлось бы эмулировать полную работу с CP0, все привилегированные команды процессора в guest kernel.

И к тому же, если не считать interAptiv/proAptiv, то на всех процессорах пришлось бы делать сильную паравиртуализацию, и первый этап — сборка ядра виртуальной машины в KUSEG вместо KSEG0, чтобы не эмулировать КАЖДУЮ команду процессора (на *Aptiv процессорах есть расширение сегментной памяти, которой позволяет гонять user-ный процесс в адресах KSEG0).

За идеи по названию — спасибо.
Спасибо. Хорошо бы еще букву-другую добавить, чтобы убрать ненужные ассоциации. Но идея тоже интересная.
Проблема в том, что в плату с 2MB ROM + 0.5MB RAM Linux c KVM не влезет. Да и если бы влез, то Linux в IoT девайс вы ставить не захотите.
Пока нет названия — нигде. Как будет имя — выложу на github.
Да, на питоне только скрипты конфигурирования, сам гипервизор — С и ассемблер
Основа привязана только к MIPS R5. Чуть-чуть надо будет доделать для P5600. Однако эмуляция контроллера прерываний сейчас сделана только для PIC32MZ(EF). То есть будет работать на любой плате с PIC32MZ(EF), например Digilent-овской.
1) Что было под рукой — то и взял. Python есть везде.
2) Или GPLv3 или что-то типа BSD, еще не очень думал.
3) Нет, не думал. Там усложненные вычисления, так как на M5150 всего 16 регистров TLB и гипервизор использует переменный размер страниц для уменьшения page-faults. С Python-ом мне было проще написать преобразования.

Information

Rating
Does not participate
Registered
Activity