October 16th, 2007

Концепция операционной системы-1

Концепция операционной системы-1


Первое с чего я начну, это с описания ошибок в проекте "Эльбрус", которые позволили этот проект убить. Я не имел касательств к этому проекту, но в силу обстоятельств я общался с людьми, которые работали в этом проекте и кое что о нем знаю. Да и вышла пара книг еще до перестройки. Вот в общем-то и вся информация, которой я располагал. Меня заинтересовала история проекта "Эльбрус" с точки зрения допущенных ошибок. Вот эти ошибки:

1. Руководитель проекта Бабаян
При всем моем уважении к Борису Арташесовичу Бабаяну он уже один раз допустил в проект американскую компанию SUN Microsystems, которая пользуясь экономическими трудностями сумела развалить проект, вывезя в США половину состава группы, занимавшейся проектом "Эльбрус". Это стало возможным потому, что именно Бабаяном были допущены ошибки в управлении проектом. Ошибки должны были быть допущены неизбежно, поскольку психологически Бабаян достаточно тщеславен, а значит у него недостаточно развит самоконтроль. В последнее время он опять поднялся, особенно после посещения его группы Сергеем Ивановым, которое с помпой было показано по телевидению. Но, как я подозреваю, ошибки так и не были исправлены. Основная ошибка, допущенная Бабаяном - это ориентация проекта на государственное финансирование без самоокупаемости. Это экстенсивный путь развития проекта, целиком и полностью поставленного в зависимость от политической коньюнктуры.

2. Замыкание на "железе"
Если в 70-х годах прошлого века производилось моделирование проекта "Эльбрус" и ребята рассказывали, как они перепрошивали микрокод процессора ЕС, то тогда же эта группа ушла и моделирование было фактически прекращено. В "железе" надо воплощать уже отработанную в "мягком" софте архитектуру. Когда в начале Перестройки в проект влезла SUN Microsystems, то уже тогда стало понятно, что ничем хорошим это не закончится. Есть такое понятие "американская помощь", когда помогаемый остается без последних штанов. Предложение финансирования разработки топологии "железа" вначале было направлено скорее всего на получение новых идей для МикроСпарки (экономический шпионаж), а потом, с нарастанием дефицита бюджета, ограничениями на финансирование при либерализации политики, позволило вывезти за рубеж основной костяк команды и тем самым развалить проект "Эльбрус" (экономическая диверсия). Американцам было интересно узнать, что из себя представляет проект "Эльбрус". А узнав они поняли, что если проект будет реализован, то их лидерство, которое они обрели за счет столь же диверсионной замены проекта БЭСМ на ЕС ЭВМ от IBM, после завершения работ по проекту и начала промышленного производства процессоров, монополии США в HiTech придет конец. Естественно, что ГосДеп США предложил SUN Microsystems в аккуратной форме "убить ребенка в зародыше". Если, например, конвейерное предвыполнение команд было реализовано еще в БЭСМ-6 в 60-х годах прошлого века, то в фирмах Intel и IBM эту технологию смогли реализовать в массовых изделиях только на рубеже XX-XXI веков. Отставание американцев составляло около 25-30 лет. Не смотря на такое отставание, они интенсивно развивали индустрию программного обеспечения, что позволило им в конечном итоге существенно опередить СССР и Россию.

3. Ориентация на SuperCISC
По тому, что я читал о проекте "Эльбрус" и по общению с некоторыми людьми, работавшими в этом проекте, у меня сложилось мнение, что внутренним языком "железяки" должна была быть аппаратная реализация подмножества языка Алгол-68. Сам по себе язык Алгол-68 достаточно сложен и имеет скорее теоретический, нежели практический интерес. Реализуемое же железо должно быть достаточно простым. Нейрон мозга достаточно простая конструкция, но все многообразие мыслительного процесса реализуется большим количеством нейронов и сложностью связей между нейронами. Кроме того, мозг человека всегда перестраивается, одни связи нейронов распадаются, между другими нейронами появляются связи. Даже после инсульта, когда часть мозга погибает, тренировкой удается восстановить работу мозга почти без потерь. Так же, кстати, и надо лечить шизофрению - переобучением. Однако, менять связи в "железе" это еще то занятие, а исправлять ошибки, закрепленные в твердой кристаллической форме, практически невозможно. Поэтому, ориентация на SuperCISC была еще одной глобальной ошибкой проекта.

4. Монстрообразность
Для построения работоспособного процессора необходимо очень качественно прорабатывать его архитектуру. Объем работы растет как минимум по кубическому, а не по линейному, закону от сложности разрабатываемого автомата. Все определяется числом элементов (состояний) и количеством связей (переходов и порождений) между этими элементами. Затраты на проектирование SuperCISC, таким образом, растут по степенному закону. А для успешного проектирования более сложных систем должны были бы расти по логарифмическому. Пусть и простые, но "железяки" уже есть и в достаточном для программистов количестве. Когда "софт" будет достаточно развит, то реализовать наиболее часто встречающиеся фрагменты кода в виде детерминированных автоматов будет просто. Программа - это уже готовый автомат и перевести его на язык "железа" уже не сложно. Проблема не в переносе "софта" в "железо", а в создании необходимых алгоритмических конструкций. Реализация же в "железе" сразу алгоритмических конструкций противоречит следствиям из второй, сильной теоремы Гёделя. Если был сделан неправильный выбор алгоритмических конструкций (системы аксиом), то затраты на исправление допущенной ошибки потребует огромных затрат ресурсов. Прежде всего времени. Именно поэтому проект "Элбрус" развивается так долго. Именно на этом нас америкосы и "сделали". Они правильно сориентировались на архитектуру RISC, значительно уменьшив затраты на разработку "железа", как наиболее ресурсоемкую часть работы, перенеся остальные затраты в область "софта". Так, кстати, развиваются корпорации Intel и Motorolla. И по этой же причине "загнулись" DEC, оставив после себя прекрасный процессор Alpha, и Зеленоград, сориентированные на сложную архитектуру.

Кроме того, на каждом этапе работы можно выделить часть ресурсов для массового воспроизводства промежуточных результатов и продажи этих результатов потребителям в виде конечного продукта. Таким образом происходит самофинансирование. Если же проект делается как "вещь в себе" и не имеет широкого распространения, то результат работы никогда не сможет стать массовым и будет проигрывать другим проектам. Так маленькие крысы, как вид, опережают больших слонов. По этой же причине вымерли большие динозавры, но выжила их ветвь маленьких особей - птицы. Малость и мобильность. Мы сейчас наблюдаем нечто подобное в области сотовой телефонии. Кроме того, мозг состоит из функционально простых нейронов, но его функциональная насыщенность определяется их количеством и связанностью.