mapgleos ✙ #УкрТґ
2.13K subscribers
20.5K photos
4K videos
57 files
2.6K links
не треба мені з рекламою писати, не цікаво
If you can't access chat - DM this channel

rule #1: no russian language in comments

mapgleos == multi-axiomatic post-gödelian low-entropy oriented shitposting (with elements of landian retro-causality)
Download Telegram
9🔥2
🔥7🤔4🥴3
🤩19😁6🥰2
The front 9 fell off [1/2]

Plan9 - операційна система, створена в Bell Labs. Цю ОС вони написали вже після UNIX, маючи досвід, і розуміння помилок минулого. Це найцікавіша система, про яку ви, ймовірно, ніколи не чули, і на мою думку, це найкращий дизайн ОС на сьогодні. Навіть якщо ви не чули про Plan9, то про нього точно чули розробники тієї ОС, що ви використовуєте.

Plan9 це дослідницька операційна система. У нії реалізовано багато дуже гарних ідей у сфері дизайну ОС. UTF-8, gorutines, /proc, контейнери, об’єднані файлови системи - зараз все це реалізовано у багатьох системах, але розпочалося з Plan9. На жаль богато дуже хороших концептів так і залишилося в plan9.

Гарним прикладом дизайну буде порівняння нетворкінгу в plan9, та в unix-системах.
Linux, bsd, та інші unix-like використовують Berkeley Sockets. Сьогодні всі вже настільки до них звикли, що не помічають, що сокети є чужорідним елементом, і не вписується в філософію unix.
"Everything is a file" - так звучить підхід до дизайну інтерфейсів unix.
Але чому мережевий API складається з окремих спеціальних системних викликів та ioctls?
У Unix створення TCP-з’єднання вимагає системного виклику "socket", який створює магічний файловий дескриптор, а потім виклику "connect", щоб встановити з’єднання.
Plan 9 підходить до цього значно більш "по-юніксівськи": ви відкриваєте /net/tcp/clone, щоб зарезервувати з’єднання, і читаєте з нього ідентифікатор. Потім відкриваєте /net/tcp/n/ctl і записуєте "connect 127.0.0.1!80", де "n" — цей ідентифікатор. Тепер ви можете відкрити /net/tcp/n/data — і цей файл є повнодуплексним потоком. Жодних магічних системних викликів, і все можна тривіально реалізувати у shell-скрипті.
🥰6
The front 9 fell off [2/2]

Це елегантно поєднується з іншою ідеєю Plan 9: протоколом 9P. Усі файлові операції у системі використовують протокол 9P, який визначає такі операції, як читання та запис. Цей протокол мережево прозорий: ви можете монтувати віддалені сервери у свою файлову ієрархію та працювати з їхніми файлами через 9P. На Unix можна зробити щось подібне, але в Plan 9 ця концепція знаходить набагато ширше застосування, бо тут усе дійсно є файлами.
Наприклад у вас дома є клієнт, за яким працюєте ви, та окремий сервер. Якщо у вашого клієнта нема аудіовиходу, ви можете замонтувати аудіовихід вашего серверу у вашу файлову систему. Плеєр навіть не знатиме, що він грає музику через мережу.

Також треба згадати неймспейси. У plan9 кожний прцоес бачить файлову ієрархію по-своєму. Тому монтування не потребує спеціальних привелегії, як в unix. Користувацькі програми також можуть реалізувати файлові системи, сумісні з тими, які зазвичай реалізуються драйверами ядра, наприклад /net/ether0, і надавати їх процесам у своїх просторах. Наприклад, /dev/draw є аналогом framebuffer-пристрою: ви відкриваєте його, щоб писати пікселі на екран. Віконний менеджер Rio реалізує інтерфейс /dev/draw у користувацькому просторі, а потім монтує його у файлову ієрархію своїх дочірніх процесів. Таким чином, будь-які графічні програми можуть працювати як у звичайному framebuffer, так і у вікні, не знаючи про різницю.

Ці ідеї також дозволяють побудувати механізм схожий на контейнери - задовго до появи BSD jails і значно ефективніше реалізований. Згадайте, що в Plan 9 усе - буквально файли. Доступ до обладнання надається через звичайні файли, а пер-процесні namespace не потребують привілегії для зміни монтувань. Створити контейнер дуже просто: відмонтуйте все обладнання, до якого програма не повинна мати доступ. Готово. І не потрібно бути root. Хочете пробросити TCP-порт? Напишіть обмежений варіант /net/tcp, який дає доступ лише до потрібних портів. Усе це можна зробити просто shell-скриптом.

Оригінальний Plan 9 від Bell Labs більше не підтримується, але спільнота зберегла його спадщину через кілька форків, серед яких найбільш активним і життєздатним є 9front. У цьому форку розробники серйозно попрацювали над підтримкою сучасного обладнання, а також значно покращили драйвери, інструменти та документацію.

Попри всі свої переваги, Plan 9 навряд чи підходить як основна операційна система. Спільнота дуже невелика, сучасного софту практично немає, навіть веббраузера з підтримкою JS не існує. Проте саме ці особливості роблять її однією з найкращих платформ для дослідників: мінімалізм, прозорість архітектури та чистота ідей дозволяють глибоко вивчати принципи взаємодії компонентів ОС і експериментувати з дизайном системного програмного забезпечення на рівні, недосяжному для традиційних Unix-подібних систем.
🥰10
🥰11🔥6🤨3😁21
Forwarded from osinadd
7
спочатку Дуров (при всіх його мінусах), зараз це, феноменально

дожились до "state-mandated backdoor" без gag-order

src: https://www.reddit.com/r/europe/comments/1p5ccpc/grapheneos_departs_from_france_due_to_threats/
🔥17
Forwarded from нічний базар
відеоігрова статистика це багаторівневий жарт
😭11
Forwarded from сальвінорін
💯11😎41
Forwarded from Goonenheill🦅 (Юрій Андрійович)
🔥18