html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

PhantomOS: держим курс на ортогональную персистентность. Часть 1


Можно ли в наши времена программисту-одиночке создать с нуля очередную новую операционную систему, причем с принципиально иным устройством, отличным от общепринятого? Осталось ли ещё место на современном переполненном конкуренцией Олимпе ИТ как для совершенно новых идей, так и для смелых людей, их реализующих?

Основатель новой российской ОС, Дмитрий Завалишин, отвечает на оба эти вопроса утвердительно, кроме того, он прилагает все усилия для того, чтобы осуществить свою давнюю мечту. Его цель — создать операционную систему, в которой не было бы никакой разницы между запущенной и не запущенной программой. Отчасти упрощая идею персистентности, можно сказать, что эта ОС сохраняет состояние swap-раздела диска между запусками (называется это consistent paging, кстати). Как следствие, при написании для неё приложений программистам не придётся заботиться о сохранении данных вообще, а понятие файла и вовсе отсутствует в этой ОС как излишнее. При этом обмениваться сложными структурами (из пользовательских программ, системных областей ОС и так далее) будет не труднее, чем осуществлять передачу простого текста — например, составные объекты из вашего приложения можно будет скидывать другу на его e-mail!

Предлагаю подробную обзорную статью в двух частях об основных идеях, а также текущем состоянии реализации этой очень интересной ОС, и, кроме того, о людях, которые движут вперед подобные нестандартные идеи. В данном случае мы познакомимся с Дмитрием Завалишиным — главным идейным вдохновителем и разработчиком уже упомянутой ОС Фантом.

dz fantom Phantom OS ос фантом завалишин afynjv

Диалектические разновидности Homo Programicus

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

Первая категория гордо именует вторую «велосипедостроителями», хотя порой из неё и рождаются люди калибром вроде покойного Стива Джобса: достаточно посмотреть найденное совсем недавно и ранее неизвестное интервью с Джобсом, чтобы во всей красе оценить зуд к неуёмному «велосипедостроительству» у этой группы людей. Как я понимаю, предназначение первой категории — быть хорошим исполнителем, а вот второй, собственно, — создавать компании, в которых будет работать первая категория «идеальных исполнителей чужих идей».

Впрочем, оставим пока эти две категории Homo Programicus и их часто хроническое взаимное непонимание друг друга в покое. Такое вступление было необходимо лишь для четкого позиционирования нашего сегодняшнего героя, который, вне всякого сомнения, относится ко второй категории этой не слишком заумной классификации.

У него, как ни у кого другого, легко найдутся свои ответы на эти извечные вопросы: зачем люди создают свои собственные операционные системы? Зачем вкладывать в это прорву личного времени, или даже, как наш герой, — сотни собственных тысяч долларов?

Почему не сделать всё проще: знай себе, ходи на работу в заведенное время, пиши что тебе (и как тебе) говорят, получай в производственной кассе свою месячную зарплату, покупай свой условный «айфон» и повторяй сей цикл заново, пока Пенсионный фонд не позовёт тебя угомониться в сладком покое обеспеченной социальным государством старости. Что гонит других людей в неведомые края на другой конец света, что движет ими, заставляя скрупулезно колупаться в своих странных для всех идеях буквально годами, без каких-либо гарантий получить хоть какое-то вознаграждение от общества за потраченные на это труды, здоровье и годы?..

Всегда сложно рассуждать об абстрактных моделях, предлагаю попробовать разобраться во вкусе одной конкретной «интересной идеи» на примере нашего героя и его проектa — PhantomOS.

Призрак «русской ОС» ходит...

Мы заочно знакомы с Дмитрием Завалишиным (в сети известным просто как dz) ещё со времен FidoNet, когда он был не самым последним хабом (и даже демосовским гейткипером между Фидо и интернетом) в московском бекбоне, да и просто рассказчик и собеседник был тот ещё интересный. С тех пор прошло много лет, и даже на фоне «этих лихих российских 90-тых» он сумел полностью самостоятельно создать собственную hitech-компанию буквально на пустом месте.

Успешные софтверные разработки его компании Digital Zone — притча во языцех. Вместо того чтобы бодро «строгать заокеанский баблос», пользуясь репутацией и сравнительной известностью в узких кругах, Digital Zone демонстрирует крайнюю избирательность в заказах, которые принимаются ей к исполнению. Как написано на сайте, «мы берёмся только за самое интересное и сложное, что можно найти».

Дмитрий Завалишин dz fantom Phantom OS ос фантом завалишин afynjv

Впрочем, сегодняшний рассказ пойдет вовсе не о коммерческих разработках компании, которые также по-своему уникальны даже для гигантов масштабов вроде EPAM Systems. Речь пойдет о некоммерческой (пока, как минимум) разработке этой фирмы, которая есть осуществление давней мечты Дмитрия Завалишина — создание принципиально новой операционной системы.

Имя этой ОС — «Фантом», и, переходя к следующему пункту нашего рассказа, давайте тщательно ощупаем своими немытыми руками «хрустальную мечту детства» Дмитрия Завалишина, чтобы не только ответить на вопрос «что это», но и попутно постараться уяснить для себя: что же движет этим человеком?

Всё есть объект

Чтобы сразу четко обозначить исходную точку, нужно упомянуть, что за ОС Фантом стоят два человека, сделавшие её своим magnum opus, — это Дмитрий Завалишин и Кирилл Готовцев, которые, собственно, и основали компанию Digital Zone. Система разрабатывается уже около десяти лет, и сами её авторы оценивают её степень готовность как достаточно высокую, почти готова даже своя графическая оболочка для неё (как я понял, на основе X Windows), хотя, как это и водится при разработке по-настоящему серьёзных систем, горизонт релиза постоянно отодвигается.

Одна из причин такого долгостроя, равно как и принципиальная черта самой новой системы, — она действительно одна из немногих ОС, не опирающихся на классические концепции Unix-систем (у традиционных Unix-систем с этой точки сравнения даже с семейством ОС Windows очень много общего)

Самое время компактно перечислить главные технические и практические особенности этой ОС, чтобы читатель мог в полной мере оценить как минимум необычность, а как максимум — революционность новых подходов, примененных при проектировании этой ОС.

#1

Главная особенность: система базируется на концепции неизбывной виртуальной памяти (персистентной, persistent) и сильно ориентирована на управляемый (managed) код. В силу важности этих двух ключевых утверждений давайте расшифруем их более подробно. Говоря предельно просто, персистентность значит, что прикладной код «не видит» перезагрузок ОС и может жить вечно или непрерывно, все его промежуточные состояния фиксируются самой системой в фоновом режиме на носители постоянной памяти.

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

#2

Важное следствие такой стратегии — бессмысленность файлов как сущности. Временное состояние программы и любые её параметры/данные не требуют каких-то отдельных операций для своего сохранения. Несмотря на это, ОС Фантом всё же будет обеспечивать взаимодействие со многими существующими файловыми системами исключительно для совместимости. Здесь нет ничего, кроме объектов, и файл, очевидно, таковым не является. Таким образом, Фантом будет оперировать полностью объектным адресным пространством размером с ваш физический жесткий диск (или что там у вас вместо него?).

Кстати говоря, на интернет-ресурсах, обсуждающих Фантом, очень много споров именно вокруг упомянутого свойства «система без файлов» — задаются каверзным вопросом, дескать, «взлетит или нет»? Вот отдельный ответ Завалишина конкретно по этому пункту.

#3

Ещё одно следствие вышесказанного, сочетаемое с микроядерной природой самого ядра ОС, — практически мгновенный старт системы: загрузка до прошлого состояния осуществляется максимум за 2 секунды (к примеру, в моей «плазме» встроенный Linux — и этому телевизору, чтобы завестись, требуется примерно 10 секунд — целая вечность, и это в космическую эру, когда «Кьюриосити» бороздит окраины Вселенной!).

#4

Реализовано глобальное адресное пространство, система работает в одном адресном кольце. Иначе говоря, эта ОС живёт без переключений контекста между ядром и приложением. Как хорошо известно, постоянные переключения между режимами («процессорными кольцами защиты») весьма дорогостоящи и ощутимо снижают производительность прикладного и серверного ПО.

Повторяю: системная виртуальная машина Фантома, все другие запущенные виртуальные машины процессов всех юзеров — все работают в одном, общем адресном пространстве. В Фантоме каждая отдельная функция создает под себя отдельный, свой собственный стек, и в нем она живет, трудится и помирает. При таком подходе, с одной стороны, обеспечивается пиковая производительность, а с другой — защита приложения реализована на основе другой, менее ресурсоемкой технологии.

#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.

fantom Phantom OS ос фантом завалишин afynjv

На этом перечислении всех индивидуальных особенностей ОС Фантом мы пока остановимся, чтобы во второй части завершить её рассмотрение. Там мы, в частности, узнаем о текущем положении дел с разработкой этой ОС, а также более подробно обсудим её перспективы, равно как и недостатки её оригинальной концепции.

Ну и, конечно, завершим рассмотрение нашей попытки понять, что есть Мечта и что же движет программистами-идеалистами, которые пускаются в далекие и экзотичные приключения в поисках своей идеи фикс.

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с blogerator.ru

5

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • pleshner
          • домен blogerator.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции