Предыдущая заметка:
В ходе многочисленных дискуссий, так или иначе возвращающихся к вопросу вмешательства государства в сферу регулирования индустрии программного обеспечения (ПО), во главу угла всё чаще ставится идея создания национальной операционной системы (национальной ОС).
Безусловно, такой грандиозный по своим масштабам инженерный проект мог бы одним ударом решить многие накопившиеся проблемы. Но вот ведь в чём загвоздка: в реальность его успешного осуществления в полноценном объёме на государственном уровне сегодня остаётся веры крайне мало, даже у самых завзятых оптимистов. Позабыт опыт создания программных систем такого масштаба, растеряны ценные кадры, разрушены многие важнейшие связи в образовании, науке и промышленности. И хотя некоторые группы исследователей и разработчиков своими силами, не надеясь на помощь государства и бизнеса, не первый год пытаются с разных сторон подступиться к этой сложной задаче, их усилия воплощаются разве что в создании новейших технологий и ноу-хау, которым уготована судьба тихого растворения в толще зарубежного бизнеса.
А потому всеобщий скепсис подталкивает к простому, дешёвому, лобовому решению - перелицевать GNU/Linux - одну из самых распространённых в мире свободных ОС. И навесить на неё красочный ярлык "национальная операционная система". Причём государство, судя по развитию событий последних лет, даже не готово взять на себя ответственность за её развитие и внедрение.
Что это кардинально может изменить в нынешней безрадостной ситуации? Чуть-чуть потеснить американского монополиста - корпорацию Microsoft, снизив её долю на нашем рынке операционных систем с 95% на пару-тройку процентных пунктов? Возможно. Облегчить своими преференциями выбор гражданам и организациям одного конкретного дистрибутива GNU/Linux из общей массы в 500 с лишним систем? Наверняка. Создаст ли это новый рынок, способный привлечь значимые силы науки и бизнеса? Увы, маловероятно. Быть может, мы сможем, наконец, облегчённо вздохнуть и избавимся от рисков технологической зависимости от США в тех кровеносных артериях страны, которые и определяет всепроникающая универсальная операционная система? Очень бы хотелось надеяться. Но… развитие ядра Linux определяет не Россия и даже не единичные российские разработчики - в людском и финансовом плане это находится под контролем трёх крупнейших американских компаний - IBM, Novell, RedHat. Не для того они вкладывали в это миллиарды долларов, чтобы за здорово живёшь отдать кому-то контроль над тем, что приносит немалую прибыль. Даст ли это мощный импульс подрастающему поколению в России испытать гордость за свою страну и выбрать себе славную профессию программиста? Точно, нет. Не надо быть специалистом, чтобы понять сомнительную ценность подобной "национализации" в глазах пытливой молодёжи. Так неужели оставлять всё как есть и полагаться на то, что ситуация вдруг сама собой изменится. Тоже сценарий. Вот только мы по нему живём уже почти четверть века, и света в конце тоннеля как-то всё не видать.
Есть ли другие пути? Есть. Причем не косметические и не революционные. А "постепеновские", эволюционные, позволяющие обеспечить баланс интересов противоборствующих сторон. Причём в интересах России.
Прежде всего, важно понять, что национальная ли, государственная ли ОС не может быть целью. Это лишь средство. Оно важное, но подчинено какой-то большой, значимой цели.
Что же может быть выбрано в этом качестве? Тут надо понять, какие проблемы могут быть решены при движении к соответствующим целям. Сегодня наиболее серьёзные проблемы, на мой взгляд, выглядят так:
- расфокусированность государственной политики применительно к программному обеспечению: в образовании, в науке, в промышленности, в обществе;
- колоссальная зависимость страны от импорта ПО, особенно системного ПО и инструментального ПО;
- потеря контроля над развитием программных технологий, доминирующих во всех сферах экономики страны;
- жесточайший дефицит кадров для национальной программной отрасли;
- разбазаривание интеллектуального потенциала: лучшие центры и разработчики, пока ещё стоящие на передовых позициях в сфере технологий программирования, не могут реализовать себя в родной стране - они ей попросту не нужны.
Применительно к названным проблемам наиболее рельефно прорисовываются следующие три взаимосвязанные цели:
- Национальная безопасность ИКТ.
- Технологическая независимость страны.
- Возрождение национальной программной индустрии.
На первых двух нет смысла детально останавливаться. Их всесторонне обсуждали. А вот третью стоит рассмотреть подробнее.
Национальная программная индустрия (software industry)… Невольно возникает вопрос: а есть ли у нас в стране эта отрасль экономики? Воспринимают ли её (прежде всего, органы государственной власти) как важнейшую самостоятельную отрасль, способную обеспечить качественный, инновационный прорыв России? Или всё растворяется и размывается в понятии информационно-коммуникационных технологий (ИКТ), в собственно информационных ресурсах и аппаратных средствах для передачи, обработки и воспроизведения информации? Интеграция страны в мировое глобальное информационное пространство, информационное общество - это замечательно. Но важно знать, на чём оно будет построено и что потом делать с прогнившим фундаментом.
К сожалению, национальная программная индустрия являет собой редкие, разрозненные, большей частью необитаемые островки, затерянные в безбрежном океане ИКТ.
Лучшие программистские кадры либо уезжают из страны, либо переключаются на экспортную разработку - как продуктовую, так и заказную. В результате в ключевых, определяющих областях ПО - операционных систем и инструментальных средств - наличие собственных перспективных разработок и участие отечественных программистов (что в стране, что в мире) исчезающе мало. Уровень импортной зависимости здесь просто запредельный. Наш кадровый потенциал ориентирован не на архитектурные, инженерные, "строительно-монтажные" работы, а преимущественно на "отделочно-ремонтные", "малярно-слесарные" - перелицовку импортного ПО и налаживание информационных систем с минимальной наукоёмкостью. Такой перекос в условиях беспризорности национальной программной отрасли и засилья импортного ПО навязывает вузам извращённые требования к подготовке кадров, ускоренными темпами вымывая из сферы высшего образования те традиции научно-инженерного образования, которыми ещё совсем недавно наша страна могла по праву гордиться.
Программист в современном мире - уже давно не учёный, не поэт и не художник. Он воспринимается как рядовая рабочая специальность. И в общем-то странно, что её у нас готовят по большей части вузы, а не колледжи и не профессиональные училища. Но и то, что подготовлено, в интересах России используется очень неэффективно. И это на фоне общемировой тенденции - когда налицо острая потребность в программных инженерах с высшим образованием, в основном в тех компаниях, где программное обеспечение создаётся как инженерный продукт, предъявляющий очень высокие требования к безопасности и надёжности. Подготовка профессиональных кадров в области программирования и неумение их использовать в интересах страны остаётся ахиллесовой пятой России. Высшая школа, несмотря на отчаянное очаговое сопротивление профессорско-преподавательского корпуса, последних из могикан, оставлена на растерзание крупным американским компаниям (прежде всего, Microsoft) и российскому бизнесу, основательно подсевшему на иглу импортной продуктовой и технологической зависимости. Ситуация аховая уже сегодня. Завтра что-либо кардинально исправить будет практически невозможно.
Мы по инерции гордимся регулярными победами наших студентов на чемпионатах мира по программированию, не всегда отдавая себе отчёт в том, что спортивное программирование - очень специфическая сфера, которая с реальными проблемами и задачами программной отрасли имеет мало общего. А лежащие в руинах некогда сильные отечественные центры академической науки не в состоянии создать молодым талантам приемлемую основу для их самореализации во благо родной страны. В результате наши чемпионы, которых с радостью принимают к себе исследовательские лаборатории лучших компаний мира, для своей страны просто потеряны.
Идея национальной ОС способна стать сильнейшим катализатором нашего развития. Но только в том случае, если окажется хорошо проработанной и продуманной комплексной программой, направленной на формирование продуктивного взаимодействия образования, науки, бизнеса и государства в целом. Если создаст среду реальной востребованности мощного интеллектуального потенциала страны. Потому важнее именно формируемая на её основе инфраструктура, а не ОС сама по себе.
Давайте разберёмся в том, что же мы хотим сделать. Абсолютно новую ОС, архитектурно и технологически отличающуюся от нынешних популярных систем? Безусловно, этим надо заниматься и рассматривать как стратегическую перспективу, запуская в этом направлении новые пилотные проекты. Тем более, что обнадёживающие заделы в этой области у нас есть. Но готовы ли мы сегодня к штурму этой вершины? Трудно сказать. Что же делать? Ни системы семейства Windows, ни Mac OS (по понятным причинам принадлежности американским компаниям) в качестве национальной ОС выступать не могут. Значит, если результат нужен сегодня, поневоле приходится рассчитывать только на мир свободного ПО, где доминирует UNIX-культура. А там воронка популярности автоматически приводит к GNU/Linux.
И вот тут очень важно не наломать дров. Операционная система во многом определяет ту операционную среду, которая создаётся в той или иной сфере профессиональной деятельности. Она определяется набором устоявшихся программных продуктов и систем, накопленными лучшими практиками, спецификой обработки информации, интерфейсом и функционалом, к которому привыкли миллионы и миллионы специалистов. По сути это специализированная ОС, работающая поверх универсальной ОС. В нашей стране при запредельном доминировании Microsoft ломать через колено в одночасье такую схему при жутком дефиците аналогов в GNU/Linux означает одно - дискредитировать своё решение и убедить пользователей в том, что полноценной альтернативы Windows нет.
Кроме того, ставить пользователя перед выбором "либо-либо" и в условиях нынешнего глобального кризиса повышать риски вряд ли разумно. Нужен хороший компромисс, который может устроить многих, при этом способный обеспечить плавную, сравнительно безболезненную миграцию в новую операционную среду, задействуя активно используемые ОС.
Общемировая тенденция такова: разные ОС должны работать на одном компьютере не вместо, а вместе. Это обеспечивается новейшими технологиями виртуализации. И тогда есть возможность использовать самые гибкие схемы, включая и ту, когда под управлением компактной и надёжной национальной ОС работают распространённые коммерческие со всем своим богатейшим парком программного обеспечения. А пользователь переключается между приложениями разных ОС с той же лёгкостью, как он это привык делать внутри одной и той же ОС.
Попробую пояснить идею на простом примере. Предположим, что у нас есть большой парк оборудования, который подключается к сети через вилки с двумя штырьками большого диаметра (аналог приложений для Windows). И приличный парк оборудования, рассчитанный на вилки с двумя штырьками малого диаметра (аналог приложений для GNU/Linux). Чтобы решить проблему нестыковки розеток, можно создать новый вариант розетки и вилки - три штырька среднего диаметра - и обеспечить переходники под новые розетки. Зато если это делается в масштабах страны и под контролем государства, то нет проблем выпускать своё оборудование, рассчитанное на эту новую унифицированную розетку. А затраты на переходники можно возложить на производителей оборудования, которым интересен рынок и которые вполне готовы пойти на столь незначительные издержки.
Иными словами, можно создавать национальную ОС со своими требованиями к разъёмам, к механизмам сопряжения, но при этом осознавая, что её можно в кратчайший срок конкретизировать, скоммутировать с реальными ОС. Оставляя возможности для дальнейшего развития собственных ОС. Для этого и надо создавать своё "законодательство", свои разъёмы, иначе мы просто станем заложниками одной конкретной системы и пойдём по тупиковому пути клонирования семейства IBM/360-370 по линии ЕС ЭВМ с гарантией нарастания технологического отставания.
К чему сведётся фиксация разъёмов: к выработке базовых спецификаций ОС (системные вызовы, протоколы, форматы данных), которые и определяют в совокупности операционную платформу. Другими словами, достаточно спроектировать и стандартизировать на государственном уровне программные спецификации, под которые можно обеспечить поддержку как со стороны GNU/Linux и Windows, так и совершенно новых, перспективных ОС. Как же вырабатывать подобные спецификации? Один путь - пытаться унифицировать универсальные ОС на нижнем уровне. Примеры: унификация свыше 500 дистрибутивов GNU/Linux ныне ведётся в рамках LSB (Linux Standard Base). Унификация вообще UNIX-систем осуществляется через спецификации POSIX.
Полагаю, что нам надо идти несколько иным путём - от приложений. Т.е. унифицировать на верхнем уровне - уровне прикладных платформ, определяющих операционные среды по сути специализированных ОС, которые заточены под конкретные отрасли и сферы применения. Для этого необходимо провести ревизию нынешнего состояния парка важнейших отраслевых приложений, выявить и описать подобные среды в каждой отрасли, определить в них лидеров и с их помощью сформировать соответствующие спецификации. В перспективе это может привести к формированию отраслевых фондов стандартов и спецификаций на программное обеспечение.
Моё глубокое убеждение: нам требуется всерьёз заняться законотворческой деятельностью. Но не в юридическом, а в технологическом плане. "Правовая база" нормативов, технических норм и правил для национальной программной индустрии находится в жутком состоянии. Технологическая независимость в сфере программирования в первую очередь обеспечивается гарантией соблюдения стандартов, в особенности стандартов представления информации и сопряжения программных компонентов. Нам никто не мешает выявить те международные стандарты, на которые стоит основательно опереться, привести в соответствии им свои национальные стандарты и придать им более обязательный характер, особенно в отношении органов государственной власти. По таким стандартам мы на уровне государства должны занять активную позицию в международных комитетах по стандартизации, в особенности в ISO и ECMA. Наряду с этим мы можем создавать собственные стандарты, нормы и правила, в своих интересах. Некий аналог государственных СНиПов (строительные нормы и правила). И не должны ограничивать себя туманной перспективой возможного в будущем экспорта своей национальной ОС. Она должна решать в первую очередь задачи внутри страны и в этом быть на голову сильнее нынешних полуфабрикатов в виде популярных универсальных ОС. Если к такой технологической законодательной базе удастся обеспечить лёгкий доступ (желательно, бесплатный) со стороны нашего профессионального сообщества и если её соблюдение будет стимулироваться преференциями государства хотя бы в отношении тендеров на гос.заказы - процесс унификации начнёт развиваться стремительно.
Фактически национальную ОС можно строить от спецификаций по модульному принципу: "законодательная" фиксация интерфейсов сопряжения и альтернативные модули реализации этих интерфейсов. Это автоматически снимает напряжённость противостояния ОС и языков программирования, обеспечивая разумную основу конкурентной борьбы лучших решений. Арбитраж может быть возложен на национальные органы сертификации, которые должны отслеживать несоответствие продукции требованиям технических регламентов, и сам внутренний рынок, который будет выбирать для себя лучшие, надёжные, эффективные варианты соответствующих модулей.
Из этого следует, что имеет смысл во главу угла поставить стандартизацию, связанную с национальной ОС и её приложениями. С тем, чтобы на уровне государства контролировать и развивать интерфейсы сопряжения и форматы представления. С минимальной привязкой к конкретной ОС. Это большая задача, но риски минимизируются за счёт того, что под такое "законодательство" всегда можно будет подводить конкретную реализацию из существующих. Включая как Windows, так и разные дистрибутивы GNU/Linux, BSD, QNX и т.п. Стандартизация "разъёмов", "каркасов" и "пластов" даст мощный импульс развитию. К тому же она позволит и тем, кто планирует разработку своих ОС, инструментов и прикладных систем, выстраивать подъездные пути к развиваемой операционной инфраструктуре. Значит, можно сосредоточиться на создании спецификаций для национальных операционных и прикладных платформ. Конкретизация которых под требования национальной ОС может быть проведена в достаточно короткий срок.
Теперь к вопросу о том, из чего строить. Очевидно, что наибольший задел имеется в сфере ПО с открытым кодом вообще и свободного ПО, в частности. В то же время, нам не стоит забывать, что само по себе наличие исходных текстов - это далеко не гарантия контроля и технологической независимости. При большом объёме, некачественной реализации и отсутствии исходных спецификаций это может быть сродни технологическому мусору. Простая аналогия. Если есть техническое устройство, у которого открыты только разъёмы (закрытый, проприетарный код), - это даёт гарантию целостности заложенного в него функционала, но в обмен на потерю внешнего контроля за развитием этого устройства. Если мы вскрываем устройство (открытый код) и видим его внутренности, это помогает разобраться в специфике работы, но всё ещё не дает возможности получить полный контроль. Для этого нужны проектные спецификации (техническая документация) в совокупности с эталонной реализацией (открытым кодом). Вот по этому пути и надо идти.
В России есть свои крупные прикладные системы, которые используются в сотнях тысяч отечественных компаний и организаций. Это платформо-образующие прикладные системы, которые формируют основу рабочих мест для огромного количества людей по всей стране. При этом компаний, которые создают и сопровождают эти системы, очень немного. Если с помощью государства удастся обеспечить миграцию этих систем в новую среду, в национальную ОС, она в короткий срок сможет перейти из лозунговой и теоретико-рекомендательной сферы в реальную практику нашей экономики.
Фактически то, что мы называем национальной или государственной ОС в контексте всего вышеизложенного, является более крупным образованием - национальной операционной инфраструктурой. И если проводить некие параллели со знаменитой амбициозной американской программой середины 1990-х годов бывшего вице-президента США Альберта Гора - Национальной информационной инфраструктурой (NII, National Information Infrastructure) - то нетрудно заметить, что здесь нет той размытости решений, которая в конечном итоге в США привела к тихому сползанию громкой инициативы в декларирование высоких целей и банальный делёж федерального бюджета.
Впрочем, многое в итоге будет зависеть и от нашей политической воли, и от грамотного выбора стратегии и тактики, и от ставки на те или иные головные организации, от их мотивации в этом грандиозном проекте.
Многое упирается в опыт и кадры. А есть ли у нас сегодня научно-инженерный потенциал, превосходящий лучшие зарубежные образцы? Потенциал, который может быть использован в рамках национальной ОС как в тактическом плане (на базе нынешних ОС), так и в стратегическом плане? Который может стать одним из катализаторов активного роста и развития национальной операционной инфраструктуры?
Приведу для конкретики всего два примера по линии Российской академии наук (РАН). Из двух областей, в которых ещё сохранены традиции нашего мирового лидерства: (1) вычислительная математика и (2) инструментальные системы; где особенно высока наукоёмкость.
Так, Институт вычислительной математики и математической геофизики Сибирского отделения РАН, на базе которого был создан Сибирский суперкомпьютерный центр, прорабатывает проект создания комплекса математических библиотек нового поколения с высокой точностью вычислений, который опирается на уникальные разработке российских математиков. В конце прошлого года этот институт инициировал работы по созданию Фонда алгоритмов и программ СО РАН.
Другой пример. Институт систем информатики им. А.П.Ершова СО РАН обладает уникальным опытом создания компиляторов, инструментальных систем и ОС специального назначения, прежде всего, для бортового программного обеспечения российских спутников и уже выступал с предложением провести научно-исследовательский проект, нацеленный на практическую разработку операционной системы следующего поколения и создание в России соответствующего центра компетенции на базе научно-образовательной инфраструктуры новосибирского Академгородка. В качестве отправной точки этот коллектив намерен использовать результаты работ, проводившихся в 1980-х годах в рамках ВНТК «Старт». Тогда, по заказу ГКНТ СССР была создана оригинальная и независимая операционная система Excelsior с UNIX-подобным интерфейсом вместе с полнофункциональной средой разработки ПО для оригинальной 32-разрядной отечественной процессорной архитектуры. Работа была высоко оценена рядом отечественных и зарубежных специалистов, в частности, знаменитым швейцарским профессором Никлаусом Виртом (ETH Zurich).
Это лишь несколько примеров. Есть и другие группы, другие центры, другие интересные и глубокие российские разработки. Более того, на базе сайта Европейского центра программирования ведётся работа по координации усилий в этой области, по обмену технологической информацией между самостоятельными коллективами.
Америка в компьютерной сфере давно уже подмяла науку под бизнес. Причём хоронила её методично. Ныне Европа в области программирования хоть и робко, но всё же начинает пересматривать свою почти рабскую зависимость от Штатов. И моё глубокое убеждение, которое вынес из многолетнего личного общения с лучшими европейскими учёными, - без потенциала России и стран бывшего Советского Союза самостоятельно из нынешней ямы Европе не выбраться.
Уверен, у нашей страны есть редкий шанс совершить серьёзный инновационный рывок, способный вывести Россию на качественно иной уровень развития. Очень бы хотелось, чтобы он действительно состоялся, а не оказался пустым выхлопом.