В прошлой части мы подробно обсудили основные свойства российской инновационной операционная системы «Фантом», частным образом разрабатываемой в компании Digital Zone. В том, что намерения её создателя — Дмитрия Завалишина — серьёзны, говорит хотя бы то, что проект получил свидетельство о государственной регистрации в РФ программ для ЭВМ за № 2009611733, что позволяет защитить авторские и прочие права в случае его гипотетического будущего успеха.
Впрочем, давайте завершим наш разговор о необычных особенностях ОС Фантом. И если в прошлый раз мы прошлись по концептуальным особенностям этой ОС, сегодня мы углубим наши знания насчёт следствий из сделанных разработчиками предпосылок, а также честно остановимся и на отрицательных моментах выбранного курса у этого очень необычного даже в мировых масштабах «осестроительного» проекта.
Попробую превентивно осветить некоторые наиболее узкие места и вопросы, которые слишком часто звучат к разработчикам этой новой ОС, также попутно прокомментировав их ответы, некоторые из которых вызывают больше вопросов, нежели дают реальных ответов. Во-первых, это не всегда правильное сравнение многих критиков этой ОС с режимом hibernate.
В ОС Фантом не надо специально создавать никаких образов отдельных программ, хотя бы просто потому, что это имманентное свойство системы. Мгновенное отключение электричества — и на диске просто остаётся последнее согласованное состояние системы до скачка напряжение, а как только появится электричество, система почти мгновенно загрузится (не нужна долгая фаза инициализации всего и вся) и снова продолжит свою работу с места своего останова — для этого не требуется никаких дополнительных процедур и усилий.
Просто не удержусь, чтобы не процитировать очень доступное объяснение этого основного свойства своей ОС в описании самого Дмитрий Завалишина:
Почти все люди в этой стране хоть раз видели икеевскую мебель и хоть раз в жизни собирали её. Представьте себе, что вы вынуждены каждый вечер, приходя домой, собирать эту мебель, а утром снова разбирать и класть её в ящики. Это иллюстрация того, как работают все без исключения современные программы. Программа в силу некоторого стереотипного мышления разработчика операционных систем просто вынуждена, поработав какое-то время, всё своё внутреннее представление о предмете, с которым она работает, разбирать и складывать в файлы. Это достаточно болезненный, странный и ненужный процесс. Первое, что делает «Фантом», — это избавляет программиста от необходимости этим заниматься.
Из этого проистекает достаточно много вещей — от приятных до фантастически хороших. Самая простая и очевидная — то, что в силу этого факта фантомовские программы не замечают перезагрузки операционной системы. Этому все так радуются в Firefox, который, как известно, способен запомнить состояние и при загрузке его «поднять». Но Firefox делает это вручную, а «Фантом» гарантирует такое всем работающим программам, перманентно и без какой-либо поддержки с их стороны. Выключил-включил — всё осталось как прежде и сразу поехало работать дальше«.
Физически же такой эффект «постоянной памяти» достигается чередованиями из серий инкрементальных снэпшотов, которые непрерывно формируются самой ОС, тщательно фиксируя все аспекты состояния своей работы, а также полными срезами, которые будут формироваться гораздо реже (эта стратегия полностью аналогична мелкозернистой и крупнозернистой истории при журналировании работы в DragonFlyBSD и её файловой системы HAMMER).
Саму скорость журналирования работы можно регулировать и даже настраивать под себя, указывая какие-то приоритеты в сохранении результатов текущей жизнедеятельности системы. Одна из важных особенностей ОС Фантом, по словам создателей, как раз и заключается в найденном ими способе (собственный howto) «дёшево» создавать мгновенные снимки состояния системы, при этом не останавливая и не внося серьёзных возмущений в работу самой системы.
Во-вторых, это подводит нас к некоторым, если так можно выразиться, философским аспектам-следствиям из работы системы.
Например, полностью стирается разница между запущенной и незапущенной программой. Следующий приятный аспект — это встроенная возможность нативных программ откатывать свои состояния — выполнять настоящий во всех смыслах «системный Undo», вне зависимости от объектов, которыми каждая конкретная программа оперирует.
По большому счёту, это достигается за счёт избавления от необходимости сохранять массу промежуточных данных в файлах и заново считывать их оттуда (это следует из того же «бессмертия» программ), а также за счет радикального упрощения взаимодействия программ и их составных объектов в рамках новой IPC-модели Фантома (здесь расчёт на новый, ранее невиданный уровень модульности и code reuse).
С другой стороны, лично мне не понятно, как же всё-таки избежать работы с обычными пользовательскими документами/файлами — ведь как-то нужно же ими уметь обмениваться с другими, хотя бы теми же Windows-компьютерами?
Подведём черту и сформулируем краткий вывод, итак: Фантом ОС — это Full Managed OS, где реализовано единое адресное пространство, возможны только managed-языки для разработки и т.д. Фактически ОС == большая виртуальная машина. Кроме того здесь реализовано фоновое персистентное сохранение состояний объектов и наблюдается полное отсутствие файлов.
Часто при обсуждении этого проекта на Западе его относят к категории Vaporware. Что ж, какие-то основания для этого, безусловно, есть. Система разрабатывается уже почти 10 лет, при этом конца и края этому не видно, ибо любая новая ОС — это объективно, согласитесь, разработка явно не самая простая и быстрая. И поскольку делается всё это исключительно за счет собственных ограниченных ресурсов компании, к тому же без массированного применения чужих наработок, то, конечно, подобные проекты неизбежно превращаются в долгострой.
Впрочем, есть и хорошие новости. Прототип этой системы уже реально существует, в том числе и в коде, — в этом нет никаких сомнений. На различных выставках демонстрируется её альфа-версия, в которой пока, правда, не реализованы все запланированные возможности.
И, наконец, уже выложены в свободный доступ исходники пользовательской части системы, которую принято называть «userland». Разработчики клятвенно обещают на этом не останавливаться и продолжать делиться кодом по мере его готовности.
В заключение пункта также хочется кратко процитировать одного из основателей проекта Кирилла Готовцева, который оценивает текущее состояние проекта и его планы на будущее так:
Есть проект, и он делается — медленно, но верно. На сегодня значительная часть гипотез подтверждена работающими стендами, соответственно проект можно начинать разрабатывать более активно. Поскольку через год-полтора нам бы хотелось видеть в мире некоторое кол-во человек, которые будут готовы брать на себя какие-то проекты в рамках основного workflow, то мы начинаем уже сейчас рассказывать о концепции, чтобы в продуктивной дискуссии налаживать контакты с теми, кто способен адекватно воспринимать и участвовать в проекте.
Поскольку концепция у нас сильно визионерская, то тексты, которые мы публикуем, предполагают некоторое специальное состояние мозгов, обычно называемое умом. Не соображалкой, достаточной для выполнения рутинной работы и карьерных интриг, а достаточно творческое, в достаточной степени «научное» мышление. Ну и некоторый уровень компетентности в современных ИТ-реалиях, условно выходящих за маркетинговые мантры типа «Линукс — самая прогрессивная и функциональная система в мире».
Кроме перечисления особенностей и очевидных преимуществ из них вытекающих, я бы точно так же для объективности хотел бы перечислить и основные недостатки, архитектурно присущие ОС Фантом, которые для этой цели перечислю сплошным списком. Вот они:
Поэтому в Фантоме было принято вынужденное решение: разбить сборку мусора на две части. Это, во-первых, быстрый негарантированный алгоритм (refcount, собирает мусор сразу, но не в состоянии победить циклы) и, во-вторых, длинный полноценный алгоритм, не затрагивающий актуальную копию системы, а работающий на снимке ее состояния. Лично у меня даже есть соответствующее подходящее название для этой схемы — Lame garbage collector (LGC).
Впрочем, во втором случае можно уповать на SSD, SATA III, Thunderbolt и другие эффектные слова. В остальных же случаях процессоры нового поколения рано или поздно дадут ту избыточную мощность, которая с лихвой компенсирует возникающие потери латентности, ну а пока...
Ещё одна ложка в бочку меда, которой я завершаю этот большой обзор.
Конечно, можно совсем немного ненапряжно покопать, чтобы убедиться, что ничего «полностью уникального» в этой системе нет. Разработчики справедливо утверждают, что Фантом не является очередным клоном Windows/Unix, но при этом замалчивают, что он является архитектурным клоном любой системы, базирующейся на уже давно известной концепции ортогональной персистентности (концепция отчасти звучит для меня как векторный фидонет, не правда ли?). Как минимум с начала
Были и другие подобные проекты, например, Grasshopper OS, и я уже не говорю про знаменитые MS Singularity или JNode. Мы также скромно промолчим про множество надстроек над обычными ОС, реализующих фактически тоже самое, но менее глобально-ресурсоемким способом. Как лишь единственный пример, это CRIU (application Checkpoint/Restore In Userspace), который позволяет в Linux сохранять состояние программы в виде контрольной точки, и впоследствии возобновить работу данного приложения с этой же точки (состояния). Это может использоваться в самых разных целях — и это то, что работает уже прямо сегодня, применяясь преимущественно в области создания виртуальных контейнеров в различных системах виртуализации.
Поэтому все пафосные заявления про жуткую самобытную уникальность ОС Фантом, сопоставимую в этом по уровню своей загадочности со знаменитой русской душой, звучат как минимум очень натянутыми. Подобные системы, конечно же, были — но ни одной из них так и не было суждено стать коммерчески успешной или хотя бы более-менее распространенной, несмотря на открытую природу некоторых из них.
В этой статье из двух частей — вероятно, самой подробной на тему ОС Фантом на русском языке из всего опубликованного — я довольно последовательно и подробно рассмотрел концепты устройства этой диковинно-инновационной российской операционной системы. Я старался не транслировать какую-то одну позицию и намеренно привел как плюсы, так и минусы этого проекта.
Кроме того, информация подавалась в более популярном формате, но те, кто желает усилить степень погружения в технические детали, могут обратиться к первоисточникам, которых, кстати, существует не так уж и много: ответы от самого Завалишина на большое количество общих и частых вопросов (FAQ) находятся здесь, более подробное техническое изложение доступно тут. Ну и высший уровень технических деталей — это уже англоязычные источники Phantom Whitepaper и довольно информативная wiki-страница проекта.
Что же касается параллельной темы статьи — о программистах-мечтателях-инноваторах... Позвольте в заключение привести короткую цитату с ответом самого Завалишина о Мечте и своём видении будущего своего главного проекта жизни:
Хрусталь мечты должен непременно вести человека вперед, туда, куда, может быть, и нельзя дойти, но надо обязательно стремиться. Это — романтическая часть ответа. Впрочем, мы — реалисты. Мы понимаем, что пока физически в состоянии сделать систему с нуля только для ограниченных применений, и уже очертили для себя направления, в которых будем работать на первых порах, — встроенные системы и веб-серверы.
Развитие в других направлениях — вопрос возможного партнерства или инвестиций. Мы видим свою задачу в том, чтобы показать ценность новой технологии и сделать эту технологию практически применимой хотя бы в узком целевом сегменте.
~
В качестве анонса могу заранее обрадовать своего читателя, что в следующем году обязательно хотел бы посетить популярную у SEO-специалистов конференцию MozDevConf, где речь пойдет об оптимизации сайтов, Vipro и SEO, так как в последнее время меня очень интересует раскрутка и продвижение сайтов в интернете. Всё-таки грамотная оптимизация и продвижение в наше время пресыщение информацией выходит уже на первый план.
5 комментариев
Свидетельство о государственной регистрации в РФ программ для ЭВМ не даёт ровным счётом ничего. Просто свидетельство, что такая программа была.
Эти патенты не имеют юридической ценности.
На самом деле, к Завалишину, при всем уважении к нему, и к его работе,
есть два серьозных вопроса, остающиеся без ответа:
первый -- теоритический,
на тему "теперь не нужно ничего разворачивать из файлов",
есть отличный контрпример (который он тупо отказался (вос)принимать и комментировать) -- графические и видео файлы,
если полностью следовать заявленной концепции, то такую информацию следует держать раскодированой\несжатой, что... понятное дело -- абсурдно,
если же вводить здесь "пусть это будет исключением из правил",
то это тут же обесценивает всю риторику про "избавление от тирании файлов"... кто даст гарантию, что при реальном использовании, это "исключение из правил" не окажется тотальной необходимостью, напрочь съедающей все возможные выгоды (например, придется держать персистентно в памяти как сжатую (аналог кеша файлов), так и развернутую версию файлов... или хуже того, вручную указывать системе какую часть объекта сбрасывать на диск)
второй -- практический,
это реализация внятного системного фреймворка,
как для системного уровня, а самое главное для программирования пользовательского интерфейса
(понятное дело, что ни "а мы сделаем поддержку существующих", ни "а мы сделаем это потом", как нормальные ответы здесь не годятся... потому что это главное предусловие для реализации заявленного "ускорение от консервативно-минимальных 30% до даже немного фантастических 400%")
не надо отнимать у пользователя горячо им любимые и собираемые "файлики", ну как без них?
система интересна только в качестве плацдарма для изучения "чего-либо", и в последствии рождения чего-то интересного для применения в Linux & Window & Mac & other
У Димы концепция взята из IBM AS/400 только там нет персистентности и большая часть фишек реализуется на уровне железа, а так -- "всё есть объект", "постоянные объекты"(объекты состояние которых сохраняется на диске между перезагрузками), "одноуровневая память" (нет различия между дисковой и оперативной памтью -- для системы вся память оперативная) именно оттуда. Ну и жаль конечно, что используется собственное микроядро, а не L4, как у нас в osFree %)
В общем, очередная пустышка.
Не умеют в России делать ни машины, ни электронику, ни софт. Готовой нефтью торговать и газом - это да.
Пора бы уже данный факт признать и успокоиться.
Идея благополучно подохнет, как подохли никому не нужные йота-говно-фоны и прочие русские деревянные велосипеды.