LINUX.ORG.RU

Inferno и Plan 9: Часть 1.Обзор

 ,


0

0

Цикл статей посвящен операционным системам Plan 9 и Inferno. В первой статье цикла приводится общее описание операционных систем, вторая посвящена организации системы grid-вычислений на их основе, далее мы обсудим то, как с их помощью создать полноценное распределенное приложение.
Материалы будут полезны широкому кругу читателей – от пользователей, интересующихся технологиями распределенных вычислений, до специалистов, занятых разработкой в данной области.

>>> Подробности

★★★

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

> Там, насколько я понял, модель «1 запрос - 1 нить», это немного не то, что требуется.

Это то, что просили - сервер, поддерживающий тысячи соединений.

Если очень хочется мультиплексирования - смотрите http://plan9.bell-labs.com/magic/man2html/2/thread ,функция alt

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

> Но профита от этого ровно никакого. Звучит как бы «Уговорите меня принять вашу религию» ;) Лично я сел и стал разбираться какой для МОИХ задач будет профит. Другая идеология, более аскетичная что ли.. нет рюшечек нет и траблов с ними

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

>> Там, насколько я понял, модель «1 запрос - 1 нить», это немного не то, что требуется.

Это то, что просили - сервер, поддерживающий тысячи соединений.

Какой размер стека у нити в Plan9? Что-то я сомневаюсь, что этот сервер потянет больше 4k соединений просто по расходу памяти, не говоря о том, что планировщик захлебнется.

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

>> Но профита от этого ровно никакого.

Звучит как бы «Уговорите меня принять вашу религию» ;)

Ага, причем от атеиста.

Лично я сел и стал разбираться какой для МОИХ задач будет профит

Жизни не хватит на это. Если нет шансов встретить ОС в практике, изучать можно базовые идеи, лежащие в ее основе, но не более. Базовые идеи Plan9 я изучил лет 10 назад :)

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

> Какой размер стека у нити в Plan9?

У нити размер стека можно выставить. В данном конкретном случае используются все-таки процессы.

Насколько мне известно, на этом сервере крутится сайт Bell-Labs. Похоже, выживает.

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

>> Какой размер стека у нити в Plan9?

У нити размер стека можно выставить. В данном конкретном случае используются все-таки процессы.

Да, rfork без RFMEM, это я упустил. Но тогда этот пример ничем не отличается от oldschool Unix.

Насколько мне известно, на этом сервере крутится сайт Bell-Labs. Похоже, выживает.

Никто же и не спорит, что работать это будет.

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

> Вот тебе пример: в нашей конторе сервер Plan 9 используется для ежедневного бэкапа (man venti). Профит очевиден - имеем полный бэкап за каждый день за последние полгода на одном зеркалированном терабайте )

что за контора?

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

> Простите, но это называется - шаблонное мышление.

Опять 25. Какие слова мне надо использовать чтобы узнать как писать приложение, поддерживающее тыщи соединений и при этом не нарушить законы терминологии адептов inferno?

Если очень хочется мультиплексирования - смотрите http://plan9.bell-labs.com/magic/man2html/2/thread ,функция alt

Этот alt - ну голимый поллинг же, хоть как его обзови. Только вместо сокетов идёт опрос каналов. Кстати куда подевалось «всё есть файл»?

Далее

A thread must explicitly relinquish control of the processor before another thread in the same proc is run ... Therefore, threads in different procs can preempt one another in arbitrary ways.

То есть всё тот же 1:1 с едрёным переключением контекста, правильно?

zenith ★★★
()
Ответ на: комментарий от Lonli-Lokli

> Дык, эт от того, что http _уже_ придумали и распространили)

Ну да, согласен. Но с этим то теперь надо как-то жить ;)

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

> Этот alt - ну голимый поллинг же, хоть как его обзови. Только вместо сокетов идёт опрос каналов.

А ты что - хотел новых базовых понятий? Plan9 - это Unix done right, но не более.

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

> А ты что - хотел новых базовых понятий? Plan9 - это Unix done right, но не более.

Дык меня тут упрекают в зашоренности и шаблонности мышления же ;) Я думал там какой-то хитрый m:n и прозрачный поллинг на уровне ОС, а там кроме фразы «всё есть файл» ничего нового то и нет :)

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

> а там кроме фразы «всё есть файл» ничего нового то и нет :)

Там даже фраза «всё есть файл» взята из Unix. Но в Plan9 к этой фразе отнеслись серьезно и довели концепцию до логического завершения. Получилось красиво, но... всё то же могло быть достигнуто и в рамках традиционного Unix, если бы было желание.

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

А как кто смотрит на полное отсутствие shared library?
Мне одному это кажется не всегда удобным?

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

> А как кто смотрит на полное отсутствие shared library?

А разве их там нет? Имхо, в статье только говорится про динамическое связывание у Limbo (Dis).

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

> Я имел ввиду отсутствие *.so в plan 9. За inferno не знаю.

Дык вон там выше написали что план9 весь устаревший и чоткие поцаны юзают инферно теперь ;)

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

у меня знакомый есть который использует plan 9 как десктоп на работе.
Доволен всем, даже больше - очень его радует архитектура и подход.
Но что то я так и не понял(из разговора с ним) приимущества линковать все статикой - как то не убедительно. Думал мож кто то еще объяснит...

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

>gnu-тый софт есть немного?

За инферно не скажу, но в плане9, ЕМНИП, можно запускать гнутый софт.

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

> Опять 25. Какие слова мне надо использовать чтобы узнать как писать приложение, поддерживающее тыщи соединений и при этом не нарушить законы терминологии адептов inferno?

Для начала правильно формулировать вопрос, а не «как мне написать сервер с использоанием аналога select»...

Этот alt - ну голимый поллинг же, хоть как его обзови. Только вместо сокетов идёт опрос каналов.

Так кто требовал поллинг? Получите, распишитесь. Было же написано «Если очень хочется мультиплексирования...». Библиотека thread в Plan9 - это реализация модели CSP, разработаной C. Hoare. Канал в ней (реализации) - сущность для организации взаимодействия. К файловым дескрипторам никакого отношения не имеет.

Кстати куда подевалось «всё есть файл»?

Вы файл файлом собираетесь обрабатывать? Или все-таки какой-то API для управления потоками/процессами, синхронизации, работы с памятью и т.д. позволим реализовать?

То есть всё тот же 1:1 с едрёным переключением контекста, правильно?

Укажите пожалуйста действующую популярную потоковую бибилиотеку без переключения контекста потока ядром. Да, такие были. И вымерли. По причине плохой маштабируемости и сложности реализации. Сделайте контекст потока/процесса не сильно толстым для удешевления переключения - и получите облегченные потоки/процессы - LWP. Знакомое название, не так ли?

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

> Дык вон там выше написали что план9 весь устаревший и чоткие поцаны юзают инферно теперь ;)

Насчет устаревания plan9 позволю себе не согласиться. Inferno исходно нацеливалась на рынок embedded устройств, тогда как Plan9 - многоцелевая операционка. Их некорректно сравнивать. Активность комьюнити у Plan9 значительно больше, чем у Inferno. Лично я начинал с Inferno, сейчас чаще использую Plan9.

В Plan9 динамических библиотек нет. Считается, что сложности реализации и админисирирования, вносимые динамическими библиотеками, перевешивают выгоды от их использования. Вопрос постоянно поднимается в списке рассылки новыми польователями и по популярности идет на втором месте после «как добавить нового пользователя» и наравне с «а где здесь select или его аналог».

В Inferno исходно применяется принцип модульности приложений, поэтому подобие динамических библиотек - иодули - там есть.

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

> а музыку послушать/фильм посмотреть там можно?

gnu-тый софт есть немного?

GNU'тый софт не приветствуется, но часть его можно собрать с помощью среды APE (Application POSIX Environment). Касается только софта, написанного на C - С++ в Plan9 нет и похожне не будет.

mplayer вроде бы кто-то собирал, но результаты мне не известны. Plan9 как замена Linux-десктопу не годится и не будет годиться еще доавольно долго. Возможно, никогда.

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

> Это, конечно, да. Но если у меня, например, 1 «сервер», 1 «десктоп» и

1 ноут, то получается, мне нужно не просто включить ноут с файлами

для записи, но и примонтировать нужный каталог на сервере, потом не


забыть отмонтировать. И точно также для десктопа.



Как ты понимаешь всякие автомаунты и прочие разные штуки были придуманы далеко не зря. Как и родом из 80-х концепция Sun Microsistems «network is computer».

Вместо того, чтобы включив десктоп или ноут просто получить доступ к

ресурсам сервера (не подсоединяя к самому серверу ничего лишнего).



Ты понимаешь что все равно нужно будет поднимать некий «грид» на план9 в масштабах твоего десктоп+сервер+ноут ? Астрала не бывает, я тебя разочарую. И ктото должен переписать все полезные приложения на plan9 api. Ты действительно думаешь что это ктото уже сделал? А кто? ;)

Поднять распределенную файлуху + ssh(с ключами) это не так сложно. И я тебе это заявляю так как делаю подобные конструкции уже много лет. Конструкции для удобного использования группы юниксовых машин в том стиле которым ты описал.

Тут говорили, что система уже давно реально используется.


Ты это, доки то хотябы почитай. Чтобы оценить уровень этого самого «„реального использование“.

У меня такое ощущение что ты плохо себе представляешь текущее состояние план9. Реально на план9 собирали кастомные решения конкретной сложной распределенной задачи. То есть ядро + coreutils + самопальный софт была конфигурация. Вот как ее использовали. Мне будет откровенно весело посмотреть на твою попытку юзать это дома :)

PS
у меня такое ощущение что многие еще верят в деда мороза - „чудесный план9 решающий все проблемы“ :):):)

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

> И где широкое применение 9P?

?

Я что где-то писал про широкое применение 9p ? :) Где ? :) Я писал про то что БУДЕТ шанс у план9 :) Пока у среднего программиста и грида тестового нету, две машины дома это дедсад :)

В связи с тем что будут возникать(и возникают) разнообразные грид системы, у плана9 ( если его приспособить к реалиям :) ), будет шанс. Тем более что план9 для юникс юзерспейса уже есть. Грубо говоря нагруженый сайт на амазоновском облаке(например) можно делать с любым удобным тулкитом. Если конечно потом владельцы 9p(tm) не засудят. А они это могут.

В теории это приведет к тому(при успешности) что количество людей программирующих под план9(в линукс исполнении) будет более менее увеличиваться. Расширения 9p войдут в дистры линукса, потом войдут ядерные модули для этого всего, паралельно с этим приложения начнут постепенно использовать новые возможности& И линукс мутирует в некий более юникс чем юникс, план9.

Просто пока на пути всего этого стоит лиспоболезнь(разделяемые библиотеки «ненужны» - ха), неясности с копирайтами и прочие подобные проблемы, шансы на успех невелики.

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

> Я писал про то что БУДЕТ шанс у план9 :)

Ты написал: «подошли к тому что идеи заложенные в план9, вместе с протоколами и архитектурой будут широко востребованы». Как по мне, так это значит, что соа уже «waiting in the wings to take Linux's place» почти (c)

Расширения 9p войдут в дистры линукса, потом войдут ядерные модули для этого всего, паралельно с этим приложения начнут постепенно использовать новые возможности&

Сроки назови :)

И линукс мутирует в некий более юникс чем юникс, план9.

Линукс уже сейча мутирует (прикрутить к нему usermode drivers, и микроядра можно хоронить). Но Plan9 - это архитектура. А архитектура не нужна, нужно решение практических задач. И 9P здесь вообще не видно.

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

> Линукс уже сейча мутирует

Вот примерно так Роб Пайк примерно и сказал: «Юникс мутирует и мы задолбались уже сношаться с зомби-мутантами. Мужики, давайте сделаем уже нормальную ОС». Так появился plan9.

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

>> Линукс уже сейча мутирует

Вот примерно так Роб Пайк примерно и сказал: «Юникс мутирует

Он это 20 лет назад сказал о Unix. А сейчас мутирует Linux, другая ОС.

мы задолбались уже сношаться с зомби-мутантами.

То, что Роб Пайк не осилил тогдашний зоопарк Unix, печально, но не удивительно. BSDL, проприетарные Unix'ы, надвигающиеся Unix Wars... темные времена.

Мужики, давайте сделаем уже нормальную ОС»

После чего сдадим ее в палату мер и весов для использования в качестве эталона.

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

> Ты написал: «подошли к тому что идеи заложенные в план9, вместе с

протоколами и архитектурой будут широко востребованы». Как по мне,

так это значит, что соа уже «waiting in the wings to take Linux's


place» почти (c)



Ась? Ты не отличаешь «идеи из xxxx» от «xxx займет место линукс» ? Жестоко. :)

Сроки назови :)


Пока не ясно с какой скоростью будут распостранятся грид системы. Что бы у плана9 *вообще* появился шанс :). Пока даже никто не форкнул userspace plan9 и не сделал из него линукс(бсд , етс) тулкит убрав мусор - естественно ценой отказа от 100% совместимости с plan9 исходниками. Это будет маркером того что технологию используют не только сектанты. Пока же, видимо, технологию таки юзают только сектанты.

Линукс уже сейча мутирует (прикрутить к нему usermode drivers, и

микроядра можно хоронить).



Так понятно что мутирует. Я про то что в связи с появлением *потребностей* он будет мутирывать так что бы их удовлетворить. Как один из возможных вариантов это мутации к план9. И при удачном стечении обстоятельств будет *проще* смутировать в план9, полностью реализовав API и функционал оттуда. Только вот если на этом пути будут стоять барьеры, дело кончится тем что будут разработаны свои технологии «под влиянием» план9. Удобные не сектантам. И тогда да - не будет никакого план9 в линуксе.

Но Plan9 - это архитектура. А архитектура

не нужна, нужно решение практических задач. И 9P здесь вообще не


видно.



План9 это не только архитектура это протоколы и их реализации. А практические задачи на этом этапе будут решать только для себя, гдето внутри. Скрытая фаза. И вот при наличии *удобства*, реального а не сектантско декларируемого, будут использовать уже готовый инструментарий план9.

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

Только клиентская поддержка 9P. Серверную, имхо, невозможно полноценно реализовать, не превратив линукс в план9, а этого Линус не разрешит )

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

> >Линукс уже сейча мутирует (прикрутить к нему usermode drivers, и микроядра можно хоронить).

Так понятно что мутирует. Я про то что в связи с появлением *потребностей* он будет мутирывать так что бы их удовлетворить.

Спасибо, Кэп.

Как один из возможных вариантов это мутации к план9.

Если под Plan9 здесь понимается 9P, то не будет этого. Никто не станет переписывать работающие библиотеки, чтобы вставить им «под капот» 9P, а распределенных ФС и так хватает.

дело кончится тем что будут разработаны свои технологии «под влиянием» план9. Удобные не сектантам

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

План9 это не только архитектура это протоколы и их реализации.

Если ты и правда думаешь или знаешь, что 9P кому-то нужен, *shrug*. Я знаю только про namespaces - эта идея в Linux реализована (правда, на практике применяется редко, что как бы намекает).

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

Еще один вариант развития - inferno поверх линукса, как бы еще одна java, только продвинутая в плане распределенности. На хабре кто-то рассказывал, что давно уже так пишет клиент-серверные системы.

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