The OpenNET Project / Index page

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



"Debian прекращает поддержку порта GNU/kFreeBSD "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Debian прекращает поддержку порта GNU/kFreeBSD " +/
Сообщение от Аноним (-), 20-Июл-23, 01:53 
> В bsd нет clone(), поэтому не может быть никаких клонов-суперсетов. :D

А вот это уже проблемы бсдей. В лине же за счет наличия такого сискола появилась куча инструментов для создания контейнеров достаточно просто и без гимора. И нормальный трединг тоже.

В терминах clone() и линуха это так: у thread unshare()'d еще меньше чем у process. А у контейнера unshare()'d больше чем у процесса. Так что технически fork() это clone() с конкретной комбинацией флагов ведущей к тому что новый entity будет "процессом". А мог бы и тредом или контейнером быть, с другими флагами. Это не они придумали, это из Plan9 вроде.

В стандартном posix вообще нет этой семантики. Но ее можно вызвать из юзермода, запилив свой контейнеризатор или какой-то низкоуровневый диспетчер тредов если это вдруг стало надо.

Более того - это самые "типовые" комбинации того что unshare'ится. В принципе возможны и иные. А само ядро так то уже давно может отращивать себе "ядерные треды". И даже обзавелось всякими инфраструктурами воркеров и проч. А в контейнерах можно unshare'ить лишь часть инфраструктуры. Вот так оно видит системных юзеров. А так считает себя отдельным нечто с своими юзерами. И так для ряда системных ресурсов. Типа маунтов или сети. И да, в сети контейнера свои правила фаера, шедулинг, ифейсы и проч. У ифейса есть принадлежность к namespace.

> Клон оставьте для ядра-клона.

Клон пошел очень сильно дальше примитивного fork() и сделал довольно крутые и логичные вещи.  В целом имхо вышло круто и гибко.

> Вы попробуйте внимательно прочитать глазами что написал Аноним(96).
> fork() - не subset фич clone(), нет в бсд никакого clone().

Я сказал как это в линухе. Там это уже точно не ripoff вон того - у них инфраструктура чисто технически сильно превосходит fork() и никак не может быть на нем базирована, в нем такого не было. Нельзя скопировать фичи которых нет.

> Найди мне в бсд и маке clone().

Это их проблемы. Я их вижу в linux и понимаю что его fork это надстройка над вот этим вот. Частный случай дерга куда более мощного системного вызова с конкретным набором флагов. А если другие флаги указать - это будет тредом или тем или иным вариантом контейнера, смотря что unshare'нуто. Кстати да, до некоторой степени можно передумать и опосля - вызвав уже unshare(). И процесс может стать контейнером, если правов хватает.

> Чтобы не писать AFAIK, открой маны да посмотри сам.

Мне не интересны системные кишки *bsd. Это напрасная трата времени. Факт в том что актуальная линуксная реализация fork() базирована на линуксном же clone() и вообще совсем никак не может быть базирована на вот этсамом из бзды! Вот как раз потому что в оных clone() и нету. Л - логика.

> Да ещё подумай, почему всегда была рекомендация для совместимости вызывать fork, вместо
> clone. И почему она не связана с plan9.

Эта рекомендация актуальна для портабельных программ. Однако в POSIX вообще нет такого термина как контейнер, поэтому менеджер контейнеров вы вообще по нему не напишете допустим.

Можете кстати блеснуть эрудицией и рассказать как jail контейнеры делает и насколько сложно создавалку контейнеров в бсде сделать. Я вот могу простенькую создавалку контейнеров для линуха и сам забацать. А вы так для бсды сможете? :). Не, портабельно оно не будет - posix такие вещи не регламентирует.

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

Оглавление
Debian прекращает поддержку порта GNU/kFreeBSD , opennews, 14-Июл-23, 23:44  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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