LINUX.ORG.RU
ФорумTalks

Plan 9

 ,


0

3

Продолжаем:

Операционная система Plan9 опередила свое время на 20 лет. Задачи для решения которых она была проектрована еще не стояли перед коммерчским миром IT, во всю испольовался однозадачный DOS, и UNIX более чем хватало для решения проблем.

По этой причине Plan9 не вышла за пределы акадамического круга разработчиков, так и не придя к прикладным разработчикам и админам. И как следствие сильно отстала от мейнстрима, не в плане концепции, а в плане инструментария и драйверов.

До появления ChatGPT казалось, что это отставание вечно, и Plan9 уже не возможно вернуть, так как под UNIX написанны «терра-тонны» кода, и как их портировать. Но LLM дает второй шанс. Так как на LLM можно сложить перевод драйверов и перевод системных библиотек для реализации новых сетевых протоколов таких как QUIС и HTTP/3. Приложения уже напишут разработчики на Go (который поддерживается в Plan9 нативно, команда Роба Пайка не забывает Plan9).

Plan9 действительно отличается от UNIX, так же как UNIX отличается от Windows. Потому, что предоставляет универсальный интерфейс для любых объектов системы. Программисту достаточно понять одну концепцию и он избавляется от необходимости постоянного изучения новых интерфейсов. Это как STDIN/STDOUT распределенные далеко за предлы CLI.

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

Plan9 is not a product

From: s...@ulysses.homer.nj.att.com (Steven Bellovin)
Newsgroups: comp.unix.wizards
Subject: Re: Plan 9? (+ others)
Date: 23 Aug 88 16:19:40 GMT

«Plan 9» — это не продукт и не задумывался как таковой. Это исследование — экспериментальное изучение иного подхода к вычислениям. Разработчики исходили из нескольких базовых предположений: что процессоры стали очень дешёвыми, но мы не умеем эффективно их объединять; что хорошие сетевые технологии крайне важны; что интеллектуальный пользовательский интерфейс (включая растровый дисплей и мышь) — это верное решение; что существующие системы с сетями, мышью и т.д. не являются правильным путём, и в частности, что современные рабочие станции — не тот ориентир, к которому стоит стремиться. (Нет, я не буду утруждать себя объяснением всех их доводов — это материал для отдельной длинной статьи.) В конечном счёте, система UNIX как таковая мертва в качестве инструмента для серьёзных исследований в области структуры операционных систем — она стала слишком громоздкой и слишком ограничена более чем 15-летней историей.


Подробнее:



Последнее исправление: lbvf50txt (всего исправлений: 3)

Очень хорошая копипаста (llm?).

Только plan9 действительно всё, хоть и действительно опередила свое время. И тут даже не в опережении дело и не во времени, а в том, что деньги у AT&T тогда закончились и рисерч ОС в Bell Labs свернули. Сейчас беллабсы работают на Ноклу и пилят новые железяки под 6G чтоб на луне работало (тру стори, инсайд инфа, я там работал в т.ч. над ними).

Еще правильным людям стало немного стыдно за Роб Пайка потому что тот ушел в гугл, а после $%^& под названием Go репутация упала ниже плинтуса. Теперь на него из лабсов смотрят как на Go.

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

после $%^& под названием Go репутация упала ниже плинтуса.

А что не так с Го? Это буквально Limbo из Inferno, только в слегка другой обложке. Языки практически одинаковые.

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

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

X512 ★★★★★
()

Продолжаем:

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

Есть инструкции по написанию драйверов? Да и вообще ко всем исходникам системы? Я с ходу не нашёл.

Jullyfish
()

Но LLM дает второй шанс. Так как на LLM можно сложить перевод драйверов и перевод системных библиотек для реализации новых сетевых протоколов

Приложения уже напишут разработчики на Go

Держи клоуна.

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

Есть инструкции по написанию драйверов? Да и вообще ко всем исходникам системы? Я с ходу не нашёл.

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

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

Главное не рассказывать никому кто спонсировал Bell Labs.

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

Главное не рассказывать, какая из UNIX систем была самой популярной в начале 1980х и сильно продвинула этот UNIX в массы.

hateyoufeel ★★★★★
()

Операционная система Plan9 опередила свое время на 20 лет

Ну да, она уже тогда тормозила из-за сетевой архитектуры. И только недавно вебмакаки с помощью тонн говнокода наконец смогли догнать её.

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

Ща куртка чтобы двинуть в массы рынок скоростных сетевых зашлет в оркестр грантов и как попрет хайп plan9!

cobold ★★★★★
()

К чему этот пост? Авторы сами пишут что ос исследовательская. То есть ни о какой нише в реальных системах речи не идёт. А нахрена тогда драйверы и софт? В qemu запускается, а что ещё для исследования надо?

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

А что не так с Го? Это буквально Limbo из Inferno, только в слегка другой обложке. Языки практически одинаковые.

Го ширпотреб голимый, а Limbo из Inferno это что-то экстравагантное, загадочное и не такое, как все!

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)

И маскот крутой, заяц в шапке, такое мы одобряем

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

Го ширпотреб голимый, а Limbo из Inferno это что-то экстравагантное, загадочное и не такое, как все!

Чтоб писать на Go надо отлично разбираться в примитивах многопоточного программирования. Мьютексах, Семафорах, понимать модель CSP (Communicating Sequential Processes) от Tony Hoare, знать задачу о Обедающих Философах и ее решение от Дейскстры.

И это только часть необходимых навыков, еще надо понимать планировщик системы, планировцик Go, связь Gorutine c Тредами ОС.

Это все требуется оттарабанить на собеседовании, и не только это.

Но только пятизвездочные эксперты на LOR упорно пересказывают друг другу, что Go - это ширпотреб. Важные! Они то все эти вопросы познали в совершенстве.

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

Почему то техи с хайлоадом выбирают гошку, даже техи с хайлоадом из гугла решили её сделать и задвинуть, но на опеннете деды которые прутся по С считают что все ошибаются и надо писать на С, но сами н е пишут потому что лапки

RedTerror
()
Последнее исправление: RedTerror (всего исправлений: 1)

Потому, что предоставляет универсальный интерфейс для любых объектов системы.

Ну круто, но это чисто программистская фишечка, она ничего не решила.

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

Ну типа дергать системные вызовы или функции либы - тоже одна концепция.

«Plan 9» — это не продукт и не задумывался как таковой. Это исследование

Чего же тогда исходники не открыли? Может если бы открыли, был бы сейчас plan9 как какая-то *bsd по юзабельности, может бы пилили его вместо какого-то *bsd.

Короче поезд ушел, уже проще в линукс запилить 9P и прочие фишечки, да и запилили, но кому оно надо(

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

Фактически не зная С в команду Go разработчиков попасть не реально, так как Go завязан на архитектуре ОС. А архитектура в свою очередь в книгах описана на С.

На LOR принято «презирать Go» якобы из-за «легкого синтаксиса». Потому, что синтаксис Go «легкий» по сравнению с С++. На самом деле, это очень заковыристый язык, с огромным количеством идиом, и запредельным требованием к грамотности разработчика.

В общем «дети перечитали рекламных буклетов» и пошли их пересказывать, не понимаю кому эти буклеты предназначались.

P.S. Всякое бывает конечно, но в «боевую» команду которая использует Go по назначению, там где действительно не обойтись хорошо отоптимизированным NodeJS или Python - без понимания С не попасть.

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

Ну мне нравится язык, там и кодогенерация и генерация тестов и мульти идиомы, много всего, что скрыто за синтаксисом незатейливым (для человека от человека)

Да и что то наклепать для автоматизации можно намного быстрее чем на расте и С, среднему человеку кто знает только синтаксис

Ещё пример https://github.com/ergo-services/ergo

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

Фактически не зная С в команду Go разработчиков попасть не реально, так как Go завязан на архитектуре ОС. А архитектура в свою очередь в книгах описана на С.

Слишком жирно

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

Это нужно не писателям микросервисов, это core бэк девам, кто пишет хайлоад и проектирует архитектуру проекта, которую потом пишут писатели микросервисов

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

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

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

Архитектура неотделима от кода, и кодом формируется (OOD расписыватся Sandi Metz в POODR).

Только на сервис должны быть нагрузки такие, какие уже условный Python не вывозит. А это редкость.

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

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

Почему именно так? Чтобы конечный кодер мог рости, потому ему дают шаблон и требования исходя из архитектуры

Сейчас на самом деле архитекторам не нужны нижестоящие сотрудники, что мы и наблюдаем, кодогенерацией начинают заниматься нейронные сети.

Посмотри на опыт с написанием Sora для андроида

https://openai.com/index/shipping-sora-for-android-with-codex/

RedTerror
()
Последнее исправление: RedTerror (всего исправлений: 4)
Ответ на: комментарий от lbvf50txt

Чтоб писать на Go надо отлично разбираться в примитивах многопоточного программирования. Мьютексах, Семафорах, понимать модель CSP (Communicating Sequential Processes) от Tony Hoare, знать задачу о Обедающих Философах и ее решение от Дейскстры.

Я тебе гарантирую, что 90% программистов на Go не знают этих слов.

Это все требуется оттарабанить на собеседовании, и не только это.

У меня не требовали.

Но только пятизвездочные эксперты на LOR упорно пересказывают друг другу, что Go - это ширпотреб.

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

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

Попробуй написать на Go сканер портов хотя бы, совершенство ты мое архитектурное.

А что в этом сложного? SYN не посылается? Я подобную хрень регулярно на пердоне + scapy пишу, например.

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

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

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

В го нет возможности перехватить пакет, поиметь его, запаковать обратно и послать дальше.

Что значит «нет возможности»? Сырой сокет не открывается? Вроде открывается. Гугель даже библиотечку сделали для парсинга и создания пакетов: https://github.com/google/gopacket/

Ты сейчас полезешь искать и таки найдешь, что есть, но ты сам сканер написать попробуй. Охренеешь.

От чего именно охренею-то? Вот тебе syn-сканнер из библиотечки выше: https://github.com/google/gopacket/blob/master/examples/synscan/main.go

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

В го нету возможности общаться с ядром?)

Если у тебя его нет или тебе требуется C это не значит что это реальность

В Си тоже нет такой возможности, а вот у ядра есть

Тогда вопрос чем же общение с ядром отличается в С и go, подумай над этим

ААА ты наверное имеешь ввиду что у тебя нету кода на go который есть на C в виде библиотеки, ну лан, но вопросы выше актуальны, ответь на них

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

Авторы сами пишут что ос исследовательская. То есть ни о какой нише в реальных системах речи не идёт

Басню про лису и виноград помните? Вот, очень похоже.

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

подумай над этим

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

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

Твоя всратая пикаппщшечка не умеет ровным счетом ничего из того, что умеет libpcap. О чем я и писал выше. Брысь уроки учить, не засоряй эфир.

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

Это гугла, если тебе чего то не хватает, попроси gemini она тебе допишет нужый функционал в рамках данного проекта в виде патча ;)

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

Так ответь зачем нам си?

Го с bpf умеет общаться, в файлик писать и читать файлик умеет, крафтить пакеты тоже, налету читать править и писать тоже, так в чем у тебя проблема?

Ну да ты выше уже обгадился, так что вопросы излишние можешь не отвечать, ты больше не инклюзивный со своим С и дедовскими устоями

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

И какая же?

Xenix от Microsoft. Пока все остальные UNIX требовали дорогущего железа, Microsoft портировали свою версию на i286. В итоге можно было сделать терминальный сервер примерно в 10 раз дешевле чем у конкурентов (число от балды, но порядок примерно такой).

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

// synscan implements a TCP syn scanner on top of pcap.

хосспидя, читай свои линки хоть иногда

Прочитал. Там всё на голанге. Вот тебе открытие сокета. Так в чём проблема-то будет, ты можешь объяснить?

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

Ты ничего не попутал? Какая связь у сканера портов и libpcap? Тем более её полной функциональностью

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

Например как прекратить циклы gc через использование пулов и лимитировать количество задач чтобы 99th не росла. Как отбивать задачи в клиентов чтобы очередь бесконечно не росла. Как локализировать задачи на cpu, чтобы от решедулинга не страдать. Если ты с этим справился, остальное сущая мелочь.

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

Может дело в том что ты неправильно смог в планирование и архитектуру?

Если говорить про go то он для микро вм и кубера по большому счёту

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

Под задачу выбирается стек, а не деформируем стек под задачу

RedTerror
()

«Всё есть файл» казалось прикольной идеей лет 40 назад. Бедный интерфейс, в который кувалдой можно забить некоторые задачи, и то неэффективно. Уже NT была на голову умнее, и современный линукс такой же.

У меня диплом был на тему реализации 9P на *nix, заразил идеей руководитель - страстный Ъ-юниксоид, академист, в недалеком будущем упертый лиспер. Ничего интересного, по воспоминаниям. Примерно то же самое делается лучше более современными методами (кроме искусственных примеров, которые обычно приводят в пример, типа смонтировать удаленную мышь).

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

Plan 9 (комментарий)

Перечитывайте до посинения со своим школьником и не тратьте мое время. Мне с умалишонными переписываться удовольствия не доставляет.

Любая манипуляция пакетов у тебя будет на сишке (через libpcap), в пщ такого нет и не будет. То что ты показал это лол а не сканер.

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

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

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

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

Я тебе гарантирую, что 90% программистов на Go не знают этих слов.

Уважаемый, я полностью с вами согласен, что возможно в вашем окружении и в вашей компании 90% программистов не знает этих слов.

Но все мной перечисленные темы взяты из двух Базовых Учебников по Го: «Go in Action» от Вильяма Кенеди 2016г, и «Learning Go. An Idiomatic Approach to Real World Go Programming» от Jon Bodner 2021г. Также эти темы совпадают с методичками из сети как готовиться к собеседованию на Golang. И моим опытом собеседования на выскоуровневые языки.

Это АЗЫ программирования на Golang. Если у вас не требовали знания азов - то это только характеристика вашей конкретной команды. Это не оценка среднего уровня использования языка. И да, Golang это не вершина врешин, но это достаточно серьёзный уровень.

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

Много тебя ждёт чудных открытий, что внутри микровм живут маленькие такие unikernel сущности где есть только ядро и исполнительный файл сервиса

Так же тебя ждут открытия что многие компании бигтехи используют именно кубер и микровмки внутри которых живут даже не то чтобы линукс системы а просто ядра линукс и один единственный исполнительный файл сервиса

Вылезай из каменного века

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

Нет ядер — нет проблемы, очевидно же. Есть ядра — есть проблема. Противоречия все еще нет.

tinykey
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)