{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Российскую операционную систему «Фантом» довели до тестирования после 12 лет разработки с нуля Статьи редакции

Система использует необычную архитектуру, не похожую на Windows и Linux.

Система «Фантом» в виртуальной машине QEMU

Основная версия операционной системы «Фантом» готова для пробных проектов, а полноценный релиз запланирован на конец 2022 года. Об этом главный разработчик системы Дмитрий Завалишин сообщил в интервью изданию CNews. Завалишин работает над системой с 2010 года вместе с сотрудниками холдинга DZ Systems, первую компанию которого он основал в 2005 году.

Система «Фантом» отличается от классических Windows, Linux и macOS — она использует персистентную виртуальную память, управляемый код и глобальное адресное пространство.

  • Персистентная виртуальная память подразумевает «непрерывность» выполнения процессов и высокую надёжность хранения данных. Приложения «не видят» перезагрузок и выключений, с их точки зрения система работает без остановок и постоянно сохраняет все изменения данных. Пользователю не нужно самому заботиться о сохранении файлов и резервных копий — даже аварийное завершение не повредит их. Файлов в «Фантоме» вообще нет — вместо них система оперирует объектами, которые доступны напрямую по указателям.
  • Управляемый код защищает каждый объект и не даёт программисту вручную работать с памятью — это сразу отсекает большую часть ошибок и уязвимостей, которые повреждают данные пользователя и позволяют распространяться вирусам. Классические системы защищают только процессы друг от друга, тогда как внутри них может происходить буквально что угодно.
  • Глобальное адресное пространство обеспечивает максимальную производительность выполнения программ. Классические системы делят память на пространство ядра и пространство пользователя — в первом работает ядро системы (центральная часть, управляющая всеми ресурсами), во втором — приложения пользователя. Во время работы системе приходится миллионы раз в секунду переключаться между этими пространствами, что плохо сказывается на производительности. «Фантом» избавлен от этих переключений — все процессы взаимодействуют друг с другом через прямую передачу ссылок на объекты. В классической системе это чрезвычайно опасный подход, но не в системе с управляемым кодом.

Основная ниша «Фантома» это встраиваемые системы — управление промышленным оборудованием и бытовой техникой, интернет вещей и прочие задачи, где сейчас господствует Linux. DZ Systems работает над переносом «Фантома» на фреймворк Genode — специальную «обвязку» для микроядерных операционных систем, позволяющую запускать обычные Linux-программы. Именно эта версия должна выйти к концу 2022 года.

В дальнейшем Завалишин с коллегами планируют перенести «Фантом» на микроядро seL4, чтобы математическим способом проверить всю систему и доказать отсутствие в ней ошибок и уязвимостей. Это позволит создать основу для построения крайне надёжных и защищённых программных комплексов.

0
348 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Если проявятся преимущества этого подхода - то она сама взлетит.
Потенциально преимуществ много - например вообще не надо писать код "запуска" программы, подтягивания файлов, ресурсов и прочего. Все программы там по умолчанию "запущены". То-же самое с сериализацией-десериализацией данных - её там просто нет. Отваливаются целые большие слои работы, на которые программисты тратят кучу времени в традиционных операционках.
В вебдеве полно примеров когда никому не известная но удачная библиотека/фреймфорк всплывает и становится мейнстримом.
В любом случае лучше пробовать, экспериментировать, не пропадёт.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Как обычно, через разные интерфейсы

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Это объектно-ориентированная операционка. У неё все данные - это объекты. Если внутрь операционки прилетела картинка, то можно будет пощупать её свойства: width, height, draw() и т.д.
Т.е. пишешь http-интерфейсу урл, он всё что надо скачивает, парсит и выплёвывет готовый к употреблению объект.

Ответить
Развернуть ветку
Dmitry Khalatov

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

Ответить
Развернуть ветку
nochnoy.ru

Да. Завалишин у себя в блоге так и писал: "оно работает, теперь начинается самое интересное - как со всем этим жить".
Придумают что-нибудь.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Объектно-ориентированные языки которые всю вашу объектно ориентированность перемалывают и выдают exe-файл. Который надо запустить, он подтянет все dll-файлы и ресурсы, развернёт свои красивые структуры данных в памяти и будет жить в своём мирке, общаясь с окружающей системой постоянно сериализуя и десериализуя всякое барахло. Кроме того, этот exe содержит в себе вкомпилированные библиотеки типа stdlib, работы со строками, парсеры-фигарсеры - они там вкомпилены в сам экзешник! И вот сколько у вас на компе экзешников и dll-ов - столько раз в них вкомпилировано одно и то-же барахло.
Современные операционки - это сущий бардак. Давно пора его перетряхнуть.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Должна быть ровно одна копия каждой библиотеки.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
nochnoy.ru

Ладно, возможно с этим я облажался.

Ответить
Развернуть ветку
Ivan Off
Ещё есть .NET Framework. Это весь набор необходимых dll, который ставится в саму систему.

Вот это хреново само по себе. Дотнет ооооочень тяжелый, местами глючный, и заточен только под Венду. Для Доты 2 сойдет, но речь в данном случае не о попкорне, а о серьезных системах.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Ivan Off
Ответить
Развернуть ветку
Ярослав Яшин
> Но сейчас в классических операционках так всё и устроено)))

Для библиотек ядра. Или лежащих по конкретному пути (в память будет загружена одна исполняемая копия). Но, например, есть "зло" - snap-пакеты (и их sandbox-ы).

> Программа, скомпилированная под Windows, не таскает с собой все dll.

Смотря как компилировать и смотря какие dll. Например, msvcr** вполне можно прилинковать к программе. И гипотетическая домохозяйка не увидит "msvcr120.dll не найден".

Ответить
Развернуть ветку
Ivan Off
Ну а ты считаешь, что это всё должно быть в операционке закожено и она всё это делает?

Ну а почему нет? По меньшей мере, очень интересное архитектурное решение.

Ответить
Развернуть ветку
Ярослав Яшин

Вопрос в том, до какого уровня это должно быть "закожено" в операционке. Реализовывать прикладные вещи, типа "скачай файл по HTTPS" - несколько глупо. Сколько лет, например, ждали поддержки SNI у Apache HTTP Client (Java)? А комьюнити куда больше, чем у этого.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Bitcoin Ganesha

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

С другой стороны я с Вами абсолютно согласен, что наследие прошлого, обратная совместимость, конвертация данных/передача данных между различными процессами/сервисами заставляют кодера делать множество различных телодвижений и порой вносят изрядное кто-во точек отказа. Тот же пример с сериализацией в php и Java.

Но я к сожалению не уверен, что подобных танцев с бубном не возникнет в новой ОС. К сожалению все на перед продумать не представляется возможным. И плюс к тому же новая ОС она же не будет работать в вакууме и очень может быть, что ей нужно будет коммуницировать с тем же Linux или win. Что в свою очередь заставит плясать местами под подходы принятые в выше указанных ОС.

Относительно фреймворков в вебе… Тут на мой взгляд не совсем с той стороны нужно смотреть.
В вебе за то, что взлетает фреймворк голосуют не конечные пользователи, а разработчики.
А с новой ОС нужно проделать будет не менее титанический труд по созданию комьюнити разработчиков которые начнут использовать данную ОС в своих проектах. И это ещё тот труд и финансовые вложения.

Но в любом случае ребятам респект. Очень интересные концепции реализуют в коде!
Удачи в развитии проекта!

Ответить
Развернуть ветку
345 комментариев
Раскрывать всегда