|
ГЛАВНАЯ АРХИВ НОМЕРОВ №115 ИЗЮМ СЕТИ |
Phantom – русский палач Windows |
Операционная система «Фантом» российской компании Digital Zone - F.A.Q.
Общие вопросы
Q: Что такое ОС Фантом? Это очередной клон Windows или еще раз переупакованный в новую коробку Linux? A: Ни в коем случае. Мы не считаем интересным или полезным создание еще одного дубликата существующей ОС.
Q: В чем же интерес или польза от несовместимой ни с чем системы? A: Невозможно конкурировать с Windows, повторяя ее. Невозможно конкурировать с Windows, создавая функционально более слабую систему, такую, как Linux.
Q: Вы собираетесь конкурировать с Windows? Это несерьезно и нереально! A: Существует несколько примеров удачной конкуренции с Windows. Наиболее известные ОС широкого профиля — MacOS и Linux. Менее известные и нишевые — PalmOS и Symbian. Отметим, что все эти системы (за исключением MacOS) были созданы при достаточно скромных вложениях.
Q: Но MacOS-то обошлась в огромные деньги? A: Отчасти. Если смотреть на весь путь ее развития — то да. Но, фактически, десятая версия MacOS (та, которая используется сейчас) написана заново в течение довольно короткого времени. Эта система, как и Linux, эффективно использовала потенциал Open Source сообщества и обошлась в довольно обозримые деньги. Во всяком случае, не самая крупная на свете компания Apple в не самые лучшие свои годы смогла эти деньги проинвестировать.
Q: Хорошо, но как именно можно конкурировать с Windows? A: Как и в любом другом секторе экономики, конкуренция требует умения производить такие же или более хорошие продукты при меньших затратах. В секторе экономики под названием «разработка программного обеспечения» продуктом является прикладное ПО. А операционные системы и языки программирования — это, своего рода, станки и заводы, предназначенные для производства ПО. «Пользовательская» сторона операционной системы (красота и удобство пользовательского интерфейса) вторична и легко реализуема. Первично и важно сделать такую ОС, на основе которой было бы дешево и удобно создавать программы. Мы знаем, как ее сделать.
Q: Насколько дешевле будет производить программы на основе ОС Фантом? A: Мы предполагаем, как минимум, 30 % прирост производительности. Это — консервативная оценка. Суммарный эффект может дать 200–400 % прирост.
Q: 400 %? Это нереально! A: Вполне реально. Прирост производительности от простого перехода в разработке ПО от языка программирования C++ на языки Java и C# оценивается экспертами в 500 %- чем, собственно, и объясняется вытеснение первого языка двумя последними в течение достаточно короткого срока.
Q: В чем суть этого прироста? Эти языки отличаются очень несущественно! Не может быть! A: Мы с удовольствием обсудим этот вопрос в кулуарах — он не пятиминутный. Вкратце — Java и C# обладают двумя важными свойствами: а) они лишают программиста возможности сделать некоторые чрезвычайно болезненные ошибки, исправление которых часто требовало неадекватного и непредсказуемого времени, и б) они сильно облегчают возможность сборки программы из крупных готовых частей. ОС Фантом в существенной мере развивает этот успех.
Q: Но ведь для новой системы потребуются новые программы — сколь огромные силы будут нужны для их создания? A: Существенное количество программ не потребуется создавать заново — лишь перенести из старых систем. Кроме того, позвольте обратить ваше внимание на такое явление, как iPhone. Он создан на основе весьма специфичной системы (модифицированный MacOS), все программы для которой были созданы с нуля — даже простой перенос программы из другой ОС невозможен ввиду очень необычного подхода к построению интерфейса пользователя. Всего лишь полтора года тому назад не существовало ни iPhone, ни его операционной системы, ни программистов, имевших опыт написания программ для нее. Тем не менее, сегодня существует около десяти тысяч (10 000!) программ для iPhone.
Q: Это все — мелкие программки, не так ли? A: Так. Но это — веяние времени. Сегодня удобнее иметь несколько мелких программ, нежели одну крупную — опять же, это происходит в силу того, что облегчилась возможность совместного использования программ, что, опять же, экономически обосновано. Создавать мелкие программы — менее рискованно с точки зрения вложений в бизнес, поэтому несколько небольших продуктов, решающих совместно большую задачу — это более эффективный экономически подход. Именно поэтому он и превалирует сегодня.
Q: Фантом похож на Microsoft Singularity. A: Первая информация о Фантоме была выложена в Сеть в 1998-м году. Описание концепции Фантом было отправлено в Microsoft за пару лет до объявления Singularity. Извините уж, но это Microsoft Singularity похожа на Фантом.
Q: Ну и, тем не менее — получается, что вы не так уж революционны? A: Было бы глупо надеяться, что мы совсем уж уникальны. Есть еще два-три человека в мире, способных двигаться не уступая нам. Но — похожесть Фантома и Microsoft Singularity не означает их идентичности. У нас есть уникальное свойство, которое Microsoft пока не осознал, как существенную ценность, или не умеет реализовать.
Q: Каково же уникальное свойство ОС Фантом? A: Говоря попросту — бессмертие. В отличие от всех существующих систем Фантом умеет обеспечить работающим в нем программам вечную жизнь. Для программ не существует необходимости завершаться. Это довольно сильно меняет ситуацию. Во-первых, это удобно — пользователь не должен перед выключением машины закрывать все программы и снова открывать их перед началом работы. Во-вторых, это позволяет программам быть сильно проще — например, программа больше не вынуждена вообще уметь записывать свое состояние в файл! Одно лишь это упрощение снижает затраты денег и времен на те самые 30 %. А есть и другие.
Q: Но компьютер нужно иногда выключать. Значит, система будет остановлена. А значит — будут остановлены и все программы, нет? A: Скажем иначе — «приостановлены». Для программ остановка системы выглядит как задержка в работе. Примерно как нажатие кнопки «пауза» на DVD. После запуска системы все программы просто «поедут дальше».
Q: Такое уже есть в Windows, называется Hibernate. A: Не все так просто. Hibernate требует от вас специального завершения работы системы — если его не выполнить, то все пропало. То есть — Windows не может гарантировать программам «вечную жизнь», а значит — программы под Windows приходится писать по-старому. Фантом же способен пережить даже ситуацию, когда компьютер обесточен совершенно внезапно. После перезапуска системы она все равно восстановится в том виде, который имела за несколько секунд до спонтанного выключения.
Q: Это должно требовать огромных ресурсов? Ведь система вынуждена постоянно «фотографировать» себя? A: Основное know how Фантома состоит именно в умении дешево создавать мгновенные снимки состояния системы, не останавливая ее и не внося серьезных возмущений в работу. Тонкость в том, что «фотографирование» должно запечатлеть всю систему на один момент времени — без исключений. До сих пор считалось, что это требует паузы в работе всех программ. Мы нашли способ распределить во времени создание такой «фотографии», при этом оставив ее синхронной с точки зрения «внутренностей» системы.
Q: А нужно ли это? Может, постаринке? A: Нужно. Это дает несколько весьма существенных преимуществ. Важнейшее из них — это весьма существенное удешевление разработки ПО. Если оно еще не впечатлило Вас, я попробую привести весьма простой пример. Представьте себе, что вы научились делать автомобили на 30 % дешевле, чем это умеет делать Toyota или Audi. А ведь рынок ПО недалек по масштабу от рынка автомобилей: только коробочного ПО в России в 2007 продано на 2,7 млрд. долл. Это без учета услуг и разработки заказного ПО.
Q: На какие рынки вы полагаете ориентировать Фантом? A: Это — система широкого профиля. Технически она пригодна для всех известных применений — десктоп, мобильные устройства, серверные приложения, специальные (встроенные) системы. Но есть направления, где Фантом может проявить себя весьма ярко. Например, медицина и военная техника.
Q: Что такого важного в Фантоме для медицины и войны? A: Фантом, в силу своей концептуальной простоты, не только не теряет состояние программы при внезапном выключении компьютера, но и чрезвычайно быстро восстанавливается при запуске. При условии тщательной реализации система может восстановиться буквально за единицы секунд, а при условии компактности прикладной программы — и быстрее. Давайте представим себе стоящий у постели реанимационного больного компьютер, который управляет системами жизнеобеспечения. Неважно, из-за чего он может вдруг оказаться выключенным — из-за уборщицы с тряпкой, или из-за частичного отказа системы резервирования питания — но отрицать возможность его отключения на несколько секунд нельзя. Обычная операционная система в таких условиях вряд ли оставит пациенту шанс выжить — загрузка, проверка дисков, запуск программ — увы, это может занять минуты! В то же время Фантом «рождается во взрослом состоянии» — непосредственно в момент запуска он уже ровно таков, каков был в момент останова. Все программы сразу запущены, настроены и работают. Теперь перейдем на подводную лодку. Представим себе, что она попала в сложную ситуацию, и электричество на борту отключилось в силу неполадки. Неполадка быстро устранена командой, но лодка все еще мертва: компьютеры перезагружаются. В боевой ситуации несколько лишних десятков секунд могут стоить жизни всей команде.
Q: Ну — хорошо, все понятно с войной и медиками, но где польза от Фантома на серверах? A: Не забываем про дешевизну разработки — серверные приложения традиционно недешевы. Но и кроме этого Фантому есть, что предложить. Фантом — система без переключений контекста между ядром и приложением. Обычная система имеет два режима — «всемогущий» режим, в котором работает ядро, и «прикладной» режим, в котором работают приложения. На этом основаны классические системы защиты в системах типа Unix/Linux и Windows. Переключения между режимами весьма дорогостоящи и снижают производительность прикладного ПО. Особенно сильно это проявляется в серверных приложениях. Защита в Фантоме построена по менее затратной технологии, и переключения режимов («колец защиты») не требуются.
Q: Я видел упоминание Фантома в связи с Amazon Cloud services. В чем идея? A: Amazon Cloud — среда, предназначенная для запуска «имиджей» операционных систем. Идея ее в том, что пользователь по необходимости «оживляет» нужное ему количество экземпляров системы, и пользуется ими. Фантом удобен в этой среде тем, что «оживление» дает мгновенно готовую к работе среду, тогда как традиционный Linux после такого «оживления» нужно каким-то образом связывать с данными, настраивать, запускать в нем программы. Опять же, поработавший экземпляр Фантома можно «усыпить» целиком в одно движение, тогда как традиционные программы под Linux потребуют специальных и муторных доработок, для того чтобы быть пригодными к «усыплению».
Q: В каком состоянии находится проект сейчас? A: Мы имеем систему, способную загружаться на эмуляторе компьютера (теоретически — и на реальном компьютере), запускать прикладные программы, завершать работу штатным образом с сохранением состояния, запускаться с восстановлением сохраненного состояния. Существуют средства кросс-разработки (компилятор и среда исполнения программ под управлением Windows/Linux). В настоящий момент в работе сохранение состояния при нештатном отключении. Следующие задачи — реализация базового графического интерфейса и минимального интерфейса пользователя.
Q: Почему вы против развития этой ОС в режиме «открытого кода», каковы основные аргументы? A: Мы не против, мы в раздумьях. Часть системы наверняка будет распространяться в исходных текстах. Возможно — вся.
Бизнес-вопросы
Q: И что — вы собираетесь на этом зарабатывать деньги? A: Да.
Q: Как? A: Мы рассматриваем несколько бизнес-моделей. Выбор конкретной — вопрос времени. Например, изначально предполагалось, что Фантом вряд ли может претендовать на то, чтобы быть серверной платформой. Но с успехом server side Java и появлением таких сред, как Amazon Cloud мы пересмотрели взгляд на сервера и рассматриваем их как перспективное направление для системы. Второе очевидное перспективное направление — карманные устройства. Третье — медицинские и военные применения. Самое сложное направление — десктоп — оставим на десерт. В этом уравнении слишком много неизвестных. Но — мы не отказываемся от этой задачи.
Q: Каков ожидаемый объем вложений? A: Для нишевой версии системы - единицы миллионов долларов. Для десктоп-системы - заметно больше. Реализация для какого-либо сугубо конкретного применения может обойтись даже в несколько сотен тысяч. (Имеются в виду доллары конца 2008-го.:)
Q: А что можно заработать? A: Десять баксов с каждого человека на планете в год. (Вы первый начали.)
Q: Ну а реально? A: Давайте посчитаем вместе. Нокиа продает на 12 млрд в квартал, из них 9 — телефоны и сервис. Положим, телефоны там занимают 3 млрд, то есть 12 млрд в год. Положим, ОС (платформа) — 0.5% цены телефона. Это дает нам 60 млн долл. в год. Ну, то есть — не нам. К сожалению. Ну, или давайте посчитаем иначе. В мире продается 1.2 млрд телефонов в год. Если считать, что один доллар от цены — это софт, то — ну, на 1 вы умножить можете и сами.
Q: Ха-ха-ха. На рынке есть iPhone и Android, кому вы там нужны? A: Технологически и с точки зрения user experience мы превосходим обоих. iPhone силен брендом и технологически его перебить сложно. Но и не нужно — он по определению не претендует на весь рынок. А Android пока никого ничем не впечатлил. А вот рынок разработчиков прикладного ПО Android нам подготовит, спасибо ему.
Технические вопросы
Q: Мне сказали, что Фантом будет работать очень медленно, так как основан на интерпретируемом коде. A: 90 % сегодняшнего профессионального ПО основано на «интерпретируемом» коде. Сюда относятся программы на языках Java, C#, PHP, Python, Ryby — короче говоря, всех современных языках. Это не означает, что такие программы работают медленно. Компиляция таких программ выполняется в традиционных системах прямо во время исполнения. Такой подход немного замедляет запуск программы, но в остальном производительность ничем не уступает, а порой (в случае с Java и C#) и превосходит производительность программ, написанных на устаревших языках (С++, Pascal, etc). В операционной системе Фантом задержка при запуске программы устраняется, так как результат JIT-компиляции будет сохраняться системой для повторного использования. Кроме того, в силу отсутствия переключений контекста между ядром и прикладной программой Фантом обеспечит более высокую суммарную производительность реального кода, чем, например, классический Unix.
Q: Реализован ли уже JIT в ОС Фантом? A: Нет. Мы не уверены в том, что текущий формат байткода и семантики ядра является окончательным, и перейдем к работе над JIT после того, как семантика будет зафиксирована. Строго говоря, в течение последних 4-х лет работы над системой она не менялась, так что, скорее всего, это вопрос почти решенный. Требуется лишь убедиться в некоторых тонких аспектах работы системы в режиме рестарта. Для встраивания JIT в систему в качестве одного из вариантов рассматривается libjit, так что мы не ждем в этой части работы больших проблем.
Q: Как будет решаться проблема драйверов? A: Отметим, что в последние 5 лет эта проблема существенно потеряла остроту. Множество драйверов существует в исходном коде, а количество разнообразных устройств существенно сократилось. Например, на сегодня всего три драйвера видеокарт могут покрыть, пожалуй, 95 % компьютеров на рынке. И эти три драйвера могут быть перенесены из Linux. Множество периферийных устройств сегодня подключаются посредством USB или FireWire, что, фактически, означает, что требуется лишь два собственно драйвера — для портов USB и FireWire как таковых. А порты эти реализуются довольно стандартным образом. Так что эта проблема — хотя и остается достаточно серьезной — перестала быть необъятной.
Q: Возможна ли поддержка механизма виртуализации (например: qemu + win23/linux), и как вы видите будущее этой технологии в фантоме? A: Возможна, и нет никаких причин не реализовать ее. Впрочем, мы, скорее, рассматриваем вариант работы самого Фантома и какой-либо другой ОС под общим гипервизором типа Xen. Одновременно поддержка Xen в Фантоме облегчит его запуск под Amazon Cloud.
Q: Говорят, в Фантоме нет файлов — это правда? Как же без файлов? A: Да, это правда. Файлы сами по себе нужны только по одной причине. В них хранятся «души умерших программ» — состояние программы в промежуток между остановом и повторным запуском программы. Поскольку программа в фантоме не нуждается в том, чтобы останавливаться (точнее — терять внутреннее состояние, ибо останавливаться-то она может), нет причины и записывать ее состояние куда-либо еще.
Q: А как же пользователь? Куда он положит свой вордовский документ? A: Пользователь не заметит исчезновения файлов. Для него будут существовать папки и иконки-документы в них. Иконка будет активизировать (условно говоря — запускать метод editDocument в новой нити) объект, соответствующий документу пользователя. Просто документ будет храниться не в сериализованном «файловом» виде, а ровно в том виде, в котором он присутствует в программе и удобен для ее работы. Это означает, что 1. программист больше не должен писать код записи состояния программы в файл и считывания его (это, в разных ситуациях, от 30 до 70% кода программы), 2. само «открытие документа» будет происходить существенно быстрее (нет процесса десериализации, нет никакого перемещения данных с места на место) и 3. любой документ может элементарно интегрировать в себя любой другой документ — просто добавив в себя ссылку на чужой объект.
Q: Что делать, если у меня испортилась часть диска? В обычной системе я потеряю часть файлов, а у вас — сразу все. Верно? A: Не совсем. Объекты в Фантоме маркированы таким образом, чтобы имея даже «обрывок» памяти их можно было восстановить. Проблемой является идентификация положения «обрывка» в адресном пространстве, но для этого планируется располагать в памяти через некоторое расстояние специальные объекты-маяки, в которых просто записан их собственный адрес. С их помощью можно будет восстановить данные из «разорванного» адресного пространства Фантома в случае фатального сбоя диска.
Q: Если программа плохо написана и «жрет» память, раньше можно было ее убить и запустить заново, а теперь? A: И теперь. Собственно, надо различать работу программы и состояние программы. Фантом сохраняет состояние, делая ненужным «ручное» его сохранение, но он вовсе не обязует все программы непрерывно работать. То есть иметь запущенный процесс/нить.
Q: А не является ли операционная система EROS тем самым, о чем вы тут рассказываете? A: Нет. EROS — традиционная микроядерная ОС. Взаимодействие процессов в ней реализовано через ядро, что означает низкую производительность IPC, невозможность работы с fine grained objects и т.п.
Обсуждение ОС «Фантом» на Западе - раз, два
|
|
|
стр.18 |
// Сеть |
|
|
Взгляд из Америки: очаги терактов по-прежнему имеют северокавказскую прописку |
Атеисты и верующие – актуальное противостояние ХХI века |
Казахстан: войска стреляют в мирных людей |
Слушается дело об убийстве Свиридова |
Премия Леонида Вышеславского – А. Зараховичу и Г. Фальковичу. |
|