Concepts and Problems¶
In this chapter the most discussed problems of Phantom OS are discussed.
Program update
How can one update program code if program never stops?
It seems that it is impossible to answer this quiestion. But we will try.
First of all, it must be noted, that code in Phantom, which is allways
part of class, can be versioned. Each class can exist in multiple versions
in one OS instance. By default when variables are instantiated, newest
version of class is used. But older ones still exist as long as exist
old objects that refer to such a class.
It lets us to have simple way to do the first step — bring new code to system.
Developer can just install a new version of code and it will work smoothly —
new objects will be created with new implementation, old ones will continue to
use code they was created with.
But still — we want already running programs to use new code, do we? There are
many possible ways to do so.
-
Actually ask user to… stop program and restart it. The fact that Phantom
does not stop programs does not prevent us from doing it. We can arrange code
in a classic ways — here are data objects, and here is a program that uses
that data objects. Restarting such a program is re-creating objects it is
made of.It looks that we loose in this case all the better features of persistent OS,
but it is not so. As long as program runs it still can keep its state in
persistent objects and gain from doing so. -
Arrange code so that there is separate state objects and set of processing
classes. If we will be creating instances of processing classes on each use,
update of code will go seamlessly for us.Such calls can be hidden by public interface of serving class.
-
Provide means for conversion. Each new class can have copy constructor for
creating object of that class from the object of previous class version.
OS can, in this case, run over an object tree for your application and perform
object replacement, calling your copy constructor for each of objects bottom to top. -
Convert in place without any support from code.
The biggest problem of code replacement in run time is references to fields.
If object structure changes, field displacements in objects can change.
If we replcae code leaving data intact, new code will access wrong fields.Having field names and displacements for both old and new code OS can
update objects, moving data in new positions and clearing fields which are
new to this version of code.This method seems to be the best one. The only thing that it requests from
application programmer is to be tolerant to absent field values.Or, again, provite an update constructor.
Зачем нужна российская ОС
ОС «Фантом» предназначена, прежде всего, для носимых и встраиваемых гаджетов. Это система промышленного назначения, ориентированная на интернет вещей – например, специальные комплексы для автоматизации промышленных производств, элементы умного города вроде светофоров для интеллектуального регулирования движения, модули в зданиях, которые отвечают за управление освещением, отоплением и кондиционированием. «Фантом» также можно будет использовать в теплоэнергетике, на военных объектах и в банках, где предъявляются особые требования к отказоустойчивости и защищенности решений.
Интерфейс ОС «Фантом»
По словам Дмитрия Завалишина, основатель DZ Systems, базовая версия системы включает два слоя. Первый непосредственно взаимодействует с аппаратным обеспечением, например, с процессором, контроллером памяти, а также с драйверами устройств. Второй – слой реализации сущности ОС: ее архитектуры, взаимодействия с объектами и пользовательским интерфейсом.
Основное отличие «Фантома» от систем на ядре GNU/Linux – в представлении объектов. В Linux используется принцип «все есть файл»: в них хранятся программы, данные, настройки. А в российской ОС «все есть объект».
Архитектура ОС «Фантом»
Такая смена фокуса делает систему стабильнее и безопаснее. Она не прекращает работать, даже если выключить компьютер – эта ситуация воспринимается как пауза. Сразу после включения прикладные программы продолжат с того места, на котором остановились.
Go on and take part!
The kernel and the compiler
Creating an unusual operating system is a very interesting thing to do. There are challenges on each and every step.
Just to start with:
- Persistent memory garbage collector. Suppose we’re in a 64 bit world and persistent memory size is some 20 Tb. The current GC is incomplete.
- If we touch memory too much, the snapshot engine will spend a lot of IO to store the difference. A fast and good allocator can reduce IO load. There is one, but it could be better.
- There’s need for a fast alpha-blending image transfer (bitblt) code.
- The Unix subsystem is very limited. There is no signal delivery, for example. It waits for the one who will implement the missing parts.
- It is theoretically possible to implement a persistent Unix environment. Quite challenging.
- Drivers — current set is minimal, The AHCI driver is not complete, USB needs optimization, some more must be ported or written.
- It would be interesting to add a Python frontend to the Phantom compiler. Are you a Python fan? Can help?
- Phantom bytecode supports classes, inheritance, but does not support interfaces. It is not really trivial to implement interfaces in an efficient way.
- Even a simple JIT engine will help a lot.
- The TCP stack is not ideal and needs someone to lend a hand.
Porting Phantom
Ports to ARM and MIPS were started, but long time no progress. I’m looking for one who can help with that.
Bringing it to 64 bit Intel/AMD is actual task too.
Current kernel is basically SMP ready, but SMP support is not finished completely.
Userland
There’s a need to implement demo applications for Phantom — even simple ones will help.
More serious task is to bring in some simple HTML renderer and get a basic browser working.
Build and CI
- There is a need for a good CI setup which can run system in a specific configurations and following special scenarios.
- Bytecode engine needs to be tested with random garbage execution.
- It is a good idea to keep a set of tools that for sure build a correct OS kernel. , , , etc.
- Need setup to build an ISO image of the system to run on different machines and emulators.
- There is a real need to do CI on a real hadrware. Need corresponding scripts.
If you feel interested to take part in the project, please leave me a note. An issue on a GitHub is the ideal communications channel.
Особенности ОС
В отличие от принципа «все есть файл», применяемого в Unix-подобных системах, к которым относится и популярная в России GNU/Linux – именно на ее основе построено большинство отечественных ОС («Альт», Astra Linux, «Ред ОС» и т.п.), «Фантом» базируется на принципе «все есть объект».
«Операционная система устроена таким образом, что с точки зрения прикладного процесса она никогда не перестает работать, – объясняет особенности своего детища Дмитрий Завалишин. – То есть физическое выключение компьютера для нее – то же самое, что пауза, не более. И прикладные программы при новом старте продолжают работать, как будто отключения не было».
Упрощенно говоря, «Фантом» представляет собой виртуальную машину, которая с заданной периодичностью «сбрасывает» снимки своего состояния (виртуальной памяти) в постоянную память (в некотором роде напоминает гибернацию в Microsoft Windows). Это позволяет в случае отключения питания компьютера или сбоя «откатить» систему к последней успешной транзакции и как ни в чем не бывало продолжить работу.
ОС «Фантом», запущенная в виртуальной машине QEMU
«В ситуации, когда ОС гарантирует программе вечную работу, каждая переменная такой программы семантически превращается в файл. Это означает, что программа перестает нуждаться в, собственно, файлах для хранения данных, которые требуются для работы. Это включает в себя как данные, которые поставляются вместе с программой, так и данные, порожденные в процессе работы. Нет файлов – нет точки входа для сторонней программы (вируса), нет способа вторгнуться в «личное пространство» программы для модификации ее поведения», – отметил Завалишин в разговоре с CNews, отвечая на вопрос о том, как помогает защититься от вредоносных программ применяемый в ОС «Фантом» подход.
Помимо повышения отказоустойчивости и безопасности, данная особенность «Фантома» упрощает разработку прикладного ПО под эту ОС: программисту, в частности, не нужно заботиться о сохранении данных, а ориентированность системы на управляемый код позволяет отказаться от управления памятью вручную.
Другая важная черта «Фантома», которую отмечают разработчики, – высокая производительность. Она достигается, в частности, за счет использования глобального адресного пространства и отсутствия характерного для современных мейнстримных ОС переключения контекста между ядром и запущенными программами, которое может быть весьма ресурсозатратным, но необходимым по соображениям безопасности.
Фото: phantomos.org
Графический интерфейс ОС «Фантом» с консолью Quake на переднем плане
По данным Github-wiki проекта, байт-код виртуальной машины «Фантома» во многом напоминает байт-код Java (выполняемый JVM), однако не предусматривает различий между встроенными типами данных и пользовательскими (классами), то есть любой объект (даже, к примеру, представляющий целое число) является экземпляром класса. Подобная схожесть позволяет достаточно легко построить конвертер байт-кода Java в понятный «Фантому», который позволит портировать на данную ОС уже существующие приложения, написанные на Java.
Кроме того, разработчики планировали предусмотреть возможность выполнения нативного кода (имеющего низкоуровневый, без посредников, доступ к «железу») в отдельном потоке (треде), привязанном к специальному объекту, что может быть полезно при решении задач, требующих высокой производительности, например, обработки видео, звука, сложных вычислений.
Новые правила аккредитации и получения налоговых льгот для ИТ-компаний: что важно знать
Поддержка ИТ-отрасли
Наконец, «Фантом» обеспечивает начальную поддержку стандарта POSIX, что, в частности, может несколько облегчить перенос на данную ОС ПО с других, совместимых с этим стандартом, систем, например, Linux.
Российские ОС
SOSPOSDIEuroSysHotOS5–8 апреля 2022 года в РеннеOS DAYинфраструктура разработкиАврора TEEмеханизмы безопасностиKasperskyOSQP ОС«Ульяновск.BSD 12» (версия 2021.12.21) на базе FreeBSD из Единого реестра российских программ24 записи (версия на 12 октября 2020)
Название | Правообладатель |
---|---|
Calculate Directory Server | ООО «МИР КАЛКУЛЭЙТ» |
Calculate Linux Desktop | ООО «МИР КАЛКУЛЭЙТ» |
ЗАО “Крафтвэй корпорэйшн ПЛС” | |
RAIDIX | ООО «РЭЙДИКС» |
Sailfish Mobile OS RUS | ООО «ОТКРЫТАЯ МОБИЛЬНАЯ ПЛАТФОРМА» |
WANFleX | ООО «ИНФИНЕТ» |
WTware | Ковалёв Андрей Александрович |
Альт Линукс 7.0 Кентавр | ООО «Альт Линукс» |
Альт Линукс КДесктоп | ООО «Альт Линукс» |
Альт Линукс СПТ | ООО «Свободные программы и технологии |
Альт Линукс Школьный | ООО «Альт Линукс» |
Альт Образование | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Альт Сервер | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Базальт Рабочая станция | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Комплекс анализа защищённости «Сканер-ВС» | ЗАО «Научно-производственное объединение «Эшелон» |
ОС РОСА КОБАЛЬТ DX | ООО «НТЦ ИТ РОСА» |
ОС РОСА ХРОМ DX | ООО «НТЦ ИТ РОСА» |
Операционная система «Синергия 1.0» | ФГУП «Российский федеральный ядерный центр — Всероссийский научно-исследовательский институт экспериментальной физики» |
Операционная система для микроконтроллера «Магистра х.х.» | Зырин Николай Владимирович |
Операционная система специального назначения «Astra Linux Special Edition» | АО «Научно-производственное объединение Русские базовые информационные технологии» |
Программный комплекс ICLinux | ОАО «АйСиЭл — КПО ВС» |
Программный комплекс терминального доступа «Циркон 36КТ» | ЗАО «МНОГОПРОФИЛЬНОЕ ВНЕДРЕНЧЕСКОЕ ПРЕДПРИЯТИЕ «СВЕМЕЛ» |
Программный комплекс терминального доступа «Циркон 36СТ» | ЗАО «МНОГОПРОФИЛЬНОЕ ВНЕДРЕНЧЕСКОЕ ПРЕДПРИЯТИЕ «СВЕМЕЛ» |
Ульяновск.BSD | Волков Сергей Вячеславович |
разработка российских процессоровматеринские платы собственного дизайнаполучаются дороже и хуже, чем на стандартных x8615% на все тарифы VDSHABRFIRSTVDSHABRFIRSTDEDIC
Дальнейшие планы разработчиков
В дальнейшие планы разработчиков, как рассказали CNews в DZ Systems, входит получение версии ОС «Фантом», интегрированной с чистым микроядром sel4, создание формально верифицированной ОС на базе верифицированного микроядра.
Андрей Голов, «Код безопасности»: В многополярном мире мы могли бы создать киберальянсы
Безопасность
«Sel4 – единственное сегодня микроядро, в отношении которого математически доказана безошибочность его кода, – говорит Дмитрий Завалишин. – Код «Фантома» достаточно прост и невелик по объему. Если мы внедрим в него доказанно правильное ядро, можно будет рассчитывать на то, что в результате удастся доказать и правильность кода всей операционной системы в целом. Это – одна из целей, которые мы преследуем в работе с университетом «Иннополис»».
Со слов Завалишина, сейчас «Фантом» функционирует на базе собственного ядра, которое прямо работает с аппаратурой компьютера.
По словам ректора университета «Иннополис» Александра Тормасова, в ближайшее время разработчики, помимо портирования ОС на Genode, рассчитывают подготовить ее к использованию в реальных проектах, а также добавить поддержку популярных языков программирования.
Следствия и ответы на вопросы
Почти все люди в этой стране хоть раз видели икеевскую мебель и хоть раз в жизни собирали её. Представьте себе, что вы вынуждены каждый вечер, приходя домой, собирать эту мебель, а утром снова разбирать и класть её в ящики. Это иллюстрация того, как работают все без исключения современные программы. Программа в силу некоторого стереотипного мышления разработчика операционных систем просто вынуждена, поработав какое-то время, всё своё внутреннее представление о предмете, с которым она работает, разбирать и складывать в файлы. Это достаточно болезненный, странный и ненужный процесс. Первое, что делает «Фантом», — это избавляет программиста от необходимости этим заниматься.
Из этого проистекает достаточно много вещей – от приятных до фантастически хороших. Самая простая и очевидная — то, что в силу этого факта фантомовские программы не замечают перезагрузки операционной системы. Этому все так радуются в Firefox, который, как известно, способен запомнить состояние и при загрузке его «поднять». Но Firefox делает это вручную, а «Фантом» гарантирует такое всем работающим программам, перманентно и без какой-либо поддержки с их стороны. Выключил-включил — всё осталось как прежде и сразу поехало работать дальше».
Essence OS
Essence OS
- Для полноценной работы достаточно 30 МБ дискового пространства и примерно 64 МБ оперативной памяти. На скриншоте внизу ядро ОС занимает 45,5 МБ, но для загрузки хватит меньшего.
- Загрузка за несколько секунд даже на старом HDD. В демонстрационном видео при загрузке с SSD рабочий стол появляется через 0,7 секунды после заставки BIOS.
- Полностью векторный GUI, то есть идеальное качество изображения на дисплеях высокого разрешения. Продвинутый векторный рендеринг с поддержкой анимации.
- Вкладки.
- Рендеринг шрифтов на FreeType и Harfbuzz (любые языки).
- Открытые исходники.
- Особенности ядра:
- Независимый от файловой системы менеджер кэша.
- Менеджер памяти: общая память, маппинг файлов в память, многопоточное обнуление страниц, балансировка рабочего множества — память, которая требуется процессам в каждый момент времени.
- Сетевой стек для TCP/IP.
- Шедулер с несколькими уровнями приоритетов и инверсией приоритетов.
- Загрузка модулей по требованию.
- Виртуальная файловая система.
- Оконный менеджер.
- Аудиомикшер (в настоящее время переписывается).
- Дополнительная POSIX-подсистема, способная запускать GCC и некоторые инструменты Busybox.
менеджере памяти Windowsможно посмотреть здесь
на сервере Discord
Процесс разработки
Создание ОС «Фантом» стартовало в 2010 году. Основатель DZ Systems Дмитрий Завалишин не раз рассказывал о ней на конференции HighLoad++ и других мероприятиях. Но только сейчас в интервью CNews он заявил, что рабочий прототип системы готов к использованию в пилотных проектах, а концу года с «Фантомом» можно будет работать в обычном режиме.
В создании системы, помимо DZ Systems, участвуют специалисты университета «Иннополис». Они подключились к проекту в 2019 году и занимаются портированием «Фантома» на ядра Genode – заменой первого слоя системы. Для этого среду исполнения программ ОС нужно срастить с программным ядром фреймворка с поддержкой различных архитектур (x86, ARM, RISC-V) и гипервизоров, в частности, seL4. Это математически верифицированное ядро: его надежность и полное соответствие заданным спецификациям доказаны с помощью математических методов.
После портирования система должна стать надежнее и безопаснее, и ее будет проще внедрить в реальных промышленных проектах. Кроме того, это упростит доработку «Фантома».
What Phantom OS is
- Phantom Architecture in English
Basically, most of code we (the original team) upload is very straighforward
and, sometimes, dumb. That, to some extent, is on purpose. We want to have
a working system first and polish it next. Besides, not all the concepts and
design desicions are final, so it is of no use to finalize all the
implementation desisions now as well.
Code is known to compile successfully with cygwin/linux gcc 4.3.4. Only the
IA32 target is most complete and stable, the ARM port is in active development
but very unstable, the MIPS port has just been started — compiles and can
breathe for a second :), the amd64 port is incomplete and does not compile at all.
Ссылки
- Официальные сайты
- . Digital Zone. Дата обращения: 6 июня 2018.
- ., Github, Dmitry Zavalishin
- .
- .
- ., английский язык
- Обзоры в прессе
- . — «Можно ли в наши времена программисту-одиночке создать с нуля очередную новую операционную систему, причём с принципиально иным устройством, отличным от общепринятого? Осталось ли ещё место на современном переполненном конкуренцией Олимпе ИТ как для совершенно новых идей, так и для смелых людей, их реализующих?».
- .
- Дмитрий Завалишин. . Открытые системы (10 мая 2011). — «Практически все сегодня пользуются операционными системами. Но хороши ли операционные системы современности, решают ли они все стоящие перед ними задачи, возможен ли прогресс в этой области?». Дата обращения: 11 мая 2011.
- Андрей Письменный. . Компьютерра (9 июля 2010). — «В ОС «Фантом», которую разрабатывают в России, нет разницы между запущенными и не запущенными приложениями. Автор «Фантома» уверен, что именно в этом направлении будут развиваться операционные системы.». Дата обращения: 27 апреля 2011.
- Андрей Майоров. . Habrahabr (25 апреля 2011). — «Дмитрий Завалишин рассказал о текущем состоянии в разработке своего любимого детища — оригинальной операционной системы PhantomOS, близкой по концепции Microsoft Singularity, но при этом open-source (опубликована большая часть исходных кодов этой операционной системы).». Дата обращения: 27 апреля 2011.
- Максим Белоус. . PC Magazine (23 апреля 2009). Дата обращения: 27 апреля 2011.
- Андрей Анненков. (недоступная ссылка). IT Today (13 февраля 2011). Дата обращения: 27 апреля 2011.
- Ted Dziuba. (англ.). The Register (3 февраля 2009). — «The iPhone that never dies». Дата обращения: 27 апреля 2011.
Основные отличительные черты
- Управляемый код, защита памяти на уровне объекта (а не процесса). Отсутствие арифметики указателей в управляемом коде позволяет избежать многих проблем, присутствующих в неуправляемом коде.
- Глобальное адресное пространство, весьма эффективные и дешёвые IPC. Единое адресное пространство позволяет передавать объект от одного процесса (приложения) к другому путём простой передачи ссылки на этот объект. Безопасность достигается благодаря отсутствию арифметики указателей, невозможности для прикладной программы получить ссылку на объект иначе, как путём вызова публичного метода, использованию байткода.
- ПерсистентностьШаблон:Anchor — гарантированное восстановление состояния операционной системы на момент последнего снимка памяти. Прикладной код «не видит» перезагрузок ОС и может жить вечно — отсюда отсутствие потребности в понятии «файл» — любая переменная или структура данных может храниться вечно и при этом быть доступна напрямую по указателю. В отличие от гибернации в других ОС, персистентность памяти заложена в основополагающих принципах построения ядра ОС Фантом, производится прозрачно для приложений, в большинстве случаев не требует доработки прикладного ПО, персистентность сохраняется даже при аварийной остановке компьютера.
Состояние разработки на текущий момент
Vaporwareвыложены в свободный доступЕсть проект, и он делается – медленно, но верно. На сегодня значительная часть гипотез подтверждена работающими стендами, соответственно проект можно начинать разрабатывать более активно. Поскольку через год-полтора нам бы хотелось видеть в мире некоторое кол-во человек, которые будут готовы брать на себя какие-то проекты в рамках основного workflow, то мы начинаем уже сейчас рассказывать о концепции, чтобы в продуктивной дискуссии налаживать контакты с теми, кто способен адекватно воспринимать и участвовать в проекте.
Поскольку концепция у нас сильно визионерская, то тексты, которые мы публикуем, предполагают некоторое специальное состояние мозгов, обычно называемое умом. Не соображалкой, достаточной для выполнения рутинной работы и карьерных интриг, а достаточно творческое, в достаточной степени «научное» мышление. Ну и некоторый уровень компетентности в современных ИТ-реалиях, условно выходящих за маркетинговые мантры типа «Линукс – самая прогрессивная и функциональная система в мире».
Главный конкурент – Linux
Говоря о коммерческих перспективах продукта, руководитель DZ Systems заявил, что тот, вероятно, заинтересует организации, уделяющие особое внимание безопасности – предприятия ТЭК, военной промышленности, объекты критической информационной инфраструктуры (КИИ), например банки. «Основная цель на сегодня – встроенные применения, которые требуют высокой надежности, IoT-тематика (устройства интернета вещей; – прим
CNews) и роботы», – говорит Завалишин. По его мнению, у ОС «Фантом» в данном сегменте рынка существует лишь один конкурент – Linux
«Основная цель на сегодня – встроенные применения, которые требуют высокой надежности, IoT-тематика (устройства интернета вещей; – прим. CNews) и роботы», – говорит Завалишин. По его мнению, у ОС «Фантом» в данном сегменте рынка существует лишь один конкурент – Linux.
Одним из важных преимуществ операционных систем на базе Linux является свободная доступность широкого перечня программ, предназначенных для решения самых разных задач. Экосистема Linux формировалась десятилетиями при участии миллионов разработчиков и поддержке крупнейших технологических компаний мира.
На вопрос, как именно планируется решать проблему дефицита прикладных программ для по сути совершенно новой ОС «Фантом», Завалишин не ответил. По его словам, лабораторию в «Иннополисе», которая занимается системой, ведут два сотрудника университета, которые привлекают к работе группы студентов. Помимо них, над ОС трудится несколько сотрудников DZ Systems.
Критика
Основные претензии к ОС Фантом делятся на две группы. Первая группа — вопросы маркетинга и путей выхода на рынок. Критики указывают на сложность выведения на рынок такого продукта как операционная система, и отсутствие сформированного рынка прикладного ПО для систем, не совместимых с уже существующими ОС. Вторая группа — технические вопросы. Наиболее рациональная техническая претензия указывает на неэффективность модели ввода-вывода ОС Фантом для некоторых видов приложений — а именно приложений, которые активно и неоднократно модифицируют огромные объёмы данных.
Следует заметить, что применяемая на машинах IBM System i класса мини-ЭВМ операционная система как раз предназначена для обработки больших и очень больших объёмов данных. Она основана также на идее одноуровневой памяти, объектно-ориентированности, других схожих идеях. Архитектура успешно развивается с 1988 года, что доказывает принципиальную возможность их обработки на базе ОС Фантом.
Заключение
находятся здесьдоступно тутPhantom Whitepaperwiki-страница проектаХрусталь мечты должен непременно вести человека вперед, туда, куда, может быть, и нельзя дойти, но надо обязательно стремиться. Это – романтическая часть ответа. Впрочем, мы – реалисты. Мы понимаем, что пока физически в состоянии сделать систему с нуля только для ограниченных применений, и уже очертили для себя направления, в которых будем работать на первых порах, – встроенные системы и веб-серверы. Развитие в других направлениях – вопрос возможного партнерства или инвестиций. Мы видим свою задачу в том, чтобы показать ценность новой технологии и сделать эту технологию практически применимой хотя бы в узком целевом сегменте.
Реально ли за неделю подготовиться к собеседованию на английском? Как правильно переспросить, если вы не расслышали вопрос?