[devel] hsh-qemu-binfmt - register qemu for aarch64/ppc64le hasher

Dmitry V. Levin ldv на altlinux.org
Пт Авг 16 05:30:26 MSK 2019


On Fri, Aug 16, 2019 at 05:00:09AM +0300, Alexey Shabalin wrote:
> пт, 16 авг. 2019 г. в 04:48, Dmitry V. Levin <ldv на altlinux.org>:
> >
> > On Fri, Aug 16, 2019 at 02:39:47AM +0300, Alexey Shabalin wrote:
> > > пт, 9 авг. 2019 г. в 18:48, Igor Vlasenko <vlasenko на imath.kiev.ua>:
> > > >
> > > > On Fri, Aug 09, 2019 at 05:23:59PM +0300, Sergey Bolshakov wrote:
> > > > > Вовсе необязательно (обращаю внимание на flags):
> > > > >
> > > > > $ cat /proc/sys/fs/binfmt_misc/aarch64
> > > > > enabled
> > > > > interpreter /usr/bin/qemu-aarch64.static
> > > > > flags: F
> > > > > offset 0
> > > > > magic 7f454c460201010000000000000000000200b700
> > > > > mask ffffffffffffff00fffffffffffffffffeffffff
> > >
> > > Я подготовил сборку qemu-user-static-binfmt с добавлением флага F.
> > > Но у меня возникли сомнения:
> > >
> > > 1) Что именно делает этот флаг "F"? загружает этот бинарник в
> > > пространство ядра?
> >
> > Нет, только открывает этот файл и помечает его таким образом,
> > что при попытке записи в него возникает ошибка ETXTBSY.
> >
> > > когда он это делает, при регистрации или в момент
> > > обращения к бинарному файлу другой архитектуры?
> >
> > При регистрации.
> >
> > > Дело в том, что в этом пакете находятся конфиги для всех возможных
> > > архитектур, и мне бы не хотелось при загрузке компьютера принудительно
> > > загружать в память все эти бинарники qemu-*static.
> >
> > Загрузка этих бинарников в память будет происходить не при регистрации,
> > а каждый раз при запуске, как и без "F".  Но файл, из которого будет
> > производиться загрузка, не будет открываться каждый раз заново.
> > В частности, при обновлении qemu без явной перерегистрации будут
> > использоваться старые интерпретаторы, зарегистрированные ранее.
> >
> > > Зачастую компьютер разработчика используется и для повседневной работы
> > > с Интернет, почтой и т.п.
> >
> > Неизвестно, что на самом деле опаснее, интернет с почтой в хост-системе
> > или произвольный код в чруте.
> >
> > > 2) Насколько это безопасно? Понятно, что этот пакет нужен
> > > разработчикам, работающим со сторонними архитектурами. Этот пакет не
> > > входит в установку по-умолчанию, кто его устанавливает, тот знает
> > > зачем. Хотелось бы удобства - установил, и работает везде, хоть в
> > > системе, хоть в контейнере. НО не получит ли разработчик на aarch64
> > > сервере работающие вредоносные программы для x86_64?
> >
> > Получит.  "F" даёт именно такой эффект - бинарники от других архитектур
> > будут запускаться и в контейнерах, где нет qemu.  Если зарегистрировать
> > интерпретаторы для всех поддерживаемых архитектур с "F", то можно будет
> > исполнять бинарники подо все эти архитектуры в контейнерах, где нет qemu.
> >
> > Вопрос, зачем может быть нужно регистрировать интерпретаторы для всех
> > поддерживаемых архитектур сразу?
> 
> Может и не зачем, но сейчас устроенно именно так, все static файлы в
> одном пакете, все конфиги для регистрации в другом пакете, при
> установке которого отрабатывает filetrigger и регистрирует все
> архитектуры. Если сделать множество отдельных пакетов, на спек qemu
> будет смотреть еще больнее.

Можно открыть новые горизонты боли, заглянув, например, в
http://git.altlinux.org/gears/g/..git?p=gcc-defaults.git;a=blob_plain;f=gcc-defaults.spec

> Основной вопрос, добавлять ли еще флаг "F"?

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

Если же регистрировать интерпретаторы выборочно, то имеет смысл добавить "F".


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20190816/69967f5d/attachment.bin>


Подробная информация о списке рассылки Devel