Операционную систему Plan 9 опубликовали под GPLv2

    Разработчики уникальной операционной системы Plan 9, с разрешения руководства компании Alcatel-Lucent, изменили условия лицензирования. Теперь весь код ОС, который распространяется под Lucent Public License, будет одновременно распространяться под лицензией GPLv2.

    Таким образом, пользователи могут распространять код системы и/или модифицировать его по своему желанию, в соответствии с условиями соглашения GPLv2, опубликованными Фондом свободного программного обеспечения.

    Одновременно открыт и репозиторий на Github.

    Plan 9 — система, которая должна была преодолеть принципиальные недостатки UNIX.

    Согласно Википедии, система построена на трёх основных принципах:
    • Все ресурсы представлены как файлы и доступны в иерархической файловой системе.
    • Локальные и удалённые ресурсы не различаются, для доступа к ним реализован стандартный протокол 9P.
    • Каждая группа процессов имеет собственное пространство имён, собранное из файловых иерархий, предоставленных различными ресурсами.


    В отличие от современных операционных систем, в которых пользователь получает доступ к персональному компьютеру или рабочей станции, в Plan 9 пользователь получает доступ к распределённой вычислительной среде и имеет возможность конфигурировать своё рабочее пространство. Так, /dev/mouse для процесса — это мышь на компьютере, с которого этот процесс запущен, причём это может быть не тот компьютер, на котором исполняется процесс.

    Основным языком программирования является Си. Особенность компилятора Си заключается в полной поддержке Unicode и ряда других полезных расширений, таких как формирование структур и инициализация массивов. Реализованы кроссплатформенная компиляция и отладка, успешно портированы Perl, Python, Scheme, noweb, Haskell, Newsqueak, Go и ML.

    Нужно заметить, что операционная система Plan 9, несмотря на всю свою экзотичность, особенно популярна в Японии и России.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 47

      +1
      Чем дальше, тем меньше ощущается какое-то различие с линуксом. Максима «всё есть файл», разумеется, не выполняется, но с практической стороны — namespaces во все поля (и не только файловые — сетевые, pid и т.д., и судя по всему на этом не останавливаются). Удалённые ресурсы доступны с разной степенью интеграции (NUMA/просто сетевое монтирование, разные штуки типа pulseaudio).

      Некоторые вещи реализовывать «как файл» просто обрезать их функционал (например, что за файл «группа процессов»?)
        +1
        А разве cgroups не так работают? :)
        Группа — директория, параметр — файл.
          0
          То есть не «всё есть файл». С учётом, что для каталогов иное API, нежели для файлов…
            0
            Там участвует обвязка sysfs-овская, для юзерспейса как-то получается именно «всё есть файл». Или я не так понял Вас.
              +8
              Вроде, когда говорят «всё есть файл», подразумевают отображение в ФС и достаточность использования только ФС API. Ну, и если совсем строго, то директория — это тоже файл особого вида.
              0
              Я тут с вами согласен:
              По идее, любой объект со значимой структурой можно вместо представления одним файлом, представить иерархией, где нижележащие файлы будут предоставлять доступ к отдельным (атомарным) параметрам. При этом, imo, не ломается принцип «всё есть файл», просто мы получаем что что-то является не одним файлом, а несколькими. При этом всё остаётся файлами.

              Я также считаю, что можно пойти далее и обобщить: «всё есть поток». Потоки можно разделить на ввод и вывод и работать с ними через унифицированный интерфейс. По сути это FRP.
              +1
              В линуксе большинство действий всё-таки выполняются через syscalls, а не через файловую систему. Плюс, система всё-таки организована вокруг компьютера, на котором ты работаешь. Если хочешь написать что-то работающее на нескольких компьютерах, тебе приходится думать о сетевом протоколе. Впрочем, я не писал под plan 9 и не знаю, несколько там это проще.
              +27
              Так, /dev/mouse для процесса — это мышь на компьютере, с которого этот процесс запущен, причём это может быть не тот компьютер, на котором исполняется процесс.

              И тут у меня что-то хрустнуло в голове…
                +4
                Запущен != исполняется.

                Хотя я не слышал про миграцию процессов между компьютерами в plan9. Даже та, что сейчас в линуксах, очень и очень сырая…
                  +2
                  На этом моменте поста я понял, что это Alizar,
                    +1
                    А я прочитал это место ещё два раза и понял, что процесс мог быть запущен на одной ноде, а потом быть перенесён и выполняться на другой. И /dev/mouse у него локальный для ноды, перенесли на другую — там свой /dev/mouse, не тот, с которым его запускали.
                      0
                      Я так понял, что /dev/mouse будет с компьютера, где процесс исходно был запущен. Выполнение процесса может перенестись на другой компьютер, но /dev/mouse останется прежним.
                  +13
                  Не понравился пост, обещали сиськи, а показали кукиш. Хотелось бы больше, чем две строчки, или это пост: «такая-то система стала общедоступной — можете читать про нее Википедию»?
                    +9
                    Ещё забавнее то, что больше половины статьи — собственно, перепост википедии :(
                      0
                      Если стало интересно — можно смело идти в гугл, информации о plan9 хватает. Как интересующийся, ответственно заявляю — не пожалеете.
                      +4
                      Интересно, последует ли за этим перелицензирование Inferno, и получат ли проекты приток свежих умов. Хотелось бы в это верить.
                        0
                        Интересный вопрос, там очень много общего кода, я драйверы от Plan9 вкомпиливаю с минимальными изменениями в Inferno — апи один в один.
                          +4
                          У Вас есть опыт Plan9-разработки? Можете описать подробнее? Очень интересно!
                            +18
                            Не совсем Plan9, я делаю порт нативной Inferno OS на Raspberry Pi. Соотв многое уже готово в проекте 9pi (Plan9 для Pi), поэтому просто переношу некоторые части. Всё организовано как лабы шаг за шагом.

                            Попиарюсь немного: lynxline.com/projects/labs-portintg-inferno-os-to-raspberry-pi/
                              +23
                              Мы желаем пост!

                              image
                                +4
                                Ну лабы-то на Хабр переписывать/переводить я не думаю, а вот как закончу еthernet драйвер, то можно будет спаковать более-менее полноценный inferno os native дистрибутив и сделать анонс. Ну и как всегда написать что это такое зачем оно нужно и кому :)
                                  +4
                                  Реквестирую пост и туториал, возможно присоединюсь к разработке
                                    0
                                    Всегда рады!
                                +1
                                А почему Вы занимаетесь этими системами? Академический интерес? Или все-таки коммерческий и если да, то как выражен? Почему предпочли именно эти системы, а не существующие популярные Linux, FreeBSD(его тоже встраивают) и др.?
                                  +5
                                  Если коротко, то програмирование на Limbo чрезвывайно эфективно. Как и системное програмирование так и програмирование приложений. Limbo можно назвать предком Go, тоже самое CSP программирование, но Limbo намного больше соединяется с операционной системой и позволяет намного большую свободу в том что можно создать.

                                  Также с прицелом на долгосрочные планы у меня есть пару интересных идей пользовательских интерфейсов для ос которые мне бы хотелось реализовать или хотя бы поэкпериментировать, но которые невозможно создать в рамках и ограничениях оконных интерфейсов популярных систем unix-like. Для меня Inferno OS как раз подходит для таких экспериментов так как очень компактна, легко читаема и легко перестраивается под новые идеи. Сделать тоже самое в рамках unix подобных систем с их системным дизайном и ограничениями получается просто нереально по затратам времени. Да, это скорее академический интерес.

                                  Также Inferno возможно была бы идеальным кандидатом для возникающем на горизонте «internet of things». Нас уже окружают около десятков различных устройств (телефоны, смарты, ноуты, роутеры) которые являются полноценными компьютерами находящимися все время и сети и при этом, что самое смешное, совсем неумеющих взаимодействовать с друг другом — ни делится ресурсами, ни передавать задачи, ни мониторить, мало того у нас практически нет возможностей ими управлять. А скоро нас будут окружать не десятки а сотни таких устройств и полноценно управлять или следить за ними вы уже не сможете принципиально. Про безопасность можно уже забыть. Анекдот, но сейчас вместо разработки чипа для кофеварки дешевле взять китайский арм и индийского програмиста который напишет управление кофеваркой на яве и запустит там tomcat.
                                    +2
                                    А можно подробнее об интерфейсных идеях?
                                      +1
                                      Не буду забегать вперед паровоза, но текущие проблемы довольно очевидны, например у меня открыто десятки окон/табов но их невозможно заставить взаимодействовать между собой стандартными средствами никак — мы выполняем роль обезьянок копируя мышкой ctrl-c/v данные между ними. (и это только одна из проблем)
                                        0
                                        А с PlanB вы знакомы? У них было (есть?) много идей на тему «Собери себе интерфейс из кусочков разных приложений».
                                          0
                                          Про PlanB читал, но про их идеи интерфейсов сложенных из кусочков разных приложений я не помню. Я посмотрю, это интересно.
                          –1
                          Файл plan9/386/include/ape/float.h
                          #define FPRNR (0<<10)
                          #define FPPSGL (0<<8)
                          

                          Очень интересно… Кто-нибудь подскажет сакральный смысл происходящего?
                            +3
                            Как помню в plan9/Inferno сорцах это способ показать номер бита в котором 0
                              +3
                              Какой-то флаг, который отключен. По всей видимости, чтобы включить — нужно ноль заменить на единицу.
                                0
                                Логично)
                                +2
                                Если рядом посмотреть, то видно, что отведено 2 бита для значения 0–3. Просто для зрительной группировки по значению сдвига.
                                +28
                                Особенность компилятора Си заключается в полной поддержке Unicode и ряда других полезных расширений, таких как формирование структур и инициализация массивов.

                                Рерайтер 90LVL
                                  +2
                                  Чем плоха была старая лицензия и какие преимущества даст GPL2?
                                    +4
                                    Можно интегрировать код из других GPLv2 систем, в первую очередь, Linux. И наоборот. Lucent PL говорит, что регулируется законами штата Нью-Йорк и законами об интеллектуальной собственности США, из-за чего и не совместима с GPL.
                                    +4
                                    А где-нибудь реально этот план9 в продакшене юзается или чисто для поиграться ось?
                                    • UFO just landed and posted this here
                                      +3
                                      — Штирлиц, у вас план?
                                      — Мюллер. дружище, вы разве не слышали: они его опубликовали под GPL!

                                      А по теме — честно говоря, легендарная система, и только справедливо, что люди смогут с ней ковыряться в рамках лицензии. И на учебу интересно, и (вдруг!) мало ли что еще вырастет из такого посева?
                                      –9
                                      Plan 9 — система, которая должна была преодолеть принципиальные недостатки UNIX.

                                      Ну и, конечно, самый главный фатальный недостаток.
                                        +6
                                        Между делом, ее разрабатывали люди, которые дали нам Unix
                                        0
                                        То есть я так понимаю что название никого не смущает?
                                          +3
                                          А должно смущать? Да, ОС названа в честь худшего фильма всех времён, а имя Glenda взято из другого фильма того же режиссёра. Что с того? Система интересная и нестандартная, а иронически выбранные атрибуты не мешают ей жить, даже напротив — добавляют некоего шарма.
                                            0
                                            Смущает. Судьба Plan 9 подтверждает выражение «как вы яхту назовете, так она и поплывет». Об этой безусловно передовой операционной системе мало кто знает даже среди гиков, не говоря уже о каком-то практическом использовании. Если кто-то захочет с этим поспорить, предлагаю устроить опрос.
                                              +1
                                              Не совсем так, например "plan9 from user space" активно развивается (кстати Russ Cox) при активной поддержке Google. Собственно как раз Google была очень заинтересованна — она и вырастила из Plan9/Inferno/Limbo язык Go. Было пару интересных сообщений что как раз в google проект plan9 from user space использовался для построений внутренних информационных grid систем — но тут похоже что открытой информации нет.

                                          Only users with full accounts can post comments. Log in, please.