Предыдущая заметка:
RB40 (16.02.2009) Никлаус Вирт. Большое турне по России
Оглавление
Заметки по теме:
RB14 (15.06.2007) Государственная ОС
RB38 (28.01.2009) Отечественная или государственная ОС?
RB39 (13.02.2009) Национальная ОС — цель или средство?
Предыстория вопроса:
Предпосылки к всестороннему изучению данной проблематики были сформулированы в моей статье "e;Нужна ли России своя операционная система?"e; (июнь 2007 г.) С авторским вариантом в формате Adobe PDF можно познакомиться здесь — http://www.europrog.ru/rb/ros.pdf. Публикация прошла в журнале "e;Мир ПК"e;: №7/2007 и №8/2007Один из конкретных подходов к НИОКР в сфере отечественных ОС был сформулирован в RB34 (03.12.2007) "e;Роса"e;: перенацеливаемая отечественная ОС нового поколения. В настоящее время проект, продолжающийся на базе конструкторской группы компании "e;Метасистемы"e; (г.Орёл), переведён в закрытый режим и получил название "e;Орлея"e;.
— Что такое операционная система?
— Странный вопрос. Трудно найти человека, который бы не понимал, что это.
— Я-то понимаю, по-своему. И спрашиваю не за тем, чтобы узнать ещё одно определение. В университете изучал. Просто хочется взглянуть на ОС немного с другой стороны, не так, как привыкли обычно это делать. Возможно, взгляд под новым углом зрения… Почему столько копий ломают вокруг этой темы?
— Под новым углом? Не уверен, что мой ответ будет оригинальным, но попробуем порассуждать. С операционной системой имеют дело миллионы людей. Каждый день. Это то, без чего компьютер не сможет работать. Это его мозг, его сердце, его кровеносная система, его лёгкие, почки, печень, его нервная и иммунная система… Да вообще, это весь тот "e;живой организм"e;, который заключён в своё тело — аппаратную компьютерную оболочку. В повседневной жизни при общении с людьми нам по большей части нет надобности заглядывать к ним вовнутрь и смотреть, как там их организм устроен и работает. Нам достаточно внешней оболочки человека и его поведения, выражаемого действиями, звуками, жестами, взглядами…
— Словами и делами?
— Верно. Так и с компьютером. Внешний интерфейс ОС заменяет нам всё остальное. Зафиксируем интерфейс, сменим сам "e;организм"e;, пересадив другие "e;органы"e; и никаких внешних отличий не будет. Если, разумеется, нам удастся скопировать и всё поведение предыдущего организма.
— Но это для пользователей. А как для программистов?
— Для них аналогично — требуется знать чисто внешние признаки ОС помимо пользовательского интерфейса: системные вызовы, протоколы взаимодействия, форматы данных. То, что называется операционной платформой. Зафиксируем платформу, подменив содержимое конкретной ОС — и никаких отличий для программиста фактически не будет.
— Ну если так, то почему такой сложной видится задача создания новых ОС? Повторил пользовательский интерфейс, реализовал операционную платформу — и всё. Новый организм готов.
— В теории всё так, а на практике дело осложняется многими факторами. И самый главный из них в том, что ни интерфейс, ни операционная платформа не могут быть зафиксированы на продолжительный период. А если и могут, то их владельцы в любой момент во имя конкурентной борьбы могут предать их забвению и провозгласить свой новый порядок. Ну а если интерфейс и платформа принадлежат конкретной компании, то тут ещё возникает проблема нарушения интеллектуальной собственности. И, значит, желающих поиграть в такие игры ждут в перспективе судебные тяжбы и серьёзные финансовые издержки.
— Но я знаю, например, одну систему, которая почти в точности копирует операционную платформу Windows. И что же: она вне закона?
— Всё зависит от того, как на это будет смотреть хозяин оригинала. Зависит целиком от его доброй воли. Но сегодня воля одна, завтра — другая. Кстати, уверены ли вы в том, что наличие несанкционированных копий иного плана — пиратских версий той или иной ОС — обязательно наносит ущерб бизнесу владельца оригинала? А не наоборот? Ведь потребителя желательно сначала заинтересовать продуктом, выработать потребность в его использовании, а затем, когда он подсел основательно на иглу, можно невзначай напомнить, что неплохо бы и заплатить. Так и с клонами коммерческих интерфейсов и коммерческих операционных платформ. Впрочем, в этом есть определённая польза: можно, например, их рассматривать как тренажёр, как полигон для экспериментов, особенно если доступны исходные тексты и если владельцы оригинала этому не препятствуют.
— Хорошо. Но как же быть с новой ОС. Разве нет выхода?
— Есть. Делать, например, всё своё. И интерфейс, и платформу.
— Легко сказать. А сколько на это нужно времени, финансов, людей?
— Всё зависит от постановки задачи, состава требований и реальных возможностей её решения. Создать экспериментальную ОС, позволяющую выполнять базовые штатные функции и создавать новые приложения, можно за сравнительно короткий срок и весьма скромным коллективом. Приведу несколько примеров. Экспериментальную ОС масштаба ETH A2/Bluebottle можно создать за 3-4 года силами 3-5 человек: трудозатраты 9-20 человеколет. Трудозатраты на Oberon System (базовую часть) составили 5 человеколет (1985-1987), при этом создавали два профессора (Никлаус Вирт и Юрг Гуткнехт) и развивали несколько аспирантов, совмещая со своей преподавательской и исследовательской деятельностью в ETH Zurich. Другая система — Microsoft Singularity создаётся с 2003 г. силами 50 сотрудников Microsoft Research (разные подразделения), совмещающих эту работу с другими работами. Можно вспомнить и более комплексный 3-летний советский проект МАРС (Модульные асинхронные развиваемые системы, 1985-1988; ВЦ АН СССР, ВЦ СО АН СССР, Институт кибернетики Эстонии), проводившийся ВНТК "e;Старт"e;. МАРС — это НИОКР с получением макета системы и проектной документацией для передачи в производство. В проекте было задействовано около 100 человек (преимущественно научно-исследовательские организации по линии АН СССР с подключением ряда промышленных предприятий). В проекте поддерживалась централизация по управлению (с Центром управления в Новосибирске, ВЦ СО АН СССР). Кадры не изымали из существующей организационной структуры: перераспределяли нагрузку и гибко переподчиняли по проектному участию. Не было необходимости в географической централизации. В МАРС фундамент составляли: 32-разрядный процессор Кронос (прототип — 16-разрядный швейцарский Lilith), транспьютерная архитектура (прототип — транспьютеры английской компании Inmos), операционная система Excelsior (прототип — UNIX, язык реализации — Modula-2), параллелизм — языки БАРС и ПОЛЯР (примитивы языка Occam фирмы Inmos) и формализм управляющих сетей (прототип — сети Петри).
— Боюсь, это будет просто макет, игрушка.
— Не совсем так. Это будет нормальная ОС. Другое дело, что она будет необычной и для пользователей, и для программистов. И вряд ли сможет в одночасье решить проблему с исполнением унаследованных приложений. А чтобы наращивать её мышечную массу, создавать под неё новые приложения, нужен стимул для сторонних программистов. Вот с этим точно проблема может быть большой. Причём именно она и может похоронить новое детище. Сколь бы замечательно оно ни было продумано и реализовано.
— Значит, такие системы в наше время господства монополий обречены?
— Ну почему же обречены? Они могут отлично себя чувствовать там, где как раз наследование старого противопоказано, если вообще такое старое там есть. Например, в новых компьютерных устройствах, в специальных сферах деятельности, где важен не столько функционал, сколько качество его реализации, надёжность, безопасность и т.п.
— Это понятно. Но меня больше заботит то, может ли такая ОС стать массовой и универсальной? Ведь она наверняка будет отличаться от привычного. И для пользователей, и для программистов. Кто же будет на такой ОС работать?
— Хороший вопрос. Получается вроде как заколдованный круг. Создать-то можно. И получше устаревших. Но потом придётся выбросить или ограничиться узкой нишей, потому как для массовой аудитории ключевым фактором служит консерватизм — привычка, опыт работы с традиционными приложениями. Это серьёзная проблема. И крупные компании, которые держат под своим контролем нынешний рынок ОС, вынуждены считаться с ней. Причём дело доходит до печальных курьёзов — некоторые компании открыто заявляют, что ошибка, к которой привык пользователь, должна сохраняться в новых системах. Так-то. Ошибка, к которой пользователь привык, становится особенностью, штатной спецификой и её уже трогать нельзя, чтобы не потерять клиентов!
— Потрясающе! Значит, с каждой новой версией ОС ошибки плодятся, накапливаются. И весь этот хлам с годами только растёт в объёмах?
— Если смотреть на нынешние системы, то вы правы. Хотя тут многое зависит от самой компании-владельца, от её политики. Но если она — лидер рынка, то резкие телодвижения и эксперименты с ОС на живых клиентах ей противопоказаны. Отстающим проще. Им нечего терять.
— Да, но ведь так не может же продолжаться вечно?
— Время от времени лидеры рынка встряхивают своих пользователей и весь рынок. Впрочем, это ещё одна тенденция нашего времени — даже если у пользователя нет потребности менять старую ОС и старый компьютер, его вынуждают это делать — новые технологические и коммерческие условия, диктуемые владельцем ОС, превращают пользователей старых систем в изгоев. При этом новое совсем не обязательно лучше старого — ни по качеству, ни по надёжности, ни по функционалу. Таковы законы рынка. Производство останавливать нельзя. Значит, надо искусственно стимулировать потребление. Заставлять покупать то, что просто не нужно. В этом, кстати, и кроется одна из фундаментальных причин нынешнего глобального кризиса.
— Вернёмся к нашим баранам. Допустим, у нас есть новая экспериментальная ОС. Оригинальная. Как ей стать массовой?
— Очень просто и одновременно сложно: либо она должна стать популярной в массах сама по себе, либо у неё должен быть очень влиятельный хозяин, способный за неё постоять перед монополистами рынка.
— И кто же может быть таким влиятельным хозяином? Интересно…
— Например, государство. Уж на своей-то территории оно вправе устанавливать собственные правила и законы. Значит, у него на руках все козыри.
— Но это же протекционизм, давление на рынок, удушение бизнеса!
— Давайте не будем лукавить. Каждая страна занимается государственным регулированием в тех или иных объёмах, в той или иной сфере. Она вправе сама для себя решать, где требуется срочное вмешательство и где хотя бы на какой-то период желательно поставить заградительные барьеры. Она вправе создавать и регулировать конкурентную среду.
— Государственная ОС? Возможный вариант, но я скептически отношусь к нему: разворуют и сделают никуда не годную вещь.
— Ну если опасения только в этом, то есть относительно безопасный путь: начать пилотный проект с ограниченным финансированием, посмотреть на результаты испытаний, заключения государственной комиссии. Если результаты впечатляющие или просто обнадёживающие — тогда можно принимать решение о придании ОС нового статуса и запуске её в производство. Впрочем, если вы знакомы с историей нашей аэрокосмической отрасли, там именно так и поступали. Была налаженная инфраструктура научно-исследовательских институтов и конструкторских бюро. И надо же — ведь были и по инерции остаёмся здесь мировыми лидерами.
— А почему вы уверены, что будет хороший результат у той группы, что займётся пилотным проектом?
— Чтобы подстраховаться, можно запустить несколько пилотных проектов. Поверьте, их стоимость существенно меньше тех миллиардов, о которых многие рассуждают. Да и конкуренция решений должна быть.
— Допустим. Но мне больше по душе путь новой ОС через популярность в массах.
— Очень долгий и тернистый путь. Да что там далеко ходить. Возьмите тот же Linux. Как вы думаете, сколько крупных западных компаний раскручивало Linux с середины 1990-х годов, сколько было вложено финансов, людских ресурсов? А результат по рыночной доле спустя 15 лет более чем скромный. И это при том, что финансовая нагрузка на потребителя в отношении ОС фактически нулевая. Когда есть ярко выраженный монополист, требуются дополнительные усилия для изменения ситуации. Если бы дело касалось только бизнеса... Но операционная система в наши дни — это ключевой инфраструктурный продукт, на который завязана экономика и общественная жизнь всей страны. Так что если государство всё же понимает, что ситуацию менять нужно — её надо менять. Не откладывая в долгий ящик.
— А если мне государственная ОС не понравится? Почему я должен на ней работать?
— Если не нравится — не работайте. Покупайте или доставайте другие, как делаете сегодня. В чём проблема? Правда, если вы работаете в государственной организации, то, боюсь, здесь придётся считаться с мнением и волей своего работодателя — государства.
— Подождите. Но сколько может понадобиться времени на пилотные проекты, на запуск в производство, на переход на новую ОС? Это же очень долго.
— На пилотные проекты примерно 3-5 лет. На производство — примерно столько же. В общем, лет на 7-10 закладываться надо. Это нормальный цикл для создания массовых ОС.
— А что делать остальным эти 10 лет. Ждать?
— Почему же? Можно уже сегодня начинать готовиться к переходу на новые ОС и при этом оставаться на платформе существующих.
— Не понял. Поясните…
— Через 3-5 лет после начала работ определится архитектура и вся новая операционная платформа. Наверняка появится под неё базовый инструментарий. Значит, программисты уже потенциально могут иметь к этому доступ.
— Но вы же сказали — сейчас…
— Новая массовая ОС должна будет решать каким-то образом болезненную проблему совместимости. И видимо не только путем виртуализации ОС. Значит, потребуется в ней поддерживать базовые спецификации на вызовы, протоколы, форматы, принятые в ИТ-отрасли. Но эти спецификации в нынешних условиях весьма размазаны и по составу, и по гарантии поддержки. Потому первым делом надо определиться с перечнем таких спецификаций. Базовым набором. Международные стандарты — хорошая отправная точка. Только важно, чтобы им был придан соответствующий вес внутри страны. Не рекомендательный, а обязательный характер поддержки.
— Но ведь есть не только международные стандарты. Большая часть программного обеспечения базируется на внутрикорпоративных стандартах. А компания может по своему усмотрению их менять. В любое время. Как же можно к ним привязываться? Вон ICQ чуть ли не каждую неделю меняет свой протокол из-за борьбы с конкурентами. Как же быть?
— В этом случае надо использовать возможности государства. Оно вправе предъявлять требования к продукции, продаваемой и распространяемой на его территории. По маркировке, по документации, по поставке драйверов, по иным параметрам… Возможности зафиксировать на длительный период на своей территории те или иные спецификации — вполне посильная задача. К тому же она развяжет руки разработчикам и прикладных систем. Они смогут опираться на "e;узаконенные"e; спецификации. Для развития отечественной программной отрасли даже безотносительно новой ОС это огромное подспорье.
— Как скучно: стандарты, спецификации…
— Тут выбор невелик: либо оставлять нынешний хаос с двумя ярко выраженными полюсами развития (Windows-Linux), либо пытаться в нём навести хоть какой-то порядок, заодно помогая тому же неокрепшему Linux хоть немного встать на ноги в нашей стране. За Linux сегодня в России не стоит ни авторитетная общественная организация, ни государство. Дистрибутивов множество. Каждый тянет лямку совместимости в свою сторону. Это не дело. Надо унифицировать. Иначе риски даже для тех, кто готов подумать о переходе на альтернативу, слишком велики. И запредельный монополизм Microsoft на нашем рынке будет сохраняться со всеми вытекающими.
— Насколько важно строить на базе свободного ПО?
— Свободное ПО во многом играет позитивную роль. Открытые исходные тексты и относительная свобода их применения помогают решить многие проблемы. Но попутно создают и свои. На мой взгляд, открытые исходные тексты сами по себе в отрыве от открытых спецификаций представляют небольшую ценность. Строить на готовеньком, на том, что кто-то до тебя сделал, — заманчиво. Но сколь грамотно это было реализовано и какова была сама постановка задачи? Какие усилия нужно будет приложить, чтобы развивать этот код, да ещё на других языках программирования? Восстанавливать проектные решения по анализу кода — неблагодарное занятие. Спецификации всё же первичны, а код — лишь эталонная иллюстрация. Увы, сломать стереотипы, сложившиеся в программистском сообществе, которое нередко абсолютизирует исходные тексты, весьма тяжело. Тут ещё требуется пройти непростой путь, чтобы выйти на иной уровень зрелости и понимания. Путь от программиста к программному инженеру.
— Ну хорошо. Унифицировать Linux, наверное, задача посильная. Но ведь это ударит по другим дистрибутивам.
— Отчего же? Если фиксируется эталонная национальная операционная платформа, то соответствовать ей или нет, проходить ли сертификацию, — пусть решают те, кто развивает соответствующий дистрибутив. Стимулировать это нетрудно — давать преференции сертифицированным системам при участии в государственных тендерах. По крайней мере, какой-то порядок в этом деле появится. А нынешнее распыление сил работает отнюдь не на пользу нашей экономике.
— А как же Windows? На него фактически завязана вся экономика страны. Люди не будут поддерживать Linux. Хотя бы потому, что это им не выгодно. Они привыкли к Windows. Деньги за него платятся по большей части не из их кармана. К тому же, раз вложения сделаны, просто так выбрасывать всё на ветер — не по-хозяйски.
— А зачем выбрасывать? Давайте попробуем посмотреть на проблему иначе: наверное для ряда задач имеет смысл обеспечивать дуальность: поддержку и Windows, и Linux. Так? Тогда надо искать пути унификации. В первую очередь — по линии приложений. Формировать демпфирующие программные слои, которые можно будет относительно легко перекоммутировать на целевую ОС. Причём со временем и на новые перспективные ОС. Стимулировать этот процесс может опять-таки государство — соответствующими требованиями к новым системам для государственного сектора.
— А можно какой-нибудь пример подобной унификации?
— Возьмите проект San Francisco корпорации IBM. Создавались крупные строительные блоки для бизнес-приложений в Java 2 Enterprise Edition (свыше 1000 модулей), которые потом вылились в весьма развитую интегрирующую платформу IBM WebSphere. Теперь она ещё и тесно связана с открытой расширяемой инструментальной платформой Eclipse. Другой пример — интегрирующая бизнес-платформа SAP NetWeaver. Малоизвестен тот факт, что в её разработке ведущую роль сыграла формально американская, а по сути белорусско-российская компания EPAM Systems, лидер среди компаний всей Восточной Европы. Наши разработчики с 2002 г. бок о бок работали над SAP NetWeaver с коллегами из команд SAP в Вальдорфе (Германия), Пало-Альто (США) и Бангалоре (Индия). И накопили свыше 1 млн. часов опыта работы с этой платформой, включая разработку и внедрение на её основе корпоративных бизнес-решений.
— Верно ли я понял, что можно подобным путём вообще избавиться по зависимости от конкретной ОС на долгие годы?
— Правильно. Причём в национальных масштабах. И это очень важно в смысле технологической независимости страны. Но помимо чисто архитектурно-технологического решения требуется главное — доверие к тому, что это будет поддерживаться долгие годы, что на этом фундаменте можно уверенно строить. У нас кроме государства в роли такого гаранта, способного противостоять западным монополистам, вряд ли кто ещё может выступить.
— Подождите, получается, что можно избежать государственного лоббирования Linux, что Windows и его приложения могут в таких условиях в нашей стране дальше успешно развиваться?
— Разумеется. Просто государство может регламентировать те условия, в которых могут создаваться приложения для разных ОС, не только для национальной. Оно способно сформулировать и законодательно закрепить условия конкуренции и развития. Что вполне разумно.
— Может ли национальная ОС дать нам конкурентное преимущество при экспорте нашего ПО?
— Непростой вопрос. Сама по себе — вряд ли. Если она в тактическом отношении опирается на существующие ОС, то для западной аудитории не совсем понятно, в чём для них выигрыш. Им нужно минимизировать свои риски. А для них чужая национальная ОС без очевидного выигрыша в производительности — лишние риски. Делать же ПО для Windows и Linux в отдельности — и так делаем. Скажу больше — нашим признанным лидерам экспортной разработки ПО национальная ОС для продвижения на Запад особо и не нужна. Разве что как один из крупных правительственных заказов. В остальных случаях нетрудно предсказать их прохладное к этому отношение, возможно даже стойкое неприятие самой идеи.
— Получается, что для улучшения экспорта ПО национальная ОС ничего не даёт?
— Не совсем так. Если будет ОС, которая в стратегической перспективе принципиально отлична от существующих и которая может иметь экспортное исполнение с определённой спецификой по поддержке национальных языков, требований к информационной безопасности и т.п. — интерес возникнуть может. Но, скорее, не в отношении самой ОС, а комплексных решений на её основе. В то же время унификация прикладных платформ — это совсем неплохо. И если с подобными решениями мы сможем выходить на зарубежный рынок — вполне вероятно, что успех будет. Но стоит понимать: выигрыш внутри страны может быть на порядки выше. И я не уверен, что нам так надо биться здесь за увеличение экспортной выручки. Будут в новых условиях расти достойные кадры, появятся более сильные, чем у западных конкурентов инструменты, сможет национальная ОС играть роль эффективной платформы для кросс-разработки под разные ОС — и эта задача роста экспорта ПО попутно решится. Говоря о национальной ОС, не стоит забывать о таком только нарождающемся классе ОС, как интернет-ОС (WebOS). Это особое направление, и здесь можно создать очень неплохие заделы с прицелом на серьёзные экспортные решения.
— А почему вы всё время используете прилагательное "e;национальный"e;? Как-то это на оголтелый патриотизм смахивает…
— Неужели? Вас не смущает, что в США именно это прилагательное используется в отношении большинства ведущих государственных учреждений? Полагаю, вы также знаете, что в соответствии с нашим законодательством с июля 2003 г. у нас действуют именно национальные стандарты, а не государственные. Впрочем, для меня это синонимы.
— А как назвать все те стандарты и спецификации, которые помогут снять зависимость и от зарубежных ОС, и вообще от специфики ОС?
— Это не только совокупность операционных платформ. Здесь задействованы и прикладные платформы для отраслевых применений. Да и не только они. Можно назвать и Национальной операционной инфраструктурой, и Национальной программной платформой — кому как нравится. Впрочем, не в названии дело.
— Интересно. И всё-таки: если в кармане у нас есть почти беспроигрышное решение по унификации Windows и Linux, то каковы шансы создавать параллельно своё, оригинальное?
— Я бы говорил не об унификации Windows и Linux, а, скорее, об унификации Windows и UNIX. Причём на "e;законодательной базе"e; Национальной программной платформы. В мире UNIX помимо Linux есть не менее интересные, зрелые и продуманные системы (QNX, FreeBSD, Solaris и др.), и не только коммерческие. Но вопрос был про отечественные оригинальные разработки в области ОС... Есть перспективные наработки в Новосибирске (Excelsior), Орле ("e;Орлея"e;, ранее "e;Роса"e;), Москве (Phantom). Это лишь несколько примеров.
— Это всё независимые разработчики?
— Не совсем так. На мой взгляд, в подобных делах требуется объединять потенциал академической науки по линии РАН, университетов, способных активно помочь в создании макетов, и профессиональных разработчиков, имеющих богатый опыт работы в ИТ-индустрии. Впрочем, многое будет зависеть от научной основы, грамотности архитекторов и глубины проработки своего инструментария. Это и есть ключ к решению столь грандиозной научно-инженерной задачи. Важно и то, что перспективные ОС должны создаваться в тесном контакте с разработчиками отечественной элементной базы, прежде всего, это касается процессоров семейства "e;Эльбрус"e;.
— Но какова в стране ситуация с кадрами? Деньги найти, наверное, можно, а вот людей?
— Я бы выделил три основных стадии: НИОКР, проектирование и производство. В отношении НИОКР и в какой-то степени проектирования у нас есть потенциал по линии РАН, сферы высшего образования и амбициозных небольших компаний, тесно работающих с родственными вузами. Что касается производства, то тут, на мой взгляд, стоит подумать и о подключении наиболее сильных кадров, которые сконцентрировались в наших лидерах экспортной разработки ПО. Тех, что входят в профессиональную ассоциацию "e;Руссофт"e;.
Заметки по теме:
RB14 (15.06.2007) Государственная ОС
RB38 (28.01.2009) Отечественная или государственная ОС?
RB39 (13.02.2009) Национальная ОС — цель или средство?
|