LINUX.ORG.RU
ФорумTalks

Раст не нужен, говорили они

 , ,


2

7

Компания Amazon представила новую технологию виртуализации Firecracker, обеспечивающую работу виртуальных машин с минимальными накладными расходами. Платформа предоставляет средства для создания и управления изолированными окружениями и сервисами, построенными с использованием бессерверной модели разработки. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

При запуске с урезанным ядром дополнительный расход памяти по сравнению с контейнером составляет менее 5 Мб. Время с момента запуска microVM до начала выполнения приложения не превышает 125мс. MicroVM могут создаваться с интенсивностью до 150 окружений в секунду. Возможен запуск в виртуальных машинах microVM и обычных окружений на базе штатного ядра Linux (поддерживаются системы с ядром 4.14 и новее).

https://www.opennet.ru/opennews/art.shtml?num=49667

★★

Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от intelfx

Какая докеру разница, использовать виртуальную машину или контейнер?

Я тебя примерно об этом и спрашиваю.

Очевидно, мой ответ - «большой разницы нет».

Тогда каким образом эта штука (или её производные) убьёт докер

Это троллинг тупостью? «Производная от этой штуки» убьет докер, если будет выполнять функции докера лучше самого докера, не будучи при этом докером.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от vertexua

Скорее всего, используют GCC, Visual C++, и что-то свое. Недавно доклад Зуева смотрел про то, как они сделали свой собственный компилятор для C++11.

Например, я на двух своих работах использовал GCC.

dave ★★★★★
()
Ответ на: комментарий от tailgunner

Вот пиар больше похоже на первопричину «популярности».

Чем https://www.tiobe.com/tiobe-index/ хуже reddit?

- Rust необычный язык

Что в нём необычного?

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от tailgunner

А я не зарегистрирован. Не зарегистрирован в fb и tw. Вот на freenode.net аккаунт есть.

grem ★★★★★
()
Ответ на: комментарий от vertexua

И уже тогда был тренд растянуть на все окно TWebBrowser компоненту и рисовать интерфейс в ней на html. А делфи использовать как системную обвязку для доступа к файлам и сетевому стеку

Deleted
()
Ответ на: комментарий от intelfx

Это троллинг тупостью?

Это троллинг тупости.

Это троллинг тупостью того, что показалось тебе тупостью. Понятно.

Тебе осталось пояснить, почему «лучше» и почему «не будучи».

Тебе осталось прочитать слово «если».

tailgunner ★★★★★
()
Ответ на: комментарий от grem

Чем https://www.tiobe.com/tiobe-index/ хуже reddit?

Тем же, чем арбуз хуже свиного хрящика.

Rust необычный язык

Что в нём необычного?

Использование афинных типов для обеспечения memory safety.

А я не зарегистрирован. Не зарегистрирован в fb и tw.

Значит, с точки зрения статистики тебя не существует.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Тебе осталось вспомнить контекст и осознать, что весь разговор происходит в контексте этого «если». Ты сделал предположение, я спрашиваю тебя, откуда оно взялось. Глупо отвечать на этот вопрос в духе «ну там же предположение, а не утверждение». Я вижу.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от tailgunner

У меня простая мера популярности (для протокола: не востребованности) языков: размер сообщества на Reddit.

Хипсторы подписались на все модное, тоже мне метрика. Сколько практикующих за зряплату кодеров, вот что интересно. С десяток хоть наберется на всю Евразию?

bread
()
Ответ на: комментарий от bread

Сколько практикующих за зряплату кодеров, вот что интересно.

Но почему тебе это интересно? Ты же не знаешь языка.

tailgunner ★★★★★
()

Суть метода бессерверных вычислений заключается в том, что разработчик реализует логику на уровне отдельных функций, не заботясь о создании и управлении инфраструктурой для запуска приложений, и не привязываясь к конкретным серверным приложениям и необходимым для их работы облачным окружениям. Разработка ведётся без создания монолитных приложений на уровне подготовки набора небольших отдельных функций, каждая их которых обеспечивает обработку определённого события и рассчитана на обособленную работу без привязки к окружению (stateless, результат не зависит от прошлого состояния и содержимого ФС)

судьба ржавого - это вебота, вебота и еще раз вебота. он же изначально создан околовебными макаками, которых унижал С++, не давая писать говнокод,

i36_zubov
()
Ответ на: комментарий от i36_zubov

он же изначально создан околовебными макаками, которых унижал С++

Бгг. Какой ты всё-таки дремучий.

tailgunner ★★★★★
()
Ответ на: комментарий от intelfx

Ты сделал предположение, я спрашиваю тебя, откуда оно взялось.

Почитай что-нибудь о сабже.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Составляю хит-парад ненужно. Раст главный кандидат на первое место (по соотношению болтовни к востребованности).

bread
()
Ответ на: комментарий от i36_zubov

которых унижал С++, не давая писать говнокод

Ох нихрена себе.

templarrr ★★★★★
()
Ответ на: комментарий от bread

Составляю хит-парад ненужно.

А. Ну так придумай сам какие хочешь данные.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

арбуз хуже свиного хрящика.

Но арбуз же лучше! А хрящики я и не ем вовсе.

memory safety

Не всем это нужно.

с точки зрения статистики тебя не существует

Ага, а те кто там зарегистрирован поголовно программистом стажем. Если вообще что-то пишут, так как скорее им просто почитать интересно.

Я б сам почитал поподробнее, но времени не хватает, не говоря о том, чтобы его потыкать.

grem ★★★★★
()
Ответ на: комментарий от grem

Что в нём необычного?

Использование афинных типов для обеспечения memory safety.

Не всем это нужно.

Сломалась логика. Что-бы быть необычным нужно быть нужным всем?

vlad9486
()
Ответ на: комментарий от grem

арбуз хуже свиного хрящика.

Но арбуз же лучше!

Нет хрящик.

Ага, а те кто там зарегистрирован поголовно программистом стажем.

Как и для Erlang, полагаю.

Если вообще что-то пишут, так как скорее им просто почитать интересно.

Не только им. Мне, например, тоже.

tailgunner ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Затем что для того чтобы крутить приложуху под виртуалкой тебе не нужна полноценная ОС.

Что это за приложуха такая, которой не нужна полноценная ОС? Вот я знаю Mirage - так он сам по себе ОС, и каждая «приложуха» тащит его с собой. Единственный профит, который я вижу - нет переключения режимов и контекстов. Но пускать в таком режиме код на Си (в т.ч. легаси-библиотеки) - так себе идея.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 3)
Ответ на: комментарий от Dark_SavanT

Затем что для того чтобы крутить приложуху под виртуалкой тебе не нужна полноценная ОС

Да-да. Выдадут тебе уникальную изолированную песочницу. Амазоны и гуглоклауды и так обросли проприетарными API-шками. Осталось написать по собственной, неповторимой реализации POSIX и наступит полный вендор-лок

Deleted
()
Ответ на: комментарий от tailgunner

Любой stateless микросервис. Если брать mirage, то оно выступает в качестве библиотеки которая тебе даёт реализацию необходимых вещей типа абстракций над интерфейсами в хост, ip-стек, шедулер тасков, аллокатор памяти на куче и т.п. В итоге количество кода за которым надо следить уменьшается в разы. Администрирование сводится к перекомпиляции и перезапуску. В идеале естественно, по факту всё несколько сложнее.

Для плюсов, кстати есть Include OS. Для раста я пилю по чуть-чуть обёртку над solo5(ладно, назвать это обёрткой пока ещё нельзя. когда приделаю кооперативный шедулер и ip стек тогда можно будет).

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Любой stateless микросервис.

Это не ответ. На чем написан этот микросервис, что он использует вместо интерфейса с ОС? Только не говори «интерфейсы к VM стандартные более-менее. ты ж kvm используешь как-то и ничо тащем» - KVM «использует» равзе что qemu.

Если брать mirage, то оно выступает в качестве библиотеки которая тебе даёт реализацию необходимых вещей типа абстракций над интерфейсами в хост, ip-стек, шедулер тасков, аллокатор памяти на куче и т.п.

Ну то есть это ОС, если называть вещи своими именами.

В итоге количество кода за которым надо следить уменьшается в разы.

За счет чего?

Для раста я пилю по чуть-чуть обёртку над solo5(ладно, назвать это обёрткой пока ещё нельзя. когда приделаю кооперативный шедулер и ip стек тогда можно будет).

Офигеть. И что оно будет уметь - то, для чего есть pure Rust библиотеки? Не жирно.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Так новость недавно проскакивала, что амазон (кажется) вдохновившись вкладками браузера хром, запустили инстансы в изолированных контейнерах на уровне рантайма (по нескольку в рамках одного процесса) безо всяких KVM, и им очень понравилось. За такой хренью наверное будущее

Deleted
()
Ответ на: комментарий от Deleted

Будут выделять не виртуалку, а кусочек адресного пространства в хитром процессе, запущенном на голом линуксе. И собственное API для работы с системой

Deleted
()
Ответ на: комментарий от tailgunner

На чем написан этот микросервис, что он использует вместо интерфейса с ОС?

На чём угодно для чего есть прослойка в виде unikernel.

Ну то есть это ОС, если называть вещи своими именами.

Да, но сравни обьём миража и linux kernel.

За счет чего?

За счёт выкидывания linux, libc, shell и прочих полезных вещей. Потому что за выделением ресурсов железа, например, следит VM Host, ты даже если сожрёшь весь свой vCPU и всю память, тебя вытеснят и посчитают.

Офигеть. И что оно будет уметь - то, для чего есть pure Rust библиотеки? Не жирно.

А что, так много не-pure rust надо, например, для реализации бэкэнда для сайта? Или для mqtt брокера? Если подумать, то не очень.

Собственно одной из задач которой я хотел достичь этой обёрткой это оценить жизнеспособность подхода. Но времени не хватает на всё :(

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 2)
Ответ на: комментарий от Dark_SavanT

За счёт выкидывания linux

Ну началось. Linux для одной архитектуры с одним драйвером небольшой и, в отличие от unikernel, протестированный. Он не требует поддержки.

libc, shell и прочих полезных вещей

Это не требует выкидывания ядра.

А что, так много не-pure rust надо, например, для реализации бэкэнда для сайта?

Ну, бэкенду нужно как минимум общаться с БД, что влечет за собой нормальную ОС, а там уже какой смысл в unikernel - всё равно ядро ОС уже есть.

Или для mqtt брокера?

mqtt брокер в облаке... даже не знаю.

Собственно одной из задач которой я хотел достичь этой обёрткой это оценить жизнеспособность подхода.

Да что там оценивать... оно жизнеспособно. Но 1) нужно будет долго вылизывать std-over-чтотамутебя 2) ты ограничен pure Rust.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Ну, бэкенду нужно как минимум общаться с БД, что влечет за собой нормальную ОС

Когда-то давно, во времена когда я ещё имел непосредственное отношение к сайтоклепанию, вынос БД на отдельный хост не был чем-то особенным или предосудительным...

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

во времена когда я ещё имел непосредственное отношение к сайтоклепанию, вынос БД на отдельный хост не был чем-то особенным или предосудительным...

Конечно. И в результате выноса ты получаешь полноценнную VM для Linux в довесок к минимальной VM для unikernel. И спрашивается. зачем тебе минимальная.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ну началось. Linux для одной архитектуры с одним драйвером небольшой и, в отличие от unikernel, протестированный. Он не требует поддержки.

То-то периодически CVE пролетают.

Это не требует выкидывания ядра.

А это уже вопрос удобства.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от tailgunner

Затем что за ней не надо следить, обновлять и делать все прочие традиционные действия. Можно конечно идти путём докера, собираем целиком образ и его запускаем, а старый прибиваем. Но в итоге получаем то же самое.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от tailgunner

блин, на автомате через ctrl-shift отправляю...

Да что там оценивать... оно жизнеспособно. Но 1) нужно будет долго вылизывать std-over-чтотамутебя 2) ты ограничен pure Rust.

У раста насколько я понимаю std вполне прилично портируема, хотя это боль, которую надо пройти.

насчёт pure-rust - не совсем. Я ограничен тем что у меня нет подлежащей libc и рантайма которым я могу запустить что-то ещё. Если я захочу, например lua или python для скриптинга, то да, мне придётся закатывать солнце вручную.

Естественно я не заявляю что данный подход всячески идеален и нужен для всего.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

То-то периодически CVE пролетают.

Так на Mirage тоже будут. Или ты сомневаешься?

Можно конечно идти путём докера, собираем целиком образ и его запускаем, а старый прибиваем.

Насколько я понимаю идею unikernel (статическая линковка с библиотекой, реализующей ОС), по-другому вообще невозможно. Это по сути образ докера, но собирается не docker, а ld.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от grem

не делает его уникальным

Вместе с другими вкусностями делает. Ты и сам знаешь. Нету сборщика мусора и виртуальной машины. Проще для плюсовиков чем хаскель, например.

Спор начался о причинах популярности. Подросло много плюсовиков (и сишников), которым подавай новое и без плюсовых или сишных легаси странностей. Вот и популярность. Я сам его нашел еще в 2013, когда искал что-то компилируемое и новое.

Чем они лучше линейных?

А они и не лучше. Лучше только порог входа и удобство, и то спорно.

vlad9486
()
Ответ на: комментарий от tailgunner

Так на Mirage тоже будут. Или ты сомневаешься?

Меньше кода, меньше багов. Понятно что совсем без не будет.

Насколько я понимаю идею unikernel (статическая линковка с библиотекой, реализующей ОС), по-другому вообще невозможно. Это по сути докер, нособирается не docker, а ld.

Похоже, да, за исключением полного отсутствия возможности покрутить руками что-то если ты сам это не предусмотрел.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Я ограничен тем что у меня нет подлежащей libc и рантайма которым я могу запустить что-то ещё.

Ну так тебе нужно стделать std-over-Solo5.

Если я захочу, например lua или python для скриптинга, то да, мне придётся закатывать солнце вручную.

О чем и речь - ты ограничен pure Rust. Но, правда, в этом конкретном случае, есть pure-Rust решение.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Fireckracker пишет в /dev/kvm, стартует не быстрее чем через qemu-system-x86_64 с full-kvm, которому также передать ядро и фс. Да, фаеркрекер может только в тап-интерфейсы.

Difrex ★★★★
()
Ответ на: комментарий от tailgunner

Ну так тебе нужно стделать std-over-Solo5.

Это вполне реализуемо. К этому я и стремлюсь, чтобы я мог взять эту свою библиотеку, взять pure rust либу которая работает в рамках std и получить бинарь который подсунуть в виртуалку.

Другое дело, что напрямую оно не везде ложится и например std::threading поверх текущей реализации solo5 - невыполним(они не дают тебе HPET или другой способ вытеснить текущий код, just fuck you, that's why), работа с сетью тоже организована очень просто: сунь пакетик и потом спроси, а есть чо в буфере.

Dark_SavanT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.