Автор: Андрей Письменный
Опубликовано 09 июля 2010 года
Создание операционной системы - дело серьёзное. Не каждый способен найти средства и силы взяться за него, мало кто в состоянии довести дело до какого-то результата, и уж тем более единицы добиваются успеха на этом поприще. Множество прекрасных разработок в этом направлении были начаты и заброшены на том или ином этапе: Xerox Star, Plan 9, PenPoint, Magic Cap, BeOS... Все их объединяет то, что они никогда не занимали сколько-нибудь заметной доли рынка, не дожили до наших дней и в большинстве своём так и остались утопическими проектами. Можно ли поверить, что вещи, на которых споткнулись такие компании, как Xerox и Bell Labs, вдруг будут реализованы небольшой российской компанией?
Эта смелая компания называется Digital Zone. Её основатель Дмитрий Завалишин считает, что это вполне возможно, и прилагает все усилия для того, чтобы осуществить свою мечту - сделать операционную систему, в которой не было бы разницы между запущенной и не запущенной программой. При написании приложений для неё программистам не придётся заботиться о сохранении данных, а научить две программы обмениваться сложными структурами будет не труднее, чем передаче простого текста.
Очередная утопия? Вовсе нет. Разработчики "Фантома" уже доделывает ядро ОС и экспериментирует с графической оболочкой. Дмитрий Завалишин рассказал нам подробности.
- Расскажите, для начала, о своей карьере.
- Начинал я в Советском Союзе, в ЦСУ СССР (Центральное Статистическое Управление). Это была крупная организация с хорошими деньгами, у них было всё самое новое. Поэтому было интересно, и надо сказать, что ещё тогда были новые проекты, связанные с коммуникациями. Модемы только появлялись, и всё это было очень "вкусно" и интересно. Собственно, с тех пор и по сей день я занимаюсь разработкой программного обеспечения, за исключением того небольшого периода, когда я работал в компании "Компьютерра" редактором.
Если говорить о самых интересных вещах, которыми я занимался, то это проект, который назывался "Русский интернет" в 1990 году. Я работал с "Демосом" и Курчатником и занимался связью между интернетом и ФИДО, которое в ту пору было достаточно популярно и составляло существенную часть коммуникаций в России.
В двухтысячном году - это компания "Яндекс", в которой я проработал четыре года и занимался архитектурой портала "Яндекс". Наверное, именно это меня навело на мысли о собственной компании, потому что "Яндекс" развивался достаточно... не сказать "хаотично", но по факту наличия некоторых потребностей. Процессы строились не в силу осознания их необходимости, а в силу того, что компания упиралась в отсутствие этих процессов и в живую потребность. Это не соответствовало моим идеалам, и у меня возникло ощущение, что, наверное, в мире существует более чёткое понимание того, как устроена разработка софта, и, может быть, ей можно научиться. После чего я пошёл поработать в нескольких компаниях, в том числе в одну западную, чтобы посмотреть, как это делается в тех местах, где разработка софта не вторичная часть бизнеса, а первичная. И в силу этого она более критична по стоимости, по срокам и по качеству.
- И вы решили сделать такую компанию?
- Я решил посмотреть, как это сделано у других, чтобы выяснить, какие в этом месте существуют правила и наработанные практики. И сделать такую компанию. У меня есть некоторый опыт разработки в области как веб-систем, так и многого другого. И было ощущение, что это востребовано. И действительно, так оно и есть в известной степени.
- Судя по вашему сайту, у компании достаточно загадочное и сложное занятие.
- Да на самом деле ничего загадочного. Мы действительно занимаемся портальной разработкой.
- Но написано, что вы берётесь за самое интересное и сложное, что только можете найти.
- Это действительно так. Я приведу несколько примеров, и вы увидите, что они действительно интересные и сложные, но по областям достаточно разные. Один из этих примеров - крупный портал для системы e-commerce - торгового интегратора класса "Яндекс.Маркета" (собственно, "Яндекс.Маркет" - тоже мой проект - им я занимался в компании "Яндекс", и можно сказать, что это моё детище). В нашей компании мы сделали аналогичный проект, даже в чём-то более сложный. Это если говорить про веб-направление.
Второй пример - это "Гардемарин", который с вебом никак не связан. Это достаточно серьёзный софтверный проект, он ориентирован на мониторинг судовых систем. По-другому мы его называем electronic dashboard для судна. Это достаточно современная тенденция, она постепенно вытесняет классический подход, когда существуют отдельные приборы на панели, отдельным образом соединённые с устройствами в машинном отделении. Мы их заменяем на централизованную систему, которая связана по Ethernet с машинным отделением, получает оттуда данные и отправляет управляющее воздействие. Опять же, это довольно крупная система, сложная и довольно интересная. Но к вебу никакого отношения не имеет.
Третий пример - это наша работа с "Мосводоканалом". Мы с ними разрабатываем систему, которая поможет "Мосводоканалу" быстрее реагировать на информацию об авариях и получать более точное представление о месте аварии. У "Мосводоканала" по городу есть множество датчиков, но при этом до сегодняшнего дня интерпретация показаний с них происходила в "человеческом режиме". Сидели некие опытные люди, которые знали, что, к примеру, если сработал восьмой датчик и двадцать пятый, то, скорее всего, там протечка или здесь прорвало трубу. Поскольку это эзотерическое знание очень трудно передаётся от человека к человеку, от того, какая смена сидит в диспетчерской, зависит качество реакции на информацию об аварии. Было решено реализовать систему, которая бы это автоматизировала. Сейчас у нас есть представление о том, как анализировать информацию с датчиков, есть картографическая система, которая отображает эту информацию. Анализируя известные нам паттерны аварийных ситуаций, можно давать более точные указания на то, где искать аварии. Это довольно практическая задача - свести время реакции на аварию до получаса. Это критично, важно и полезно.
Четвёртый пример - собственно, операционная система, которая находится совсем в другой области, и тем не менее - очень интересный и амбициозный проект.
- Но что вас вдруг натолкнуло на мысль делать собственное ядро ОС? Какие-то нужды по другим проектам? Неудовлетворённость существующими системами?
- О, совсем не вдруг! Эта идея зрела давно. Она - результат многолетнего опыта работы в софтверном бизнесе и довольно обширных представлений о том, что происходит в самых разных областях разработки софта, и представлений о том, как устроены существующие операционные системы. Дело в том, что в советское время, когда я только начинал всем этим заниматься, я был очень активным юниксоидом. В восьмидесятые годы я пропагандировал Unix - тогда это была сверхмодерновая, никому не известная операционная система, которая только начинала свой путь. И в мире-то начинала, а в СССР это была совсем фантастика. Я довольно хорошо её знал, был системным программистом, занимался разработкой драйверов и существенно касался ядра операционной системы.
Потом, когда появился MS-DOS, он очень сильно уступал "Юниксу". Зачастую приходилось писать программы, функциональность которых находилась в рамках компонента операционной системы. То есть, скажем, мы под свои задачи писали такие вещи, как многозадачность - для MS-DOS. Причём такие вещи делал каждый десятый программист, работающий с MS-DOS. Это сложно, но вполне достижимо.
Когда мы это делали, мы понимали, какие задачи мы при этом решали и откуда такие потребности возникают. Однажды у нас была очень смешная практическая работа. Когда появилась одна из первых 386-х машин, они были бешено дорогие и никто не понимал, зачем они вообще нужны. Потому что DOS на них работал, как на обычных 286-х. Разницы не было, и никто не понимал, зачем там ещё какие-то восемь мегабайтов.
У меня был начальник, который ко мне пришёл и сказал: "Слушай, ты понимаешь, что с ней можно сделать?". Я говорю, что, в принципе, к ней можно подключить несколько терминалов. Он говорит "Да? Здорово. А как?", я отвечаю: "можно плату такую купить, вставить процессор в неё, подключить к ней терминалы СМ ЭВМ - они ещё были на рынке, - Но операционка этого не поддерживает, ничего с этим сделать нельзя". "А можешь что-нибудь сделать, чтобы она поддерживала этот терминал?". "Могу - говорю, - могу сделать систему, которая позволяет текст на них на всех редактировать". "Здорово! Под это есть задача, давай". И мы сделали продукт, который позволял подключить восемь терминалов к 386 машине, под DOS написали многозадачную среду, в которую встроили приложения - текстовый редактор и прочую мелочёвку. Из этого получилась некоторая инфраструктура для подготовки документации. Были клиенты, которые ею пользовались. Это был некоторый прямой опыт создания - если не операционной системы, то близкой вещи, и её компоненты там присутствовали.
Дальше разработка самых разных приложений и задач в основном компонентного характера наводила на мысль о том, как бы это делать правильно, и в девяностых годах начали бродить в голове и осмысливаться первые идеи, которые легли в основу "Фантома". Я много об этих идеях говорил, общаясь с разными людьми, с сотрудниками разных крупных софтверных компаний - это интересная тема, она обсуждалась. И где-то лет пять назад один из моих знакомых мне сказал: "Давай, Дим, ты что-нибудь уже сделаешь, потому что, вроде, интересная тема". А я очень боялся, потому что тема-то на самом деле неподъёмная и, честно сказать, не мог подумать пять лет назад, что ОС у меня будет запускаться и работать.
Я стал пробовать, делать какие-то наброски, пытаться сделать то один, то другой кусочек - посмотреть работает или не работает та или иная вещь. Компилятор, вот, написал тестовый, систему виртуальной памяти. Оно начало оживать постепенно и двигаться. Финальный шаг - когда я сказал себе, что эти куски мы действительно будем собирать в ядро операционной системы.
Отчасти процесс пошёл потому, что случился информационный прорыв. Мы, на самом деле, его не планировали, но уже пытались делать какое-то ядро. Полтора года назад случилась эта история с публикацией в западном журнале. Случилась абсолютно спонтанно, не планировалась вообще. У одного из наших сотрудников был друг за рубежом, он ему рассказал, что, знаешь, у нас тут ребята операционку потихонечку клепают. "Да, правда? Расскажите. Написал письмо, мы кинули ему внутренние рабочие материалы, идеи, и через неделю вылетела статья, от которой мы сами были в лёгком шоке. Эта статья была перепечатана множество раз - на сотой перепечатке мы просто перестали считать. До этого нас, конечно, воодушевляло - было интересно: японский, китайский языки, европейские языки, прибалтийские языки, дискуссия где-то в Эстонии о том, что русские подкопаются под Эстонию через операционную систему, которую они разрабатывают! Феерическая, конечно, реакция.
- Когда это было?
- Полтора года назад где-то. Зимой прошлого года. Если бы не это, может, ещё года два всё бы шло на тормозах. Но тут как-то так получилось, что мир про это узнал и среагировал не очень благожелательно. Были люди, которые говорили: "Да, здорово, интересно, слава богу, что вы так смотрите на вещи нестандартно, пытаетесь что-то сделать нетипичное". Были люди, которые говорили: "Да это всё сто раз уже было". И они отчасти правы, потому что концепцию, которая у нас есть, по частям можно найти в разных работах разных времён. Третьи говорили: "Да вообще, козлы, куда вы лезете, какие вам операционные системы, вы же там какие-то сайтики программируете". Да, понятно, что моя компания занимается разработкой веб-систем довольно много, поэтому люди говорят: "Сайтописатели операционку делают, да кто они такие?!". Естественного скепсиса хватает, но он и у меня, вообще-то, есть.
Мы - люди адекватные и понимаем, что создать операционную систему, во-первых, сложно, во-вторых, крайне сложно выйти с ней на рынок, хотя бы на какой-нибудь. Тем не менее, меня много спрашивают: "Почему ты за это взялся? Насколько это всё реально?" Я отвечаю, что если бы я просто не стал бы этого делать, мне бы стало стыдно, что не попробовал.
Так что мы понимаем - это большая и сложная задача. Тем не менее, в последнее время появилось некоторое ощущение того, что наша работа действительно востребована. Во всяком случае, в некоторых ситуациях я встречаюсь с людьми, которые выражают желание либо просто попробовать другую операционную систему, либо явно указывают, что то, что мы сделали, им интересно, потому что в "Фантоме" есть те или иные специфические свойства, которые отвечают их потребностям. Причём есть люди, с которыми мы общаемся по поводу этой операционки, и они говорят: "Ребята, нас очень радует то, что она простая". Даже это уже важно.