The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Представлен TinyKVM для виртуализации на уровне отдельных процессов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлен TinyKVM для виртуализации на уровне отдельных процессов"  +/
Сообщение от opennews (?), 17-Мрт-25, 13:17 
Компания Varnish Software, разрабатывающая системы для построения сетей доставки и  кэширования контента, представила открытый проект TinyKVM, развивающий инструментарий для изоляции выполнения отдельных процессов при помощи гипервизора KVM. Целью проекта заявлено создание самой быстрой системы sandbox-изоляции отдельных процессов, использующей аппаратную виртуализацию. Код проекта написан на языках C и С++, и распространяется под лицензией GPLv3...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62898

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от X512 (?), 17-Мрт-25, 13:17   +18 +/
Не понимаю зачем это нужно когда обычные процессы со своим адресным пространством и потоками -- это по сути и есть мини виртуальные машины.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #8, #10, #11, #47

4. Сообщение от Аноним (4), 17-Мрт-25, 13:22   +43 +/
Программы все еще работают слишком быстро. Надо срочно обвязать в новую прослойку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

5. Сообщение от HyC (?), 17-Мрт-25, 13:41   +7 +/
Сперва всю изоляцию с сегментной адресацией и тремя уровнями привилегий загнали в плоское адресное пространство и два уровня привилегий, поделив это друг от друга только страничным механизмом, героически сделали этот горбыль легаси, теперь стали изобретать этот велосипед обратно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #74, #98

7. Сообщение от Аноним (-), 17-Мрт-25, 13:51   +/
> разрабатывающая системы для построения сетей доставки и кэширования контента

Интересно, как они собираются зарабатывать с такой-то лицензией.

> Код проекта написан на языках C и С++

Жду новостей "выполнение кода за пределами гостевой системы из-за выхода за пределы буфера"))

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #13, #16, #54, #56

8. Сообщение от myster (ok), 17-Мрт-25, 13:55   –9 +/
А мне это видится, как замена тормознутой и ужасной JVM.
Если в вебе уже есть WebAssembly, то это для бека неплохая замена Джаве.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #25

10. Сообщение от Анонизмус (?), 17-Мрт-25, 14:21   +2 +/
Нет, KVM обеспечивает лучшую изоляцию. KVM минимально вмешивается в работу нагрузки и он построен на хардварных методах виртуализации, поддерживает шифрование памяти, лучше производительность для сложных нагрузок. Namespaces и cgroups же это полностью программная виртуализация, больше накладные расходы, и отсюда же большая уязвимость. Ну и самое главное неправильно настроенные контейнеры могут стать огромной дырой в безопасности, с KVM практически не возможно ошибиться из-за большей простоты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #26, #33, #75, #102

11. Сообщение от Аноним (11), 17-Мрт-25, 14:23   +/
там же написано. всякие ограничения, можешь заморозить\восстановить состояния. в целом нужно для запуска приложений, которым не доверяешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #28, #83

13. Сообщение от Онанимус (?), 17-Мрт-25, 14:24   –3 +/
Тоже про c и c++ в самом начале новости так подумал и увидел твой коммент. Тут почти каждая первая новость про уязвимость связана с переполнением буфера.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

16. Сообщение от Аноним (16), 17-Мрт-25, 14:31   +/
Как и многогие другие комерсы - двойным лицензированием. Они собственники этого кода, поэтому так могут.
"Licensing
TinyKVM and VMOD-TinyKVM are released under a dual licensing model:

Open Source License: GPL‑3.0 (see LICENSE).
Commercial License: Available under terms controlled by Varnish Software."

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #23

20. Сообщение от onanim (?), 17-Мрт-25, 14:37   –1 +/
> TinyKVM runs static Linux ELF programs.

не очень понятно, зачем оно нужно, если всякий мутный бинарный софт, который хотелось бы запустить в виртуалке для безопасности основной системы, поставляется в виде динамических программ, или в виде AppImage или flatpak, не очень мутный софт с доступными исходниками задолбаешься конпелять статично, а для оставшихся трёх с половиной софтин на Go, которые можно сконпелировать статично, никакая виртуалка нафиг не нужна.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40

23. Сообщение от Аноним (-), 17-Мрт-25, 14:51   +/
Ну тогда это следовало бы отразить в новости)
А то слегка вводит в заблуждение.

ps отправил запрос на изменение новости

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

25. Сообщение от senaemail (ok), 17-Мрт-25, 14:56   +1 +/
не понял, почему это замена Яве? это же просто ещё одна система виртуализации
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #38

26. Сообщение от senaemail (ok), 17-Мрт-25, 14:57   +2 +/
Непонятно, зачем изолировать отдельный процесс. Можно конкретный пример из обычной жизни, но толкьо без экзотики.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #32

28. Сообщение от senaemail (ok), 17-Мрт-25, 14:59   –1 +/
> в целом нужно для запуска приложений, которым не доверяешь.

То есть это будет конкурент для  flatpak и snap?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

29. Сообщение от Аноним (29), 17-Мрт-25, 15:01   –6 +/
Ура, Товарищи! То что я более 10 лет назад сформулировал как "нужно сделать" - сделали (вообще-то сделали раньше, но QEMU для юзерспейса вообще не создавался как песочница).
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

30. Сообщение от Аноним (30), 17-Мрт-25, 15:01   +/
>В самой виртуальной машине не используются какие-либо драйверы, ввод/вывод и виртуальные устройства.

Надо понимать, что процессы внутри этой ВМ не смогут писать логи - IO отсутствует.
Это решение для повышения безопасности? Я не ослышался?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35, #39

31. Сообщение от Аноним (31), 17-Мрт-25, 15:02   –8 +/
На сишке песочница? Это же как бэкдор в firewall.
Ответить | Правка | Наверх | Cообщить модератору

32. Сообщение от Incorporated (?), 17-Мрт-25, 15:09   +/
"системы для построения сетей доставки и кэширования контента" - для этого и пилят. DRM?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

33. Сообщение от Аноним (33), 17-Мрт-25, 15:15   +10 +/
Какие вы неграмотные вещи пишете...

Cgroups и namespaces вообще не имеют никаких накладных расходов, это просто ещё один int в таблице процессов.

И виртуализацией они тоже не являются ни в каком виде.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #73, #76

35. Сообщение от Аноним (33), 17-Мрт-25, 15:17   +/
Можно писать логи в сокет, видимо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

36. Сообщение от Аноним (29), 17-Мрт-25, 15:21   +2 +/
Я почитал блог и глянул исходник.

Это не песочница. Это просто stepping stone для TEE, смысл простой: засовывается любая обычная ELF-программа в TEE без всякого геморроя с анклавами, и их API - это всё на себя берёт TinyKVM. Просто на данном этапе TEE не реализовано.

Фильтра IO нет никакого. Это не для безопасности хоста от вредоносных приложений делалось. Это делается для "защиты" приложений от хостера. В кавычках - потому что держится такая "защита" на честном слове. Надо будет поломать очередной силк - просто придут к Intel - и аттестация будет подделана для конкретной физической машины - той, что у хостера стоит), когда быдло будет продолжать отведывать DеRьMа и наслаждаться им.

Для безопасности от хостера - только гомоморфная криптография.

Ответить | Правка | Наверх | Cообщить модератору

37. Сообщение от Аноним (37), 17-Мрт-25, 15:25   +12 +/
Сформулировал, а потом 10 лет лежал на диване в ожидании? Бока не намял?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #41, #53

38. Сообщение от myster (ok), 17-Мрт-25, 15:25   –6 +/
Обе технологии - VM заточенные под процесс.
JVM через JNI позволяет запускать программы внутри свой VM на других языках, а не только Java-программы. Так что сходство у технологий есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #49, #67, #112

39. Сообщение от Аноним (37), 17-Мрт-25, 15:26   +3 +/
логи не повышают безопасность. особенно когда их никто не читает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #44

40. Сообщение от myster (ok), 17-Мрт-25, 15:40   +1 +/
Тут ответ, хоть и про другую систему и технологию пишут
https://www.qubes-os.org/faq/#why-is-os-security-important

Идея в том, чтобы ОС не была коммунальной квартирой, а была изолированной, для программ.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #51

41. Сообщение от Аноним (41), 17-Мрт-25, 15:43   +3 +/
Он не мял бока и с телевизором разговривал, а разговаривал с Ним и формулировал то, что жалкие людишки сделают через 100, 1000 и даже 1_000_000 лет. Такой вот он скромный и незаметный прыщ-труженик.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #78

44. Сообщение от Аноним (30), 17-Мрт-25, 16:12   –1 +/
>логи не повышают безопасность

Настоящее икспертное мнение.
>особенно когда их никто не читает

Почитай в википедии про SIEM

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #48

47. Сообщение от Соль земли (?), 17-Мрт-25, 16:22   –1 +/
Твои проблемы, если не понимаешь. Такого ответа ещё было. Пользуйся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

48. Сообщение от Аноним (49), 17-Мрт-25, 16:23   +/
Логи сами себя на анализируют. SIEM - это уже не логи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

49. Сообщение от Аноним (49), 17-Мрт-25, 16:24   +2 +/
у коровы и яишницы тоже есть сходство
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #52

51. Сообщение от Аноним (51), 17-Мрт-25, 17:10   +/
> чтобы ОС не была коммунальной квартирой, а была изолированной, для программ.

кольца защиты и страничная трансляция это всегда делали. Дак что именно сабж предложил?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #55

52. Сообщение от myster (ok), 17-Мрт-25, 17:13   –2 +/
нет, ты что, у коровы и яичницы гораздо меньше сходства.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #105, #115

53. Сообщение от Аноним (53), 17-Мрт-25, 17:21   +/
Просто системное программирование - не мой профиль. Но ежу понятно - для сандбоксинга надо:
1. порвать любую прямую связь программы с ОС
2. в непрямую связь вставить агрессивный фильтр

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

Отсюда простой вывод: с появлением аппаратной виртуализации ring 2,3 изжили себя. Ограничения на инструкции? Зачем, если можно каждой программе по своему ring 0 выдать. Ограничения на доступ к памяти? Зачем, если можно каждому процессу всё полностью своё адресное пространство выдать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

54. Сообщение от Аноним (54), 17-Мрт-25, 17:23   +/
> Интересно, как они собираются зарабатывать с такой-то лицензией.

При помощи двойного лицензирования и эксплуатируя тот факт, что в системах доставки контента софт —наименее сложная и интересная часть. Нет, софт конечно нужен, и как видишь иногда даже приходится самому что-то создавать под свои нужды, но это досадная необходимость, а не ядро бизнеса.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #93

55. Сообщение от Аноним (54), 17-Мрт-25, 17:27   –2 +/
> что именно сабж предложил?

Удобный и доступный интерфейс для всего этого. Это куда важнее языка реализации и использованных технологий.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #137

56. Сообщение от ананим.orig (?), 17-Мрт-25, 17:31   +/
>> разрабатывающая системы для построения сетей доставки и кэширования контента
> Интересно, как они собираются зарабатывать с такой-то лицензией.

Зарабатывать с сетей доставки и с кода для сетей доставки - разные вещи.

>> Код проекта написан на языках C и С++
> Жду новостей "выполнение кода за пределами гостевой системы из-за выхода за пределы буфера"))

А что вам ещё остаётся то?
kvm то давно в ведре.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

67. Сообщение от Антон (??), 17-Мрт-25, 18:34   +1 +/
Java через JNI запускает любой код за пределами VM.
Код на C или C++ или ассемблере может вмешаться и в память приложений.
И нарушить работу самой Java машины, деинсталлировать еë, и поставить Doom.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #92

68. Сообщение от YetAnotherOnanym (ok), 17-Мрт-25, 18:43   +/
> Накладные расходы на вызов каждого системного вызова составляют около 2 микросекунд

Это считается мало?

Ответить | Правка | Наверх | Cообщить модератору

69. Сообщение от Ivan7 (ok), 17-Мрт-25, 18:44   +1 +/
Зачем это в реальной жизни???
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #88, #95

73. Сообщение от Wwwww (-), 17-Мрт-25, 19:15   +1 +/
Дополню, при трансляции виртуального адреса в физический в виртуальной машине сначала адрес транслируется через 4-ре таблицы в виртуальной машине, а затем полученный адрес транслируется снова через 4-ре таблицы, но уже на хосте. Рост накладных расходов не просто в два раза, а в разы. Конечно в CPU есть ITLB1, DTLB1 и т.п. для кеширования адреса к которому часто обращаются, но чем больше виртуалок тем бестрее кеш "выедается" и всё это всё больше и больше тормозит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

74. Сообщение от mma (?), 17-Мрт-25, 19:18   +1 +/
>Сперва всю изоляцию с сегментной адресацией и тремя уровнями привилегий

От первого ушли вприпрыжку и без сожаления. Забавно было бы посмотреть как надо изгаляться на 16Гб с сегментной адресацией.

А последним и так не пользовались, слишком высоки накладные расходы, хотябы на переключение контекстов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #101, #118

75. Сообщение от anonymous (??), 17-Мрт-25, 19:20   +/
Накладые расходы как раз много меньше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

76. Сообщение от Анон12345 (?), 17-Мрт-25, 19:22   +1 +/
> Cgroups и namespaces вообще не имеют никаких накладных расходов, это просто ещё один int в таблице процессов.

И правда:

> Какие вы неграмотные вещи пишете...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

78. Сообщение от Аноним (-), 17-Мрт-25, 20:16   +1 +/
Как радостно, что есть люди, способные это понять, и в то же время как грустно, что понял именно ты и что теперь тебя придётся убрать...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

83. Сообщение от Аноньимъ (ok), 17-Мрт-25, 20:33   +/
Они Erlang изобрели?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

85. Сообщение от 12yoexpert (ok), 17-Мрт-25, 21:16   +/
> для не готовых выполнять требования GPLv3 предоставляется коммерческая лицензия

как это обычно работает, если в проект контрибьютили сторонние люди? они не имеют права на часть прибыли от продаж коммерческой лицензии?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91

88. Сообщение от qwertKI (ok), 17-Мрт-25, 21:54   +/
... вот тоже ничего не понял ... " Вы можете взять обычную программу Linux, которую вы только что создали в своем терминале, и запустить ее в TinyKVM. " ... зачем ... зачем мне все это ... моей машиной управляет комп с линукс на борту , в моем телефоне линукс ( виртуализация на линукс ОС) на работе у меня ноут с Ubuntu , дома комп с Ubuntu ... меня все устраивает ... это куда ... может нужно научиться делать правильный выбор в начале ... ??? ... можно добавить SmartTV + Android Box и конечно же стиралка ... ... TinyKVM остался без работы ... и потом в терминале я могу наваять на скорую руку скрипт ... к чему из выше описанного его прикручивать ?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

91. Сообщение от Аноним (54), 18-Мрт-25, 00:53   +/
Они подписали передачу имущественных прав перед тем, как их коммит приняли и никаких прав на прибыль не имеют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #109

92. Сообщение от Аноним (-), 18-Мрт-25, 00:57   –6 +/
То есть мвхнуть рукой и начать играть в компьютерные игры? Нет, такой вариант плох, проходил. Впустую потрачено ценное жизненное время, а раз впустую значит в минус. Как минимум в минус, а с учётом какие бывают игры это ещё и вредно как просмотр фильмов ужасов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #94

93. Сообщение от Аноним (93), 18-Мрт-25, 01:10   +/
>> Интересно, как они собираются зарабатывать с такой-то лицензией.
> При помощи двойного лицензирования

SaaS-овец (т.е. владелец "сети доставки") вообще может взять хоть прям "под GPL" - он же бинарник все равно только на своих мощностях крутить будет, т.е. сорцы и доработки никому "отдавать" не обязан.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

94. Сообщение от Прохожий (??), 18-Мрт-25, 02:35   +/
>Впустую потрачено ценное жизненное время

Вся ваша жизнь в глобальных масштабах не имеет никакого смысла. Также есть мнение, высказанное писателем Ричардом Бахом в одном из его произведений: "Мы пришли в эту жизнь ради двух вещей: обучение и получение удовольствий". Я к тому, что время, проведённое за играми, вполне себе имеет смысловое наполнение с такой точки зрения.


>вредно как просмотр фильмов ужасов

Где-то читал, что просмотр фильмов ужасов наоборот полезен может быть. Так что и здесь вы неправы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #104

95. Сообщение от Аноним (95), 18-Мрт-25, 02:50   +/
затем же, зачем и кубесОС
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

97. Сообщение от slavanap (?), 18-Мрт-25, 06:17   –1 +/
Hugepage же обычно с 64кБ страницами используется, разве нет?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #129

98. Сообщение от Neon (??), 18-Мрт-25, 06:27   –1 +/
Сегменты еще со времен x8086 всех достали
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

101. Сообщение от Аноним (101), 18-Мрт-25, 08:20   +/
Какие проблемы создать сегмент на 48бит адресного пространства?

Тем временем, 5 уровней таблицы страниц, разные по размерам страницы, для которых разные таблицы. Зато не изгаляются.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #127

102. Сообщение от freehck (ok), 18-Мрт-25, 08:38   +/
> Namespaces и cgroups же это полностью программная виртуализация, больше накладные расходы

Сомнительный тезис. Они реализованы в ядре. Расходы вроде быть примерно одинаковые.
Как бы, вы ж в KVM тоже что-то запустите ведь, и это что-то должно будет тоже с железом взаимодействовать как-то.
В связи с этим:

> лучше производительность для сложных нагрузок

Поискал сравнение перформанса между kvm/skvm/tkvm и ns+cg, не нашёл толком.
Если у вас есть аналитика на эту тему, я был бы признателен.

> с KVM практически не возможно ошибиться из-за большей простоты

ну кстати да, вероятно

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #139

104. Сообщение от тоже Анонимemail (ok), 18-Мрт-25, 09:21   +/
Не в одном, а в трех как минимум.
И Бах не давал оправданий растительной жизни, он предлагал задавать себе вопросы.
Например, "ну и чему ты научился, потратив годы на задрoтство?"...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

105. Сообщение от Аноним (49), 18-Мрт-25, 09:22    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #110

106. Сообщение от Аноним (106), 18-Мрт-25, 09:56   +/
>Основные возможности TinyKVM:
>Ограничение потребления памяти.

Интересно как. Современный софт не умеет ограничивать себя в потреблении памяти, hello world на go требует для своего запуска 1 Гб виртуальной памяти, на меньшем падает. А после того, как виртуальная память выделена, процесс может её сколь угодно много занимать, единственный вариант для борьбы с этим - убийство процесса.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #120, #130

109. Сообщение от 12yoexpert (ok), 18-Мрт-25, 11:32   +/
это в GPL такое написано? как подпись происходит и почему владелец репы не подписывал? он ведь такой же коммитер
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

110. Сообщение от myster (ok), 18-Мрт-25, 13:15   –1 +/
на глаз
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

111. Сообщение от pda (ok), 18-Мрт-25, 13:47   +/
cow2 это новый elf... :-/
Ответить | Правка | Наверх | Cообщить модератору

112. Сообщение от аролп5 (?), 18-Мрт-25, 14:50   +/
Нет, jni работает внутри ОС, а не в jvm
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #116, #126

115. Сообщение от Аноним (115), 18-Мрт-25, 15:02   –1 +/
> GPLv3 (для не готовых выполнять требования GPLv3 предоставляется коммерческая лицензия).

GPL прямо запрещает изенение или добавление любык пунктов к GPL лицензии а, значит и удаление их т.б.всех... хоть автором ПО.
Если они это игнрируют - они нарушиители GPL и закона.
Их исходный код под GPL - нелегален и пользователям...
Проект - максимувм в топку...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #117, #131

116. Сообщение от myster (ok), 18-Мрт-25, 15:22   +/
Спасибо. Я как свинья в апельсинах в java.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

117. Сообщение от myster (ok), 18-Мрт-25, 15:30   +/
> GPL прямо запрещает изенение или добавление любык пунктов к GPL лицензии а,
> значит и удаление их т.б.всех... хоть автором ПО.

можно накрутить свой проприетарный код поверх открытого GPL кода, при условии, что вы не изменяете оригинальный код. Чем собственно пользуются многие российские дистрибутивы Linux, например, им это не мешает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

118. Сообщение от fidoman (ok), 18-Мрт-25, 15:59   +/
Слишком высоки, неужто даже больше, чем

"Накладные расходы на вызов каждого системного вызова составляют около 2 микросекунд."

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

119. Сообщение от fidoman (ok), 18-Мрт-25, 16:04   +/
Это рано или поздно должно было произойти, низведение виртуализации до того, что должно было обеспечиваться механизмами защищённого режима.
А когда и kvm издырявят окончательно ради того, чтобы эта дичь нормально работала, очевидно интел/амд анонсируют ещё более крутую какую-нибудь метавиртуализацию/партишны/ещё что-нибудь и начнётся следующий круг.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #128

120. Сообщение от fidoman (ok), 18-Мрт-25, 16:06   +/
Ну да, ведь без KVM ОС никак не может узнать, сколько памяти процесс потребляет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #136

126. Сообщение от день открытых дверей (-), 18-Мрт-25, 19:51   +/
Справедливости ради jni уже далеко не первый год как не исползуется. Так что все рассуждения про него явно устарели.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

127. Сообщение от Аноним (-), 18-Мрт-25, 20:09   +/
> Какие проблемы создать сегмент на 48бит адресного пространства?

А толку? Вот какой глубинный смысл в этом?

Страницы позволяют создавать виртуальное адресное пространство которое отображается на физическое не линейно с гранулярностью в размер страницы. То есть последовательные страницы не обязательно отображаются на последовательные физические адреса. Это хорошо и удобно, потому что позволяет маппинг памяти, со всеми фишками типа shared memory и swapping. Эти вещи не противоречат сегментам, но для того чтобы иметь сегменты, которые так могут мапится на физическую память, всё равно придётся создавать таблицы страниц, которые будут задавать отображение. Отсюда вопрос: в чём тогда смысл создания сегментов?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

128. Сообщение от вымя (?), 18-Мрт-25, 20:35   +/
> Это рано или поздно должно было произойти, низведение виртуализации до того, что
> должно было обеспечиваться механизмами защищённого режима.

Побег двойным chroot, неаккуратная работа docker с namespaces и ошибки в самой реализации namespaces, уязвимости в невидии и io_uring — это всё, по-вашему, из-за одного адресного пространства на всех, что ли? Вылезайте из 1989-го, у современных ядер attack surface огого.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #142

129. Сообщение от PnD (??), 18-Мрт-25, 21:03   +/
# grep Hugepagesize /proc/meminfo
Hugepagesize:       2048 kB

В принципе, должно зависеть от CPU. Но практически всегда (x86_64, arm64) — вот так:
# hugeadm --page-sizes-all
2097152
1073741824

Или 2МБ (по умолчанию), или 1ГБ (не сталкивался с применением).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

130. Сообщение от PnD (??), 18-Мрт-25, 21:29   +/
Ближе к 1ГБ виртуальной. Которая вообще по фигу. "Обещать — не значит жениться."
И в районе 10МБ резидентной. Которую можно (жёстко) ограничить, посадив процесс в memory c-group.
И если RSS хоть на байт выбежит за лимит, к процессу придёт всамделишный OOM-киллер.
Мне не очень нравится такой трюк. Но у соседей в "кубиках" некие вопросы решаются именно так.

…С другой стороны, 20кБ-фитюлька с буквально четырьмя syscall'ами на сях (вывод кой-чего на консоль). На свою миллисекундную работу (буквально, 3мс запустился-показал сотню vlan-всё) жрёт 1.5 МБ RSS в моменте. "640 килобайт хватит всем", ага.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #138

131. Сообщение от Аноним (131), 18-Мрт-25, 22:00   +1 +/
А они и не меняют GPL, они предоставляют под совершенно другой лицензией, что GPL запретить не может ни явно, ни неявно. Но раз ты уверен, что незаконно — подавай в суд, прославишься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

133. Сообщение от Ддд (?), 18-Мрт-25, 23:04   +/
Тут походу никто не понял что это аппаратная виртуализация ради надежности но вместо гостевой ОС  все вызовы идут в хост ОС. Так понятнее?  И не нужно плясать с докером и lxd
Ответить | Правка | Наверх | Cообщить модератору

136. Сообщение от Аноним (106), 19-Мрт-25, 11:38   +/
Давайте, расскажите, как это сделать, с учётом overcommit-а, а так же того, что большая часть софта выделяет памяти на порядок больше, чем использует. Тот же go выделяет 1 Гб виртуальной памяти сразу же, даже если запускается буквально hello world.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #141

137. Сообщение от nuclight (??), 19-Мрт-25, 11:41   +/
Покусанный дизайнерами? Технологии как раз важнее, интерфейс можно навертеть какой угодно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

138. Сообщение от Аноним (106), 19-Мрт-25, 11:53   +/
>Которая вообще по фигу. "Обещать — не значит жениться."

Нет. Вот есть вызов malloc, запрашивающий 10 Гб памяти. Без оверкоммита он вернёт либо указатель, если память есть, либо null, если памяти нет, что уже можно обработать в коде. С оверкоммитом он всегда вернёт указатель, которым уже можно начинать пользоваться. Если это массив, то при его заполнении память начнёт постепенно уходить, и размер резидентной начнёт приближаться к размеру виртуальной. И в тот момент, когда закончаться свободные страницы в физической памяти либо придёт oom, либо система просто зависнет. С точки зрения процесса совершенно непонятно, почему для a[i] = v; память есть, а для a[i + 1] = v; уже нет
>И в районе 10МБ резидентной. Которую можно (жёстко) ограничить, посадив процесс в memory c-group.

При этом ограничении процесс просто упадёт, побив данные. Файлы в кеше останутся не удалёнными, файлы в процессе работы останутся частично записанными.
>И если RSS хоть на байт выбежит за лимит, к процессу придёт всамделишный OOM-киллер.

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

А мне это не нравится совсем
>С другой стороны, 20кБ-фитюлька с буквально четырьмя syscall'ами на сях

Как хорошо, что в 2025 году можно запускать софт на 20 Кб, как и в 90-ых

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

139. Сообщение от Аноним (139), 19-Мрт-25, 18:18   +/
> Поискал сравнение перформанса между kvm/skvm/tkvm и ns+cg, не нашёл толком.

Про docker то скорее всего слышали? ns+cg - это те самые контейнеры. И их сравнение с kvm найти уже никакой проблемы не составляет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #140

140. Сообщение от freehck (ok), 19-Мрт-25, 18:24   +/
Окей, окей, лишнего написал. Конечно же интересует именно что skvm/tkvm.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

141. Сообщение от fidoman (ok), 20-Мрт-25, 18:36   +/
Что именно рассказать? Что ОС "забыла" сколько страниц на физическую память отмапила?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #144

142. Сообщение от fidoman (ok), 20-Мрт-25, 18:39   +/
Одно адресное пространство на всех? А вы точно уверены насчёт того, кто именно в 1989?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128 Ответы: #143

143. Сообщение от вымя (?), 20-Мрт-25, 22:57   +/
> Одно адресное пространство на всех? А вы точно уверены насчёт того, кто
> именно в 1989?

Ну а кто из нас в начале треда пишет про то, что защищённый режим — панацея от всего, забывая о других видах уязвимостей?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #145

144. Сообщение от Аноним (106), 21-Мрт-25, 09:42   +/
Какие варианты кроме убийства процесса с возможной порчей файлов вы можете предложить? Надеюсь, вы знаете, что даже запись в массив может привести к выделению новых страниц в физической памяти?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #146

145. Сообщение от fidoman (ok), 21-Мрт-25, 12:34   +/
Вы точно уверены, что там так и было написано - "панацея от всего"?
Речь о совершенно обратном, что если напихивать в kvm фишки для интеграции виртуализованного процесса в хост ОС (а их будут напихивать, потому что hello world это одно, а нормальный процесс со всеми доступами к fs, ipc и т.д. это уже совсем другое), от защиты, которую даёт виртуализация не останется ничего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143

146. Сообщение от fidoman (ok), 21-Мрт-25, 12:58   +/
> Какие варианты кроме убийства процесса с возможной порчей файлов вы можете предложить?
> Надеюсь, вы знаете, что даже запись в массив может привести к
> выделению новых страниц в физической памяти?

Ну так RTFM

ps ax -o pid,user,args,vsz,rss,uss

Внезапно, page fault, который происходит при записи в неотмапленную страницу, обрабатывается тоже ОС, а не какими-нибудь волшебными феями.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144 Ответы: #147

147. Сообщение от Аноним (106), 21-Мрт-25, 14:29   +/
>Внезапно, page fault, который происходит при записи в неотмапленную страницу, обрабатывается тоже ОС

Вот есть какой-то цикл на псевдокоде.
int * arr = malloc(big_size * sizeof(int));
for (size_t i = 0; i < big_size; i++) {
    arr[i] = 0;
}
Вот на arr[i] = 0; памяти ещё хватало, а вот на arr[i++] = 0 - уже нет. Как сообщить об этом процессу, чтобы он мог это обработать, и самое главное, почему он должено обрабатывать эту ситуацию, а не int * arr = malloc(big_size * sizeof(int))?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #148

148. Сообщение от fidoman (ok), 21-Мрт-25, 15:40   +/
Ваш вопрос понятен, но будьте справедливы - в новости указано "ограничение потребления памяти", что можно сделать и через cgroups, а не "гарантия доступности физической памяти", что действительно проще сделать виртуалкой. Кстати, и не факт, что с KVM это сработает - если в Hyper-V физическая память на виртуалку нарезается сразу, то насчёт KVM я не уверен.

Так что простого решения нет, только mlock + инициализация.
Ну oom_score_adj.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру