March 21st, 2017

July 2016

Придумываем название для нового гипервизора для MIPS с аппаратно-поддерживаемой виртуализацией

На днях в офисе Imagination Technologies в Санта-Клара, Калифорния ко мне подходит специалист по многоядерному Линуксу Леонид Егошин и говорит:

Егошин: Вот, написал самый маленький гипервизор в мире.

Я: Да? А как называется?

Егошин: Еще не придумал. И маркетинг названия не спустил. Придумай название! Это все равно будет opensource-проект.

Я: Мне чего-то трудно такое придумать. Как говорится "как вы яхту назовете, так она и поплывет". Надо общественность спросить.

Егошин: И я еще в апреле в Долгопрудном буду, в МФТИ. Не был там с XX века. Есть ли там кто-нибудь, кого интересует MIPS-Linux/IoT/гипервизоры на MIPS?

Я: Ну об этом тоже можно спросить общественность.

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

---

Не вся молодежь знает, но в СССР был свой Unix. Не при Брежневе, но уже при Андропове.

И вот одним из первых советских юниксологов и был Егошин (он единственный на фотке на Красной Площади 1980-х, кто улыбается). Потом Егошин переехал в Silicon Valley и стал работать в MIPS Technologies, которая стала Imagination Technologies. На снимке справа Егошин уже в 2015 году, с первой привезенной в Америку из России платой с российским микропроцессором Байкал-Т - Егошин помогал отлаживать на ней Линукс:



А теперь что такое гипервизор. Гипервизор - это такая программа, которая управляет работой двух или более операционных систем, которые выполняются на процессоре одновременно внутри виртуальных машин. Софтверу внутри виртуальной машины кажется, что ему принадлежит вся реальная машина, все ее порты ввода/вывода, память и прерывания.

Виртуализация - это следующий шаг после kernel / user mode (режима ядра / пользовательского режима). В kernel/user парадигме операционная система защищает себя от пользовательских программ и пользовательские программы друг от друга. Привилегированный режим ядра включается, когда во время выполнения пользовательской программы происходит прерывание. Тогда ОС смотрит, что произошло, и может переключится на выполнение другой пользовательской программы. В случае виртуализации поверх kernel/user включаются еще и режимы root/guest для защиты нескольких guest операционных систем друг от друга и разделения между ними ресурсов. Этим занимается гипервизор в режиме root:

https://www.imgtec.com/mips/architectures/virtualization/





Виртуализацию не следует путать с виртуальной памятью. Collapse )

"О зачем на микроконтроллере виртуализация?!" - может воскликнуть читатель. Для секьюрити. Даже на небольшом чипе для IoT могут одновременно работать скажем встроенный Линукс и скажем очень защищенный код для работы с финансовыми транзакциями. Теперь если пользователь установит взломанную операционную систему, она не сможет получить доступ к другой ОС, выполняющей критические операции, потому что между двумя ОС стоит гипервизор. Это становится особенно важно в случае интернета вещей, когда подброшенный в домашнюю сеть утюг или тостер может теоретически обмениваться информацией с главным компьютером хозяина.

Егошинский гипервизор может работать вот на такой плате Digilent chiKIT WI-FIRE:



А теперь предоставим слово Леониду:


Юра, основные сведения про hypervisor:
Collapse )

UPD: Доплнительно, свежая ссылка на актуальность проблемы (вирус в банкоматах) - https://www.gazeta.ru/tech/2017/03/20/10584965/atm_virus.shtml#page2


В общем если у вас есть хорошее название для гипервизора или желание пересечься в МФТИ во время визита Леонида Егошина в альма-матер в апреле, вы можете либо ему писать на Leonid.Yegoshin@imgtec.com, либо оставлять здесь комментарии.


Справка из Википедии про фото в начале поста слева:


Collapse )


Уважаемый читатель! Мне для статистики интересно:

Умеете ли вы программировать на Си
33(16.6%)
Умеете ли вы программировать на ассемблере
27(13.6%)
Знаете ли вы, для чего предназначены и как работают режимы kernel / user в операционных системах
30(15.1%)
Знаете ли вы, как работает виртуальная память?
29(14.6%)
Знакомы ли вы, для чего предназначена виртуализация?
27(13.6%)
Знакомы ли вы, как работает виртуализация?
22(11.1%)
Знакомы ли вы как работает контроль распределения ресурсов SoC c гипервайзером?
4(2.0%)
Разрабатываете ли вы для микроконтроллеров
12(6.0%)
Разрабатываете ли вы для интегрированных чипов для интернета вещей
6(3.0%)
Из-за бугра плюете?
9(4.5%)