Хотите дальше читать devby? 📝
Support us

PhantomOS: часть 2

Оставить комментарий
PhantomOS: часть 2
Phantom В прошлой части мы подробно обсудили основные свойства российской инновационной операционная системы «Фантом», частным образом разрабатываемой в компании Digital Zone. В том, что намерения её создателя – Дмитрия Завалишина – серьёзны, говорит хотя бы то, что проект получил свидетельство о государственной регистрации в РФ программ для ЭВМ за № 2009611733, что позволяет защитить авторские и прочие права в случае его гипотетического будущего успеха. Впрочем, давайте завершим наш разговор о необычных особенностях ОС Фантом. И если в прошлый раз мы прошлись по концептуальным особенностям этой ОС, сегодня мы углубим наши знания насчёт следствий из сделанных разработчиками предпосылок, а также честно остановимся и на отрицательных моментах выбранного курса у этого очень необычного «осестроительного» проекта.

Следствия и ответы на вопросы

Попробую превентивно осветить некоторые наиболее узкие места и вопросы, которые слишком часто звучат к разработчикам этой новой ОС, также попутно прокомментировав их ответы, некоторые из которых вызывают больше вопросов, нежели дают реальных ответов. Во-первых, это не всегда правильное сравнение многих критиков этой ОС с режимом hibernate. Для использования hibernate нужно время и ресурсы – нужно специальное создание образа программы, так же, как и для его загрузки и восстановления программы. Важно, что hibernate выполняется вручную, он не может осуществляться параллельно с нормальной работой программ (требует остановки всего), довольно ресурсоемок и, кстати, вовсе не гарантирует восстановления системы после её выключения. В ОС Фантом не надо специально создавать никаких образов отдельных программ, хотя бы просто потому, что это имманентное свойство системы. Мгновенное отключение электричества – и на диске просто остаётся последнее согласованное состояние системы до скачка напряжение, а как только появится электричество, система почти мгновенно загрузится (не нужна долгая фаза инициализации всего и вся) и снова продолжит свою работу с места своего останова – для этого не требуется никаких дополнительных процедур и усилий. Просто не удержусь, чтобы не процитировать очень доступное объяснение этого основного свойства своей ОС в описании самого Дмитрий Завалишина. Почти все люди в этой стране хоть раз видели икеевскую мебель и хоть раз в жизни собирали её. Представьте себе, что вы вынуждены каждый вечер, приходя домой, собирать эту мебель, а утром снова разбирать и класть её в ящики. Это иллюстрация того, как работают все без исключения современные программы. Программа в силу некоторого стереотипного мышления разработчика операционных систем просто вынуждена, поработав какое-то время, всё своё внутреннее представление о предмете, с которым она работает, разбирать и складывать в файлы. Это достаточно болезненный, странный и ненужный процесс. Первое, что делает "Фантом", - это избавляет программиста от необходимости этим заниматься. Из этого проистекает достаточно много вещей – от приятных до фантастически хороших. Самая простая и очевидная - то, что в силу этого факта фантомовские программы не замечают перезагрузки операционной системы. Этому все так радуются в Firefox, который, как известно, способен запомнить состояние и при загрузке его "поднять". Но Firefox делает это вручную, а "Фантом" гарантирует такое всем работающим программам, перманентно и без какой-либо поддержки с их стороны. Выключил-включил - всё осталось как прежде и сразу поехало работать дальше». Физически же такой эффект «постоянной памяти» достигается чередованиями из серий инкрементальных снэпшотов, которые непрерывно формируются самой ОС, тщательно фиксируя все аспекты состояния своей работы, а также полными срезами, которые будут формироваться гораздо реже (эта стратегия полностью аналогична мелкозернистой и крупнозернистой истории при журналировании работы в DragonFlyBSD и её файловой системы HAMMER). Саму скорость журналирования работы можно регулировать и даже настраивать под себя, указывая какие-то приоритеты в сохранении результатов текущей жизнедеятельности системы. Одна из важных особенностей ОС Фантом, по словам создателей, как раз и заключается в найденном ими способе (собственный howto) «дёшево» создавать мгновенные снимки состояния системы, при этом не останавливая и не внося серьёзных возмущений в работу самой системы. Phantom Кстати говоря, это подводит нас к некоторым, если так можно выразиться, философским аспектам-следствиям из работы системы. Например, полностью стирается разница между запущенной и незапущенной программой. Следующий приятный аспект – это встроенная возможность нативных программ откатывать свои состояния – выполнять настоящий во всех смыслах «системный Undo», вне зависимости от объектов, которыми каждая конкретная программа оперирует. Для прикладных программистов тоже есть приятные новости. Завалишин обещает радикальное сокращение времени разработки стандартных программ – под «Фантомом» он прогнозирует ускорение от консервативно-минимальных 30% до даже немного фантастических 400% (в сравнении со временем разработки аналогичного функционала для «обычных» ОС). По большому счёту, это достигается за счёт избавления от необходимости сохранять массу промежуточных данных в файлах и заново считывать их оттуда (это следует из того же «бессмертия» программ), а также за счет радикального упрощения взаимодействия программ и их составных объектов в рамках новой IPC-модели Фантома (здесь расчёт на новый, ранее невиданный уровень модульности и code reuse). С другой стороны, лично мне не понятно, как же всё-таки избежать работы с обычными пользовательскими документами/файлами — ведь как-то нужно же ими уметь обмениваться с другими, хотя бы теми же Windows-компьютерами? Phantom Подведём черту и сформулируем краткий вывод, итак: Фантом ОС – это Full Managed OS, где реализовано единое адресное пространство, возможны только managed-языки для разработки и т.д. Фактически ОС == большая виртуальная машина. Кроме того здесь реализовано фоновое персистентное сохранение состояний объектов и наблюдается полное отсутствие файлов.

Состояние разработки на текущий момент

Часто при обсуждении этого проекта на Западе его относят к категории Vaporware. Что ж, какие-то основания для этого, безусловно, есть. Система разрабатывается уже почти 10 лет, при этом конца и края этому не видно, ибо любая новая ОС – это объективно, согласитесь, разработка явно не самая простая и быстрая. И поскольку делается всё это исключительно за счет собственных ограниченных ресурсов компании, к тому же без массированного применения чужих наработок, то, конечно, подобные проекты неизбежно превращаются в долгострой. Впрочем, есть и хорошие новости. Прототип этой системы уже реально существует, в том числе и в коде, – в этом нет никаких сомнений. На различных выставках демонстрируется её альфа-версия, в которой пока, правда, не реализованы все запланированные возможности. Система работает как в эмуляторе, так и на реальной аппаратуре (x86, 32-разрядная адресация), запускает простые тестовые прикладные программы, выполняет мгновенные снимки (snapshot) состояния и рестарт с последнего доступного снимка при внезапной перезагрузке (это, напомню, её ключевые особенности). Также приятно, что она уже содержит базовые драйверы графической подсистемы и минимальную реализацию OpenGL, также полностью поддерживает сетевые протоколы TCP/IP… И, наконец, уже выложены в свободный доступ исходники пользовательской части системы, которую принято называть ”userland”. Разработчики клятвенно обещают на этом не останавливаться и продолжать делиться кодом по мере его готовности. Phantom В заключение пункта также хочется кратко процитировать одного из основателей проекта Кирилла Готовцева, который оценивает текущее состояние проекта и его планы на будущее так: Есть проект, и он делается – медленно, но верно. На сегодня значительная часть гипотез подтверждена работающими стендами, соответственно проект можно начинать разрабатывать более активно. Поскольку через год-полтора нам бы хотелось видеть в мире некоторое кол-во человек, которые будут готовы брать на себя какие-то проекты в рамках основного workflow, то мы начинаем уже сейчас рассказывать о концепции, чтобы в продуктивной дискуссии налаживать контакты с теми, кто способен адекватно воспринимать и участвовать в проекте. Поскольку концепция у нас сильно визионерская, то тексты, которые мы публикуем, предполагают некоторое специальное состояние мозгов, обычно называемое умом. Не соображалкой, достаточной для выполнения рутинной работы и карьерных интриг, а достаточно творческое, в достаточной степени «научное» мышление. Ну и некоторый уровень компетентности в современных ИТ-реалиях, условно выходящих за маркетинговые мантры типа «Линукс – самая прогрессивная и функциональная система в мире».

Фантомас разбушевался: недостатки системы

Кроме перечисления особенностей и очевидных преимуществ из них вытекающих, я бы точно так же для объективности хотел бы перечислить и основные недостатки, архитектурно присущие ОС Фантом, которые для этой цели перечислю сплошным списком. Вот они: 1. Чрезвычайно сложная реализация garbage collector. Тут фишка вот в чём: если размеры объектно-адресной среды системы имеют порядок, прямо соответствующий размеру вашего жесткого диска, то есть на сегодня, это, скажем, 1 Тбайт, то очевидно, что в недалеком будущем надо уже говорить о масштабе в 100 Тбайт или 1 Пбайт. Сборка мусора на объеме в 1 Тбайт, при условии, что реально 95% оперативных данных лежат на диске, – это ЧРЕЗВЫЧАЙНО затратная работа, и этот процесс может растянуться на сутки. При этом сборщик может оказать огромное давление на подсистему виртуальной памяти и повлиять на работу обычных программ, а обеспечение параллельной с работой программ сборки мусора создаст ощутимую нагрузку на систему. Поэтому в Фантоме было принято вынужденное решение: разбить сборку мусора на две части. Это, во-первых, быстрый негарантированный алгоритм (refcount, собирает мусор сразу, но не в состоянии победить циклы) и, во-вторых, длинный полноценный алгоритм, не затрагивающий актуальную копию системы, а работающий на снимке ее состояния. Лично у меня даже есть соответствующее подходящее название для этой схемы – Lame garbage collector (LGC). 2. Драйверы – всё для всего придётся создавать практически с нуля. У Linux с её гигантскими человеческими ресурсами этот путь занял примерно 10-15 лет. Здесь, учитывая виртуально-машинную специфику самой ОС и гораздо меньшие человеческие ресурсы… короче, это пока больной вопрос. 3. Потенциальная медлительность системы. Заторможенность будет проявляться по двум разным причинам. Во-первых, это байт-код – дополнительный уровень абстракции, да ещё реализованный на системном уровне, будет высасывать из железа заметные ресурсы. Во-вторых – это постоянная синхро-проекция виртуальной памяти на винт, что уже по целому ряду причин должно сурово тормозить систему. Добавьте сюда ещё якорящий на полном ходу всё и вся фирменный Lame garbage collector… Впрочем, во втором случае можно уповать на SSD, SATA III, Thunderbolt и другие эффектные слова. В остальных же случаях процессоры нового поколения рано или поздно дадут ту избыточную мощность, которая с лихвой компенсирует возникающие потери латентности, ну а пока… 4. Несовместимость с существующими программами, использование своего собственного экзотичного байт-кода. Отчасти конвертеры с Java и .Net теоретически спасут положение, но опять же – сильная идеологическая разница между системами будет приводить к неработоспособности большинства обычных программ, экспортированных извне, для начала хватит уже одного принципиального отсутствия файлов. 5. Фантомасовцы декларируют отсутствие поддержки C/C++ (и вообще любых программных конструкций с указателями), что в дополнение к пункту 4 – лишний гвоздь в гроб ещё не народившейся системы. Завалишин довольно категорично считает, что C/C++ уже почили в бозе, тогда как миром сейчас реально рулит связка Java/.Net, – ой ли, лично я так не считаю. 6. Экзотичность. На самом деле попытка поставить всё на голову в методике работы с обычными программами ещё долго будет являться явно отпугивающим фактором для этой ОС, доведись ей таки однажды в муках выродиться из чрева Digital Zone. Всё-таки инерция привычного – это та вещь, которую ни в коем случае не стоит недооценивать при выходе на массовый или коммерческий рынок.

Насколько Фантом уникален?

Ещё одна ложка в бочку меда, которой я завершаю этот большой обзор. Конечно, можно совсем немного ненапряжно покопать, чтобы убедиться, что ничего «полностью уникального» в этой системе нет. Разработчики справедливо утверждают, что Фантом не является очередным клоном Windows/Unix, но при этом замалчивают, что он является архитектурным клоном любой системы, базирующейся на уже давно известной концепции ортогональной персистентности (концепция отчасти звучит как векторный фидонет, не правда ли?). Как минимум с начала 80-х была заложена архитектура KeyKOS/EROS, затем были Blender RNA, где граф объектов со всем состоянием программы сохраняется на диск, хронологически позже была написана уж совсем современная ОС Active Oberon А2 (BlueBottle). Были и другие подобные проекты, например, Grasshopper OS, и я уже не говорю про знаменитые MS Singularity или JNode . Мы также скромно промолчим про множество надстроек над обычными ОС, реализующих фактически тоже самое, но менее глобально-ресурсоемким способом. Как пример, это CRIU (application Checkpoint/Restore In Userspace), который позволяет в Linux сохранять состояние программы в виде контрольной точки, и впоследствии возобновить работу данного приложения с этой же точки (состояния). Это может использоваться в самых разных целях – и это то, что работает уже прямо сегодня, применяясь преимущественно в области создания виртуальных контейнеров в различных системах виртуализации. Поэтому все пафосные заявления про жуткую самобытную уникальность ОС Фантом, сопоставимую в этом по уровню своей загадочности со знаменитой русской душой, звучат как минимум очень натянутыми. Подобные системы, конечно же, были – но ни одной из них так и не было суждено стать коммерчески успешной или хотя бы более-менее распространенной, несмотря на открытую природу некоторых из них.

Заключение

В этой статье из двух частей – вероятно, самой подробной на тему ОС Фантом на русском языке из всего опубликованного – я довольно последовательно и подробно рассмотрел концепты устройства этой диковинно-инновационной российской операционной системы. Я старался не транслировать какую-то одну позицию и намеренно привел как плюсы, так и минусы этого проекта. Кроме того, информация подавалась в более популярном формате, но те, кто желает усилить степень погружения в технические детали, могут обратиться к первоисточникам, которых, кстати, существует не так уж и много: ответы от самого Завалишина на большое количество общих вопросов находятся здесь, более подробное техническое изложение доступно тут. Ну и высший уровень технических деталей – это уже англоязычные источники Phantom Whitepaper и довольно информативная wiki-страница проекта. Phantom Что же касается параллельной темы статьи – о программистах-мечтателях-инноваторах… Позвольте в заключение привести короткую цитату с ответом самого Завалишина о Мечте и своём видении будущего своего главного проекта жизни: Хрусталь мечты должен непременно вести человека вперед, туда, куда, может быть, и нельзя дойти, но надо обязательно стремиться. Это – романтическая часть ответа. Впрочем, мы – реалисты. Мы понимаем, что пока физически в состоянии сделать систему с нуля только для ограниченных применений, и уже очертили для себя направления, в которых будем работать на первых порах, – встроенные системы и веб-серверы. Развитие в других направлениях – вопрос возможного партнерства или инвестиций. Мы видим свою задачу в том, чтобы показать ценность новой технологии и сделать эту технологию практически применимой хотя бы в узком целевом сегменте.
Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Google внезапно выпустила стабильную Android 13
Google внезапно выпустила стабильную Android 13
Google внезапно выпустила стабильную Android 13
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.
1 комментарий
Российский «инновационный микрокомпьютер» оказался копией китайского одноплатника с AliExpress
Российский «инновационный микрокомпьютер» оказался копией китайского одноплатника с AliExpress
Российский «инновационный микрокомпьютер» оказался копией китайского одноплатника с AliExpress
6 комментариев

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.