Channel 🇺🇦 Комора Лінуксоїда | Linux - @linux_ukraine - №1593
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-подібних систем.
1200
25-11-19 15:07