Можно ли в наши времена программисту-одиночке создать с нуля очередную новую операционную систему, причем с принципиально иным устройством, отличным от общепринятого? Осталось ли ещё место на современном переполненном конкуренцией Олимпе ИТ как для совершенно новых идей, так и для смелых людей, их реализующих? Основатель новой российской ОС, Дмитрий Завалишин, отвечает на оба эти вопроса утвердительно, кроме того, он прилагает все усилия для того, чтобы осуществить свою давнюю мечту. Его цель — создать операционную систему, в которой не было бы никакой разницы между запущенной и не запущенной программой. Отчасти упрощая идею персистентности, можно сказать, что эта ОС сохраняет состояние swap-раздела диска между запусками (называется это консистентный пейджинг, кстати). Как следствие, при написании для неё приложений программистам не придётся заботиться о сохранении данных вообще, а понятие файла и вовсе отсутствует в этой ОС как излишнее. При этом обмениваться сложными структурами (из пользовательских программ, системных областей ОС и так далее) будет не труднее, чем осуществлять передачу простого текста — например, составные объекты из вашего приложения можно будет скидывать другу на его e-mail! Предлагаю подробную обзорную статью в двух частях об основных идеях, а также текущем состоянии реализации этой очень интересной ОС, и, кроме того, о людях, которые движут вперед подобные нестандартные идеи. В данном случае мы познакомимся с Дмитрием Завалишиным — главным вдохновителем и разработчиком уже упомянутой ОС Фантом.
Диалектические разновидности Homo Programicus
Но для начала позволю себе небольшое теоретическое введение. Всех программистов очень условно можно разделить на две большие категории. Это те, кто тратит все свои силы и энергию на овладение уже существующими технологиями, довольствуясь под конец жизни выстраданной ролью своего рода гуру-специалиста в области чужих (общепринятых) технологий, а также те, кто денно и нощно находится в непрерывном поиске всего нового, неизведанного и пока ещё никем не открытого. Первая категория гордо именует вторую «велосипедостроителями», хотя порой из неё и рождаются люди калибром вроде покойного Стива Джобса: достаточно посмотреть найденное совсем недавно ранее неизвестное интервью с Джобсом, чтобы во всей красе оценить зуд к неуёмному «велосипедостроительству» у этой группы людей. Как я понимаю, предназначение первой категории — быть хорошим исполнителем, а вот второй, собственно, — создавать компании, в которых будет работать первая категория «идеальных исполнителей чужих идей». Впрочем, оставим пока эти две категории Homo Programicus и их часто хроническое взаимное непонимание друг друга в покое. Такое вступление было необходимо лишь для четкого позиционирования нашего сегодняшнего героя, который, вне всякого сомнения, относится ко второй категории этой не слишком заумной классификации. У него, как ни у кого другого, легко найдутся свои ответы на эти извечные вопросы: зачем люди создают свои собственные операционные системы? Зачем вкладывать в это прорву личного времени, или даже, как наш герой, — сотни собственных тысяч долларов? Почему не сделать всё проще: знай себе, ходи на работу в заведенное время, пиши что тебе (и как тебе) говорят, получай в производственной кассе свою месячную зарплату, покупай свой условный «айфон» и повторяй сей цикл заново, пока Пенсионный фонд не позовёт тебя угомониться в сладком покое обеспеченной социальным государством старости. Что гонит других людей в неведомые края на другой конец света, что движет ими, заставляя скрупулезно колупаться в своих странных для всех идеях буквально годами, без каких-либо гарантий получить хоть какое-то вознаграждение от общества за потраченные на это труды, здоровье и годы?.. Всегда сложно рассуждать об абстрактных моделях, предлагаю попробовать разобраться во вкусе одной конкретной «интересной идеи» на примере нашего героя и его проектa — PhantomOS.
Призрак «русской ОС»…
Мы заочно знакомы с Дмитрием Завалишиным (в сети известным просто как dz) ещё со времен FidoNet, когда он был не самым последним хабом (и даже демосовским гейткипером между Фидо и интернетом) в московском бекбоне, да и просто рассказчик и собеседник был тот ещё интересный. С тех пор прошло много лет, и даже на фоне «этих лихих российских 90-тых» он сумел полностью самостоятельно создать собственную hitech-компанию буквально на пустом месте. Успешные софтверные разработки его компании Впрочем, сегодняшний рассказ пойдет вовсе не о коммерческих разработках компании, которые также по-своему уникальны даже для гигантов масштабов вроде нашего EPAM Systems. Речь пойдет о некоммерческой (пока, как минимум) разработке этой фирмы, которая есть осуществление давней мечты Дмитрия Завалишина — создание принципиально новой операционной системы. Имя этой ОС — «Фантом», и, переходя к следующему пункту нашего рассказа, давайте тщательно ощупаем своими немытыми руками «хрустальную мечту детства» Дмитрия Завалишина, чтобы не только ответить на вопрос «что это», но и попутно постараться уяснить для себя: что же движет этим человеком?
Всё есть объект
Чтобы сразу четко обозначить исходную точку, нужно упомянуть, что за ОС Фантом стоят два человека, сделавшие её своим magnum opus, — это Дмитрий Завалишин и Кирилл Готовцев, которые, собственно, и основали компанию Digital Zone. Система разрабатывается уже около десяти лет, и сами её авторы оценивают её степень готовность как достаточно высокую, почти готова даже своя графическая оболочка для неё (как я понял, на основе X Windows), хотя, как это и водится при разработке по-настоящему серьёзных систем, горизонт релиза постоянно отодвигается. Одна из причин такого долгостроя, равно как и принципиальная черта самой новой системы, — она действительно одна из немногих ОС, не опирающихся на классические концепции Unix-систем (у традиционных Unix-систем с этой точки сравнения даже с семейством ОС Windows очень много общего). Самое время компактно перечислить главные технические и практические особенности этой ОС, чтобы читатель мог в полной мере оценить как минимум необычность, а как максимум — революционность новых подходов, примененных при проектировании этой ОС.
#1
Главная особенность: система базируется на концепции неизбывной (персистентной, persistent) виртуальной памяти и сильно ориентирована на управляемый (managed) код. В силу важности этих двух ключевых утверждений давайте расшифруем их более подробно. Говоря предельно просто, персистентность значит, что прикладной код «не видит» перезагрузок ОС и может жить вечно или непрерывно, все его промежуточные состояния фиксируются самой системой в фоновом режиме на носители постоянной памяти. Главное отличие персистентности от распространенной ныне гибернации — это более глобальное применение это стратегии, когда всё, чем только оперирует система, подлежит сохранению и прозрачному восстановлению, гарантируя постоянную синхронизированность и непрерывность жизни всех рабочих процессов.
#2
Важное следствие такой стратегии — бессмысленность файлов как сущности. Временное состояние программы и любые её параметры/данные не требуют каких-то отдельных операций для своего сохранения. Несмотря на это, ОС Фантом всё же будет обеспечивать взаимодействие со многими существующими файловыми системами исключительно для совместимости. Здесь нет ничего, кроме объектов, и файл, очевидно, таковым не является. Таким образом, Фантом будет оперировать полностью объектным адресным пространством размером с ваш физический жесткий диск (или что там у вас вместо него?). Кстати говоря, на интернет-ресурсах, обсуждающих Фантом, очень много споров именно вокруг упомянутого свойства «система без файлов» — задаются каверзным вопросом, дескать, «взлетит или нет»? Вот
#5
Защита и изоляция программ реализована на сочетании использования управляемого кода и отсутствия в нём арифметики указателей, т. е. защита имеет место быть не на уровне процесса (как у обычных ОС), а на уровне самого объекта. Здесь программно реализована принципиальная невозможность прикладной программы как-либо получить ссылку на объект иначе, нежели как путём вызова публичного метода самой ОС, в рамках которой и осуществляется «расшаривание объекта» и уже параллельно — надзор над правами и ресурсами пользователей при этом. Вот как сам автор поясняет эту концепцию: Защита реализуется в силу невозможности в базисе операций байткода создавать пойнтеры из интов. То есть обратиться можно только по тому пойнтеру, который вам дали. Создать пойнтер иначе как путём создания нового объекта — невозможно. Это позволяет всей системе жить в одном адресном пространстве. Отсюда дешевизна IPC и ввода-вывода. Плата за это — байткод, но нынче его JIT-ом отлично компилируют.
#6
Как следствие — резкое понижение сложности взаимодействия программ (это очень высокоуровневый IPC), где для создания «интерконнекта» между любым набором программ достаточно передать им указатель на произвольную группу открываемых объектов, после чего они напрямую доступны во всей своей сложности. Это новый уровень возможностей для реализации компонентности сложных систем.
#7
Как уже было сказано, система Фантом работает на своём собственном байт-коде, интерпретатор которого строит объектную модель аналогично Java. Кроме того, система содержит развитый конвертор из байткода JVM, что позволяет использовать стандартные существующие программы, уже работающие на базе виртуальной машины Java. Также обеспечена ограниченная поддержка стандартной POSIX-подсистемы, которая позволяет переносить свой прикладной код из Unix/Linux/FreeBSD (типа UNIX внутри Фантома). В ближайшем будущем планируется реализация аналогичного конвертора уже для виртуальной машины CLR (.NET), а также встраивание в систему собственного JIT-компилятора (на основе libjit). Следует отметить, что в силу очень специфической природы ОС Фантом при таком переносе, исходные программы (не-фантомасовские изначально) всё равно часто требуют доработки, при этом часть нативных свойств принимающей ОС не будет им доступна.
#8
И, наконец, не будет лишним отметить, что, в отличие от множества клонов Linux или *BSD, эта система написана, что называется, «с нуля». Несмотря на присутствие внешних заимствований, они не носят критического характера. Завалишин не любит GPL и считает, что «если уж отдавать код, то не стоит ставить условий», поэтому его система предоставляется на условиях лицензии LGPL (главное её отличие от GPL в том, что эта лицензия дает свободу в выборе лицензии уже в своём форке). Исходный код системы постепенно выкладывается публике, на данный момент открыта альфа-версия так называемого userland. На этом перечислении всех индивидуальных особенностей ОС Фантом мы пока остановимся, чтобы во второй части завершить её рассмотрение. Там мы, в частности, узнаем о текущем положении дел с разработкой этой ОС, а также более подробно обсудим её перспективы, равно как и недостатки её оригинальной концепции. Ну и, конечно, завершим рассмотрение нашей попытки понять, что есть Мечта и что же движет программистами-идеалистами, которые пускаются в далекие и экзотичные приключения в поисках своей идеи фикс.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.