- Это действительно так. Я приведу несколько примеров, и вы увидите, что они действительно интересные и сложные, но по областям достаточно разные. Один из этих примеров — крупный портал для системы e-commerce — торгового интегратора класса «Яндекс.Маркета» (собственно, «Яндекс.Маркет» — тоже мой проект — им я занимался в компании «Яндекс», и можно сказать, что это моё детище). В нашей компании мы сделали аналогичный проект, даже в чём-то более сложный. Это если говорить про веб-направление.
Второй пример — это «Гардемарин», который с вебом никак не связан. Это достаточно серьёзный софтверный проект, он ориентирован на мониторинг судовых систем. По-другому мы его называем electronic dashboard для судна. Это достаточно современная тенденция, она постепенно вытесняет классический подход, когда существуют отдельные приборы на панели, отдельным образом соединённые с устройствами в машинном отделении. Мы их заменяем на централизованную систему, которая связана по Ethernet с машинным отделением, получает оттуда данные и отправляет управляющее воздействие. Опять же, это довольно крупная система, сложная и довольно интересная. Но к вебу никакого отношения не имеет.
Третий пример — это наша работа с «Мосводоканалом». Мы с ними разрабатываем систему, которая поможет «Мосводоканалу» быстрее реагировать на информацию об авариях и получать более точное представление о месте аварии. У «Мосводоканала» по городу есть множество датчиков, но при этом до сегодняшнего дня интерпретация показаний с них происходила в «человеческом режиме». Сидели некие опытные люди, которые знали, что, к примеру, если сработал восьмой датчик и двадцать пятый, то, скорее всего, там протечка или здесь прорвало трубу. Поскольку это эзотерическое знание очень трудно передаётся от человека к человеку, от того, какая смена сидит в диспетчерской, зависит качество реакции на информацию об аварии. Было решено реализовать систему, которая бы это автоматизировала. Сейчас у нас есть представление о том, как анализировать информацию с датчиков, есть картографическая система, которая отображает эту информацию. Анализируя известные нам паттерны аварийных ситуаций, можно давать более точные указания на то, где искать аварии. Это довольно практическая задача — свести время реакции на аварию до получаса. Это критично, важно и полезно.
Четвёртый пример — собственно, операционная система, которая находится совсем в другой области, и тем не менее — очень интересный и амбициозный проект.
- Но что вас вдруг натолкнуло на мысль делать собственное ядро ОС? Какие-то нужды по другим проектам? Неудовлетворённость существующими системами?
- О, совсем не вдруг! Эта идея зрела давно. Она — результат многолетнего опыта работы в софтверном бизнесе и довольно обширных представлений о том, что происходит в самых разных областях разработки софта, и представлений о том, как устроены существующие операционные системы. Дело в том, что в советское время, когда я только начинал всем этим заниматься, я был очень активным юниксоидом. В восьмидесятые годы я пропагандировал Unix — тогда это была сверхмодерновая, никому не известная операционная система, которая только начинала свой путь. И в мире-то начинала, а в СССР это была совсем фантастика. Я довольно хорошо её знал, был системным программистом, занимался разработкой драйверов и существенно касался ядра операционной системы.
Потом, когда появился MS-DOS, он очень сильно уступал «Юниксу». Зачастую приходилось писать программы, функциональность которых находилась в рамках компонента операционной системы. То есть, скажем, мы под свои задачи писали такие вещи как многозадачность — для MS-DOS. Причём такие вещи делал каждый десятый программист, работающий с MS-DOS. Это сложно, но вполне достижимо.
Когда мы это делали, мы понимали, какие задачи мы при этом решали и откуда такие потребности возникают. Однажды у нас была очень смешная практическая работа. Когда появилась одна из первых 386-х машин, они были бешено дорогие и никто не понимал, зачем они вообще нужны. Потому что DOS на них работал как на обычных 286-х. Разницы не было, и никто не понимал, зачем там ещё какие-то восемь мегабайтов.
У меня был начальник, который ко мне пришёл и сказал: «Слушай, ты понимаешь, что с ней можно сделать?». Я говорю, что в принципе к ней можно подключить несколько терминалов. Он говорит «Да? Здорово. А как?», я отвечаю: «можно плату такую купить, вставить процессор в неё, подключить к ней терминалы СМ ЭВМ — они ещё были на рынке, — Но операционка этого не поддерживает, ничего с этим сделать нельзя». «А можешь что-нибудь сделать, чтобы она поддерживала этот терминал?». «Могу — говорю, — могу сделать систему, которая позволяет текст на них на всех редактировать». «Здорово! Под это есть задача, давай». И мы сделали продукт, который позволял подключить восемь терминалов к 386 машине, под DOS написали многозадачную среду, в которую встроили приложения — текстовый редактор и прочую мелочёвку. Из этого получилась некоторая инфраструктура для подготовки документации. Были клиенты, которые ей пользовались. Это был некоторый прямой опыт создания — если не операционной системы, то близкой вещи, и её компоненты там присуствовали.
Читать дальше