В самом разгаре создание российской операционной системы, и судя по всему, она будет создана – уже назначили регионы для тестирования. Операционкой дело не ограничится: задумана целая Национальная программная платформа. Хочется надеяться, что все это не будет сделано по образцу военных, бюджет которых пошел на перевод интерфейса Red Hat Linux и переименование ключевых приложений (спасибо Александру Амзину, раскопавшему эти шедевры).
Можно ли создать действительно национальную операционную систему? Наверное, сейчас один только Дмитрий Завалишин продолжает надеяться на создание абсолютно новой ОС с нуля. Но его изыскания при всей их симпатичности напоминают скорее научную разработку, чем практический проект.
Операционная система – это, прежде всего, приложения. И не только офисный пакет, но и графические редакторы, и браузер, и IM-клиенты, и поддержка фотокамер, и еще сотня-другая наименований софтового барахла. Чего будет стоить ОС, из-под которой нельзя завести кошелек в WebMoney или запустить Skype? Наконец, это система поддержки, API, программные платформы, тысячи программистов, кропающих приложения, и десятки производителей десктопов, устанавливающих вашу ОС по умолчанию. Linux, кстати, почти все это имеет, но все равно у него порядка 1% установленных ОС. А национальной любая система на его основе будет лишь в том же смысле, в каком отечественным является телефон от МТС.
Вряд ли сейчас многие осознают, чем пришлось пожертвовать в процессе установления мирового стандарта операционных систем. Я не имею в виду конкретно Windows, это могло бы быть что угодно, но при одном обязательном условии: оно должно было безотказно работать на самых разных конфигурациях железа. Но когда-то ОС и железо разрабатывали, как минимум, параллельно и подстраивали друг под друга. Так еще создавался знаменитый Xerox Star – дедушка всех современных графических ОС, и не только ОС.
Могла ли такая парадигма сохраниться в веках? После того, как Гейтс, по старинному выражению, стал продавать операционные системы в одном ряду с дисками Мадонны – едва ли. Но шанс выжить в отдельных нишах у таких аппаратно-программных систем, наверное, был; просто мало у кого хватило воли и денег следовать этим путем.
НОСТАЛЬГИЯ ПО «МИРУ»
Для иллюстрации того, что мы потеряли, расскажу об одной почти забытой советской разработке, вызывающей у всех, кто с ней когда-то сталкивался, восхищенно-ностальгические воспоминания. Академик Андрей Петрович Ершов, самый, наверное, известный в мире отечественный теоретик программирования, член Американской ассоциации по вычислительной технике, в середине 1980-х годов на одном из совещаний в Новосибирске заявил: «Если бы Институт кибернетики АН Украины не прекратил работы по ЭВМ «МИР» и продолжалось их развитие и производство, то в Союзе была бы лучшая в мире персональная ЭВМ».
Если начать с философских горизонтов, то в основе всего была «идефикс» Виктора Михайловича Глушкова об интеллектуализации вычислительных машин. Глушков свято верил в светлое будущее моделирования человеческого разума на компьютере. Но эти теоретические воззрения, так и не получившие адекватного практического воплощения, были бы не так интересны, если бы коллективу киевского Института кибернетики не удалось бы кое-что из интеллектуальных функций воплотить в реально действующую конструкцию. Так получилась «машина инженерных расчетов» («МИР») – персональный компьютер, если судить по назначению и принципам устройства.
Глушков и его школа полагали, что архитектуру и даже конкретные узлы компьютеров надо подтягивать к языкам высокого уровня, а не городить промежуточные инстанции в виде сложнейших трансляторов-компиляторов. Разработанный ими принцип микропрограммного управления затем вошел в золотой фонд стандартных приемов конструирования процессоров.
М.В. Шура-Бура, другой теоретик и практик программирования, как-то на одном из совещаний, где обсуждались концепции Глушкова, язвительно заметил, что если реализовать то, что предлагает Глушков, то ЭВМ по размерам станет больше здания, где проходила конференция. Но построив сначала ЭВМ «Промiнь», затем «Миры» и под занавес – когда уже всех «построили» копировщики IBM/360, – еще и «Украину», Глушков на практике доказал, что для эффективной организации вычислительного процесса совсем не нужны компьютеры размером «больше здания».
О том, насколько может быть ускорена работа машины без всяких гигагерцев, одной только оптимизацией железа, свидетельствует известный факт из истории знаменитого британского компьютера Colossus (1943 год): эмулятор его функций на «Пентиуме» 1996 года работал вдвое медленней оригинала. Хотя один из разработчиков «Колоссуса» характеризовал его конструкцию, как «веревочно-сургучную». Эффективность «МИР-1» и «МИР-2» при их скромном формальном быстродействии (всего несколько сотен операций в секунду у «МИР-1» и 12 000 оп/с у МИР-2) на ряде задач превышала таковую у «ЕСок» 1970-х годов.
ЛИЦОМ К ПОЛЬЗОВАТЕЛЮ
О том, что «МИРы» вычисляли интегралы, упоминается во всех публикациях о них (причем «МИР-2» мог интегралы «брать» – аналитически, в буквенных обозначениях). Но кроме этого, они умели решать:
– системы линейных алгебраических уравнений до 20-го порядка;
– системы обыкновенных дифференциальных уравнений до 16-го порядка;
– дифференциальные уравнения в частных производных;
– системы нелинейных уравнений до 6-го порядка;
– интегральные уравнения и пр.
И все это в 48 килобитах ОЗУ («МИР-1»)!
Но в «МИРах» было гораздо важнее другое: сама задача была поставлена так, чтобы программы мог писать любой инженер в привычных для него обозначениях и стиле. Довод был простой: максимально приблизить программу к обычным математическим выкладкам. Можно только представить себе, сколько труда было затрачено на реализацию таких функций, как вычисление суммы или произведения (их математические значки входили в состав языка), причем даже с верхним пределом, равным бесконечности!
Для иллюстрации подхода к организации вычислений в «МИРах» приведу уникальный способ представления чисел. В «МИРе» не было фиксированной разрядности чисел в памяти: и для целых, и для реальных чисел она была такой, какой ее задавал разработчик. Для целого числа разрядность ограничивалась только объемом памяти: автор этих строк сам демонстрировал абитуриентам на «Дне открытых дверей», как «МИР-2» запросто возводит 99 в степень 99, выдавая на печать ВСЕ значащие цифры результата.
Другой пример: в «МИРе» функции были именно функциями (в математическом смысле) и задавались просто выражением с указанием формальных параметров. Процедуры присутствовали тоже в оригинальной форме. После служебного слова «ГДЕ» (в конце программы, как в обычном математическом тексте!) вы ставили перечень переменных с определяющими их выражениями через другие переменные, и теперь в тексте программы стоило лишь указать «ВЫЧИСЛИТЬ» и имя переменной из этого описания.
Все это только кажется необычным для нас, привыкших к извращениям фантазии создателей современных языков. Даже самые приспособленные из них для «чайников» – Pascal или Basic – ни в какое сравнение не идут с удобством и понятностью «АЛМИРа» с точки зрения инженера, не желающего глубоко вникать во все эти тонкости. Первая программа, которую я написал для «МИРа» – довольно громоздкий расчет ректификационной колонны для курсовой. На логарифмической линейке этот расчет со всеми проверками делался примерно за неделю, а программу я написал, включая отладку, всего за пару дней. Это почти еще ничего не зная ни про компьютеры, ни про программирование! Сейчас я бы это сделал за полдня: для оформления результатов особо изощряться не приходилось, а печатание таблиц также заложено на уровне языка.
Такой результат был возможен и потому, что «МИР-2» со своим дисплеем и световым пером вместо мыши был полноценной диалоговой машиной. Вплоть до появления IBM PC для «простого пользователя», не программиста и не работника вычислительного центра, общение с компьютером сводилось к тому, что вы подавали заполненные бланки в окошечко на ВЦ и получали на следующий день их обратно с ругательствами в виде восклицательных знаков напротив строк с ошибками. «МИР» переворачивал эту парадигму с ног на голову. Чтобы сесть за пишущую машинку на пульте «МИРа», выполнявшую функции одновременно клавиатуры и принтера, достаточно было пары дней практических занятий.
КОГДА ПЕРСОНАЛКИ ПРИВЕДУТ В ЧУВСТВО?
Какой беспомощной архаикой в сравнении с «МИРом» казался один из первых клонов IBM PC (болгарский «Правец-16», кажется), поступивший в мое распоряжение уже в середине 1980-х! Встроенный «Бейсик» казался недоделанным полуфабрикатом: в нем даже колонки таблиц надо было долго подгонять вручную, а для вычисления десятичного логарифма писать подпрограмму, мучительно вспоминая определения из учебника для 8-го класса.
А ведь прошла пара эпох – «МИР-2» был машиной второго поколения, на дискретных транзисторах. Я подспудно ожидал все эти годы, что кто-то возьмется, наконец, за приведение персоналок в чувство, но так и не дождался: научили показывать флэш-ролики, и ладно. И сейчас можно себе только представлять, к каким результатам привело бы широкое распространение концепции «МИРов» и организация на этих принципах графического интерфейса.
Я не рискну лезть с советами к знатокам-специалистам, которые давно все подсчитали и рассчитали, и тем самым обрекли нас крутиться в колесе Windows-Mac OS-Linux, по большому счету одинаково неудобных для того или иного рода задач, как неудобен швейцарский нож для разделывания коровьей туши. Но как пользователю мне очень бы хотелось, чтобы, наконец, появилось что-то такое, что более соответствует главному положению теории изобретательства (ТРИЗ): «представить себе идеальный конечный результат». По этому критерию попытки Дмитрия Завалишина и иже с ним куда больше напоминают создание национальной операционной системы, чем десятки и сотни миллионов рублей, потраченных на перевод интерфейса Linux и ее компонентов.