The OpenNET Project / Index page

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

Представлен TinyKVM для виртуализации на уровне отдельных процессов

17.03.2025 12:26

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

TinyKVM рассчитан на изолированный запуск любых консольных программ для Linux с производительностью, близкой к обычному выполнению. Накладные расходы на вызов каждого системного вызова составляют около 2 микросекунд. В качестве примера применения проекта упоминается дополнительная изоляция процессов в системах кэширования и обработки web-запросов. TinyKVM разработан для замены эмулятора libriscv, применяемого для изоляции обработки каждого web-запроса в платформе Varnish. Дополнительно создан вариант библиотеки libvmod, позволяющий выполнять модули к Varnish с использованием TinyKVM.

При запуске при помощи TinyKVM машинный код программ выполняется без эмулирующих прослоек на CPU и ограничивается при помощи API гипервизора KVM, что позволяет исключить накладные расходы и добиться производительности близкой к выполнению без виртуализации. Основные возможности TinyKVM:

  • Ограничение максимального времени исполнения. Программа может быть принудительно остановлена после истечения таймаута, без вызова обработчиков сигналов и потоков.
  • Ограничение потребления памяти.
  • Возможность ответвления (fork) неинициализированных экземпляров виртуальных машин от одного инициализированного экземпляра изолированной программы. Копии виртуальных машин создаются в режиме copy-on-write, что позволяет существенно экономить память, храня только один экземпляр общих данных.
  • Ответвлённые процессы могут сбрасываться в предыдущее состояние (например, ответвлённый обработчик http-запросов может без перезапуска возвращаться в исходное состояние после обработки каждого запроса). Экземпляр изолированного процесса также может быть сброшен до состояния другой виртуальной машины, а не той из которой он был ответвлён, но накладные расходы в этому случае будут выше так как потребуется изменение таблицы страниц памяти.
  • Возможность создания статических страниц памяти во время инициализации, пригодных даже для изощрённых runtime, например, как в языке Go. В этом случае изменение допускается только для страниц, находящихся в режиме copy-on-write.
  • Поддержка удалённой отладки при помощи GDB. Возможна отладка на лету с возобновлением исполнения.

Гостевое окружение TinyKVM образует урезанное ядро, защищённого от изменений, собранное с включением зашиты страниц памяти и использующее SMAP (Supervisor Mode Access Prevention) и SMEP (Supervisor Mode Execution Prevention) для дополнительной изоляции между ядром и пространством пользователя. TinyKVM использует большие страницы памяти (hugepage) для повышения производительности. Вызываемые программами системные вызовы перехватываются эмулятором и перенаправляются в хост-окружение (задержка на обработку и трансляцию эмулируемого вызова составляет около 2 микросекунд). В самой виртуальной машине не используются какие-либо драйверы, ввод/вывод и виртуальные устройства.



  1. Главная ссылка к новости (https://info.varnish-software....)
  2. OpenNews: Выпуск HTTP-акселератора Varnish 6.0
  3. OpenNews: Компании Intel и Hyper представили проект Kata Containers
  4. OpenNews: Amazon открыл код легковесной платформы виртуализации Firecracker
  5. OpenNews: Выпуск Kata Containers 3.4 с изоляцией на основе виртуализации
  6. OpenNews: Выпуск CRIU 4.0, системы для сохранения и восстановления состояния процессов в Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62898-tinykvm
Ключевые слова: tinykvm, kvm, virtual
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (83) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, X512 (?), 13:17, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +18 +/
    Не понимаю зачем это нужно когда обычные процессы со своим адресным пространством и потоками -- это по сути и есть мини виртуальные машины.
     
     
  • 2.4, Аноним (4), 13:22, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +42 +/
    Программы все еще работают слишком быстро. Надо срочно обвязать в новую прослойку.
     
  • 2.8, myster (ok), 13:55, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –8 +/
    А мне это видится, как замена тормознутой и ужасной JVM.
    Если в вебе уже есть WebAssembly, то это для бека неплохая замена Джаве.
     
     
  • 3.25, sena (ok), 14:56, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не понял, почему это замена Яве? это же просто ещё одна система виртуализации
     
     
  • 4.38, myster (ok), 15:25, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Обе технологии - VM заточенные под процесс.
    JVM через JNI позволяет запускать программы внутри свой VM на других языках, а не только Java-программы. Так что сходство у технологий есть.
     
     
  • 5.49, Аноним (49), 16:24, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    у коровы и яишницы тоже есть сходство
     
     
  • 6.52, myster (ok), 17:13, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет, ты что, у коровы и яичницы гораздо меньше сходства.
     
     
  • 7.105, Аноним (49), 09:22, 18/03/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 8.110, myster (ok), 13:15, 18/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 7.115, Аноним (115), 15:02, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > GPLv3 (для не готовых выполнять требования GPLv3 предоставляется коммерческая лицензия).

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

     
     
  • 8.117, myster (ok), 15:30, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    можно накрутить свой проприетарный код поверх открытого GPL кода, при условии, ч... текст свёрнут, показать
     
  • 8.131, Аноним (131), 22:00, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А они и не меняют GPL, они предоставляют под совершенно другой лицензией, что GP... текст свёрнут, показать
     
  • 5.67, Антон (??), 18:34, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Java через JNI запускает любой код за пределами VM.
    Код на C или C++ или ассемблере может вмешаться и в память приложений.
    И нарушить работу самой Java машины, деинсталлировать еë, и поставить Doom.
     
     
  • 6.92, Аноним (-), 00:57, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • –6 +/
    То есть мвхнуть рукой и начать играть в компьютерные игры? Нет, такой вариант плох, проходил. Впустую потрачено ценное жизненное время, а раз впустую значит в минус. Как минимум в минус, а с учётом какие бывают игры это ещё и вредно как просмотр фильмов ужасов.
     
     
  • 7.94, Прохожий (??), 02:35, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Впустую потрачено ценное жизненное время

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


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

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

     
     
  • 8.104, тоже Аноним (ok), 09:21, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не в одном, а в трех как минимум И Бах не давал оправданий растительной жизни, ... текст свёрнут, показать
     
  • 8.132, Аноним (-), 22:36, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вся ваша жизнь в глобальных масштабах не имеет никакого смысла - это рассужден... большой текст свёрнут, показать
     
     
  • 9.134, Аноним (134), 23:08, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если кому то нравятся фильмы ужасов это не здоровые люди - это не здоровый подхо... текст свёрнут, показать
     
     
  • 10.135, Аноним (-), 23:35, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    это не здоровый подход в первую очередь к жизни - не правильный ... текст свёрнут, показать
     
  • 5.112, аролп5 (?), 14:50, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, jni работает внутри ОС, а не в jvm
     
     
  • 6.116, myster (ok), 15:22, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо. Я как свинья в апельсинах в java.
     
  • 6.126, день открытых дверей (-), 19:51, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Справедливости ради jni уже далеко не первый год как не исползуется. Так что все рассуждения про него явно устарели.
     
  • 2.10, Анонизмус (?), 14:21, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, KVM обеспечивает лучшую изоляцию. KVM минимально вмешивается в работу нагрузки и он построен на хардварных методах виртуализации, поддерживает шифрование памяти, лучше производительность для сложных нагрузок. Namespaces и cgroups же это полностью программная виртуализация, больше накладные расходы, и отсюда же большая уязвимость. Ну и самое главное неправильно настроенные контейнеры могут стать огромной дырой в безопасности, с KVM практически не возможно ошибиться из-за большей простоты.
     
     
  • 3.26, sena (ok), 14:57, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Непонятно, зачем изолировать отдельный процесс. Можно конкретный пример из обычной жизни, но толкьо без экзотики.
     
     
  • 4.32, Incorporated (?), 15:09, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "системы для построения сетей доставки и кэширования контента" - для этого и пилят. DRM?
     
  • 3.33, Аноним (33), 15:15, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Какие вы неграмотные вещи пишете...

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

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

     
     
  • 4.73, Wwwww (-), 19:15, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дополню, при трансляции виртуального адреса в физический в виртуальной машине сначала адрес транслируется через 4-ре таблицы в виртуальной машине, а затем полученный адрес транслируется снова через 4-ре таблицы, но уже на хосте. Рост накладных расходов не просто в два раза, а в разы. Конечно в CPU есть ITLB1, DTLB1 и т.п. для кеширования адреса к которому часто обращаются, но чем больше виртуалок тем бестрее кеш "выедается" и всё это всё больше и больше тормозит.
     
  • 4.76, Анон12345 (?), 19:22, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Cgroups и namespaces вообще не имеют никаких накладных расходов, это просто ещё один int в таблице процессов.

    И правда:

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

     
  • 3.75, anonymous (??), 19:20, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Накладые расходы как раз много меньше.
     
  • 3.102, freehck (ok), 08:38, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Namespaces и cgroups же это полностью программная виртуализация, больше накладные расходы

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

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

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

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

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

     
     
  • 4.139, Аноним (139), 18:18, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Поискал сравнение перформанса между kvm/skvm/tkvm и ns+cg, не нашёл толком.

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

     
     
  • 5.140, freehck (ok), 18:24, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Окей, окей, лишнего написал. Конечно же интересует именно что skvm/tkvm.
     
  • 2.11, Аноним (11), 14:23, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    там же написано. всякие ограничения, можешь заморозить\восстановить состояния. в целом нужно для запуска приложений, которым не доверяешь.
     
     
  • 3.28, sena (ok), 14:59, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > в целом нужно для запуска приложений, которым не доверяешь.

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

     
  • 3.83, Аноньимъ (ok), 20:33, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они Erlang изобрели?
     
  • 2.47, Соль земли (?), 16:22, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Твои проблемы, если не понимаешь. Такого ответа ещё было. Пользуйся.
     

  • 1.5, HyC (?), 13:41, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Сперва всю изоляцию с сегментной адресацией и тремя уровнями привилегий загнали в плоское адресное пространство и два уровня привилегий, поделив это друг от друга только страничным механизмом, героически сделали этот горбыль легаси, теперь стали изобретать этот велосипед обратно.
     
     
  • 2.74, mma (?), 19:18, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Сперва всю изоляцию с сегментной адресацией и тремя уровнями привилегий

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

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

     
     
  • 3.101, Аноним (101), 08:20, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какие проблемы создать сегмент на 48бит адресного пространства?

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

     
     
  • 4.127, Аноним (-), 20:09, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Какие проблемы создать сегмент на 48бит адресного пространства?

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

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

     
  • 3.118, fidoman (ok), 15:59, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком высоки, неужто даже больше, чем

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

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

     
  • 2.98, Neon (??), 06:27, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сегменты еще со времен x8086 всех достали
     

  • 1.7, Аноним (-), 13:51, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > разрабатывающая системы для построения сетей доставки и кэширования контента

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

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

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

     
     
  • 2.13, Онанимус (?), 14:24, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Тоже про c и c++ в самом начале новости так подумал и увидел твой коммент. Тут почти каждая первая новость про уязвимость связана с переполнением буфера.
     
  • 2.16, Аноним (16), 14:31, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как и многогие другие комерсы - двойным лицензированием. Они собственники этого кода, поэтому так могут.
    "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."

     
     
  • 3.23, Аноним (-), 14:51, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда это следовало бы отразить в новости)
    А то слегка вводит в заблуждение.

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

     
  • 2.54, Аноним (54), 17:23, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, как они собираются зарабатывать с такой-то лицензией.

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

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

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

     
  • 2.56, ананим.orig (?), 17:31, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> разрабатывающая системы для построения сетей доставки и кэширования контента
    > Интересно, как они собираются зарабатывать с такой-то лицензией.

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

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

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

     

  • 1.20, onanim (?), 14:37, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > TinyKVM runs static Linux ELF programs.

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

     
     
  • 2.40, myster (ok), 15:40, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут ответ, хоть и про другую систему и технологию пишут
    https://www.qubes-os.org/faq/#why-is-os-security-important

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

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

     
     
  • 3.51, Аноним (51), 17:10, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > чтобы ОС не была коммунальной квартирой, а была изолированной, для программ.

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

     
     
  • 4.55, Аноним (54), 17:27, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > что именно сабж предложил?

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

     
     
  • 5.137, nuclight (??), 11:41, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Покусанный дизайнерами? Технологии как раз важнее, интерфейс можно навертеть какой угодно.
     

  • 1.29, Аноним (29), 15:01, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Ура, Товарищи! То что я более 10 лет назад сформулировал как "нужно сделать" - сделали (вообще-то сделали раньше, но QEMU для юзерспейса вообще не создавался как песочница).
     
     
  • 2.37, Аноним (37), 15:25, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Сформулировал, а потом 10 лет лежал на диване в ожидании? Бока не намял?
     
     
  • 3.41, Аноним (41), 15:43, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Он не мял бока и с телевизором разговривал, а разговаривал с Ним и формулировал то, что жалкие людишки сделают через 100, 1000 и даже 1_000_000 лет. Такой вот он скромный и незаметный прыщ-труженик.
     
     
  • 4.78, Аноним (-), 20:16, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как радостно, что есть люди, способные это понять, и в то же время как грустно, что понял именно ты и что теперь тебя придётся убрать...
     
  • 3.53, Аноним (53), 17:21, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Просто системное программирование - не мой профиль. Но ежу понятно - для сандбоксинга надо:
    1. порвать любую прямую связь программы с ОС
    2. в непрямую связь вставить агрессивный фильтр

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

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

     

  • 1.30, Аноним (30), 15:01, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В самой виртуальной машине не используются какие-либо драйверы, ввод/вывод и виртуальные устройства.

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

     
     
  • 2.35, Аноним (33), 15:17, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Можно писать логи в сокет, видимо.
     
  • 2.39, Аноним (37), 15:26, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    логи не повышают безопасность. особенно когда их никто не читает
     
     
  • 3.44, Аноним (30), 16:12, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >логи не повышают безопасность

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

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

     
     
  • 4.48, Аноним (49), 16:23, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Логи сами себя на анализируют. SIEM - это уже не логи.
     

  • 1.31, Аноним (31), 15:02, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    На сишке песочница? Это же как бэкдор в firewall.
     
  • 1.36, Аноним (29), 15:21, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Я почитал блог и глянул исходник.

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

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

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

     
  • 1.68, YetAnotherOnanym (ok), 18:43, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Накладные расходы на вызов каждого системного вызова составляют около 2 микросекунд

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

     
  • 1.69, Ivan7 (ok), 18:44, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем это в реальной жизни???
     
     
  • 2.88, qwertKI (ok), 21:54, 17/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ... вот тоже ничего не понял ... " Вы можете взять обычную программу Linux, которую вы только что создали в своем терминале, и запустить ее в TinyKVM. " ... зачем ... зачем мне все это ... моей машиной управляет комп с линукс на борту , в моем телефоне линукс ( виртуализация на линукс ОС) на работе у меня ноут с Ubuntu , дома комп с Ubuntu ... меня все устраивает ... это куда ... может нужно научиться делать правильный выбор в начале ... ??? ... можно добавить SmartTV + Android Box и конечно же стиралка ... ... TinyKVM остался без работы ... и потом в терминале я могу наваять на скорую руку скрипт ... к чему из выше описанного его прикручивать ?


     
  • 2.95, Аноним (95), 02:50, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    затем же, зачем и кубесОС
     

  • 1.85, 12yoexpert (ok), 21:16, 17/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > для не готовых выполнять требования GPLv3 предоставляется коммерческая лицензия

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

     
     
  • 2.91, Аноним (54), 00:53, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они подписали передачу имущественных прав перед тем, как их коммит приняли и никаких прав на прибыль не имеют.
     
     
  • 3.109, 12yoexpert (ok), 11:32, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    это в GPL такое написано? как подпись происходит и почему владелец репы не подписывал? он ведь такой же коммитер
     

  • 1.97, slavanap (?), 06:17, 18/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Hugepage же обычно с 64кБ страницами используется, разве нет?
     
     
  • 2.129, PnD (??), 21:03, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    # grep Hugepagesize /proc/meminfo
    Hugepagesize:       2048 kB

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

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

     

  • 1.106, Аноним (106), 09:56, 18/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Основные возможности TinyKVM:
    >Ограничение потребления памяти.

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

     
     
  • 2.120, fidoman (ok), 16:06, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, ведь без KVM ОС никак не может узнать, сколько памяти процесс потребляет.
     
     
  • 3.136, Аноним (106), 11:38, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте, расскажите, как это сделать, с учётом overcommit-а, а так же того, что большая часть софта выделяет памяти на порядок больше, чем использует. Тот же go выделяет 1 Гб виртуальной памяти сразу же, даже если запускается буквально hello world.
     
  • 2.130, PnD (??), 21:29, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ближе к 1ГБ виртуальной. Которая вообще по фигу. "Обещать — не значит жениться."
    И в районе 10МБ резидентной. Которую можно (жёстко) ограничить, посадив процесс в memory c-group.
    И если RSS хоть на байт выбежит за лимит, к процессу придёт всамделишный OOM-киллер.
    Мне не очень нравится такой трюк. Но у соседей в "кубиках" некие вопросы решаются именно так.

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

     
     
  • 3.138, Аноним (106), 11:53, 19/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет Вот есть вызов malloc, запрашивающий 10 Гб памяти Без оверкоммита он вернё... большой текст свёрнут, показать
     

  • 1.111, pda (ok), 13:47, 18/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    cow2 это новый elf... :-/
     
  • 1.119, fidoman (ok), 16:04, 18/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это рано или поздно должно было произойти, низведение виртуализации до того, что должно было обеспечиваться механизмами защищённого режима.
    А когда и kvm издырявят окончательно ради того, чтобы эта дичь нормально работала, очевидно интел/амд анонсируют ещё более крутую какую-нибудь метавиртуализацию/партишны/ещё что-нибудь и начнётся следующий круг.
     
     
  • 2.128, вымя (?), 20:35, 18/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Это рано или поздно должно было произойти, низведение виртуализации до того, что
    > должно было обеспечиваться механизмами защищённого режима.

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

     

  • 1.133, Ддд (?), 23:04, 18/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тут походу никто не понял что это аппаратная виртуализация ради надежности но вместо гостевой ОС  все вызовы идут в хост ОС. Так понятнее?  И не нужно плясать с докером и lxd
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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